Claude Source Code:构建顶级编程智能体M7AI

Claude Source Code:构建顶级编程智能体

26分钟 ·
播放数0
·
评论数0

这些资料详细分析了 Anthropic 推出的 AI 编程工具 Claude Code 的内部架构与隐藏功能。通过对泄露源码的深度拆解,文中揭示了该工具并非简单的聊天外壳,而是一个拥有 55 个目录和 331 个模块 的精密代理操作系统。技术要点涵盖了利用 异步生成器 实现的零延迟流式响应,以及通过四层 上下文压缩策略 维护超长对话质量的机制。此外,源码中还发现了尚未正式发布的 KAIROS 持续助手、多智能体协作模式以及名为 BUDDY 的内置电子宠物系统。

对于开发者而言,资料强调了通过配置 CLAUDE.md、自定义 生命周期钩子 以及调整环境变量来大幅提升开发效率的方法。总而言之,这些文档为用户提供了一份从底层原理到高阶调优的 生产力指南,旨在将 Claude Code 从基础助手转变为高度定制化的自动化开发平台。

Claude Code 为了应对长对话带来的上下文压力,设计了一套基于成本和上下文使用率递进的四层 Compact(压缩)架构。这种机制按照“成本最低的策略优先运行,最激进的策略最后兜底”的原则,在保证语义和缓存命中的前提下优化上下文。具体四层架构如下:

第一层:MicroCompact(微压缩)与 Cache Edits

  • 触发条件与目标:作为最轻量级的常规清理,主要针对对话中冗长的旧 tool_result(工具调用结果)。
  • 核心黑科技:系统会根据缓存的“热度”采取不同策略。如果缓存已过期(超过5分钟),直接清空旧的工具结果;如果缓存还“热着”,则通过发送 cache_edits 指令,在 API 层面让服务端将特定的旧数据块标记为“跳过”。
  • 效果:这种增量删除技术让本地消息序列保持不变,在缩短模型可见上下文、节省 Token 的同时,完美保持了前缀缓存(Prompt Cache)的命中率,极大降低了延迟和成本。

第二层:SessionMemoryCompact(会话记忆精确切割)

  • 触发条件与目标:当清理工具结果仍不足以释放空间时,系统会对旧对话进行“外科手术式的精确切割”。
  • 执行机制:系统会保留最近 10K-40K Token 的消息,并用一条简短的 Session Memory(如“之前我们讨论了……”)来替代被裁剪的旧对话。
  • 安全规则:切割时绝不拆散完整的交互组。例如,tool_use(工具调用)和 tool_result(结果)必须成对出现,thinking(思考过程)必须和关联的动作在一起,宁可多保留一些数据,也坚决不破坏上下文的语义完整性,防止模型陷入逻辑混乱。

第三层:Full Compact(全量压缩)

  • 触发条件与目标:当整个对话上下文接近容量上限,且前两层处理不够时触发。
  • 执行机制:系统会 Fork(派生)出一个后台 Agent 读取并总结全部对话历史。这个过程会将占用大量 Token 的图片替换为文本标签(如 [image])以节省空间。
  • 缓存复用魔法:这个摘要 Agent 使用与主对话完全一致的 System Prompt 和工具配置,因此能直接命中主对话的 Prompt Cache,以极低的成本完成摘要计算。
  • 记忆恢复:摘要完成后,为了防止模型“失忆”,系统会自动把最近编辑过的文件内容(限额 50K Token)和激活的技能(限额 25K Token)重新注入到截断后的上下文中。

第四层:PTL Retry(Prompt Too Long / 终极兜底)

  • 触发条件与目标:这是最后的紧急防线(也被称为 Reactive Collapse),只有在极端情况下(例如连第三层的摘要 Agent 都因为上下文过长而触发 API 413 报错)才会启动。
  • 执行机制:系统会直接从对话头部砍掉最旧的消息组,每次最多砍掉 20% 的内容,最多重试 3 次,直到上下文短到足以被 API 接受。
  • 影响:这种方法虽然粗暴且会丢失重要的上下文,但它是防止程序彻底崩溃的最终保险机制。

