先说结论:多智能体配合开发,难的从来不是"多开几个模型",而是四个接口的设计——谁定方案、怎么传令、怎么验真、失忆了怎么办。这四个接口没设计好,加几个 Agent 只会把错误放大几倍;设计好了,两个角色就够跑完一个十几张任务卡的完整开发周期。
下面这份清单来自一个真实跑通的桌面应用项目。先把这套协作的结构说清楚,免得读者误判:
也就是说,干活的两端都是 Agent,人只在最外层。整个过程做了十几张卡,一张卡一个交付周期,没有一次是靠执行方"说做完了"来结案的。
下面按问题出现的频率排。
现象:能给执行方发消息的唯一途径是一个 GUI 窗口;它回话的唯一途径也是同一个窗口。窗口一关、会话一切、上下文一压缩,传令记录就没了。
做法:把协作降到文件层,双方只认文件。
MSG-95、MSG-96…),一条消息一个标题行,末尾固定写 STATUS:。收益:一个周期下来信箱长到 80 多 KB、近百条消息,任何一条"它当时到底收到没收到"都能事后翻账,不用靠回忆。
现象:这是最折磨人的一条。窗口注入之后画面像素级没变,看起来像没送到;重发一次,对方可能收到两条。
踩过的坑:拿"窗口抓帧 MD5 恒定"当作"没送达"的判据。这个判据是错的——某些抓帧方式拿的是窗口静态缓存,画面变了 MD5 也可能不变。同理,"窗口安静"也不能当"它停工"的判据,它可能只是这一轮说完话转空闲了。
做法:判活三件套,同时看,互相交叉。
窗口画面只作参考,不作判据。
发送侧的教训(很具体但很值钱):唤醒执行方时,先取窗口矩形、点击会话输入框坐标、再设剪贴板粘贴、最后发回车。有一次按窗口百分比点了 43%,结果点到左下角头像,弹出了账号面板、输入框根本没拿到焦点——看起来"发了",其实一个字都没进去。改到帧内输入框中心(约横向 67.5%、纵向 78.9%)之后一次就成。坐标别猜,先抓帧量。
现象:交付报告写得很齐——几轮 PASS、附几个数字、结论达标。出卡方自己跑一遍,会发现轮次不够、样本被挑过、或者跑的是旧产物。
做法:三条固定动作,一条都不能省。
/Type /Page 独立数一遍;报告说"docx 套了 16 个样式",就解 word/styles.xml 数 w:styleId。数对得上,这条才算成立。真实收益:有一轮对方自报的 86 页、16 个样式、0 字符差,出卡方独立复算全部对得上,那一轮才敢结案;另一轮它漏了一个"目录 42 条对不上"的硬伤,是出卡方自己跑出来的。
现象:周期一长(十几张卡、几天时间),执行方会重跑很早以前已结案的模块,或者把已通过的门禁再跑一遍,然后宣布"发现新问题"。既烧钱又污染结论。
做法:把记忆外置成三个文件,任何一轮都从这三个文件恢复,不依赖上下文。
文件 | 内容 | 作用 |
|---|---|---|
任务卡 | 目标、验收项逐条、时间盒、四件交付物、禁令 | 单次授权的唯一依据,判据写在卡上,不写在聊天里 |
巡检基线(一个 JSON) | 当前提交号、提交数、脏文件数、进行到哪张卡、卡状态、上次巡查时间 | 每轮巡查只更新这一处,谁也改不歪 |
验收结论文件 | 裁决(通过/有条件通过/不通过)、关闭条件、原值表、遗留挂账 | 结案的凭证,下一张卡引用它 |
再配一条纪律:卡面上写死"不许重跑已结案任务、不许私改验收脚本与断言、必须每轮开头一行自证"。跑偏一眼就能看出来,一条指令叫停,不讨论、不解释。
现象:最容易被误判成"停工"的一条。它回完话就停在那儿;窗口显示"等待模型响应"才是它在跑,输入框空着、发送键是箭头,是它在等人。中间隔着 20 到 30 分钟的零写入很正常——它在读代码、在想设计。
做法:把"自主推进"写成常驻约定,而不是靠每次唤醒续命。
反思一句:如果每次都要有谁来点一下输入框才能推进一段,那这套协作的成本结构是错的——人的注意力成了瓶颈。约定写清楚比唤醒技巧重要。
现象:需求里有一条"检查项全部外置为配置"。落地时执行方发现冲突:项目里有一张"全仓唯一的错误码→严重程度映射表",是上一张卡已签收的门禁;新增的码如果不进这张表,就会被"未知码按提示兜底"静默降级,该拦的不拦。执行方给了两个方案让出卡方选,没有自己拍。
这个处理是对的——风险点必须上报,不许自作主张。
但裁定必须给得住:最终选了"进唯一表、分级不外置",理由是——需求里"外置"的目的是"换一套模板不用改程序",而模板的差异只落在数值上;"哪一项算阻断"是产品级的安全口径,不随模板变化,它就该待在那张唯一表里。
并且顺手补一个对方没想到的洞:既然存在"未知码兜底成提示",那就要有一条断言把这个口子堵死——凡检查产出的码必须全部存在于映射表内,缺一条直接判失败。不加这条,以后新增码漏登记,一样静默变提示,谁来兜?
这条经验值得抄走:对方上报的冲突,只裁"选哪个"是不够的,还要检查它给的选项里有没有第三个答案。
现象:如果每发现一个问题就下一次裁决、加一条要求,执行方会在两版要求之间来回改,前面做的东西反复推翻,成本翻倍。
做法:三条限流规则。
角色 | 干什么 | 不该干什么 |
|---|---|---|
业主(人) | 只做产品决策与结案签字 | 不看单次实现细节、不参与方案取舍 |
出卡方 Agent | 定方案与判据、出任务卡、独立复核、下裁决、维护基线与进度页 | 不写产品代码、不代修缺陷、不在开发中途跑测试 |
执行方 Agent | 按卡实现、自证开工、每节写进展、一次提交交付 | 不自定判据、不自宣通过、不重跑已结案任务、不私改断言 |
子代理(可选) | 并行跑独立调研或独立取证 | 不碰主线的判据与门禁 |
巡查 Agent | 定时读信箱与仓库,只在有实质变化时动,无事一行状态 | 不重复开工、不重复自证、不额外跑测试 |
这个分工的关键在最后一行:巡查要便宜。一个小时内没有变化就写一行状态结束,别为了"看起来在管"而每次全量重启一轮。
回头看,这套东西能跑完十几张卡,靠的不是模型多强,是四个接口各自成立:
多智能体配合开发真正要防的不是"模型不够聪明",而是这四件事里任何一件悄悄失效——失效的时候,它不会报错,它只会看起来一切正常。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。