文段解析

AI时代的软件开发速度

Harness Engineering 是一套让 Coding Agent 可靠完成长程任务的运行机制。核心设计:任务拆解、并行执行、File As Progress 状态持久化、多层重试。

核心问题

Coding Agent 处理目标明确、规模可控的任务很成熟,但面对上千文件的批量迁移任务,会遇到上下文耗尽、中断无法恢复、规模放大后行为不可控等问题。

Harness Engineering 的失败经验

Agent 的执行路径不完全相同

即使给了相同的 prompt 以及明确的步骤,Agent 的执行路径不完全相同。有时候 Agent 跑着跑着忘了同步代码;有时候同步代码的目标路径错了,覆盖了其他 Agent。

并发执行带来不确定性。多个 Agent 同步做任务,系统变得复杂。共享资源竞争、相互等待、死锁问题。

Agent 容易陷入循环

当 Agent 发现自己之前的计划不可行时,它会调整计划并继续执行。但问题在于,Agent 可能陷入一个循环:计划 -> 失败 -> 调整计划 -> 失败 -> 调整计划 -> 失败……

当 Agent 陷入循环时,它会消耗大量 token,却没有产生有效的结果。

长程任务的代价

一个长程 Agent 任务可能涉及数千个步骤。Token 成本会迅速增加。如果 Agent 在某一步卡住,重新启动可能需要从头开始,导致大量工作被浪费。

核心设计

File As Progress:让状态持久化

把每个任务的中间状态写入文件。下次启动时,Agent 先读取这些文件,恢复之前的进度,然后继续执行。不再依赖 Agent 的记忆,而是依赖文件的确定性。

任务拆解与并行执行

把大任务拆成小任务,每个子任务独立执行。并行执行可以提高效率,但需要处理好任务之间的依赖关系。

多层重试机制

Agent 在执行任务时可能会遇到各种错误。有些错误是暂时的(如网络问题),有些是永久的(如代码本身有问题)。多层重试机制让 Agent 能够区分这些错误,并采取不同的处理方式。

关键教训