| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #!/usr/bin/env python3
- """
- 快速验证脚本 - 测试信号机制基础功能
- 不运行完整的 Agent,只测试信号机制的基本功能
- """
- import sys
- from pathlib import Path
- # 添加项目根目录到 Python 路径
- project_root = Path(__file__).parent.parent.parent
- sys.path.insert(0, str(project_root))
- from agent.services.subagent.signals import SignalBus, Signal
- def test_signal_bus():
- """测试 SignalBus 基本功能"""
- print("=" * 60)
- print("测试 SignalBus 基本功能")
- print("=" * 60)
- print()
- # 1. 创建 SignalBus
- print("1. 创建 SignalBus...")
- bus = SignalBus()
- print(" ✅ SignalBus 创建成功")
- print()
- # 2. 发送信号
- print("2. 发送信号...")
- signal1 = Signal(
- type="subagent.start",
- trace_id="sub-trace-001",
- data={
- "parent_trace_id": "main-trace-001",
- "mode": "evaluate",
- "task": "测试任务"
- }
- )
- bus.emit(signal1)
- print(f" ✅ 发送信号: {signal1.type}")
- print()
- signal2 = Signal(
- type="subagent.complete",
- trace_id="sub-trace-001",
- data={
- "parent_trace_id": "main-trace-001",
- "result": {"passed": True},
- "status": "completed"
- }
- )
- bus.emit(signal2)
- print(f" ✅ 发送信号: {signal2.type}")
- print()
- # 3. 检查信号
- print("3. 检查信号...")
- signals = bus.check_buffer("main-trace-001")
- print(f" ✅ 收到 {len(signals)} 个信号")
- for i, sig in enumerate(signals, 1):
- print(f" {i}. {sig.type} (trace: {sig.trace_id})")
- print()
- # 4. 验证缓冲池已清空
- print("4. 验证缓冲池已清空...")
- signals2 = bus.check_buffer("main-trace-001")
- if len(signals2) == 0:
- print(" ✅ 缓冲池已清空")
- else:
- print(f" ❌ 缓冲池未清空,还有 {len(signals2)} 个信号")
- print()
- # 5. 测试多个 trace
- print("5. 测试多个 trace...")
- signal3 = Signal(
- type="subagent.start",
- trace_id="sub-trace-002",
- data={"parent_trace_id": "main-trace-002"}
- )
- bus.emit(signal3)
- signal4 = Signal(
- type="subagent.start",
- trace_id="sub-trace-003",
- data={"parent_trace_id": "main-trace-003"}
- )
- bus.emit(signal4)
- signals_trace2 = bus.check_buffer("main-trace-002")
- signals_trace3 = bus.check_buffer("main-trace-003")
- print(f" ✅ trace-002 收到 {len(signals_trace2)} 个信号")
- print(f" ✅ trace-003 收到 {len(signals_trace3)} 个信号")
- print()
- print("=" * 60)
- print("✅ 所有测试通过!SignalBus 工作正常。")
- print("=" * 60)
- def test_signal_import():
- """测试信号模块导入"""
- print()
- print("=" * 60)
- print("测试模块导入")
- print("=" * 60)
- print()
- try:
- from agent.core.runner import AgentRunner
- print("✅ AgentRunner 导入成功")
- # 检查是否有 signal_bus 属性
- import inspect
- init_source = inspect.getsource(AgentRunner.__init__)
- if "signal_bus" in init_source:
- print("✅ AgentRunner.__init__ 包含 signal_bus")
- else:
- print("❌ AgentRunner.__init__ 不包含 signal_bus")
- except Exception as e:
- print(f"❌ 导入失败: {e}")
- try:
- from agent.services.subagent.manager import SubAgentManager
- print("✅ SubAgentManager 导入成功")
- # 检查是否导入了 Signal
- import inspect
- source = inspect.getsource(SubAgentManager)
- if "Signal" in source:
- print("✅ SubAgentManager 使用了 Signal")
- else:
- print("❌ SubAgentManager 未使用 Signal")
- except Exception as e:
- print(f"❌ 导入失败: {e}")
- print()
- print("=" * 60)
- if __name__ == "__main__":
- test_signal_bus()
- test_signal_import()
|