跳到主要内容

服务层

服务层是 Claude Code 的后端基础设施,由 36+ 个服务模块(130 文件)组成,提供从 API 通信到遥测的全套能力。

服务架构

┌──────────────────────────────────────────┐
│ 核心服务 │
│ API Client · Query Engine · Cost Track │
├──────────────────────────────────────────┤
│ 协议服务 │
│ MCP Server · LSP Client · OAuth │
├──────────────────────────────────────────┤
│ 数据服务 │
│ Memory · Compression · History │
├──────────────────────────────────────────┤
│ 运维服务 │
│ Telemetry · Analytics · RateLimit │
├──────────────────────────────────────────┤
│ 交互服务 │
│ Voice · Notifications · Plugins │
└──────────────────────────────────────────┘

核心服务

API 客户端 (services/api/)

封装 Anthropic SDK,提供:

  • 流式消息传递
  • 文件上传(图片、PDF)
  • Token 计数
  • 错误处理与重试
  • 多模型支持

成本追踪 (cost-tracker.ts)

实时跟踪 Token 使用和费用:

  • 输入/输出 Token 计数
  • 按模型计费
  • 会话累计统计
  • 缓存命中追踪

协议服务

MCP 服务器管理 (services/mcp/)

管理 Model Context Protocol 服务器的完整生命周期:

  • 服务器发现与连接
  • 工具动态注册
  • 资源管理
  • 心跳与健康检查
  • 并发多服务器支持

LSP 集成 (services/lsp/)

Language Server Protocol 集成,提供代码智能:

  • 符号查找
  • 跳转到定义
  • 引用查找
  • 代码补全
  • 诊断信息

OAuth 认证 (services/oauth/)

OAuth 2.0 认证流程:

  • 授权码流程
  • Token 刷新
  • 安全存储(macOS Keychain)

数据服务

上下文压缩 (services/compression/)

当对话变长时,智能压缩上下文:

  • 保留关键信息
  • 移除冗余内容
  • 维持对话连贯性
  • 自动触发或手动 /compact

记忆提取 (services/memory/)

自动从对话中提取值得记住的信息:

  • 用户偏好
  • 项目上下文
  • 反馈和纠正
  • 跨会话持久化

运维服务

遥测 (services/telemetry/)

基于 OpenTelemetry 的诊断追踪:

  • 性能指标采集
  • 错误追踪
  • 使用模式分析
  • 本地优先,可选上报

分析 (services/analytics/)

GrowthBook 特性管理:

  • A/B 测试
  • 特性开关
  • 渐进式发布
  • 用户分群

速率限制 (services/rateLimit/)

组织级别的速率控制:

  • API 调用频率限制
  • Token 配额管理
  • 策略执行

交互服务

语音 (services/voice/)

语音输入处理:

  • 语音转文本
  • 关键词提取
  • 实时流式处理

通知 (services/notifications/)

用户通知系统:

  • 任务完成通知
  • 错误告警
  • 离开摘要(Away Summary)

插件加载 (services/plugins/)

插件系统的加载器:

  • 插件发现与安装
  • 版本管理
  • 依赖解析
  • 生命周期管理