使用建议:由于第三层和第四层压缩会不可避免地丢失重要细节,建议在日常使用中调低自动压缩的阈值(例如调整 CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70),或在任务周期的自然断点主动输入 /compact 命令,让 Claude 在清爽的上下文中工作。

根据泄露的 Claude Code 源码,其中包含了 5 个尚未发布的核心系统、32 个编译时实验性标志(Feature Flags)以及多项隐藏的内部机制和防御策略。以下是具体的汇总:

五大尚未发布的核心系统

  1. KAIROS(全天候常驻助手)功能:一个永远在线的自主 Agent,不依赖用户输入即可主动观察项目、记录日志并自动发起任务(如发现测试失败或 PR 更新时主动响应)。
    专属工具:具备发送文件(SendUserFile)、推送通知(PushNotification)和订阅自动响应 GitHub PR(SubscribePR)等独占工具。
    相关标志:由编译时标志 KAIROSPROACTIVEKAIROS_GITHUB_WEBHOOKS 以及服务端网关 tengu_kairos 控制,目前在公共版本中被完全隔离。
  2. ULTRAPLAN(30分钟深度规划模式)功能:通过 /ultraplan 命令将复杂的规划任务(如大型重构、架构设计)转移到云端容器(CCR)中运行。它使用 Opus 4.6 模型进行长达 30 分钟的自主思考,不受 Token 压力和上下文窗口限制。
    机制:带有基于浏览器的审批 UI,批准后通过特殊标记将结果传回本地终端。
    相关标志:隐藏在 tengu_ultraplan_modelULTRAPLAN 标志之后。
  3. Speculation(沙盒预执行/预测引擎)功能:在 Claude 回复完成后,它会在后台预测你的下一步操作并在沙盒(Overlay)中预先执行。如果你接受建议,结果会瞬间呈现。
    安全机制:文件读写会被重定向到沙盒目录,直到用户确认才会合并到真实代码库中。
    相关标志:由服务端 tengu_speculation 控制,目前被硬编码为关闭状态,没有用户切换开关。
  4. BUDDY(电子宠物系统)功能:一个内置在终端的虚拟宠物(Tamagotchi),会在输入框旁以 5 行 ASCII 字符动画显示。包含 18 种物种(如鸭子、水豚、幽灵等),具有稀有度设定以及 DEBUGGING、CHAOS 等 5 项属性。
    相关标志:受 BUDDY 标志控制,源码显示计划于 2026 年 5 月发布。
  5. Daemon Mode(后台守护进程模式)功能:通过 claude --bg  命令将 Claude Code 作为后台守护进程启动(由 tmux 管理),相当于“AI 会话的 Docker”。
    相关标志:受 DAEMONBG_SESSIONS 标志控制。

重要的实验性标志 (Feature Flags)

源码中发现了 32 个编译时标志,用于控制正在开发或测试的功能:

  • VOICE_MODE:语音输入模式。
  • CHICAGO_MCP:通过 MCP(模型上下文协议)实现计算机控制(Computer Use)功能。
  • WEB_BROWSER / WEB_BROWSER_TOOL:内置网页浏览器工具。
  • UDS_INBOX:通过 Unix 域套接字实现跨会话的 IPC 通信。
  • COORDINATOR_MODE:多 Agent 协作调度模式,允许一个协调者管理多个 Worker 进行并行研发。

隐藏的内部机制与防御功能

