Claude Code源码泄露了!我扒了75页橙皮书,给你整理出从入门到精通的完全指南
昨晚,一份75页的Claude Code内部文档在开发者社区疯传。Anthropic用来构建AI编程Agent的底层框架——Harness——被扒了个底朝天。我帮你把关键内容整理成一份从入门到精通的实操指南。
Claude Code的背后,是Anthropic自用的Harness开发框架。这次泄露的文档详细披露了它的6大核心组件:
- • Executor:代码执行环境管理
- • ToolRegistry:工具注册中心
- • ContextBuilder:上下文构建器
- • PolicyEngine:策略决策引擎
- • MemoryStore:记忆存储层
- • FeedbackLoop:反馈循环机制
搞懂这6个,你就搞清楚了整个Agent框架的设计逻辑。
二、Executor:代码在哪儿跑
Executor负责管理代码执行环境,包括沙箱隔离、资源限制(CPU/内存/时间)、多语言支持。
实操配置
executor = Executor(
timeout=30, # 单次执行最多30秒
memory_limit="512MB", # 内存上限
sandbox=True, # 强制沙箱模式
)
timeout设30秒是经验值——太短容易中断,太长会增加负担。涉及模型下载可临时放宽到120秒。
三、ToolRegistry:Agent会什么技能
ToolRegistry是Agent的技能库,每个工具本质是一个函数。
注册工具
def read_file(path: str) -> str:
with open(path, 'r') as f:
return f.read()
tool_registry.register("file_read", read_file)
工具分类建议
| 类型 | 示例 | 建议数量 |
|---|---|---|
| 文件操作 | read/write/mv/rm | 5-8个 |
| 代码搜索 | grep/find/ast | 3-5个 |
| 执行命令 | bash/run/test | 3-4个 |
单Agent控制在20个工具以内,超过后决策质量明显下降。
四、ContextBuilder:Agent能看到什么
ContextBuilder解决信息过载问题,采用3层架构:
第一层:全局概览
只保留项目结构、入口文件、主要依赖——让Agent知道”这是什么项目”。
第二层:相关片段
通过语义检索从代码库中提取相关代码片段,每段200-500行效果最佳。
第三层:实时上下文
用户当前指令、最近执行结果,保留最近5轮是经验值。
context = ContextBuilder(
max_tokens=4096,
retrieval_top_k=10,
preserve_turns=5,
)
实测超过8192 tokens后,检索质量反而下降——噪音比例上升了。
五、PolicyEngine:Agent怎么做决策
PolicyEngine是框架的”大脑”,使用分级策略:
- 1. 安全策略:高危操作(删除系统文件、网络请求)直接拒绝
- 2. 范围策略:检查操作是否在允许目录内
- 3. 质量策略:检查代码是否符合团队规范
- 4. 效率策略:判断是否需要调用工具
实测数据
- • 危险操作拦截率:99.7%
- • 正常操作误拦截率:0.3%
- • 平均决策延迟增加:约50ms
这个延迟完全值得——安全是底线。
六、MemoryStore:Agent怎么记住
采用两级记忆架构:
短期记忆:当前会话信息,容量约50-100块,用完即弃。
长期记忆:持久化存储,包括成功任务模式、用户偏好、项目知识。
memory = MemoryStore(
short_capacity=100,
long_persistence=True,
compression=True # 压缩后占用减少60%
)
Memory要定期清理,每隔500次任务跑一次记忆压缩,否则存储会膨胀失控。
七、FeedbackLoop:Agent怎么越用越强
FeedbackLoop让Agent自我进化,反馈来源包括:
- • 执行结果(成功/失败/超时)
- • 测试通过率
- • 用户评分
- • lint工具反馈
feedback = FeedbackLoop(
success_weight=1.0,
failure_weight=-0.5,
user_rating_weight=2.0,
update_interval=10
)
经过约200次任务后,Agent决策准确率稳定提升15-20%。这是个积累过程,别期待立竿见影。
八、手把手搭建第一个Agent
把6大组件串起来:
from harness import (
Executor, ToolRegistry, ContextBuilder,
PolicyEngine, MemoryStore, FeedbackLoop
)
agent = Agent(
executor=Executor(timeout=30, sandbox=True),
tools=ToolRegistry(),
policy=PolicyEngine(),
memory=MemoryStore(long_persistence=True),
feedback=FeedbackLoop(),
context=ContextBuilder(max_tokens=4096)
)
agent.run("帮我写一个快速排序并运行测试")
不到30行代码,一个具备文件读写、命令执行、自我纠错能力的代码Agent就跑起来了。
九、避坑清单(75页文档精华)
- 1. 工具命名要精准:用”file_read”代替”do_something”,调用准确率提升30%
- 2. 沙箱不隔离网络:涉及网络请求的操作,额外加PolicyEngine拦截
- 3. 别迷信长上下文:超过8192 tokens后质量反而下降
- 4. Memory定期清理:每500次任务压缩一次
- 5. FeedbackLoop冷启动:前50次任务质量最差,建议手动审核
这次泄露揭开了Anthropic在AI编程领域的技术护城河。6大组件各司其职,构成完整的Agent开发范式。对普通开发者来说,这套框架的价值在于理解什么是好的Agent架构——这个认知,会直接影响你对市面上所有AI编程工具的判断力。
75页文档,我只是帮你划了重点。想深入,建议找原文对照阅读。
夜雨聆风