# 集成测试 6: 信号驱动机制测试 ## 测试目标 验证新实现的信号驱动 Sub-Agent 通讯机制是否正常工作。 ## 测试内容 ### 1. SignalBus 创建 - ✅ 验证 AgentRunner 中 SignalBus 实例已创建 - ✅ 验证 signal_bus 被传递到工具 context ### 2. 信号发送机制 - ✅ 验证 SubAgentManager 发送 `subagent.start` 信号 - ✅ 验证 SubAgentManager 发送 `subagent.complete` 信号 - ✅ 验证信号包含正确的数据(trace_id, parent_trace_id, result) ### 3. 信号接收机制 - ✅ 验证主 Agent 在循环中检查信号 - ✅ 验证 _handle_signal 方法被调用 - ✅ 验证信号被正确处理 ### 4. wait=True 模式(同步) - ✅ 验证 SubAgentManager 启动后台任务 - ✅ 验证 _wait_for_completion 轮询信号 - ✅ 验证收到完成信号后返回结果 ### 5. 后台任务执行 - ✅ 验证 Sub-Agent 在后台运行 - ✅ 验证后台任务完成后发送信号 - ✅ 验证后台任务的错误通过信号传播 ## 运行测试 ```bash cd examples/integration_test_6 python run.py ``` ## 预期结果 1. **信号发送**: 每次 subagent 调用应该发送 2 个信号 - `subagent.start`: Sub-Agent 启动时 - `subagent.complete`: Sub-Agent 完成时 2. **信号接收**: 主 Agent 应该在每次循环迭代时检查信号 3. **评估功能**: Agent 应该使用 subagent(mode="evaluate") 评估代码 4. **文件生成**: 应该生成 validator.py 和 REPORT.md ## 监控输出 测试脚本会实时显示: - `[信号发送]`: 每次信号发送 - `[信号接收]`: 每次信号接收 - `[评估结果]`: 评估是否通过 ## 测试场景 任务:实现一个简单的数据验证模块 - 包含 3 个验证函数(email, phone, age) - 使用 goal 工具规划任务 - 使用 subagent(evaluate) 评估实现质量 - 生成测试报告 这个场景会触发: - 多次 subagent 调用 - 信号的发送和接收 - 后台任务执行 - 信号轮询机制 ## 成功标准 - ✅ SignalBus 已创建 - ✅ 发送了信号(至少 2 个) - ✅ 接收了信号(至少 2 个) - ✅ 包含预期的信号类型(start, complete) - ✅ 使用了 subagent(evaluate) - ✅ 生成了代码文件 ## 注意事项 1. **信号监控**: 测试脚本通过钩子函数监控信号的发送和接收 2. **实时输出**: 信号活动会实时显示在控制台 3. **详细日志**: 完整的 trace 日志保存在 `.trace/` 目录