本章总览
服务层是横切能力:API、MCP、压缩、OAuth、遥测等 22 个子系统。它们被 query、tools、commands 复用。本章帮你建立服务地图,避免在 services/ 里迷路。
总览图
学完本章你应该能
- 列举 22 服务的职责一句话
- 理解 services 与 tools 的边界
- 找到 API 与 compact 两个最核心服务
核心概念(先读懂这些)
Service 不是微服务
这里是进程内模块划分,不是网络服务。命名 services/ 表示「长生命周期、被多处 inject 的能力包」。
依赖方向
query → services/api;tools → services/mcp;compact → services/compact。tools 不应反向依赖 query,保持 DAG。
建议学习步骤
- 读服务表并标注已学/未学
- 深入 API 与 MCP 两章
- 画一张自己的依赖草图
services 协作关系
22 个子系统
- mcp:12,333 行
- api:10,497 行
- analytics:4,049 行
- compact:3,998 行
- tools:3,117 行
- lsp:2,470 行
- teamMemorySync:2,172 行
- plugins:1,619 行
- PromptSuggestion:1,516 行
- oauth:1,070 行
- SessionMemory:1,029 行
- remoteManagedSettings:961 行
- extractMemories:771 行
- tips:767 行
- policyLimits:692 行
- settingsSync:650 行
- autoDream:554 行
- MagicDocs:383 行
- AgentSummary:180 行
- toolUseSummary:113 行
- contextCollapse:62 行
- skillSearch:24 行
mcp
12,333 行 · 23 文件
| 文件 |
|---|
services\mcp\auth.ts |
services\mcp\channelAllowlist.ts |
services\mcp\channelNotification.ts |
services\mcp\channelPermissions.ts |
services\mcp\claudeai.ts |
services\mcp\client.ts |
services\mcp\config.ts |
services\mcp\elicitationHandler.ts |
services\mcp\envExpansion.ts |
services\mcp\headersHelper.ts |
services\mcp\InProcessTransport.ts |
services\mcp\MCPConnectionManager.tsx |
services\mcp\mcpStringUtils.ts |
services\mcp\normalization.ts |
services\mcp\oauthPort.ts |
说明
MCP 客户端:连接 stdio/SSE/HTTP 服务器,发现 tools/resources,auth 状态机。
api
10,497 行 · 20 文件
| 文件 |
|---|
services\api\adminRequests.ts |
services\api\bootstrap.ts |
services\api\claude.ts |
services\api\client.ts |
services\api\dumpPrompts.ts |
services\api\emptyUsage.ts |
services\api\errors.ts |
services\api\errorUtils.ts |
services\api\filesApi.ts |
services\api\firstTokenDate.ts |
services\api\grove.ts |
services\api\logging.ts |
services\api\metricsOptOut.ts |
services\api\overageCreditGrant.ts |
services\api\promptCacheBreakDetection.ts |
说明
Anthropic API 封装:streaming messages、retry/backoff、usage 统计、prompt cache 管理。
analytics
4,049 行 · 9 文件
| 文件 |
|---|
services\analytics\config.ts |
services\analytics\datadog.ts |
services\analytics\firstPartyEventLogger.ts |
services\analytics\firstPartyEventLoggingExporter.ts |
services\analytics\growthbook.ts |
services\analytics\index.ts |
services\analytics\metadata.ts |
services\analytics\sink.ts |
services\analytics\sinkKillswitch.ts |
说明
遥测管道:GrowthBook 特性开关 + Datadog + 1P event logging。
compact
3,998 行 · 15 文件
| 文件 |
|---|
services\compact\apiMicrocompact.ts |
services\compact\autoCompact.ts |
services\compact\cachedMCConfig.ts |
services\compact\compact.ts |
services\compact\compactWarningHook.ts |
services\compact\compactWarningState.ts |
services\compact\grouping.ts |
services\compact\microCompact.ts |
services\compact\postCompactCleanup.ts |
services\compact\prompt.ts |
services\compact\reactiveCompact.ts |
services\compact\sessionMemoryCompact.ts |
services\compact\snipCompact.ts |
services\compact\snipProjection.ts |
services\compact\timeBasedMCConfig.ts |
说明
上下文压缩:autoCompact 监控 token 使用率,compactConversation 生成摘要。
tools
3,117 行 · 4 文件
| 文件 |
|---|
services\tools\StreamingToolExecutor.ts |
services\tools\toolExecution.ts |
services\tools\toolHooks.ts |
services\tools\toolOrchestration.ts |
lsp
2,470 行 · 8 文件
| 文件 |
|---|
services\lsp\config.ts |
services\lsp\LSPClient.ts |
services\lsp\LSPDiagnosticRegistry.ts |
services\lsp\LSPServerInstance.ts |
services\lsp\LSPServerManager.ts |
services\lsp\manager.ts |
services\lsp\passiveFeedback.ts |
services\lsp\types.ts |
teamMemorySync
2,172 行 · 5 文件
| 文件 |
|---|
services\teamMemorySync\index.ts |
services\teamMemorySync\secretScanner.ts |
services\teamMemorySync\teamMemSecretGuard.ts |
services\teamMemorySync\types.ts |
services\teamMemorySync\watcher.ts |
plugins
1,619 行 · 3 文件
| 文件 |
|---|
services\plugins\pluginCliCommands.ts |
services\plugins\PluginInstallationManager.ts |
services\plugins\pluginOperations.ts |
说明
插件管理:bundled + marketplace 插件。
PromptSuggestion
1,516 行 · 2 文件
| 文件 |
|---|
services\PromptSuggestion\promptSuggestion.ts |
services\PromptSuggestion\speculation.ts |
oauth
1,070 行 · 6 文件
| 文件 |
|---|
services\oauth\auth-code-listener.ts |
services\oauth\client.ts |
services\oauth\crypto.ts |
services\oauth\getOauthProfile.ts |
services\oauth\index.ts |
services\oauth\types.ts |
说明
OAuth 登录:Claude.ai 账号认证流程。
SessionMemory
1,029 行 · 3 文件
| 文件 |
|---|
services\SessionMemory\prompts.ts |
services\SessionMemory\sessionMemory.ts |
services\SessionMemory\sessionMemoryUtils.ts |
remoteManagedSettings
961 行 · 6 文件
| 文件 |
|---|
services\remoteManagedSettings\index.ts |
services\remoteManagedSettings\securityCheck.jsx |
services\remoteManagedSettings\securityCheck.tsx |
services\remoteManagedSettings\syncCache.ts |
services\remoteManagedSettings\syncCacheState.ts |
services\remoteManagedSettings\types.ts |
extractMemories
771 行 · 2 文件
| 文件 |
|---|
services\extractMemories\extractMemories.ts |
services\extractMemories\prompts.ts |
tips
767 行 · 4 文件
| 文件 |
|---|
services\tips\tipHistory.ts |
services\tips\tipRegistry.ts |
services\tips\tipScheduler.ts |
services\tips\types.ts |
policyLimits
692 行 · 2 文件
| 文件 |
|---|
services\policyLimits\index.ts |
services\policyLimits\types.ts |
settingsSync
650 行 · 2 文件
| 文件 |
|---|
services\settingsSync\index.ts |
services\settingsSync\types.ts |
autoDream
554 行 · 4 文件
| 文件 |
|---|
services\autoDream\autoDream.ts |
services\autoDream\config.ts |
services\autoDream\consolidationLock.ts |
services\autoDream\consolidationPrompt.ts |
MagicDocs
383 行 · 2 文件
| 文件 |
|---|
services\MagicDocs\magicDocs.ts |
services\MagicDocs\prompts.ts |
AgentSummary
180 行 · 1 文件
| 文件 |
|---|
services\AgentSummary\agentSummary.ts |
toolUseSummary
113 行 · 1 文件
| 文件 |
|---|
services\toolUseSummary\toolUseSummaryGenerator.ts |
contextCollapse
62 行 · 3 文件
| 文件 |
|---|
services\contextCollapse\index.ts |
services\contextCollapse\operations.ts |
services\contextCollapse\persist.ts |
skillSearch
24 行 · 7 文件
| 文件 |
|---|
services\skillSearch\featureCheck.ts |
services\skillSearch\localSearch.ts |
services\skillSearch\prefetch.ts |
services\skillSearch\remoteSkillLoader.ts |
services\skillSearch\remoteSkillState.ts |
services\skillSearch\signals.ts |
services\skillSearch\telemetry.ts |
本章小结与延伸
services/ = 可复用子系统仓库。先 api + mcp + compact,其余按需。 继续学习: