Agent Loop可以很薄,真正昂贵的是控制平面:上下文、权限、状态、验证、恢复与长程稳定性,决定了一套Coding Agent能否从演示走向生产。
“几百行代码就能重建一个Coding Agent”并不完全是夸张。把模型放进循环,给它读取文件、编辑代码和执行命令的工具,再把工具结果塞回上下文,一个最小可用的 Agent Harness 确实可以很短。
但这只回答了“能不能跑起来”,没有回答“能否在真实项目中稳定跑完”。当任务持续数小时、跨越多个会话、需要修改大量相互依赖的文件,并触及生产环境权限时,竞争焦点会从模型和循环转向Harness:系统如何维持目标、约束副作用、验证结果,并在失败后恢复。

一、Agent Harness到底是什么?
Harness 可以理解为模型之外的“运行与控制系统”。它把模型、上下文、工具、文件系统、终端、记忆、权限和评测连接起来,让大模型不只回答问题,而是能连续执行任务。
DeepSeek Harness 的官方表述非常直接:Agent = Model + Harness,并把模型、工具、Skills、会话、沙箱、存储、循环、调度和界面都设计为可替换插件。类似地,Pi Coding Agent 以极小核心提供读写文件、编辑和Shell能力,再通过扩展组合更多行为。
二、最小Agent Loop为什么只需几百行?
核心循环通常只有四步:把目标和上下文交给模型;模型选择工具;系统执行工具并返回结果;模型判断继续还是结束。伪代码甚至可以缩成:
while (!done) {
response = model(messages, tools)
if (response.toolCall) {
result = executeWithPolicy(response.toolCall)
messages.push(response, result)
} else {
done = validate(response)
}
}难点不在while本身,而在每一个函数内部:消息怎样裁剪?工具参数如何验证?命令能访问哪些目录?模型说“完成”时怎样证明?进程崩溃后从哪里继续?
三、为什么自己写了Loop,仍有人订阅Claude Code和Codex?
成熟产品卖的不是循环代码,而是长期维护的集成与可靠性:
- 跟进模型协议、Tool Calling、Streaming和推理格式的变化。
- 提供经过打磨的代码检索、补丁、终端、浏览器和Git工作流。
- 处理权限确认、沙箱隔离、危险命令、凭证与审计。
- 提供上下文压缩、会话恢复、模型路由和异常处理。
- 持续适配操作系统、IDE、仓库规模和企业策略。
因此,DIY Harness 更像自建基础设施:控制力和可定制性更高,但开发、运维、安全和升级成本也由自己承担。订阅 Codex 或同类产品,本质上是在购买维护好的整体系统与服务边界。

四、薄Agent Loop,厚Control Plane
一种值得借鉴的架构,是把变化快的 Agent Core 与稳定的控制平面分开。前者负责调用模型和工具,后者负责工作区、权限、沙箱、任务状态、配额、检查点、回滚、多租户隔离和审计。
这样换模型或换Agent Core时,不需要推倒重写安全与状态体系。模型越强,可以在沙箱里给它更大探索空间,但不应因此同步扩大对真实生产系统的副作用边界。
| 层级 | 主要职责 | 变化速度 |
|---|---|---|
| 模型层 | 推理、规划、代码理解 | 很快 |
| Agent Loop | 消息循环、工具调用、流式响应 | 较快 |
| 控制平面 | 权限、状态、沙箱、恢复、配额、审计 | 应保持稳定 |
| 领域层 | 项目知识、规则、CI、业务工具 | 随业务演化 |

五、模型趋同,不等于产品没有差距
在常见日常任务上,不同前沿模型的体验可能越来越接近,但模型仍决定单步推理和代码理解的上限。Harness 决定的是这些单步判断能否在长路径中积累成正确结果。
同样拥有Planner、Search、Edit、Shell、Sub-agent和MCP,不代表系统等价。数据库都拥有SQL、优化器与存储引擎,仍然会因事务、执行计划、可靠性和运维体系产生巨大差异;Agent也是同样道理。
六、知识工程:先理解存量系统,再动代码
多数企业编程并非从零创建项目,而是在旧系统中修复Bug和增加功能。好的Coding Harness需要连接需求、设计、代码、历史变更和运行数据,建立“为什么这样设计”的上下文。
大型代码仓无法整体塞进上下文,可以先建立模块或Code Graph级索引,再按任务检索相关目录,最后用grep、符号索引和调用链定位具体代码。项目规则也不能只写在Prompt里,还要有自动检查与反思环节。
七、确定性验证:Agent说“修好了”不算证据
代码能否编译、类型检查是否通过、单元测试和集成测试是否成功,必须由外部工具判断。Harness 应当把测试生成、容器环境、命令执行、结果解析和错误反馈接成闭环,再根据确定性信号继续修改。
这也是Coding Agent比开放式办公任务更容易率先商业化的原因:许多交付标准可以形式化。邮件是否得体、研究是否抓住重点更依赖情境判断,而代码通常拥有更清晰的不变量。
八、多Agent不是默认答案,通信本身就是复杂度
把Planner、Coder和Reviewer拆成多个Agent听起来先进,但会引入状态同步、消息路由、结果合并、权限传播和故障定位。只要单Agent能够可靠完成,就没有必要为了“架构感”引入更多Agent。
多Agent最明确的价值主要有两个:一是把独立子任务隔离出去,减轻主Agent的上下文压力;二是用于交叉验证与发散探索。即便如此,也应通过清晰的输入输出协作,减少高频自由聊天。

