fix: retry Agent Step2 once when first write attempt fails
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -125,10 +125,20 @@ def run_agent_workflow(
|
||||
trends = analyze_trends(llm_input, date_str=date_str)
|
||||
if not trends:
|
||||
return None
|
||||
return write_wecom_report(
|
||||
md = write_wecom_report(
|
||||
llm_input,
|
||||
trends,
|
||||
date_str=date_str,
|
||||
time_str=time_str,
|
||||
updated=updated,
|
||||
)
|
||||
if md is None:
|
||||
logger.warning("Agent Step2 首次失败,重试一次")
|
||||
md = write_wecom_report(
|
||||
llm_input,
|
||||
trends,
|
||||
date_str=date_str,
|
||||
time_str=time_str,
|
||||
updated=updated,
|
||||
)
|
||||
return md
|
||||
|
||||
@@ -53,3 +53,33 @@ def test_write_wecom_report_extracts_markdown_block(monkeypatch):
|
||||
assert md is not None
|
||||
assert md.startswith("📰")
|
||||
assert "正文" in md
|
||||
|
||||
|
||||
def test_run_agent_workflow_retries_step2(monkeypatch):
|
||||
import daily.agent_workflow as agent
|
||||
|
||||
calls = {"n": 0}
|
||||
|
||||
def fake_llm(system, user):
|
||||
if '"trends"' in user:
|
||||
calls["n"] += 1
|
||||
if calls["n"] == 1:
|
||||
raise RuntimeError("Bridge request timed out")
|
||||
return "📰 **早报 · 2026-07-03**\n\n重试成功"
|
||||
return json.dumps(
|
||||
{"headline": "h", "opening": "o", "themes": [], "top_picks": [], "signals": []},
|
||||
ensure_ascii=False,
|
||||
)
|
||||
|
||||
monkeypatch.setattr(agent, "llm_chat", fake_llm)
|
||||
|
||||
md = agent.run_agent_workflow(
|
||||
{"date": "2026-07-03"},
|
||||
date_str="2026-07-03",
|
||||
time_str="09:30 (UTC+8)",
|
||||
updated="2026-07-02",
|
||||
)
|
||||
|
||||
assert md is not None
|
||||
assert "重试成功" in md
|
||||
assert calls["n"] == 2
|
||||
|
||||
Reference in New Issue
Block a user