AI 解题机器人到底在"开卷"还是"闭卷"?一次 RAG 架构的 Debug 纪实

核心观点
:你给 AI 建了知识库,不代表它真的会去翻。
9 个 Skill、4.7G 教材、完整的 RAG 架构——但 AI 解题时一次都没有调用知识库。
一、问题:你喂了 4.7G 教材,AI 真的会看吗?
上一篇我搭建了一个 K12 知识库——把小学到高中的教材、教辅、课标、题库全部结构化存入 Obsidian,总量 4.7G。
目标很明确:让 AI 辅导机器人不再是”凭自己的训练数据答题”,而是先从知识库检索对应的考点、定理、解题方法,再基于检索结果给出解析。换句话说,让 AI 开卷考试。
搭建完成后,飞书机器人已经能正常接收题目截图、识别、解题、输出到 Obsidian。一切看起来运转良好。我连续用了好几道中考真题去做测试,几乎全对。



但我们不禁冒出一个问题:
它到底有没有去翻我的知识库?还是说,它只是在用自己的训练数据”裸跑”?
二、调取日志:一场”闭卷裸跑”的实锤
我们给 AI 升级了一套完整的”狙击式 RAG”工作流:
收到题目
→ Step 1: 提炼 2-3 个核心考点关键词
→ Step 2: 调用 search_files 搜索 10-converted/ 和 20-knowledge/(强制)
→ Step 3: 基于检索到的本地知识进行锚定推理
→ Step 4: 生成完整解析并写入 Obsidian
理论上,agent 的 tool call 日志里应该能看到 search_files 的身影。
我让 Claude调出了完整的 session 日志,逐行分析所有 tool call。
统计结果:
|
|
|
|---|---|
write_file |
|
patch |
|
vision_analyze |
|
execute_code |
|
search_files |
0 |
read_file |
0 |
skill_view |
0 |
诊断结果:闭卷裸跑。 全程没有任何知识库检索。AI 直接从自己的训练数据里调用了这道几何题的解法,然后写文件、交差。
4.7G 教材、9 个 Skill、完整的 RAG 架构——全部白搭。
三、第一枪:Skill 升级 + 强制重启
第一步,我升级了核心解题 Skill(k12-study)到 RAG v2.0:
- 强制前置检索
:解题前必须先 search_files,禁止闭卷裸跑 - 降级路径
:知识库无命中时,输出末尾自动标注降级提示 - 验证 SOP 增强
:双轨核对 + sympy 代码验证 + 反向验证 - 输出规范
:强制 8 个 Section(原题/答案/解析/验证/变式题/考点)
同时,我重启了 Hermes Gateway。原因很简单:Hermes 在会话启动时才加载 SKILL.md 到系统提示,修改后必须重启才能生效。
重启后的变化:
-
新会话 → 新的 system prompt → 加载了 v2.0 的 k12-study SKILL.md -
强制前置检索 SOP 生效 -
降级路径已配置 -
验证 SOP 增强
现在可以发一道新的图片题来测试了。如果 RAG 流程正常,agent 日志中应该能看到 search_files 调用。
四、第二枪:RAG 不生效,根因诊断
重启后再次检查日志——仍然 0 次 search_files。
升级生效了,但 RAG 不生效。系统提示里有 RAG 规则,agent 就是没去执行。
我深入分析了 session 的 system prompt 内容,发现关键线索:
System prompt 只包含 SOUL.md(人格设定),不包含 SKILL.md(工作流规则)。
也就是说,agent 看到的 system prompt 是这样的结构:
# 智育派·教研专家
(人格设定 + 工作规范 + 铁律)
(核心技能列表:k12-study、k12-search……)
## Skills (mandatory)
Before replying, scan the skills below.
If one clearly matches your task,
load it with skill_view(name) and follow its instructions.
问题出在这里:Hermes 的 Skill 系统是”懒加载”的。
-
SKILL.md 不会自动注入 system prompt -
System prompt 里只列了技能名字,让 agent “需要时调用 skill_view(name)加载” -
但 agent 从不主动调用 skill_view -
所以 k12-study SKILL.md 里的 RAG 四步 SOP,对 agent 来说完全不存在
13 次 tool call,0 次 skill_view。agent 根本没有加载过任何 Skill 的详细内容。
根因总结
RAG 规则写在 SKILL.md 里
→ Hermes 不自动注入 system prompt
→ 指令:scan skills → load with skill_view(name)
→ agent 从未调用 skill_view
→ RAG SOP 对 agent 完全不可见
→ agent 直接用 LLM 训练数据解题
不是 AI 不听话,是 AI 根本没看到规则。

