当一个AI Agent项目膨胀到50万行代码会发生什么?大多数团队会选择推倒重来,但顶级AI Agent团队选择了另一条路——用Harness Engineering将失控的代码帝国重新纳入可治理的工程框架。2026年初,这个概念从Mitchell Hashimoto的博客火遍整个AI工程圈,OpenAI紧接着发布百万行代码实验报告,Martin Fowler也跟进深度分析。究竟什么样的源码能让这些顶级工程师愿意花时间拆解?答案藏在一个核心公式里:Agent = Model + Harness。
架构设计与启动优化核心思路
50万行级的AI工程之所以难以管理,根本原因在于Agent的输出具有天然的不可预测性。传统软件工程的确定性逻辑在LLM面前失效——同一段提示词,第二次执行可能得到完全不同的结果。顶级团队解决这个问题的方式,不是要求模型更稳定,而是为不稳定性建造工程容器。
Harness Engineering的核心假设是:Model提供原始智力,Harness负责将这种智力转化为可用输出。Harness的具体形态包括设计约束、文档、工具和反馈回路,以及强制执行的架构机制。这意味着当一个50万行的项目说"不要在service层直接导入UI组件"时,这个规则不能只写在文档里——它必须被转化为dependency-cruiser规则,让违规行为直接导致构建失败。
启动优化是第一个被系统化解决的难题。新项目初始化时,Harness会自动配置好AGENTS.md文件、pre-commit hooks和测试基础设施。AGENTS.md不是冗长的文字说明文档,而是一份精炼到100行以内的目录索引,包含项目概览、技术栈声明、常用命令、架构规则和详细文档链接。模型启动时首先读取这份索引,发现需要了解某项规范时再去对应子文档查阅,而不是一次性处理一座文字山。
具体执行流程中,初始化脚本会完成三件事:复制并定制AGENTS.md模板,安装pre-commit hook模板文件,添加架构约束测试。团队成员克隆项目后,AI编码助手在首次启动时就能获得完整的项目上下文,而无需人工反复解释基础规则。
工具系统与Agent循环实现细节
工具系统是Harness区别于普通工程规范的核心创新。在传统软件开发中,工具是辅助性的——程序员决定何时运行测试、何时调用lint。但在Harness框架下,工具是强制反馈回路的载体,Agent必须通过工具获得结构化的环境信号。
Verify验证层是整个循环的枢纽。顶级团队将反馈回路分为四个层级:L1级反馈在秒级完成,通常是pre-commit hook触发的lint和语法检查;L2级在分钟级运行,覆盖单元测试和类型检查;L3级是小时级的集成测试套件;L4级则是天级的性能和回归测试。每个层级都输出机器可解析的结果,供Agent直接读取并采取行动。
bash scripts/harness-audit.sh /path/to/my-project这个审计脚本会检测项目的Harness完备度,输出包括:AGENTS.md是否存在且结构合理、pre-commit hooks是否已配置、架构约束测试是否覆盖关键路径、CI配置是否输出机器可读结果。得分8/16的项目意味着Harness有一半机制尚未建立,团队需要优先补充架构约束测试和CI机器可读输出。
当Agent产出低质量代码时,工程师的诊断路径遵循CIVC框架逐层排查。首先检查约束层:是否有机械化的护栏,还是只有文字说明?如果"不要从Y导入X"只写在AGENTS.md里,Agent遵守它的概率是50%。但如果添加了dependency-cruiser规则,违规就会变成构建失败,遵守率趋近100%。其次检查告知层:AGENTS.md是否被写成目录索引,还是堆积了500行文字让Agent无法快速定位关键信息。
工具调用的具体实现上,Agent通过MCP(Model Context Protocol)协议访问项目级工具。工具被组织为三层:基础工具集提供文件读写和命令执行能力;项目工具集包含针对特定技术栈的lint规则和架构约束测试;业务工具集封装了项目特有的业务逻辑检查。Agent根据任务上下文自动选择合适的工具集,不需要人工干预调用顺序。
Harness Engineering工业级方法论
Harness Engineering提炼出四大支柱,构成工业级AI工程的方法论底座。
第一支柱是Constrain约束。约束回答"要阻止什么"这个问题。顶级团队的做法是:任何文字规则都必须转化为机器可执行的检查。不要在service层导入UI组件 → dependency-cruiser规则。API必须使用ResponseWrapper → ESLint规则检查返回类型。新函数要写测试 → pre-commit hook中的覆盖率门禁。遵循命名约定 → 文件名和函数名自定义lint规则。这些规则在CI中作为强制门禁存在,Agent无法绕过。
第二支柱是Inform告知。告知回答"给Agent提供什么上下文"这个问题。AGENTS.md的设计原则是渐进式披露:顶层索引不超过100行,包含项目结构、核心命令和关键架构决策的链接;详细规则拆分到独立文档中,按需查阅。这种设计基于一个关键发现:当AGENTS.md超过200行时,Agent对其内容的遵循率显著下降,因为它无法在有限上下文中记住所有规则。渐进式披露确保Agent在任何时间点只需要处理最相关的那部分信息。
第三支柱是Verify验证。验证回答"如何衡量Agent产出质量"这个问题。四层反馈回路的设计确保问题在最早可发现的时间点被捕获。L1级的秒级反馈让Agent在编写代码的几秒钟内就知道语法错误或明显的架构违规;L4级的天级反馈则捕获长期回归和性能退化。每层反馈的结果都是机器可解析的JSON格式,包含具体的文件路径、行号和修复建议,Agent可以直接据此修复。
第四支柱是Recover纠正。纠正回答"Agent失败后如何恢复"这个问题。顶级团队在错误信号设计上投入了大量精力。Timeout错误和failure错误被明确区分,前者意味着任务规模超出当前资源限制需要拆分,后者意味着代码逻辑问题需要修正。每种错误类型都附带内联的修复建议,这些建议不是通用性的提示词,而是针对该错误类型在项目上下文中的具体处理方案。
Harness Engineering的落地效果可以用一个具体数字衡量:实施完整的Harness体系后,AI编码团队的平均代码采纳率从初期的40%左右提升到75%以上,代码审查轮次平均减少2.3轮。这意味着工程师将更多时间投入到架构设计和业务逻辑判断上,而不是反复纠正AI的基础性错误。
50万行代码的AI工程项目之所以能被管理,不是因为模型变得足够稳定,而是因为团队为不稳定性建立了完整的工程容器。从约束到告知,从验证到纠正,每一个环节都将AI输出的不确定性纳入可控范围。这套方法论的核心洞察在于:不要试图让AI变得可靠,而是让AI的不可靠性变得可预测和可处理。
夜雨聆风