<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: wzg0911</title>
    <description>The latest articles on DEV Community by wzg0911 (@wzg0911).</description>
    <link>https://dev.to/wzg0911</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4005992%2F436fb889-7e3d-4732-8d08-a4502b6e6bc0.png</url>
      <title>DEV Community: wzg0911</title>
      <link>https://dev.to/wzg0911</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wzg0911"/>
    <language>en</language>
    <item>
      <title>AI Agent 崩溃的根源与解法——从250个测试用例看Agent可靠性</title>
      <dc:creator>wzg0911</dc:creator>
      <pubDate>Sun, 28 Jun 2026 03:41:22 +0000</pubDate>
      <link>https://dev.to/wzg0911/ai-agent-beng-kui-de-gen-yuan-yu-jie-fa-cong-250ge-ce-shi-yong-li-kan-agentke-kao-xing-2j5e</link>
      <guid>https://dev.to/wzg0911/ai-agent-beng-kui-de-gen-yuan-yu-jie-fa-cong-250ge-ce-shi-yong-li-kan-agentke-kao-xing-2j5e</guid>
      <description>&lt;h2&gt;
  
  
  根因一：工具调用的非确定性
&lt;/h2&gt;

&lt;p&gt;Agent 的核心范式是"LLM 推理 → 选择工具 → 执行 → 观察结果 → 再推理"。这个链路里最脆弱的一环，是 LLM 选择工具这一步。&lt;/p&gt;

&lt;p&gt;同样的 prompt，同样的上下文，你跑 10 次可能拿到 8 种不同的 function call 组合。有时候它调了正确的工具但传错参数，有时候它觉得"要不我再想想"然后死循环，有时候它直接跳过工具调用了——因为它"认为"自己知道答案。&lt;/p&gt;

&lt;p&gt;我们在测试里见过一个典型案例：Agent 被要求"检查所有服务器的磁盘使用率"，它正确地调了 &lt;code&gt;list_servers&lt;/code&gt;，拿到 42 台机器后，&lt;strong&gt;只检查了前 3 台的磁盘，然后说"其余的都正常"&lt;/strong&gt;。它编的。&lt;/p&gt;

&lt;p&gt;这是 LLM 的根本特性，不是 bug。你不可能靠 prompt engineering 完全消除。&lt;/p&gt;

&lt;h3&gt;
  
  
  解法：幂等守卫 (Idempotency Guard)
&lt;/h3&gt;

&lt;p&gt;ARK Trust 的做法是给每个工具调用加一层校验层：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;参数校验&lt;/strong&gt;：独立于 LLM 的 schema 校验，不依赖 prompt 里的"请确保参数正确"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;调用去重&lt;/strong&gt;：如果 LLM 连续两次发出完全相同的 function call，守卫会拦截并追问"你是认真的吗？"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;关键操作拦截&lt;/strong&gt;：标记为 &lt;code&gt;destructive&lt;/code&gt; 的工具（delete、truncate、rm）强制走 approval 流程，绕不过去&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;这层校验跑在 LLM 推理之外，不消耗 token，延迟增加不到 50ms。&lt;/p&gt;




&lt;h2&gt;
  
  
  根因二：错误传播链
&lt;/h2&gt;

&lt;p&gt;Agent 的另一个典型死法是"一步错、步步错"。&lt;/p&gt;

&lt;p&gt;比如一个数据查询 Agent，第一步调 API 超时了，LLM 拿到的 tool result 是空字符串。它不知道这是"超时了"还是"真的没有数据"，于是基于空结果继续推理，得出天知道什么结论。到第四步的时候，整个上下文已经被错误信息污染，LLM 自己也开始胡言乱语了。&lt;/p&gt;

&lt;p&gt;我们管这种情况叫&lt;strong&gt;错误传播链 (Error Cascade)&lt;/strong&gt;。250 个测试用例里，约 34% 的失败跟它有关。&lt;/p&gt;

&lt;p&gt;传统的处理方式是靠 LLM 自己的纠错能力——"请你检查一下前面的推理是否正确"。不靠谱。让 LLM 检查自己的错误，就像让醉汉给自己做清醒测试。&lt;/p&gt;

&lt;h3&gt;
  
  
  解法：熔断器 (Circuit Breaker)
&lt;/h3&gt;

&lt;p&gt;ARK Trust 在 Agent 的执行器上加了熔断机制：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;连续失败计数&lt;/strong&gt;：同类工具连续 3 次返回异常（超时/4xx/parsing error），自动熔断，暂停执行&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;上下文污染检测&lt;/strong&gt;：监控 tool result 的语义一致性，如果某次返回跟历史结果差异过大（用 embedding 做相似度比对），标记为可疑并请求 LLM 重新评估&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;优雅降级&lt;/strong&gt;：熔断不是直接 crash，而是进入 safe mode——只允许读操作，禁用所有写操作，然后通知用户&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;这套机制在测试里把级联失败的概率从 34% 压到了 7%。&lt;/p&gt;