五、修复:把 RAG 从”可选技能”变成”系统铁律”
修 Skill 没用,因为 Agent 不读 Skill。

唯一的修复路径:把 RAG 四步 SOP 直接写入 SOUL.md——这是 system prompt 的核心部分,每次会话启动都会加载。
我把原来分散在 SKILL.md 里的检索规则,浓缩成一段系统级铁律,直接注入 SOUL.md:
## 🔴 解题 SOP(收到题目时强制执行)
收到题目(文字或图片)后,严格按以下顺序执行,不得跳步:
Step 1 → 提炼考点关键词(2-3 个核心考点)
Step 2 → 狙击搜索(调用 search_files 搜索 10-converted/ 和 20-knowledge/)
Step 3 → 锚定推理(基于检索到的本地知识进行推理,套用本地定理/公式)
Step 4 → 规范输出(调用 write_file 保存完整解析)
铁律:禁止闭卷裸跑。收到题目后必须先调用 search_files 检索知识库。
这次不靠 agent “主动加载 Skill” 了——规则直接在 system prompt 里,agent 每次启动都看得到。

六、生效了!
SOUL.md 注入完成后,我重启 Gateway,重置 session,用一道文字题测试:
解方程 2x² - 5x + 3 = 0
我盯着日志。

结果:search_files 调用了 3 次。 RAG 四步 SOP 完整跑通。
具体搜索了什么:
第 1 次搜索:10-converted/ 目录
-
关键词: 一元二次方程|求根公式|因式分解 -
命中 5 个文件(课标 + 教材)
第 2 次搜索:20-knowledge/ 目录
-
关键词: 一元二次方程|求根公式|因式分解 -
命中 0 个文件(知识图谱还未覆盖初中数学)
第 3 次搜索:10-converted/教材/数学 目录
-
关键词: 一元二次方程 -
命中 204 条匹配,包含课标原文”能解简单的三元一次方程组”等
然后进入 Step 3:用 sympy 验证——解为 [1, 3/2],因式分解 (x-1)(2x-3),判别式=1。
最后 Step 4:写入完整解析到 Obsidian。
从”闭卷裸跑”到”开卷检索”,中间只差了一行 system prompt。

七、踩坑记录:这 3 个坑,帮你跳过
坑 1:Skill ≠ System Prompt
把规则写在 Skill 文件里 ≠ agent 会看到。Hermes 的懒加载机制意味着,除非 agent 主动调用 skill_view,否则 Skill 内容在运行时完全不可见。
教训:关键规则必须注入 system prompt 的核心部分(SOUL.md),不能依赖懒加载。
坑 2:依赖地狱
修复过程中发现飞书 WebSocket 连不上,日志报错 python-socks is required to use a SOCKS proxy。查了一圈发现 websockets v15 需要 python-socks 包,但系统只装了 PySocks(两个完全不同的包,名字相似到误导人)。
教训:升级依赖时注意版本兼容,特别是间接依赖。
坑 3:Session 不自动刷新
修改 SOUL.md 后,旧 session 仍然用旧的 system prompt。必须用 /reset 创建新 session,或者重启 Gateway。
教训:system prompt 的改动在 session 级别固化,不是实时生效的。
八、总结:RAG 不是配置出来的,是”逼”出来的
这次 Debug 让我重新理解了一件事:
RAG 不是一个架构,而是一个行为。
你配了知识库、写了 Skill、设了检索规则——这些只是”配置”。真正的 RAG 是 agent 在解题时真的去调了 search_files。

从配置到行为,中间隔着三个鸿沟:
- 可见性鸿沟
:规则写在 agent 看不到的地方 = 没有规则 - 动机鸿沟
:即使看到了,agent 也没有”必须执行”的强约束 - 路径鸿沟
:即使想执行,依赖和工具链的 bug 可能随时阻断流程
填平这三个鸿沟,RAG 才不是纸上谈兵。
下一次,我会把教案/备课场景也接入 RAG——让 AI 做教学 PPT 时同样先翻教材再下笔。
智育派 K12 知识库搭建日记 | 2026.04
夜雨聆风