88% 的可执行率意味着什么?重读 ChatDev

解释 ChatDev 的完整性、可执行性与 Quality 指标,分析跨阶段信息提取的代价,以及 Nexus 交接摘要应保留的依据。

ChatDev 的实验表里,可执行性为 0.8800,代码完整性为 0.5600,综合 Quality 为 0.3953。同一批结果为什么相差这么多?这几个指标测量的对象不同,读懂它们,才能判断多智能体软件开发究竟改善了什么。ACL 2024 论文,第 4 节

设计、构建和测试三个工作间相互连接的手绘概念插画

概念插画,由 imagegen 生成。

先读指标定义,再读分数

ChatDev 在 SRDD 上评估生成软件。数据集包含 1,200 条需求,覆盖五个大类。论文采用 ChatGPT-3.5、温度 0.2,并使用 Python 3.11.4 提供执行反馈;比较方法共享论文规定的超参数与设置。这些条件界定了表格中的结论。

指标论文怎样计算阅读时应保留的区别
Completeness软件中没有占位代码片段的比例没有占位代码,仍可能缺少功能
Executability成功编译并能运行的软件比例程序能运行,仍需验收操作结果
Consistency需求文字与代码的语义嵌入比较语义接近不等于逐项需求通过
Quality结合上述三项的乘积指标,再汇总任务结果这是组合分数,不是用户满意率

论文表 1 报告 ChatDev 的 Consistency 为 0.8021。它使用语义嵌入衡量一致性,因此不能将该数字解释为“80.21% 的需求已经实现”。Completeness 检查是否存在占位代码,业务功能是否完整需要另一套验收。

Quality 的读法还有一个细节。表中的数值是任务级指标汇总后的结果,不能默认用各列平均值相乘就能复算。一般情况下,平均乘积与平均值的乘积不同。复现时应回到单个任务的记录,而非只保留总表。

明确评价对象以后,才适合讨论 ChatDev 的流程设计。

每个阶段有自己的对话记忆

ChatDev 用 chat chain 连接软件开发阶段。阶段内部由 instructor 与 assistant 围绕当前子任务对话;阶段结束后,提取解决方案供后续阶段使用。第 3 节,Memory Stream

短期记忆保存当前阶段的指令与回复。跨阶段的长期记忆保存前序阶段提取的解答。论文中的“长期”指跨阶段保留,不能直接等同于产品中跨项目、跨月份使用的用户记忆。

ChatDev 将阶段内对话提炼成解决方案,再传给下一阶段

图中间的提取步骤决定后续成员能看到什么。把完整对话复制过去,能保留过程细节,但也会带入被否决的方案和重复讨论。只传一句结论,又可能丢失接口条件。ChatDev 选择传递解答,使阶段边界同时成为信息筛选的位置。

这是一种有损传递。分析其可靠性,可以问一个具体问题,后续阶段需要的约束是否仍在解答里?如果约束在前一阶段出现过,提取时却消失,后续成员即使按收到的材料执行,也会偏离原始要求。此时增加后续对话轮数未必有效,因为缺失的信息没有进入它的输入。

因此,阶段记忆应接受单独评价。检查前序解答能否支持下一阶段的决策,比统计压缩了多少文字更接近任务目标。这是根据记忆机制提出的分析方法,论文的总体质量分数并未直接测量这项信息损失。

追问机制针对的是信息缺口

论文还提出 communicative dehallucination,在需要时通过询问细节来约束生成。对方给出的高层要求不足以支持实现时,助手先获取细节,再产出解决方案。它为对话增加了澄清路径。第 3 节

这条路径能否奏效,取决于被询问者掌握的材料。追问可以揭示缺口,却不能凭空补出真实需求。如果两位成员都缺少依据,只是在对话中共同作出假设,后续实现仍需将该假设交给用户确认。对话次数与依据数量没有固定关系。

消融结果比总体分数更能说明模块的作用。表 4 中,去掉 communicative dehallucination 后,Quality 从 0.3953 降为 0.3094。分阶段观察时,代码补全阶段的 Completeness 为 0.6250,到测试阶段变为 0.5600,而 Executability 从 0.7400 增至 0.8800。

这说明各阶段对指标的影响不同。不能因为最终综合分数提高,就写成所有维度随阶段增加而提高。修订代码会改变不同指标的结果,最终评价应回到任务要求。

Nexus 应保存怎样的交接摘要

Nexus 的 Room 公共记录与 Thread 执行过程分开,成员可以公开结论,再保留详细过程供查看。这与 ChatDev 的信息筛选问题有交集,但 Room 的公共区并不自动等同于论文定义的阶段记忆。Room 文档

若希望在 Nexus 中借鉴这项设计,交接摘要至少需要让接收者找到产物和依据。文件位置回答去哪里继续;版本或对应输入回答结论适用于什么;未解决问题回答哪些前提还不能采用。这些内容可以写进 Room Skill,但实际是否提供仍需检查。

还要区分“摘要省略”和“信息不可见”。一份测试记录没有贴进公共区,只要接收者有权限找到它,就可以按需阅读;如果文件位于另一个无法访问的环境,给出路径也不能完成交接。摘要设计需要与材料访问方式一起考虑。

对这类流程做评测,应把接收者因材料缺失而停下、自行假设后返工、正确找到依据后继续,分别计入结果。单看最终是否生成文件,会掩盖中间的信息损失。ChatDev 留给协作产品的一个具体研究问题,就是怎样在缩短公共上下文的同时,保留下一步所需的约束。

本文使用 ACL 2024 论文口径,不将上述分数视为当前 ChatDev 版本或 Nexus 的产品评测。结构化产物的依赖关系见 MetaGPT 解读