fix: skip sub-agent notify for blocking run

This commit is contained in:
JOJO 2026-03-14 21:35:47 +08:00
parent 96d0e68347
commit b6462ff1e2

View File

@ -1,5 +1,6 @@
import asyncio import asyncio
import json import json
import time
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
from typing import Any, Dict, List, Optional, Set from typing import Any, Dict, List, Optional, Set
@ -641,6 +642,17 @@ class MainTerminalToolsExecutionMixin:
) )
# 合并结果 # 合并结果
result.update(wait_result) result.update(wait_result)
# 阻塞式执行不需要额外插入 system 消息
result.pop("system_message", None)
# 标记已通知,避免后续轮询再插入 system 消息
try:
task = self.sub_agent_manager.tasks.get(task_id)
if isinstance(task, dict):
task["notified"] = True
task["updated_at"] = time.time()
self.sub_agent_manager._save_state()
except Exception:
pass
elif tool_name == "terminate_sub_agent": elif tool_name == "terminate_sub_agent":
result = self.sub_agent_manager.terminate_sub_agent( result = self.sub_agent_manager.terminate_sub_agent(