智能体问题:可靠性与中途崩溃
智能体的"半途而废"之痛
写代码的人都知道——程序崩溃不可怕,可怕的是崩溃后状态全丢,只能从头再来。
智能体面临的就是这个问题。一个 20 步的自动化任务,执行到第 15 步时 LLM API 超时了,所有中间状态消失。下次运行从第 1 步重新开始,前面的 14 步白做了。如果有副作用(已经发了一封邮件、已经创建了一条数据库记录),那就更麻烦——重做会导致重复操作。
Temporal 的技术博客 2026 年 4 月发表了一篇引起广泛共鸣的文章,核心观点是:AI 可靠性是一个十年前就该解决、现在仍然只解决了一半的问题。我们应该用基础设施手段而非更好模型来解决它。
为什么智能体会中途崩溃?
原因一:LLM 推理本身就是不稳定的
传统软件的执行路径是确定性的——给定相同输入,永远走同一条路。LLM 不是。每一次推理都是一次概率采样,天生带有不确定性:
- API 超时:模型推理慢时,HTTP 请求可能超时中断
- Token 限制:上下文窗口满了,前面的轮次被截断
- Rate Limit:API 调用频率受限,被 429 返回
- 服务降级:高峰期模型响应质量下降
- 随机中断:GPU 集群节点切换、负载均衡导致连接中断
这些问题不是偶尔发生的,在大规模生产环境中是常态。
原因二:智能体状态是"内存态"的
大多数 Agent 框架把执行状态存在内存中:
# 典型的 Agent 循环
state = initial_state
for step in plan:
state = llm_call(step, state) # state 在内存
state = tool_call(step, state) # 一旦进程挂了,state 全丢
传统软件有数据库保驾护航——应用挂了重启后数据还在。Agent 框架呢?进程一死,所有中间推理、工具返回、上下文积累全部消失。
原因三:长链路任务的脆弱性
智能体任务越复杂,包含的步骤越多,执行成功率呈指数下降:
单步成功率 95%
10 步任务成功率: 0.95^10 = 59.9%
20 步任务成功率: 0.95^20 = 35.8%
50 步任务成功率: 0.95^50 = 7.7%
即使每步有 95% 的成功率(这已经是优秀的表现),一个 20 步任务就有近 2/3 的概率在某步失败。而大多数真实业务场景不止 20 步。
智能体问题:多 Agent 协调
一个人干不了所有活
单个智能体再强,也有能力边界。它不可能同时是代码专家、财务分析师、法律顾问和设计师。于是多 Agent 协作成为自然选择——让不同专长的 Agent 各司其职,协同完成复杂任务。
听起来很美好,实战中却是一地鸡毛。
Medium 上有一篇被广泛引用的文章,标题就很直白:《Multi-Agent AI 的黑暗心理学:30 种能摧毁你整个系统的失败模式》。30 种可能是夸张了,但核心观点不虚——多 Agent 系统的复杂度不是线性增长,而是指数增长。2 个 Agent 的协调问题比 1 个 Agent 多不止一倍。
三种协作架构
先理清多 Agent 协作有哪几种模式,再分析各自的问题。
模式一:Orchestrator-Worker(中心调度)
一个"主管" Agent 负责理解任务、分解子任务、分派给专业 Worker Agent,最后汇总结果。
[Orchestrator] → 分派 → [代码 Agent]
→ 分派 → [财务 Agent]
→ 分派 → [设计 Agent]
← 汇总 ← 各 Agent 结果
优点:逻辑清晰、责任划分明确 缺点:Orchestrator 成为单点瓶颈——它既要理解全局,又要管理分发,还要处理冲突
模式二:Pipeline(流水线)
Agent 按照固定顺序串联执行,前一个的输出是后一个的输入。
[需求分析 Agent] → [设计 Agent] → [编码 Agent] → [测试 Agent] → [部署 Agent]
优点:简单、可预测 缺点:无反馈回路——如果测试 Agent 发现问题需要返回设计阶段,流水线很难回溯
智能体问题:工具调用失败
当智能体的"手"不听使唤
如果说幻觉是智能体"脑子"的问题,那工具调用失败就是"手脚"的问题。智能体不仅要思考,还要行动——调用 API、查询数据库、操作文件系统。而但凡涉及外部系统交互,失败的维度比纯文本幻觉要多得多。
Arize AI 2026 年对生产环境智能体的故障分析指出:工具相关失败占 Agent 异常的 40% 以上,其中最危险的不是"调用失败"本身,而是失败后的错误处理——智能体对错误的理解和处理能力,往往比工具调用本身更不可靠。
三大失败模式
模式一:静默错误——最危险的失败
工具返回了错误信息,但智能体没有正确解读,把错误响应当做正常结果继续推理。
典型场景
// 智能体调用天气 API
{"tool": "get_weather", "arguments": {"city": "北京", "date": "2026-07-01"}}
// API 返回错误
{"error": "city_not_found", "message": "City name must be in English: Beijing"}
// 智能体把 json 当成了天气数据继续推理
"根据返回的数据,北京7月1日的湿度和 error 字段显示..."
这比调用直接报错更危险——至少报错时智能体知道出错了,还能重试。静默错误时,智能体浑然不知,把垃圾数据当成金子继续加工。
为什么会发生?
- 错误格式不统一:不同 API 的错误响应结构不同(HTTP 状态码、JSON error 字段、HTML 错误页……),智能体难以用统一逻辑识别
- Prompt 缺少错误处理指令:很多人在 system prompt 里只写了"使用 XX 工具查询",没写"如果工具返回错误,你应该……"
- 模型倾向"继续完成任务":遇到异常数据时,模型的训练倾向是给用户一个答案,而不是停下来讨论 API 报错
模式二:参数构造错误——最常见的失败
智能体理解了要调什么工具,但构造参数时出错。
常见错误类型
- 格式错误:日期传
2026/07/01而 API 要2026-07-01 - 类型错误:传字符串
"5"而 API 要整数5 - 枚举错误:传
"medium"而有效值只有["low", "mid", "high"] - 遗漏必填参数:忘了传
currency字段 - 语义错误:传了合法格式但语义不对,比如把
page_size=100传给了限制最大 50 的分页接口
根因分析
模型对 API 的理解来自 prompt 中的工具描述(Function Schema)。如果描述不够精确——比如某个参数的合法值只写了 string 没有枚举——模型就只能"猜"。
智能体问题:幻觉与事实错误
幻觉:智能体最顽固的问题
如果只能用一个词概括当前 AI 智能体最致命的问题,行业里多数人会选"幻觉"(Hallucination)。通用大模型写诗写周报文采斐然,但让它分析"上季度 A 产品线毛利率下降的原因",它可能编造一串子虚乌有的数据,还附上看起来很专业的百分比。更糟糕的是——语气越自信,越难被非专业用户识破。
Fiddler AI 2026 年的报告给出了一个残酷的数字:生产环境智能体失败率 70%-95%,幻觉是头号杀手。BetterYeah 的调研发现,68% 的企业在 AI 落地中遭遇幻觉问题,其中 32% 因错误累积导致系统性风险。
这不是"模型还不够聪明"的问题。这是智能体的结构性挑战。
从单步错误到幻觉累加
单步幻觉:模型不确定时仍"自信输出"
LLM 的核心训练目标是"合理续写",而不是"如实回答"。当训练数据中缺少相关信息时,模型不会说"我不知道"——它会生成一段看起来连贯但实际上没有事实支撑的文字。
这是因为:
- 训练数据偏差:互联网文本中,自信断言远多于谦虚声明"我不确定"
- 采样机制:模型采样概率最高的 token 序列,不受事实约束
- 缺乏不确定性建模:模型内部没有显式的"置信度"信号传递给输出层
结果:模型在信息不足时的行为是"编造",而非"沉默"。
多步累加:小偏差滚雪球
当智能体执行多步任务时,单步幻觉的破坏力被指数放大。看一个典型场景:
步骤 1:检索客户信息 → 幻觉:编造了不存在的客户 ID
步骤 2:用该 ID 查询订单 → 返回空结果
步骤 3:智能体"推断"该客户是新客户 → 编造注册时间
步骤 4:基于虚假注册时间做客户画像分析 → 输出错误结论
步骤 5:基于错误结论撰写运营建议 → 决策偏离
每一步都"合乎逻辑",但起点就是一个虚构的事实。这就是幻觉累加效应——错误在推理链中不断传播和放大,最终输出和现实南辕北辙。
2025 年 Q1 某金融机构的案例就是典型:智能体在财报分析中第一次幻觉了一个营收数字,后续所有财务比率、趋势判断、投资建议全部基于这个错误数字展开。表面看报告专业完整,实际结论完全失真。
为什么传统 NLP 时代的幻觉没那么致命?
传统 QA 系统也幻觉,但影响范围有限——一次问答的错误不影响下一次。智能体截然不同:它是一个持续运行的闭环系统,前一步的输出是后一步的输入。一个幻觉 token 就像生物学中的基因突变,在后续"转录"过程中被不断放大。
三类幻觉的根源
1. 事实性幻觉
模型编造不存在的事实。典型表现:
智能体问题:治理与问责
当智能体有了"自主权",谁为它的行为负责?
前几篇文章讨论的问题——幻觉、工具调用失败、崩溃、协调混乱——都是技术可解的。但有一类问题超越了技术范畴:当智能体越来越多地代替人做决策和行动时,谁来为后果负责?
McKinsey 2026 年 AI 信任成熟度调研覆盖了数千家企业,核心发现是:企业对 AI 的信任没有跟上 AI 能力的增长。随着 Agent 从"辅助工具"走向"自主行动者",治理和问责缺位成了最紧迫的系统性风险。
这不是"以后再考虑"的问题。2025 年已经有多起因 AI Agent 自主行动导致的业务事故:
- 客服 Agent 自作主张给用户全额退款
- 营销 Agent 向错误人群发送敏感促销
- 数据处理 Agent 把内部数据写入了外部系统
每一件事的直接原因都是技术层面的(幻觉、工具错误),但根本原因是治理框架缺失——没有人为 Agent 的行动设定边界。
四大治理挑战
挑战一:权限边界模糊
核心问题
智能体能干什么?哪些决策它可以自己做?哪些必须请示?
大多数 Agent 系统根本没有清晰定义权限边界。系统 prompt 里写了"帮用户处理订单",但没有写:
- 你可以取消订单吗?
- 你可以修改价格吗?
- 你可以给超过 100 元的订单退款吗?
- 你可以查看其他用户的数据吗?
为什么重要
权限不清时,Agent 的两种倾向都会出问题:
- 过度谨慎:什么都问用户,失去自动化的意义
- 过度激进:什么都自己做,出了事不可控
现实中的 Agent 往往走向后者——因为"帮用户解决问题"的指令天然偏向行动,而非克制。
类别
权限至少需要从三个维度定义:
- 数据维度:能访问什么数据?能读哪些?能写哪些?
- 操作维度:能执行哪些操作?取消订单 vs 修改地址 vs 查看物流?
- 金额维度:操作有财务影响时,上限在哪里?
挑战二:审计追踪缺失
核心问题
Agent 做了一个决策,事后能否完整回溯"它为什么这样做"?
目前多数 Agent 系统的回答是:不能。
- 推理过程只存在于 LLM 的上下文中,运行结束后消失
- 工具调用的参数和返回值可能记录了,但"为什么选择调这个工具"没有记录
- 多步推理中,前面步骤的中间结论影响了后面决策,但这些因果链没有被显式记录
后果
没有审计追踪 = 没有问责基础。
Hermes-lite 裁剪实战:7 类典型坑与解法
上一篇文章介绍了 Hermes-lite 的整体裁剪思路。这篇深入每一类实际踩过的坑, 把"为什么会遇到"和"怎么解"都说清楚。
一、路径迁移坑
从 .hermes/ 迁到 .hermes-lite/ 后,不是只改 HERMES_HOME 就完事。
踩到的点
.skills_prompt_snapshot.json里残留旧.hermes/路径web_search/SKILL.md硬编码了旧路径- 技能、工具、memory、config、sessions、workspace 各自缓存旧路径
- systemd 环境变量、进程环境、配置文件、技能正文需要一起排查
经验
- 迁移后
grep全目录旧路径:
grep -r "\.hermes/" /home/user/.hermes-lite/ --include="*.json" --include="*.md" --include="*.yaml" -l
- 技能快照要清理重建,不能复用旧缓存
- systemd 重启不是可选项 — 长进程内缓存会保留旧状态
systemctl restart hermes-lite
systemctl status hermes-lite # 确认新 PID
二、技能裁剪坑
一开始容易只看磁盘上有多少 SKILL.md,但真正可用数量要看运行时过滤后的结果。
踩到的点
- 磁盘上 67 个
SKILL.md,实际 gateway/slash 可见 65 个 kanban-orchestrator/worker因为environments: [kanban]被过滤,这是预期不是坏了_find_all_skills(skip_disabled=True)这个参数名容易误读,实际是返回全部技能,默认才过滤 disabledweb_search技能存在,但 Tavily key 缺失,会变成"看得到但用不了"
经验
判断技能可用性要看三层:
Hermes-lite 裁剪指南:在 1GB VPS 上跑轻量 AI Agent
为什么要裁剪
完整版 Hermes Agent(Nous Research)功能丰富:多平台网关、浏览器自动化、语音 TTS/STT、多 Agent 协作、Kanban 看板等。但这些功能对资源要求不低——在我的测试里,完整配置更适合至少 2GB 内存的机器。
我有一台 GCP e2-micro(2 vCPU / 954MB RAM),想用它跑一个 24/7 在线的 AI Agent 接入飞书。完整版装不下,于是有了这个裁剪实践。
三阶段渐进式裁剪
裁剪不是一步完成的,而是三阶段递进:
第一阶段:本地 Codex 完成初期核心裁剪
在本地电脑上,利用 Codex(OpenAI) 作为辅助分析工具,对完整版 Hermes 进行全面"解剖":
- 逐一扫描
~/.hermes/目录结构,识别每个模块的职责 - 分析 67 个技能的依赖关系,标记哪些是核心链路的、哪些是边缘功能
- 梳理 config.yaml 中每个配置项的实际作用,搞清楚"关掉会怎样"
- 输出一份裁剪清单:哪些 toolset 可以禁、哪些 skill 可以删、哪些配置可以收紧
这一阶段的核心价值:把"能不能关"这个判断做对。Codex 帮助理解了代码间的依赖关系,避免直接关某个功能导致连锁崩溃。
第二阶段:大 VPS 上跑完整版 + 压测验证
在一台大内存 VPS 上安装完整版 Hermes,作为"对照基准":
- 记录完整版的实际内存占用(idle / 高负载两种状态)
- 逐个关闭非核心功能,观察内存变化和稳定性
- 跑压测:模拟长时间运行、多轮对话、工具调用密集场景
- 确认裁剪后系统在资源充足环境下依然稳定
这一阶段的目的:建立性能基线 + 验证裁剪组合的安全性。在大 VPS 上翻车无所谓,在小 VPS 上翻车就是服务宕机。