auto-sync: 2026-06-05 08:05:57

This commit is contained in:
cfdaily
2026-06-05 08:05:57 +08:00
parent fe1fb1bf4e
commit e9c9aaddfe
+8 -13
View File
@@ -1134,19 +1134,6 @@ Parent Task ID: {parent_task.id}
except Exception:
logger.exception("Broadcast spawn failed for %s", agent_id)
# 检查是否可以结束轮次:所有 Agent 都已通知且全部反馈
all_agent_ids = set(self._get_all_agent_ids())
for t in broadcastable:
tracker = self._broadcast_tracker[t.id]
unnotified = all_agent_ids - tracker.notified_agents
if not unnotified and tracker.responded_agents == tracker.notified_agents:
# 一轮结束
tracker.round_number += 1
tracker.notified_agents.clear()
tracker.responded_agents.clear()
logger.info("Broadcast round %d completed for task %s (no taker)",
tracker.round_number, t.id)
return spawned
def _build_claim_prompt(self, agent_id: str, tasks: list,
@@ -1230,6 +1217,14 @@ Parent Task ID: {parent_task.id}
self._broadcast_tracker.pop(task_id, None)
else:
tracker.responded_agents.add(agent_id)
# 异步轮次结束检测:所有已通知的 Agent 都已反馈
if tracker.notified_agents and tracker.responded_agents >= tracker.notified_agents:
# 一轮结束
tracker.round_number += 1
tracker.notified_agents.clear()
tracker.responded_agents.clear()
logger.info("Broadcast round %d completed for task %s (async callback, no taker)",
tracker.round_number, task_id)
def _get_all_agent_ids(self) -> List[str]:
"""获取所有配置的 Agent ID"""