Pārlūkot izejas kodu

兼容:解除子 Agent 工具对 WebSocket 扩展的硬依赖

将 Sub-Trace 开始和结束广播改为调用时按需导入。未安装 FastAPI/WebSocket 服务依赖时跳过广播,不影响 AgentRunner、legacy 子 Agent和显式编排内核的加载与执行。
SamLee 4 dienas atpakaļ
vecāks
revīzija
3709538893
1 mainītis faili ar 18 papildinājumiem un 1 dzēšanām
  1. 18 1
      agent/agent/tools/builtin/subagent.py

+ 18 - 1
agent/agent/tools/builtin/subagent.py

@@ -16,7 +16,24 @@ from agent.tools import tool
 from agent.trace.models import Trace, Messages
 from agent.trace.models import Trace, Messages
 from agent.trace.trace_id import generate_sub_trace_id
 from agent.trace.trace_id import generate_sub_trace_id
 from agent.trace.goal_models import GoalTree
 from agent.trace.goal_models import GoalTree
-from agent.trace.websocket import broadcast_sub_trace_started, broadcast_sub_trace_completed
+
+
+async def broadcast_sub_trace_started(*args, **kwargs):
+    """WebSocket broadcast is optional when server dependencies are absent."""
+    try:
+        from agent.trace.websocket import broadcast_sub_trace_started as broadcast
+    except ImportError:
+        return None
+    return await broadcast(*args, **kwargs)
+
+
+async def broadcast_sub_trace_completed(*args, **kwargs):
+    """WebSocket broadcast is optional when server dependencies are absent."""
+    try:
+        from agent.trace.websocket import broadcast_sub_trace_completed as broadcast
+    except ImportError:
+        return None
+    return await broadcast(*args, **kwargs)
 
 
 
 
 # ===== 远端路由常量 =====
 # ===== 远端路由常量 =====