九、从命令式编排转向声明式目标
模型能力提升后,一部分显式流程会消失。过去需要告诉Agent每一步由谁执行,现在更适合声明目标、约束、可用工具和验收标准,让系统自主选择路径。
这不意味着控制平面不重要,恰恰相反:规划越自主,权限、预算、终止条件和验证越需要稳定。未来更成熟的编排可能“看起来更安静”,每个Agent在清晰边界内完成工作,只通过状态和结果协作。
十、长程任务才是Harness真正的分水岭
Agent连续运行50小时,难点不是坚持输出,而是跨多个上下文窗口仍记得目标、已完成事项和未解决风险。任务长度也不能只按工具调用次数衡量:修改七个相互依赖文件,可能比调用五十次稳定API更难。
长程难度取决于依赖链深度、状态跨越时间、工具数量、目标开放程度、操作可逆性,以及错误被发现前要经过多少轮反馈。Anthropic的长期任务研究同样指出,跨上下文持续推进仍是核心挑战,需要用明确进度、会话交接和增量验证连接不同执行阶段。
十一、Fail Fast、Checkpoint与Rollback
真正危险的不是Agent犯一次错,而是错误进入环境后被后续步骤当成事实。Harness应该让错误尽早暴露,限制传播,并能从最近可信状态恢复。
- Operation Log:记录意图、工具调用、参数、结果与状态变化。
- Checkpoint:在高风险操作和阶段性交付前保存可恢复状态。
- Rollback:代码、文件、配置和任务状态都应支持回退。
- Failover:进程或模型失败后,可由新会话接手,而不是整条任务重跑。
- 幂等与副作用控制:避免重试导致重复付款、重复发布或重复删除。
十二、自进化必须是受控闭环
让Harness修改自己的Prompt、Skill或工具并不困难,困难的是证明修改更好。可靠闭环应包含:问题发现、候选改动、隔离评测、质量/成本/时延/安全门控、灰度发布、监控和回滚。
没有版本管理、可观测性和独立验证,自进化只是自动积累技术债。刚发布的 WikiSkill三层知识架构解析 也强调,应把原始轨迹、持久知识与当前技能分离,让被拒绝的修改同样留下可查询记录。

十三、从Coding Harness走向通用Work平台
邮件、文档、日历、浏览器与审批正在被拆成Agent可调用的工具,底层逻辑仍是理解目标、选择工具、执行多步任务、维护状态并验证结果。ChatGPT Work与Codex的官方说明也显示,两者共享核心执行、隔离与权限机制,只是面对的任务与工具不同。
通用工作比代码更难形式化:一份报告是否抓住重点、一次跨应用操作是否符合组织规范,往往没有简单的“测试通过”。因此通用Harness不仅要管理技术复杂性,还要设计人工确认、来源核验、社会规范和主观质量评审。可继续参考 ChatGPT Work与Codex同款能力解析。
十四、要不要自己搭Harness?一个现实的判断框架
- 优先使用成熟产品:团队规模小、任务通用、需要马上投入生产,且没有专门安全和平台工程人员。
- 基于开源Harness扩展:需要自选模型、特定工具、私有部署或领域Skill,但不想维护全部Agent Core。
- 自研控制平面:任务高价值、长程、权限复杂,并且状态、审计、合规和恢复构成核心竞争力。
- 从零自研全部栈:仅在底层控制能力本身就是产品壁垒,且团队能承担长期维护时考虑。
想实际体验开源方案,可从 DeepSeek Harness零基础教程 开始;需要斜杠命令、MCP、插件和多Agent实践时,再阅读 DeepSeek Harness进阶教程。
结语:几百行Loop能证明概念,生产差距藏在看不见的地方
人人都能写一个Agent Loop,并不意味着成熟Coding Agent没有价值。真正难复制的是长期积累的工具质量、上下文策略、权限边界、确定性验证、状态持久化、故障恢复和持续适配。
模型会升级,核心循环会趋同,显式编排也可能变少;但只要Agent要在真实世界中产生副作用,控制平面就不会消失。未来的竞争,不是谁能让Agent“开始工作”,而是谁能让它在数十小时和数百步之后,仍然知道目标、证明结果,并在出错时安全回来。












