<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>超时 on AI 观察</title><link>https://ai.wujiong.cc/tags/%E8%B6%85%E6%97%B6/</link><description>Recent content in 超时 on AI 观察</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 21 Oct 2026 18:19:00 +0800</lastBuildDate><atom:link href="https://ai.wujiong.cc/tags/%E8%B6%85%E6%97%B6/index.xml" rel="self" type="application/rss+xml"/><item><title>Agent 工具调用超时与重试：可落地的模式</title><link>https://ai.wujiong.cc/posts/2026-10-21-ai-agent-tool-timeout-retry-pattern/</link><pubDate>Wed, 21 Oct 2026 18:19:00 +0800</pubDate><guid>https://ai.wujiong.cc/posts/2026-10-21-ai-agent-tool-timeout-retry-pattern/</guid><description>&lt;p&gt;&lt;strong&gt;超时重试不是「失败了再喊一次」，而是先分清错误类型，再与幂等键一起设计。&lt;/strong&gt; 可重试的通常是网络抖动与限流；不可盲目重试的是业务拒绝、校验失败与已成功但响应丢失的不确定性——后者更依赖幂等。&lt;/p&gt;
&lt;h2 id="决策顺序"&gt;决策顺序&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;为每次工具调用设明确超时。&lt;/li&gt;
&lt;li&gt;对超时与 5xx / 限流：有限次退避重试。&lt;/li&gt;
&lt;li&gt;对 4xx 业务错误：不要空转重试，返回给规划层改参数。&lt;/li&gt;
&lt;li&gt;所有具有副作用的调用带幂等键（见相关幂等文）。&lt;/li&gt;
&lt;li&gt;记录每次尝试的错误码与耗时，便于调参。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="示意伪代码虚构示意"&gt;示意伪代码（虚构示意）&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;for attempt in 1..N:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; result = call_tool(args, idempotency_key=K, timeout=T)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; if success: return result
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; if not retryable(error): raise
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sleep(backoff(attempt))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;escalate_to_human_or_planner()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="提示词设计评审用"&gt;提示词（设计评审用）&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;请审查我的工具重试策略：哪些错误可重试、最大次数、退避、是否与幂等键绑定、超时如何设置。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;指出可能导致重复副作用的路径。不要编造基准数字。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;【策略描述】&amp;lt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="实践提醒"&gt;实践提醒&lt;/h2&gt;
&lt;p&gt;把重试参数做成可配置项，并在仪表盘统计重试率与最终失败率。若某工具重试率突然升高，先查下游健康再调大次数。人工升级路径要在提示或工作流里写清，避免智能体空转耗尽配额。&lt;/p&gt;</description></item><item><title>Agent 工具超时处理：截止、取消与用户可见降级</title><link>https://ai.wujiong.cc/posts/2026-10-19-agent-tool-timeout-handling/</link><pubDate>Mon, 19 Oct 2026 18:08:00 +0800</pubDate><guid>https://ai.wujiong.cc/posts/2026-10-19-agent-tool-timeout-handling/</guid><description>&lt;p&gt;&lt;strong&gt;超时策略是产品体验，也是正确性。&lt;/strong&gt; 工具调用卡住时，Agent 若只会「再试一次」，可能把支付、发信等副作用打成双份。&lt;/p&gt;
&lt;h2 id="分层设置"&gt;分层设置&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;层&lt;/th&gt;
 &lt;th&gt;建议&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;单次工具 HTTP&lt;/td&gt;
 &lt;td&gt;明确 timeout + 可取消&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Agent 步级&lt;/td&gt;
 &lt;td&gt;单步墙钟上限&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;整任务&lt;/td&gt;
 &lt;td&gt;全局预算，到点总结已得结果&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="处理剧本"&gt;处理剧本&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;可安全重试&lt;/strong&gt;（只读查询）：有限次退避，参见 &lt;a href="https://ai.wujiong.cc/posts/2026-10-19-agent-retry-backoff-checklist/"&gt;重试退避清单&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;有副作用&lt;/strong&gt;：超时后先查幂等键/状态，勿盲重放；见 &lt;a href="https://ai.wujiong.cc/posts/2026-10-19-agent-idempotent-tool-calls/"&gt;幂等工具调用&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对用户&lt;/strong&gt;：说清「哪一步超时、已保留什么、可选改走手工」。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="提示策略片段"&gt;提示/策略片段&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;若工具在 {{N}}s 内未返回：
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- 停止等待该调用
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- 记录 tool_name、timeout、是否已知副作用
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- 若只读：可按退避重试至多 {{K}} 次
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- 若写操作：改为 status_check 工具，禁止重复 submit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- 向用户输出降级说明，不要假装成功
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="与结果截断"&gt;与结果截断&lt;/h2&gt;
&lt;p&gt;超时和「返回过长被截断」不同，后者见 &lt;a href="https://ai.wujiong.cc/posts/2026-10-19-agent-tool-result-truncation/"&gt;工具结果截断&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>