除了新功能外,源码还泄露了 Anthropic 内部特有的隐藏逻辑:

  1. 内部员工模式(USER_TYPE=ant:在编译时通过环境变量隔离。Anthropic 员工使用的是具有不同 System Prompt 的版本(包含 400+ 字的严格写作指南、专用的代码验证 Agent 等)。
    该模式下甚至可以使用 CLAUDE_CODE_ABLATION_BASELINEDISABLE_COMMAND_INJECTION_CHECK 来关闭所有安全和命令注入检查(危险操作)。
  2. Undercover(潜伏模式):当 Anthropic 员工在公共/开源仓库提交代码时,会自动激活该模式。要求模型隐藏所有内部代号(如 Tengu、Opus 4.7)、隐藏 AI 生成的痕迹,以避免开源社区对 AI 代码产生偏见。
  3. Anti-distillation defense(反模型蒸馏防御):Anthropic 假设竞争对手会抓取 Claude 的 API 流量用于训练他们自己的模型,因此在 API 请求中故意注入包含轻微错误信息的“诱饵/伪造工具定义”(Decoy tools),从而“毒化”竞争对手的训练数据。

通过配置文件和 Hook 系统,AI Agent(如 Claude Code)可以从通用的聊天助手转变为高度定制化、了解特定项目代码库的自动化工作流引擎。以下是实现深度自定义的具体方法:

一、 配置文件:多层级指令与权限自动化

1. 利用多层级的 CLAUDE.md 注入项目上下文AI Agent 会在**用户的每一个交互回合(every single turn)**重新读取 CLAUDE.md 文件,而不是仅在会话开始时加载。你可以利用高达 40,000 字符的容量,通过建立层级化的配置文件来深度定制 Agent 的行为:

  • 全局配置~/.claude/CLAUDE.md(定义个人的编码风格和偏好)。
  • 企业/项目级配置:加载项目根目录下的指令(定义架构决策、文件命名约定、测试模式以及“绝对不要做”的规则)。
  • 模块化规则.claude/rules/*.md(为特定模块制定规则)。
  • 本地私有配置CLAUDE.local.md(被 git 忽略的个人笔记或私有指令)。

2. 通过 settings.json 实现权限分类与自动化不要每次都手动点击“允许”执行命令。你可以通过修改 ~/.claude/settings.json 文件,使用类似 Glob 的模式匹配来配置权限。

  • 自定义白名单:例如配置 "Bash(npm *)""Edit(src/**)",让 Agent 可以直接执行这些安全的常规操作,消除手动授权的疲劳。

二、 Hook 系统:拦截生命周期与自动化工作流

Hook 系统是实现深度自定义的核心扩展 API,它允许你在 Agent 运行的 25 个以上的生命周期事件中注入自定义逻辑,且无需修改任何核心源码。

1. 拦截关键生命周期事件你可以针对以下核心事件编写触发器:

  • PreToolUse / PostToolUse:在任何工具执行之前或之后触发。
  • UserPromptSubmit:在用户提交提示词时触发(极其强大的拦截点)。
  • SessionStart / SessionEnd:在会话生命周期开始或结束时触发。

2. 使用 5 种 Hook 类型扩展能力Agent 支持 5 种不同类型的 Hook 来执行不同维度的任务:

  • command:运行一段 Shell 命令。
  • prompt:通过 LLM 动态注入上下文。
  • agent:运行一个完整的 Agent 验证循环(例如派生一个子 Agent 来审查代码)。
  • HTTP:调用外部 Webhook。
  • function:运行 JavaScript 脚本。

3. 典型的 Hook 深度定制场景

  • 自动化验证与格式化:在文件写入前(PreToolUse)自动运行代码 Lint 检查,或在编辑后(PostToolUse)自动运行测试用例。
  • 动态上下文注入:利用 UserPromptSubmit Hook,在用户每次发送消息时,自动将近期的 Git diff、测试输出或项目状态隐式地注入到提示词中,免去手动粘贴背景信息的繁琐。
  • 安全与合规审查:在代码提交前验证是否遵循了安全模式。
  • 第三方工具集成:任务完成时通过 HTTP Hook 自动发送 Slack 通知。