上一章我们建立了 Harness 的概念框架——它是围绕 LLM 的运行时软件层。但一个实际的 Harness 系统包含哪些组件?这些组件如何组织?它们之间的关系是什么?“Code as Agent Harness” 论文提供了一个三层分类法来回答这些问题:Layer 1: Harness Interface — 代码如何进入 Agent 循环 Layer 2: Harness Mechanisms — 什么机制维持 Agent 的长周期运行 Layer 3: Scaling the Harness — 多 Agent 如何共享和协同本章将深入解析每一层的核心组件、设计原则和工程实现,并建立三层架构与四阶演进模型之间的映射关系。核心概念三层架构总览在深入每一层之前,先用一个类比来理解三层的递进关系:层次类比核心问题Interface驾驶员和汽车之间的方向盘、油门、刹车Agent 如何与环境交互?Mechanisms发动机、变速箱、悬挂系统什么机制让 Agent 持续运行?Scaling交通系统、道路网络、交通规则多个 Agent 如何协同工作?Interface 是单 Agent 的基础——它定义了 Agent 如何感知世界、采取行动、表征环境状态。Mechanisms 是 Agent 的运行时引擎——它管理规划、记忆、工具使用、控制和优化。Scaling 是 Agent 群体的协调层——它通过共享工件实现多 Agent 协同。三层不是严格分层的——实际系统中有大量交叉。例如,测试既是 Interface 层的环境表征(测试文件描述预期行为),也是 Mechanisms 层的控制机制(测试结果驱动修复循环),还是 Scaling 层的共享工件(多个 Agent 共享同一套测试标准)。原理剖析Layer 1: Harness Interface(接口层)接口层回答一个基本问题:代码在 Agent 系统中扮演什么角色?论文将代码在接口层的角色分为三类:1.1 Code for Reasoning(代码用于推理)传统的 LLM 推理是纯文本的——模型用自然语言"思考",然后输出结果。问题在于:文本推理不可执行——你无法"运行"一段推理过程文本推理不可验证——你无法检查中间步骤的正确性文本推理不持久——每一轮对话,之前的推理过程就丢失了Code for Reasoning 将推理过程从文本转化为代码:# 文本推理(不可验证)# "让我计算一下这个函数的时间复杂度... 看起来是 O(n²)"# 代码推理(可执行、可验证)defanalyze_complexity(code_ast):loops=find_nested_loops(code_ast)returncalculate_big_o(loops)# 返回 O(n²),可以被验证这种做法的好处是:可执行:外部运行时可以运行代码,获取计算结果可验证:可以检查中间变量、执行追踪、控制流可持久化:代码和计算状态可以在多步之间保持Claude Code 的 Artifacts 功能和