互联网又造新词啦——约束工程(Harness Engineering)
本文探讨AI Agent在全栈项目中的核心问题(失控、信任债务、工程范式错位),提出通过"约束工程"框架优化运行环境而非模型本身。关键策略包括上下文工程、架构约束、垃圾回收等闭环机制,并以OpenAI、Anthropic等实验验证其有效性。研究表明:明确的约束能显著提升Agent自主性和代码质量,工程师角色需从编码者转变为环境架构师。但需注意功能验证不足、模型依赖性等潜在问题。
·
1. 背景
在复杂的全栈项目中,AI Agent 的应用面临三大核心问题:
- Agent 的失控与翻车:由于上下文窗口耗尽、缺乏跨会话记忆以及验证不足,Agent 常常交付半成品或包含错误的代码。
- 信任债务:Agent 的“自信即兴发挥”会导致大量不可见的错误假设在代码库中累积,形成“技术债务”,最终在后期引发爆炸式的修复成本。
- 工程范式错位:传统的软件工程实践(如代码审查、架构规范)是为人类编码者设计的,在面对 AI 生成的大量代码时效率低下甚至失效。
2. 主旨方向
其核心思想不是去优化 AI 模型本身,而是优化模型运行的“环境”,通过构建一套包含约束、反馈与控制系统的工程框架,让 Agent 能够在人类设定的明确边界内自主、可靠且可持续地工作。
3. 核心策略
- 上下文工程:构建渐进式、地图式的知识库,并动态注入观测数据,而非一次性灌输所有信息。
- 架构约束:通过自定义 Linter、结构化测试和层级依赖规则(从类型到UI)来强制执行架构规范,违规代码直接在持续集成(CI)流程中被拒绝。
- 垃圾回收:设置后台清理 Agent,定期扫描并修复文档与代码的不一致、架构违规等问题,防止系统“熵增”。
- Plan-Build-Verify-Fix 闭环:通过中间件强制 Agent 在宣告任务完成前必须运行测试并进行验证。
- Agent 互审机制:采用“拉尔夫·维格姆循环”,让一个 Agent 编写代码,另一个 Agent 进行审查,发现问题则返回给第一个 Agent 修复。
- 进度文件与双层架构:使用外部文件(如
claude-progress.txt)作为跨会话的记忆载体。采用双层 Agent 架构,强制进行任务分解,确保“每次只做一件事”。
4. 举例
-
OpenAI 百万行代码实验
- 任务:在为期5个月的内部实验中,让 Agent 生成并维护一个大型代码库。
- 所用模型:Codex 系列(GPT-5.2-codex)。
- 实验结果:工程师80%的时间用于构建“约束工程”框架,最终代码质量和可维护性显著提升。实验得出的核心理念是“人类掌舵,智能体执行”。
-
Anthropic 长跑方案
- 任务:解决 Agent 在跨越多个上下文窗口的长期运行中的记忆和连续性难题。
- 所用模型:Claude。
- 实验结果:通过双层 Agent 架构、“全标失败”策略以及进度文件,成功实现了复杂项目的持续记忆和高任务完成率。
-
LangChain 定量验证
- 任务:定量评估“约束工程”框架对同一模型性能的影响。
- 所用模型:GPT-5.2-codex。
- 实验结果:仅通过改进“约束工程”框架,模型的性能排名从30名开外跃升至前5名。通过引入“追踪分析器”技能,实现了自动化优化“约束工程”的闭环。
5. 结论
- 核心逻辑:用“约束换取自主”。为 Agent 设定的规矩越明确、环境越可控,其独立工作的能力和可信度就越高。
- 工程师角色重塑:工程师的核心价值从“代码编写者”转变为“环境建筑师”,重点在于设计约束、反馈回路和控制系统,而非单纯的编码速度。
- 长期价值:在复杂且长期运行的任务中,“约束工程”是不可或缺的“缰绳”,其价值随着任务复杂度和持续时间的增加而呈指数级增长。
6. 注意事项
- 功能验证不足:部分实践(如 OpenAI 的实验)主要提升了代码的内部质量,但对于最终软件功能和行为的验证讨论尚不充分。
- 对模型的依赖:当前许多防护措施(如死循环检测)是针对现有模型缺陷的启发式设计。随着模型能力的进化,这些规则可能面临重构或淘汰。
- 遗留代码挑战:在缺乏“AI友好性”设计的旧有项目中,直接引入完整的“约束工程”框架可能会产生海量警报,导致“警报疲劳”而无法落地。
更多推荐



所有评论(0)