examples/integration_test_6/
integration_test_6/
├── README.md # 测试说明
├── task.prompt # Agent 任务描述
├── run.py # 测试运行脚本
└── output/ # 输出目录
全面验证新实现的信号驱动 Sub-Agent 通讯机制。
cd examples/integration_test_6
python run.py
测试脚本实现了信号监控钩子:
# 监控信号发送
original_emit = runner.signal_bus.emit
def monitored_emit(signal):
print(f"[信号发送] {signal.type}")
return original_emit(signal)
runner.signal_bus.emit = monitored_emit
# 监控信号接收
original_check_buffer = runner.signal_bus.check_buffer
def monitored_check_buffer(trace_id):
signals = original_check_buffer(trace_id)
if signals:
print(f"[信号接收] {len(signals)} 个信号")
return signals
runner.signal_bus.check_buffer = monitored_check_buffer
[Trace] 开始: 12345678...
[1] Agent 思考:
我将规划任务...
→ goal(add): 实现验证函数...
[2] Agent 思考:
开始实现...
→ write_file: validator.py
[3] Agent 思考:
使用 subagent 评估...
→ subagent(evaluate, wait=True): 评估目标 2 [评估 #1]
[信号发送] subagent.start (trace: 12345678...)
[信号接收] subagent.complete (trace: 87654321...)
[评估结果] ✅ 通过
[Trace] 完成
- 总消息数: 15
- 总 Token 数: 50000
信号统计:
- 发送信号数: 4
- 接收信号数: 4
- 信号类型: subagent.complete, subagent.start
发送的信号:
1. subagent.start (trace: 12345678...)
2. subagent.complete (trace: 12345678...)
3. subagent.start (trace: 23456789...)
4. subagent.complete (trace: 23456789...)
所有以下条件必须满足:
实现一个数据验证模块,包含:
validate_email(): 邮箱验证validate_phone(): 手机号验证validate_age(): 年龄验证如果测试失败,检查:
SignalBus 未创建
self.signal_bus = SignalBus() 已添加信号未发送
self.signal_bus.emit() 被调用信号未接收
self.signal_bus.check_buffer() 被调用评估未使用
创建 integration_test_7 测试异步模式:
# 在 task.prompt 中明确要求使用 wait=False
result = await subagent(
mode="delegate",
task="分析数据",
wait=False # 异步模式
)
# result = {"subagent_id": "...", "status": "running"}
创建一个会失败的任务,验证错误信号:
# 故意触发错误
result = await subagent(
mode="evaluate",
target_goal_id="999", # 不存在的 goal
evaluation_input={}
)
# 应该收到 subagent.error 信号
创建一个长时间运行的任务,验证超时保护:
# 设置较短的超时时间
manager._wait_for_completion(..., timeout=5.0)
# 应该在 5 秒后抛出 TimeoutError
这个测试用例全面验证了信号驱动机制的核心功能:
通过实时监控信号活动,可以清楚地看到信号机制的工作流程。