21. 故障排除
以症状为索引的参考。对每个问题:看到什么、最可能的原因、先试什么。
21.1 智能体不回复
可能 —— 网关挂了、通道 adapter 坏了、模型凭证丢失或被轮换走。
怎么查
hermit doctor—— 看到网关的基本连通性。- Manage → Channels —— 通道是否启用,有没有 missing-secret 警告?
- 试试 Web UI:如果 Web 能用、Telegram 不行,问题在通道而不是智能体。
- Observe 选项卡 —— 会话里是不是有模型错误?
21.2 工具调用反复失败
可能 —— 凭证过期、MCP 服务崩了、参数 schema 漂移、策略 deny。
怎么查
- 在 Observe 展开失败的调用。错误信息通常很具体。
- 与凭证有关 → 轮换密钥,重启 MCP 服务(
hermit mcp disable+enable)。 - 与 schema 有关 → 看看 MCP 服务版本是不是变了。
- 与 deny 有关 → 看 Policy,可能有规则没明显提示地把它拦下了。
智能体 runner 在连续 15 次工具失败后会中止本轮以防止死循环;这次中止本身也会出现在 Observe 里。
21.3 记忆没记住
可能 —— 智能体没把它判断为可持久化事实,或者记忆工具被策略 deny。
怎么查
- 问智能体:“你记得关于 <主题> 的什么?” 空就是没存下。
- 显式重试:“请记住 <事实>。” 最可靠的强制写入方式。
- 看策略里有没有规则在拦
memory_*工具。
21.4 新建的任务从不触发
可能 —— cron 时区不对、到点时网关挂了、任务建在了错的智能体上。
怎么查
hermit schedules list --agent <id>—— 确认任务在对的智能体上。- 看 cron —— UTC 是默认;如果你写的是本地时间表达式,它会按对应的 UTC 时间触发。
- 该智能体的 Observe —— 在预期时间出现过会话吗?
21.5 某人能做不该做的事
可能 —— 角色错了(误升级),或策略缺规则。
怎么查
- 管理界面 Users 选项卡,或以 owner 调
user_list—— 确认他的角色。 hermit config --agent <id> policy list—— 对他角色的相应 deny 规则在不在?- 用身份模拟来测:在 Web 上以他的身份登录(或用一个测试 guest 身份),复现。
21.6 Web UI 显示的是旧数据
可能 —— 浏览器缓存,或者网关重启后构建不匹配。
怎么查
- 强制刷新(Cmd-Shift-R / Ctrl-Shift-R)。
- 如果 UI 来自过时构建(运维刚升级),可能需要让运维重建静态资源。
21.7 CLI 说”未认证”
可能 —— 本地配置里没有这个网关的凭证,或者网关 URL 不对。
怎么查
- 再跑
hermit setup—— 重新填网关 URL 和 token。 hermit doctor—— 应当全绿。
21.8 我上传的文件不见了
可能 —— 你上传到了另一个智能体,或者沙箱路径与你预期不一致。
怎么查
- 问智能体:“列出你工作区里的文件。”
- 确认你上传到的智能体和你现在问的是同一个。按智能体隔离是彻底的。
21.9 智能体在不同会话之间自相矛盾
可能 —— 一个会话里更新了记忆而另一个没,或者两条记忆条目冲突。
怎么查
- 问:“你关于 <主题> 记得什么?把所有相关条目都列出来。”
- 让它整合:“这两条冲突。正确的是 X。请相应更新。“
21.10 什么时候转交给运维
- 跨智能体都持续存在的网关级错误。
- 网关级密钥(模型 provider key)需要轮换。
- 需要安装新的 MCP 服务。
- 工作区存储满了。
- 备份、升级、证书续签 —— 用户层之下的事。
21.11 指引
- 上面提到的任何特性的具体章节都能通过 目录 找到。
- 更高层的常见问题 → 第 22 章 · FAQ。