很多开发者会形成一个直觉:
模型能力越强,代码质量应该越高。
上下文越长,项目理解应该越准确。
Codex执行得越快,开发效率应该越稳定。
但在真实项目中,结果并不总是如此。
同一个模型,在不同项目里可能表现完全不同。
有时它可以连续完成分析、修改和测试;有时却会反复读取文件、扩大修改范围,甚至把已经解决的问题重新引入。
真正决定结果的,往往不只是模型本身。
还包括:
AI进入了怎样的工程环境。
它能读取哪些信息。
可以调用哪些工具。
每一步怎样验证。
失败后如何停止和恢复。
这些围绕AI搭建的工程约束与执行环境,可以统称为Agent Harness。
一、模型能力不等于工程结果
传统软件中,一个函数的输入和输出通常比较明确。
给定参数。
执行逻辑。
返回结果。
但AI Agent面对的不是单一函数,而是一整套动态环境:
- 自然语言需求;
- 项目代码;
- 配置文件;
- 测试命令;
- 系统权限;
- 工具返回结果;
- 历史执行记录;
- 人工补充的约束。
模型负责推理。
Harness负责把推理放进可控的工程流程。
如果缺少Harness,即使使用更强的模型,也可能出现:
- 读取大量无关文件;
- 重复执行相同命令;
- 修改超出任务范围;
- 测试失败后继续向下推进;
- 无法判断任务何时真正完成;
- 把临时方案当成最终结果。
所以,模型决定“能够做什么”。
Harness决定“这些能力如何被使用”。
二、什么是Agent Harness
Agent Harness不是某一个工具,也不是一段提示词。
它更像一套包围AI Agent的工程运行框架。
完整链路可以表示为:
用户目标
↓
ChatGPT理解与拆解
↓
任务规格与边界
↓
Codex调用工具执行
↓
测试与结果反馈
↓
状态更新
↓
人工审查
↓
是否继续执行
Harness需要解决六个问题:
- AI现在要完成什么;
- AI能够看到什么;
- AI允许操作什么;
- AI执行到哪一步;
- AI怎样证明任务完成;
- 什么情况下必须交还给人类。
它不是为了限制AI能力。
而是为了让能力能够稳定复用。
三、任务规格:把需求变成可执行对象
一句“帮我重构登录模块”,并不是完整任务规格。
它缺少:
- 重构目标;
- 修改范围;
- 兼容要求;
- 验证标准;
- 禁止变更项;
- 任务完成条件。
更完整的任务规格应该类似:
拆分登录模块中的令牌验证逻辑,只修改auth目录,不改变公开接口,不新增第三方依赖。完成后运行现有认证测试,并补充令牌过期场景。
这时,ChatGPT负责把模糊意图转化成结构化任务。
Codex再根据明确规格进入项目执行。
没有任务规格,Agent只能猜测。
猜测越多,结果越不稳定。
四、工具边界:能执行不代表应该执行
Codex可以读取文件、修改代码、运行命令和执行测试。
但工具权限越大,越需要明确边界。
例如,一个修复接口超时的任务,是否允许:
- 修改数据库结构;
- 升级核心依赖;
- 删除历史代码;
- 调整部署配置;
- 执行外部脚本;
- 修改生产环境变量?
如果这些权限没有提前定义,AI可能为了完成局部目标,引入更大范围的变化。
可靠的Harness通常会区分:
可读取范围
可修改范围
可执行命令
高风险操作
必须人工批准的动作
真正危险的不是AI不会操作。
而是AI能够操作,却没有清晰边界。
五、反馈循环:每次执行都必须产生新证据
AI Agent与普通代码生成器最大的区别,是它会根据结果继续行动。
修改代码。
运行测试。
读取错误。
再次修改。
重新验证。
这是一条反馈循环。
但反馈循环只有在信息可靠时才有价值。
如果测试覆盖不足,AI可能根据错误证据继续优化。
如果命令失败却没有被识别,AI可能误以为任务已经完成。
如果每轮结果没有更新状态,AI可能重复执行同一步骤。
因此,每次执行都应该回答:
- 修改了哪些文件;
- 命令是否真正成功;
- 哪些测试已经通过;
- 哪些测试仍然失败;
- 当前阻塞点是什么;
- 下一步为什么要继续;
- 是否需要人工确认。
没有反馈,只是在自动执行。
有了可靠反馈,才构成工程闭环。
六、停止条件:AI必须知道什么时候不能继续
很多AI任务失控,并不是因为第一步就错了。
而是已经出现异常后,系统仍然允许它继续执行。
例如:
- 修改范围突然扩大;
- 连续多次测试失败;
- 需求出现冲突;
- 需要调整数据库结构;
- 需要删除大量文件;
- 无法确认当前分支状态;
- 任务目标已经发生变化。
这时,合理动作不是继续尝试。
而是停止并交还给开发者。
一个成熟的Agent Harness必须包含停止条件:
超出边界,停止。
证据不足,停止。
高风险操作,等待审批。
连续失败,重新分析。
目标冲突,要求确认。
AI真正进入工程流程后,“知道什么时候停”与“知道怎么做”同样重要。
七、ChatGPT、Codex与Pro如何形成Harness
这三者可以被放进同一套工程系统中理解。
ChatGPT:意图与规划层
ChatGPT负责:
- 理解需求;
- 识别歧义;
- 拆分任务;
- 设计验证;
- 总结阶段结果;
- 判断是否需要重新规划。
它主要处理任务进入执行前的认知工作。
Codex:工具与执行层
Codex负责:
- 读取代码仓库;
- 修改指定文件;
- 运行命令;
- 执行测试;
- 收集反馈;
- 输出变更结果。
它把规划转化成真实工程动作。
Pro:持续协作层
Pro适合支撑更复杂、更长时间的分析和执行过程。
但更高的使用强度,并不会自动生成更好的Harness。
模型可以更强。
任务可以更长。
执行可以更多。
如果边界、反馈和停止条件没有建立,复杂度也会同步增加。
Pro扩大的是系统能力。
Harness决定系统是否稳定。
八、为什么相同模型会产生不同结果
两个团队使用相同模型和类似工具,最终效果可能完全不同。
差别往往来自工程环境。
一个项目可能具备:
- 清晰的目录结构;
- 完整的测试;
- 明确的开发规范;
- 稳定的命令入口;
- 可追踪的任务状态;
- 严格的代码审查。
另一个项目可能存在:
- 多套重复实现;
- 缺少自动化测试;
- 文档长期过期;
- 命名与结构不一致;
- 大量隐含业务规则;
- 无法确认修改影响范围。
模型进入前一种环境,更容易稳定工作。
进入后一种环境,即使推理能力相同,也更容易产生偏差。
AI Agent不会脱离项目环境独立工作。
它会放大已有工程体系的优点,也会复制已有工程体系的问题。
九、未来开发者需要设计AI的运行环境
过去,开发者主要设计软件如何运行。
未来,还需要设计AI如何参与软件开发。
包括:
- 如何接收目标;
- 如何读取上下文;
- 如何调用工具;
- 如何记录状态;
- 如何验证结果;
- 如何处理失败;
- 如何触发人工审批。
优秀的AI开发系统,不是让Agent拥有无限自由。
而是让它在明确边界中拥有足够执行能力。
真正稳定的效率来自:
清晰任务。
有限权限。
可靠反馈。
明确状态。
独立验证。
人工治理。
结语
ChatGPT负责理解与规划。
Codex负责工具调用与工程执行。
Pro支撑更复杂、更持续的人机协作。
但模型、工具和套餐只是能力组件。
真正把这些组件组织成稳定开发系统的,是Agent Harness。
未来AI编程的竞争,不只是谁拥有更强模型。
还包括谁能为AI建立一套可执行、可观察、可验证、可停止的工程环境。
模型决定能力上限。
Harness决定能力能否稳定落地。