Skip to content

服务层概览

src/services/ 目录包含 Claude Code 的所有后台服务和基础设施服务,约 130 个文件分布在 20 个子目录中,另有 16 个顶层散文件。

服务架构图

┌─────────────────────────────────────────────────────────────┐
│                         应用层                               │
├───────────────┬──────────────────┬──────────────────────────┤
│   Compact     │    Analytics     │   Background Services    │
│  (上下文压缩)  │    (遥测分析)     │      (后台服务)           │
├───────────────┼──────────────────┼──────────────────────────┤
│     MCP       │      OAuth       │    Tools Service         │
│  (协议服务)    │    (认证授权)     │      (工具管理)           │
├───────────────┼──────────────────┼──────────────────────────┤
│     LSP       │   Enterprise     │      Plugins             │
│  (语言服务)    │    (企业功能)     │      (插件系统)           │
└───────────────┴──────────────────┴──────────────────────────┘

服务目录清单

子目录文件数功能
compact/11上下文压缩系统(micro/auto/session)
analytics/9遥测、事件追踪(Datadog + 1P)
mcp/23MCP 协议客户端完整实现
lsp/7Language Server Protocol 集成
oauth/5OAuth 2.0 + SSO 认证
tools/4工具注册与管理
plugins/插件系统
tips/提示信息
policyLimits/策略限制
remoteManagedSettings/远程托管设置
settingsSync/设置同步
teamMemorySync/团队记忆同步
AgentSummary/Agent 摘要
autoDream/离线知识整合
extractMemories/记忆提取
PromptSuggestion/提示建议
MagicDocs/文档自动生成
toolUseSummary/工具使用摘要
SessionMemory/3会话记忆

顶层文件 (16个): awaySummary.ts, claudeAiLimits.ts, voice.ts, vcr.ts, tokenEstimation.ts, notifier.ts, preventSleep.ts, diagnosticTracking.ts

服务生命周期

App 启动
├── init() 阶段
│   ├── Analytics 初始化(Datadog + 1P sinks)
│   ├── OAuth token 验证
│   ├── MCP 服务器启动
│   └── Hooks 注册

├── REPL 运行阶段
│   ├── Compact 上下文管理(持续)
│   ├── Background services(按条件启动)
│   ├── LSP 连接(按需)
│   └── AutoMode 分类(按需)

└── 退出阶段
    ├── Analytics flush(异步)
    ├── MCP 服务器关闭
    └── Session 清理

设计原则

  • 独立性:服务间零耦合
  • 可降级:单个服务故障不影响核心功能
  • 延迟加载:按需初始化,不拖慢启动

文档导航

文档涵盖服务
上下文压缩系统compact/ — 三层压缩架构
遥测分析系统analytics/ — 双 Sink 管道
MCP 协议服务mcp/ — 完整 MCP 实现
语言服务器lsp/ — LSP 集成
认证授权oauth/ — OAuth 2.0 + SSO
工具管理服务tools/ — 工具注册、过滤
后台服务autoDream, extractMemories 等
企业功能策略、设置同步