auto-sync: 2026-05-29 01:23:54

This commit is contained in:
cfdaily
2026-05-29 01:23:54 +08:00
parent 3617e8511c
commit 770f5b6b60
+14 -7
View File
@@ -403,7 +403,8 @@ class Ticker:
# 检查 parent 自身状态:只有 done 状态的 parent 才触发 # 检查 parent 自身状态:只有 done 状态的 parent 才触发
# (聚合后 parent 状态为 done 说明所有 sub 都完了) # (聚合后 parent 状态为 done 说明所有 sub 都完了)
if summary["parent_status"] != "done": # BUG-2 fix: done 和 failed 都触发 reviewfailed 时优先判断重试/换人)
if summary["parent_status"] not in ("done", "failed"):
continue continue
# 检查 round_count 上限 # 检查 round_count 上限
@@ -426,11 +427,12 @@ class Ticker:
# spawn 庞统 review # spawn 庞统 review
review_prompt = self._build_review_prompt( review_prompt = self._build_review_prompt(
parent_task, summary, outputs, comments, new_round parent_task, summary, outputs, comments, new_round,
project_id=project_id
) )
spawned = await self._spawn_pangtong_review( spawned = await self._spawn_pangtong_review(
parent_task, review_prompt, project_id parent_task, review_prompt, project_id, new_round=new_round
) )
if spawned: if spawned:
reviewed.append(parent_id) reviewed.append(parent_id)
@@ -445,7 +447,8 @@ class Ticker:
def _build_review_prompt(self, parent_task, summary: dict, def _build_review_prompt(self, parent_task, summary: dict,
outputs: list, comments: list, outputs: list, comments: list,
round_num: int) -> str: round_num: int,
project_id: str = "") -> str:
"""构建庞统 review prompt(§4.2 三问框架)""" """构建庞统 review prompt(§4.2 三问框架)"""
goal = parent_task.description or parent_task.title goal = parent_task.description or parent_task.title
must_haves = parent_task.must_haves or "{}" must_haves = parent_task.must_haves or "{}"
@@ -494,20 +497,24 @@ class Ticker:
{f'{summary["failed"]} 个 sub task failed,优先判断是应该重试、换人、还是调整方案。' if summary['failed'] > 0 else '无失败'} {f'{summary["failed"]} 个 sub task failed,优先判断是应该重试、换人、还是调整方案。' if summary['failed'] > 0 else '无失败'}
### 你可以 ### 你可以
- 创建新一轮 sub tasks(通过 API: POST /api/projects/{{pid}}/tasks - 创建新一轮 sub tasks(通过 API: POST /api/projects/{project_id}/tasks
- 调整 goal(更新 parent task description/must_haves - 调整 goal(更新 parent task description/must_haves
- 标记完成(如果 goal 已达成,回复 GOAL_ACHIEVED - 标记完成(如果 goal 已达成,回复 GOAL_ACHIEVED
Round 上限: {self.MAX_ROUNDS}(当前第 {round_num} 轮) Round 上限: {self.MAX_ROUNDS}(当前第 {round_num} 轮)
Project ID: {project_id}
""" """
async def _spawn_pangtong_review(self, parent_task, async def _spawn_pangtong_review(self, parent_task,
review_prompt: str, review_prompt: str,
project_id: str) -> bool: project_id: str,
new_round: int = 0) -> bool:
"""Spawn 庞统进行 review""" """Spawn 庞统进行 review"""
try: try:
agent_id = "pangtong-fujunshi" agent_id = "pangtong-fujunshi"
session_id = f"review-{parent_task.id}-r{parent_task.round_count + 1}" # BUG-1 fix: 用传入的 new_round,不依赖 parent_task.round_count(已递增)
session_id = f"review-{parent_task.id}-r{new_round}"
# 用 spawner.spawn_full_agent 直接 spawn # 用 spawner.spawn_full_agent 直接 spawn
result = await self.spawner.spawn_full_agent( result = await self.spawner.spawn_full_agent(