fix: PM审核循环加auto-inject兜底,最后两轮强制review_*决策,防审核超时死循环

This commit is contained in:
ymq 2026-08-15 02:04:41 +08:00
parent 14a42aac7b
commit 099c283562

View File

@ -840,6 +840,13 @@ async def pm_review_run(project_id, agent_id=None, model_name=None):
"UPDATE pipeline_tasks SET updated_at=NOW() WHERE id=${tid}$ AND state='review'",
{"tid": task_id})
await sor.sqlExe("COMMIT", {})
# auto-inject 兜底:最后两轮强制要求给出 review_* 决策,禁止再 tool_call
# 否则 deepseek 会一直读文件/git_status 耗尽 5 轮 → 审核超时 → 打回重跑 → 死循环
if turn >= 3:
msgs.append({"role": "user", "content":
"已检查足够信息。现在必须立即输出最终决策 JSON"
"只能是 review_approve / review_reject / review_complete 三者之一,"
"禁止再调用任何工具。"})
try:
raw = await llm_call_msgs(msgs, model=model_name, temperature=0.3)
except Exception as e: