auto-sync: 2026-05-25 19:58:58

This commit is contained in:
cfdaily
2026-05-25 19:58:58 +08:00
parent 46007ae62d
commit 5be35a86cc
+31 -13
View File
@@ -698,20 +698,38 @@ curl -X POST http://{api_host}:{api_port}/api/projects/{project_id}/tasks/{task_
logger.info("Agent %s retry %s=%d/%d (session=%s)",
agent_id, retry_field, count, self.max_retries, session_id)
# 构建续杯 message
# 构建续杯 message(Mail 用专用模板,Task 用标准模板)
task_info = self._get_task_info(db_path, task_id) or {}
fallback_hint = "\n⚠️ 之前有 fallback 执行,请调 API 检查任务当前状态和已有产出,确认是否已完成。" if retry_field == "retry_count" else ""
message = self.RETRY_PROMPT.format(
project_id=task_info.get("project_id", ""),
task_id=task_id or "",
title=task_info.get("title", ""),
retry_count=count,
max_retries=self.max_retries,
api_host=self.api_host,
api_port=self.api_port,
agent_id=agent_id,
fallback_hint=fallback_hint,
)
project_id = task_info.get("project_id", "")
is_mail = project_id == "_mail"
if is_mail:
# Mail 续杯:精简模板,不含状态转换指令
must_haves = task_info.get("must_haves", "{}")
try:
meta = json.loads(must_haves) if must_haves else {}
except Exception:
meta = {}
message = MAIL_RETRY_PROMPT.format(
from_agent=meta.get("from", "unknown"),
title=task_info.get("title", ""),
retry_count=count,
max_retries=self.max_retries,
)
else:
# Task 续杯:标准模板
fallback_hint = "\n⚠️ 之前有 fallback 执行,请调 API 检查任务当前状态和已有产出,确认是否已完成。" if retry_field == "retry_count" else ""
message = self.RETRY_PROMPT.format(
project_id=project_id,
task_id=task_id or "",
title=task_info.get("title", ""),
retry_count=count,
max_retries=self.max_retries,
api_host=self.api_host,
api_port=self.api_port,
agent_id=agent_id,
fallback_hint=fallback_hint,
)
# 续杯 spawncounter 保持占用,直到 max_retries 或最终完成时 release
# session 策略:原始是 main session (session_id=None) 时,retry 也用 main session