auto-sync: 2026-05-17 19:08:06
This commit is contained in:
@@ -255,7 +255,7 @@ class Dispatcher:
|
|||||||
"""构建重试上下文(前轮产出摘要 + 审查意见)
|
"""构建重试上下文(前轮产出摘要 + 审查意见)
|
||||||
|
|
||||||
如果任务是从 failed/pending 重新调度(有历史 attempts),
|
如果任务是从 failed/pending 重新调度(有历史 attempts),
|
||||||
注入前轮的产出摘要和审查意见,让 Agent 知道上轮哪里不对。
|
注入前轮的失败原因,让 Agent 知道上轮哪里不对。
|
||||||
"""
|
"""
|
||||||
if not hasattr(task, 'retry_count') or (task.retry_count or 0) == 0:
|
if not hasattr(task, 'retry_count') or (task.retry_count or 0) == 0:
|
||||||
return ""
|
return ""
|
||||||
@@ -263,9 +263,24 @@ class Dispatcher:
|
|||||||
parts = ["## ⚠️ 重试上下文(上次执行失败,请注意以下反馈)"]
|
parts = ["## ⚠️ 重试上下文(上次执行失败,请注意以下反馈)"]
|
||||||
parts.append(f"这是第 {task.retry_count + 1} 次尝试。上次执行的问题:")
|
parts.append(f"这是第 {task.retry_count + 1} 次尝试。上次执行的问题:")
|
||||||
|
|
||||||
# 尝试从 task 的 metadata 获取上次失败原因
|
# 从 task_attempts 查上次 attempt 的 summary/outcome
|
||||||
if hasattr(task, 'notes') and task.notes:
|
if hasattr(self, '_queries') and self._queries:
|
||||||
parts.append(f"上轮说明: {task.notes}")
|
try:
|
||||||
|
rows = self._queries.conn.execute(
|
||||||
|
"SELECT outcome, summary, agent FROM task_attempts "
|
||||||
|
"WHERE task_id = ? ORDER BY attempt_number DESC LIMIT 1",
|
||||||
|
(task.id,)
|
||||||
|
).fetchall()
|
||||||
|
if rows:
|
||||||
|
outcome, summary, agent = rows[0]
|
||||||
|
if outcome:
|
||||||
|
parts.append(f"上轮结果: {outcome}")
|
||||||
|
if summary:
|
||||||
|
parts.append(f"上轮说明: {summary}")
|
||||||
|
if agent:
|
||||||
|
parts.append(f"上轮执行者: {agent}")
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
parts.append("请仔细检查上次的错误,避免重复犯错。")
|
parts.append("请仔细检查上次的错误,避免重复犯错。")
|
||||||
return "\n".join(parts)
|
return "\n".join(parts)
|
||||||
|
|||||||
Reference in New Issue
Block a user