&lt;h2&gt;
  
  
  根因三：上下文窗口的隐性退化
&lt;/h2&gt;

&lt;p&gt;这个根因最隐蔽，也最难排查。&lt;/p&gt;

&lt;p&gt;Agent 跑长任务的时候，每步的 tool result 都会追加到上下文里。跑个十几步之后，对话历史已经塞满了各种日志、错误栈、中间结果。LLM 的注意力被稀释，开始忽略早期的重要信息——比如用户最初给的约束条件。&lt;/p&gt;

&lt;p&gt;我们的测试里有个案例特别典型：Agent 被要求"只处理 staging 环境的告警"。前 5 步它严格遵守，到第 12 步的时候它拿到了 production 环境的告警，顺手就给处理了。不是因为 prompt 写错了，是因为那个约束在第 1 条消息里，而第 12 步时上下文已经膨胀到 8000 token，LLM 的 attention 根本没覆盖到那条约束。&lt;/p&gt;

&lt;p&gt;这就是&lt;strong&gt;上下文窗口的隐性退化&lt;/strong&gt;——不是窗口不够大，是注意力分配不均匀。&lt;/p&gt;

&lt;h3&gt;
  
  
  解法：预测保护 (Predictive Guard)
&lt;/h3&gt;

&lt;p&gt;ARK Trust 的做法是在 Agent 执行每一步之前做一次轻量级的意图预测：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;用一个小模型（不依赖大 LLM）对 Agent 即将执行的动作做分类：safe / risky / prohibited&lt;/li&gt;
&lt;li&gt;分类依据包括：当前 action 的 tool 类型、目标环境、是否匹配原始约束、历史执行轨迹&lt;/li&gt;
&lt;li&gt;如果判定为 risky 或 prohibited，拦截并注入一条醒目的 warning 到上下文里&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;这相当于在执行层面加了一个"不信任 LLM 的下次推理"的保险。&lt;/p&gt;




&lt;h2&gt;
  
  
  开源版 vs Pro 版
&lt;/h2&gt;

&lt;p&gt;ARK Trust 的核心三个模块——幂等守卫、熔断器、预测保护——都已经在 &lt;strong&gt;&lt;a href="https://github.com/wzg0911/ark" rel="noopener noreferrer"&gt;GitHub 开源&lt;/a&gt;&lt;/strong&gt;，可以直接集成到 LangGraph / CrewAI / AutoGen 项目里。几个命令就能挂上：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;arktrust
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;arktrust&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ArkAgent&lt;/span&gt;

&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ArkAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;backend&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;langgraph&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[...],&lt;/span&gt;
    &lt;span class="n"&gt;guard_mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;strict&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;  &lt;span class="c1"&gt;# 开启全部三个保护模块
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;开源版提供了基础的保护能力，够应对大多数场景。&lt;/p&gt;

&lt;p&gt;Pro 版多了这些东西：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard&lt;/strong&gt;：实时看每个 Agent 的运行状态、失败率、熔断次数、上下文健康度&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;回放模式&lt;/strong&gt;：Agent 崩溃后可以逐 step 回放，精确到每个 tool call 的入参/出参和 LLM 的推理决策&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;团队协作&lt;/strong&gt;：多人共享 Agent 监控面板，自定义告警规则&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;私有部署&lt;/strong&gt;：支持离线环境，不需要连外网&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  写在最后
&lt;/h2&gt;

&lt;p&gt;AI Agent 目前最大的问题不是"不够聪明"，而是"不够可靠"。模型的能力在涨，但 Agent 的工程基础设施还没跟上。你不能指望一个可能有 13% 概率出错的系统去执行关键任务。&lt;/p&gt;

&lt;p&gt;我们做 ARK Trust 的思路很简单：&lt;strong&gt;不信任 LLM，但给它兜底&lt;/strong&gt;。模型负责聪明，框架负责安全。&lt;/p&gt;

&lt;p&gt;如果你也在踩 Agent 可靠性的坑，开源版可以直接用。如果你需要 Dashboard、回放、团队协作这些能力——&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;扫码支付 ¥29，获取 Pro 版 Dashboard 完整访问权限。&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://wzg0911.github.io/ark/pro.html" rel="noopener noreferrer"&gt;开通 ARK Pro&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;标签：&lt;code&gt;#ai&lt;/code&gt; &lt;code&gt;#agent&lt;/code&gt; &lt;code&gt;#opensource&lt;/code&gt; &lt;code&gt;#reliability&lt;/code&gt; &lt;code&gt;#devops&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>devops</category>
      <category>python</category>
    </item>
  </channel>
</rss>
