在AI编程工具领域,我们正在经历一次重要的关注点迁移。过去,开发者们热衷于比较不同模型在代码生成上的表现;而现在,真正的分水岭出现在模型之外的那层工程系统上。
这层系统通常被称为Harness,它负责一系列关键任务:构建上下文、调度工具、执行命令、实施权限隔离、压缩会话信息、协调子代理,以及在错误发生后将反馈重新注入模型。如果说裸模型是一个"会思考的函数",那么完整的编码代理则是一套具备循环执行能力的工程系统。这两者之间的差距,恰恰决定了AI编程工具的实际表现上限。
范式转移:从模型能力到Harness工程
所有主流的AI编程工具都共享一个基础架构——Agent Loop。用户提交任务后,系统构建上下文并调用模型;如果模型给出最终答案,循环终止;如果模型请求调用工具,Harness便执行该工具并将结果写回上下文,供模型继续推理。这个看似简单的循环,在复杂任务中会被放大数十轮:跨文件重构可能需要读取代码、追踪调用链、修改实现、编写测试、执行命令、根据报错再次修复。每一步都涉及上下文选择、权限控制、文件访问、错误恢复和状态持久化。
这种转变并非偶然。随着模型能力的不断提升,基础模型之间的差距正在缩小,而工程系统的好坏越来越成为决定用户体验的关键变量。这就像两个同样聪明的工程师,一个配备了完善的开发环境和工具链,另一个只有一台裸机——前者的产出效率和质量必然远胜后者。
因此,不同工具之间的真正差异,不在于是否具备Agent Loop,而在于谁控制了上下文构建、工具执行、权限校验和沙箱运行等关键环节。
三条技术路线的分岔点
Claude Code选择了最贴近产品化的路线。它的设计哲学是"先打造完整的Agent产品,再让开发者扩展它"。围绕核心引擎,Claude Code构建了一套完整的工程层,包括项目规范文件、长期记忆、技能模块、外部工具协议、钩子机制、权限系统、沙箱环境和子代理机制。这种设计的优势在于,开发者无需理解Harness的内部原理,就能完成实际开发任务。值得注意的是,Claude Code采用了一种清晰的分层思想:需要智能判断的任务交给模型,需要稳定执行的任务交给程序,需要安全边界的任务交给沙箱,而非依赖提示词来约束模型行为。
Codex则走向了另一条道路——将Agent打造成可复用的运行时。它的核心组件包括Codex Core、Thread、App Server、Tool Runtime、Sandbox和Approval Policy。其中,Thread是一个独特的一等对象,它不仅记录聊天历史,更承载完整的Agent执行状态,支持启动、恢复、分叉、持久化和压缩。这种设计将Agent状态的分叉与代码状态的分叉相类比,为复杂调试和多代理并行提供了强大的抽象能力。此外,Codex在处理技能加载时展现了上下文成本意识:系统不会一开始就将所有技能说明塞入模型,而是先暴露元信息,待模型选定后再加载详细内容。
DeepSeek Harness则采取了最激进的架构策略。它的核心理念是"一切皆插件":模型、工具、技能、会话、沙箱、存储、Agent Loop、调度和UI都可以通过插件参与运行时组合。底层的Cordis框架更接近运行时组合框架,而非普通的插件管理器。这种设计允许开发者重新定义Agent的运行方式,而不仅仅是向固定Agent添加工具。工具调用也不再是简单的函数调用,而是演变为包含前置事件、权限策略、执行、后置事件和结果回写的完整生命周期。日志记录、追踪、缓存、重试、指标收集和安全检查都可以插入这一生命周期,而非为每个工具单独编写横切逻辑。
值得注意的是,尽管三条路线的侧重点不同,但它们并非互斥。Claude Code也在逐步引入更多可配置能力,Codex也在优化产品体验,而DeepSeek Harness的框架化设计也可能在未来吸收前两者的优秀实践。
Harness时代的开发者生存指南
这三条路线各有其适用场景。追求日常开发效率的团队,会倾向于选择Claude Code这类高度产品化的工具,它已经将复杂的Harness问题封装为可用的工程体验。需要将Agent能力嵌入多个入口的团队,则更适合Codex的运行时化路线,其Thread、Sandbox和Approval Policy等抽象能让CLI、IDE和自动化任务围绕同一套底层能力协作。而有意研究或重组Agent Runtime的开发者,则能从DeepSeek Harness的框架化路线中获得启发——它牺牲了即开即用的便利,但将Agent Loop、工具生命周期、会话和调度都暴露为可组合的能力。
一个值得深思的趋势是,AI编程的下一阶段竞争焦点,正在从"模型能否写出正确的函数"转向"系统能否稳定地完成任务"。后者涉及上下文工程、工具治理、权限边界、可观测性、失败恢复和多代理协作等一系列工程能力。这意味着,开发者学习AI编程的方式也需要升级:不仅要掌握提示词技巧,更要学会为仓库编写Agent可读的工程说明,将重复流程沉淀为技能模块,为工具调用设置合理的权限,利用钩子机制固化检查流程,以及将大型任务拆解给具有不同上下文边界的子代理。
对于国内开发者而言,将Claude、GPT等能力接入现有IDE或脚本时,可以通过Code80这类真实订阅账号转API的方式先行验证流程,再决定是否进行更完整的企业级接入。毕竟,在AI编程工具快速演进的当下,理解Harness的架构逻辑,比追逐单一模型的能力提升更具长期价值。
