让 AI 学会并发干活,是 Harness Engineering 的核心设计之一
并发执行的意义
当你把一个大任务拆成多个独立子任务并行执行时,时间成本从串行的 n×T 变成并行的 T。这不是简单的优化,而是让 Agent 能够处理真正复杂任务的前提。
并发带来的问题
但并发不是银弹。它带来了一系列新问题:
- 任务之间的依赖关系怎么处理?
- 共享资源竞争怎么办?
- 相互等待和死锁如何避免?
- 多个 Agent 的结果如何合并?
Harness 的解决方案
任务拆解是第一步。把大任务按「可独立执行」的原则拆成子任务。每个子任务有自己的输入、输出、验证标准。
依赖关系通过文件传递:子任务 A 完成后把结果写入文件,子任务 B 读取这个文件作为输入。这比函数调用更可靠——文件不会丢,agent 重启后还能接着读。
并行度的控制
不是所有任务都适合并行。I/O 密集型任务(API 调用、文件读写)可以高并发,CPU 密集型任务(代码生成、测试运行)需要控制并行度。
一个实用的经验:同时跑的 agent 不要超过 3-5 个。不是因为技术上不能更多,而是因为人类需要能看懂进度和输出。