auto-sync: 2026-05-25 19:58:58
This commit is contained in:
+31
-13
@@ -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,
|
||||
)
|
||||
|
||||
# 续杯 spawn(counter 保持占用,直到 max_retries 或最终完成时 release)
|
||||
# session 策略:原始是 main session (session_id=None) 时,retry 也用 main session
|
||||
|
||||
Reference in New Issue
Block a user