并行代理委派
当需要在一个 delegate_task 调用中将工作分配给多个子代理时使用,尤其是在它们创建或编辑文件时。大多数成本超支和树损坏问题源于两个代理认为它们拥有同一文件。
何时使用
任何多代理的扇出场景,只要任务涉及同一个仓库、目录或项目——例如文件创建、按区域拆分的重构,或者构建-测试的分割。
流程
-
在分派前按路径切分。 为每个任务指定对命名文件或目录的独占所有权。两个代理不得写入同一文件,也不得留下任何未分配的文件。优先选择数量更少、边界更清晰的较大切分,而非许多重叠的小切分。
-
在每个任务简述中声明绝对路径。 相对路径会在某些代理的工作目录中解析到不同的位置,这会导致工作被放置到
~/fixture而非~/Projects/app/fixture中。请包含一行显式的“不要在此树之外创建任何内容”。 -
为每个共享文件指定一个所有者。 配置文件、清单和注册表文件由单个任务以其名称认领;告知其他任务它们不得编辑该文件,只需报告其应包含的内容。
-
明确禁止你不希望发生的副作用。 明确说明是否允许安装、构建、测试运行和 git 提交。未经监督的安装会将
node_modules散布到不相关的目录中。 -
要求机器可查的报告: 包括创建的精确绝对路径、验证的内容以及验证方式(解析、渲染、构建、单元测试)。没有验证方法的自我报告成功只是噪音。
-
在提交或报告前自行验证合并结果: 构建、运行测试套件并重新阅读关键文件。不要相信 N 个独立的报告能组成一个可用的工作树。
-
清理流浪文件。 在目标树之外搜索代理可能创建的目录(如用户根目录、同级项目目录、临时目录)。在会话结束前协调任何发现的内容。
常驻规则
- 已删除文件是一个症状:当两个代理修剪“未使用”的路径时,每个代理都会删除另一个代理刚刚写入的内容。请显式分配删除权限。
- 不要因为等待同级代理而阻塞自己的轮次;继续独立工作,并在结果到达时采取行动。
- 当结果在你已完成并提交后才到达时,请检查工作树状态和流浪文件,然后决定还需要做什么——不要假设工作树是干净的,也不要假设它们的工作有冲突。
- 保持写入同一制品的代理数量尽可能少;在只读分析时可以自由扇出,在写入时应谨慎扇出。
陷阱
- 同名冲突。 两个任务简述中提到“CSS 文件”或“配置”,但每个代理会路由到不同的路径;请指定确切的绝对路径。
- 约定漂移。 代理看到部分构建的树后,会在中途采用另一个代理的布局,导致项目中存在两种约定;请在任务简述中锁定布局。
- 信任未运行的验证。 声称构建或渲染通过但没有证据的报告通常意味着只是做了结构判断;请实际复现验证。
- 清理冲突。 一个代理删除自己“已废弃”的文件可能会删除同级代理的交付物——请参见上面的常驻规则。
支持文件
templates/delegation-brief.md—— 复制并填充的任务简述,强制执行路径所有权、禁止副作用和可验证的报告格式。