Barret李靖 26-05-02 01:10
微博认证:阿里巴巴职员 科技博主 头条文章作者

Claude Code 的核心是一个 while 循环:模型生成响应 → 如果包含工具调用,执行 → 结果返回 → 模型生成下一个响应 → 持续循环。

就这么一个循环,被工程化成一个完整的产品,写了将近 30 多万行代码。

从整体代码设计来看,可以认为,Claude Code = 模型 + Harness,而 Harness = 工具系统 × 上下文工程 × 自主循环。

其中,工具系统和上下文工程做了大量的设计。

CC 的工具系统有着自己的标准化设计,它会明确约束模型不要执行 find、grep、cat、head 通用操作,而是走 GrepTool、GlobTool 等专用工具,因为这些内建工具会输出可审计、结构化的日志,让操作更加透明可控。

同时,工具本身也带有权限级别和验证逻辑。例如 Edit 工具为了避免交叉覆盖,会要求先 Read;Git 工具对 push force 类高风险操作会做 prompt 约束和 UI 警告。

类似的设计很多,目的是在工具层建立清晰的边界和反馈机制,让模型在调用时有约束、有校验,减少越界操作和错误扩散。

而在上下文管理上,CC 的管控也无所不用其极。它通过多种压缩策略和动态机制,确保模型在任何时刻只接触当前任务最相关的信息。

压缩策略的核心机制包括 MicroCompact、AutoCompact,以及不同触发条件下的会话压缩、记忆替换和裁剪策略。

在文件加载机制上,针对工具定义与能力暴露,也设计了 Just-In-Time 策略,文件不预加载,只保留路径,需要时再通过工具读取。

此外,还有 Sub-Agent 的设计,它通过上下文隔离的方式,让不同子任务的相关信息互不干扰,进一步降低了主循环的认知负载,确保主循环逻辑干净且稳定。

Claude Code 不仅是在工具系统和上下文管理上做文章,模型为了 Harness 效果更好,也开始配合对 Agentic 行为做专项优化。

例如 Opus 4.7 在指令遵循上就明确提到 "Opus 4.7 takes the instructions literally",这对 Agent 来说非常关键。Agent 的行为边界往往写在 system prompt 里,模型层做了增强学习后,模型在指令遵守方面会表现更出色,这对 Agent 的稳定性和可靠性会有极大提升。

OpenClaw/Hermes Agent/Claude Code 产生了大量 Agent 调用数据,这些数据也会继续反哺模型能力的迭代。

从当前发展趋势可以推断,未来模型的进化,一定也会逐步内化工具调用策略、上下文压缩策略,甚至学会自我约束行为边界。

那么,今天 CC 里写的这些 Harness 逻辑,注定也会被模型吃掉。也就是说,Harness 也是一个过渡性的产物。🐶

发布于 浙江