乐于分享
好东西不私藏

Claude code泄漏源码,Harness Engineering(驾驭工程)分析

Claude code泄漏源码,Harness Engineering(驾驭工程)分析


深度拆解 Claude Code 源码:揭秘 AI 智能体的“黄金缰绳”——驾驭工程

前言:

很多人认为 AI 智能体(Agent)的强大在于模型能力,但 Claude Code 的源码告诉我们:真正能落地的 AI,靠的是“驾驭工程”(Harness Engineering)。 >

如果说 LLM 是野性难驯的千里马,那么“驾驭工程”就是那一套精密的缰绳、马鞍和嚼子。本文将带你深入 Claude Code 源码底层,看 Anthropic 是如何通过约束、反馈、控制和改进,构建出一套工业级的 Agent 运行框架。


核心哲学:人类掌舵,智能体执行

驾驭工程 (Harness Engineering) 并非为了削弱 AI,而是为了给它打造一套约束机制、反馈回路、工作流控制与持续改进循环

其核心思想可以概括为:Human Steer, Agent Execute.


一、 架构全景图:Agent 的“马具”系统

在 Claude Code 的设计中,Agent 不是孤立运行的,它被包裹在一个多层的“缰绳系统”中:

四大核心支柱:

  1. 1. 约束机制 (Constraints): 权限、沙箱、路径验证,确保 AI 不越界。
  2. 2. 反馈回路 (Feedback Loops): 实时进度、上下文传递、权限询问,实现人机协同。
  3. 3. 工作流控制 (Workflow Control): 任务调度、并发管理、生命周期循环。
  4. 4. 持续改进 (Continuous Improvement): 记忆系统、自动压缩、成本追踪。

二、 约束机制:构建纵深防御体系

Claude Code 的安全不是靠一句 Prompt,而是靠多层物理隔离。

2.1 权限系统:声明式规则

源码中定义了严密的权限优先级,确保企业级策略(Policy)永远高于 AI 的自主决定。

  • • 最高优先级:policySettings(组织政策)
  • • 最低优先级:session(当前会话)

2.2 危险操作的“熔断”

在 readOnlyValidation.ts 中,系统会严格校验 Bash 命令。例如:

  • • 防止沙箱逃逸: 自动阻止 cd + git 的组合攻击。
  • • 路径保护: 严禁 AI 触碰 .claude/skills/ 等核心敏感目录。

源码金句: “优先拒绝(Fail-Safe)”是驾驭工程的第一准则。


三、 反馈回路:让 AI 执行透明化

如何避免 AI 陷入“黑盒执行”?Claude Code 引入了高度复杂的反馈机制。

3.1 实时进度报告 (onProgress)

通过 AgentToolProgress 和 BashProgress 回调,用户可以在终端实时看到 AI 正在做什么,而不是死等结果。

3.2 交互式权限询问 (canUseTool)

当 AI 尝试执行高危操作(如删除文件)时,系统会从 allow 状态自动降级为 ask。此时,决策权交还给人类,触发交互式对话框。


四、 工作流控制:复杂的任务调度

4.1 核心主循环 (query.ts)

Claude Code 的运行是一个无限 while(true) 循环,每一轮循环都在做四件事:

  1. 1. 上下文压缩: 清理冗余 Token。
  2. 2. API 调用: 与 Claude 交互。
  3. 3. 工具执行: 运行代码或命令。
  4. 4. 终止判定: 检查预算或步数是否超限。

4.2 并发与安全

并不是所有的工具都能并行。源码通过 isConcurrencySafe 接口对任务进行分批(Batching),确保文件操作不会产生冲突。


五、 持续改进:AI 的“长期记忆”

5.1 三层压缩架构

为了解决上下文限制,Claude Code 实现了精妙的压缩阶梯:

  • • Snip (快速释放): 每轮删除极旧消息。
  • • MicroCompact (缓存编辑): 空闲 60 分钟后自动清理。
  • • AutoCompact (摘要生成): 接近限制时,将对话浓缩为摘要。

5.2 记忆系统 (MEMORY.md)

这是驾驭工程的精髓。系统会自动维护一个 MEMORY.md 文件,存储用户偏好(如“不要使用 mock 数据库”)和项目背景。这让 AI 在下一次启动时,依然记得你的习惯。


六、 总结:驾驭工程的马具隐喻

我们可以用马具的部件来完美对应 Claude Code 的工程实现:

马具部件 源码实现 功能作用
缰绳 (Reins) Permission Rules 方向控制

:决定 AI 能去哪
马鞍 (Saddle) QueryEngine 稳定支撑

:管理生命周期
嚼子 (Bit) Interrupt Mechanism 紧急制动

:随时 Ctrl+C 中断
笼头 (Halter) Sandbox 边界限制

:限制活动范围
马衣 (Blanket) Compaction 持久舒适

:维持上下文效率

结语

Claude Code 的源码向我们展示了,未来的 AI 竞争,不仅是模型的竞争,更是工程化驾驭能力的竞争。 只有通过严密的“驾驭工程”,AI 才能从一个会聊天的机器人,进化为真正能够交付工业级成果的智能体助手。


📂 源码文件索引(部分):

  • • 权限核心:utils/permissions/permissions.ts
  • • 沙箱适配:utils/sandbox/sandbox-adapter.ts
  • • 主循环逻辑:query.ts
  • • 记忆管理:memdir/memdir.ts

💡 互动环节:

你认为在 AI 智能体的开发中,最难“驾驭”的部分是什么?欢迎在评论区分享你的看法。

关注公众号,获取源码压缩包哦。