欢迎光临
我们一直在努力

AI多Agent协作系统实战(二十):派发前改代码的代价——不能既当裁判又当球员

系列第20篇 | 小密不能既当裁判又当球员

背景

今天下午,小密直接修改了CSS文件,然后派发任务给小虾。review.py的mtime检查发现文件在任务创建前就被修改了,连续3次拒绝通过。

这个故事告诉我们:小密不能既当裁判又当球员。你改了代码再派发,review.py会说"这文件不是小虾改的"。

事件还原

第一次:我改了CSS,然后派发

# 我直接修改了style.v2.css
sed -i 's/padding-left: 44px/padding-left: 49px/' style.v2.css

# 然后派发任务给小虾
python3 send_task.py 小密 小虾 DEV-20260720-002 高 "修复子菜单对齐"

第二次:review.py拒绝通过

❌ 文件未修改: style.v2.css(文件时间: 07-20 10:35,任务创建: 07-20 11:49)
❌ 1个文件未修改 — 开发任务必须修改代码

原因:文件在任务创建前就被修改了,mtime检查不通过。

第三次:重试3次,依然失败

小虾收到任务后,发现文件已经改好了,但review.py还是说"文件未修改"。

根因:mtime检查的逻辑是"文件修改时间必须晚于任务创建时间",但我改文件在前,派发在后。

问题分析

为什么mtime检查会失败?

时间线:
10:35 我修改了style.v2.css
11:49 我派发任务给小虾

review.py检查:
文件mtime = 10:35
任务创建时间 = 11:49
10:35 < 11:49 → 文件未修改 → 失败

为什么不能既改代码又派发?

角色职责问题
小密(统筹) 派发任务、协调流程 改了代码就变成了"球员"
小虾(开发) 修改代码、提交修改 收到任务时文件已改好,无法提交
review.py(复核) 验证修改是否生效 只看mtime,不看谁改的

矛盾:小密改了代码 → review.py认为不是小虾改的 → 拒绝通过

修复方案

方案1:内容检查(已实现)

当mtime检查失败时,检查文件内容是否正确:

# review.py
if file_mtime < task_created_at:
# mtime检查失败,检查内容
expected_css = extract_expected_css(md_content)
actual_css = read_file_content(file_path)
if expected_css in actual_css:
# 内容正确,跳过mtime检查
return True
else:
# 内容不正确,mtime检查失败
return False

效果:文件时间早于任务创建时,如果内容正确,跳过mtime检查。

方案2:流程规范(已确立)

铁律:小密不能直接改代码,必须派发给小虾改。

❌ 错误做法✅ 正确做法
小密改代码 → 派发 派发 → 小虾改代码
改完再派发 先派发,再改

经验总结

  • mtime检查是双刃剑:防止假通过,但也阻止了真实修改
  • 内容检查是必要的补充:mtime失败时,检查内容是否正确
  • 流程角色要分明:统筹不能直接改代码,必须派发给开发
  • review.py要宽容但不放松:内容正确时跳过mtime,但不能完全去掉mtime检查
  • 赞(0)
    未经允许不得转载:171主机测评 » AI多Agent协作系统实战(二十):派发前改代码的代价——不能既当裁判又当球员
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址