Agent Team开发天气查询器
Agent team 开发
创建CodeWriter、CodeReviewer、TestEngineer,然后在主控 Agent进行以下提示词:
请将目标文件输出在(目标目录)目录下。
你作为主控SOLO Agent,调度子Agent团队完成开发+测试任务: 可用子Agent:CodeWriter、TestEngineer、CodeReviewer。
工作流程:
先委派CodeWriter,根据需求编写完整程序代码,保存到当前workspace;
代码完成后调用CodeReviewer进行代码评审;
评审无严重问题,调用TestEngineer,读取源码,编写单元测试,在终端执行测试;
测试发现bug,把bug清单交给CodeWriter修复,循环迭代;
所有测试全部通过后,汇总:源码文件、测试代码、完整测试报告。生成在目标目录下。
需求:用PyQT开发一个根据选定的日期显示天气情况的应用
开发过程
本项目由主控 SOLO Agent 调度三个子 Agent 完成:
1. CodeWriter(开发)
- 完成 5 个源码文件的初版实现,Mock 确定性、Real 回退、GUI 离屏冒烟全部验证通过。
2. CodeReviewer(两轮评审)
- 第一轮:0 项高风险,2 项中风险 → 返修:
- M1:网络请求在 GUI 线程同步执行,界面冻结(含启动时自动查询)
- M2:失败路径模态 QMessageBox 阻塞自动化测试
- CodeWriter 修复(QThread 异步化 +
_show_error可覆写方法,并顺手修复 4 项低风险:数据模型校验、构造参数 fail-fast、工厂 fallback 冲突、QApplication argv 构造) - 第二轮:M2 已修复,但异步改造引入 2 项新中风险 → 再次返修:
- N1:
finished槽混淆线程身份,竞态下可误删运行中新线程致崩溃 - N2:
closeEvent的wait(10000)忽略超时返回值,超时销毁运行中线程可致 abort
- N1:
- CodeWriter 精准修复(
sender()身份识别 + 严格重入守卫 + wait 超时拒绝关闭) - 第三轮(针对性复核):N1/N2 修复正确无新增缺陷 → 放行
3. TestEngineer(测试)
- 编写 5 个测试文件共 164 条用例,在离屏(offscreen)环境下执行。
- 首轮因测试桩缺少
instance()方法与 pytest-qt 4.5.0 钩子不兼容而报错(测试侧问题,已修复),修复后连续多轮运行全部通过。 - 未发现被测代码 bug,0 项返修。
发现问题
- 对于权限请求与调用,有多次碰壁后尝试多种方案的情况,且频繁需求权限,占用大量时间
- 采用agent team的调用时间明显比单个agent的时间久,其中每一个agent重新理解当前工作占用大量时间
- 迭代很多时候是发现AI实现功能与目标有偏差,然而这里无法得到过程验证
总结经验
- agent team的产出时间要久非常多,且迭代功能依旧需要人看到结果后进行介入
- 多个agent协作可以有效减少bug问题,且对评审的agent提要求可以让实现的过程更加可控,偏向于低风险实现方案
源码以及报告参见https://github.com/xiling1102/Weather-checker
浙公网安备 33010602011771号