From 28b505c9e63504fc652fe763a7c2bb70f8d4fb83 Mon Sep 17 00:00:00 2001 From: NathanAlex7 <18898599977@163.com> Date: Tue, 1 Sep 2026 17:05:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(xingbang):=20agent=20=E5=86=85=E7=BD=AE?= =?UTF-8?q?=E7=BD=91=E5=85=B3=E8=BF=87=E8=BD=BD(503)=E6=8C=87=E6=95=B0?= =?UTF-8?q?=E9=80=80=E9=81=BF=E9=87=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 公司 DeepSeek 网关短时 CPU 过载返回 503, 五个智能体连续失败。 为每个 agent 增加 4 次指数退避重试(5s/10s/20s/40s), 提升流水线对限流波动稳健性。 --- .gitignore | 1 + backend/xingbang/agents.py | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e9c7a38..7ad9179 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ backend/xingbang_output/ backend/xingbang_evolution/ backend/diag_single_agent.py backend/run_full_workflow.py +backend/verify_offline.py diff --git a/backend/xingbang/agents.py b/backend/xingbang/agents.py index 2edecb2..df17504 100644 --- a/backend/xingbang/agents.py +++ b/backend/xingbang/agents.py @@ -114,8 +114,27 @@ class XingbangAgent: "system": self.spec.system_prompt[:500], "task": task[:300], }) - result = await agent.ainvoke({"messages": messages}) - final = self._extract_text(result) + import asyncio + max_retries = 4 + backoff = 5 # 初始等待秒 + last_err = None + for attempt in range(max_retries): + try: + result = await agent.ainvoke({"messages": messages}) + final = self._extract_text(result) + break + except Exception as e: # noqa + last_err = e + msg = str(e) + # 仅对 503/限流 重试 + if "503" in msg or "overloaded" in msg or "429" in msg: + if attempt < max_retries - 1: + await asyncio.sleep(backoff * (2 ** attempt)) + continue + else: + raise # 非限流错误立即失败 + else: + raise RuntimeError(f"网关过载重试后仍失败: {last_err}") # 保存产出到文件 file_path = None if self._output_dir: