
最近研究 AI Agent,尤其是看了 Cherry Studio 搭配各种 MCP 工具的 Agent 运行模式,被这种自动多轮次调用工具然后给出答案的效果深深吸引。技痒难耐,于是闭关半个月手搓了一个 AI Agent,用来提高学习效率,它能在你读书遇到问题的时候,自动帮你从整本书中查找资料、整理思路、回答问题,也是对上次疑问《RAG要不要做成MCP?》的一次实践,所谓 In-Context Retrieve。
本文会先介绍我做的这个 AI Agent,后面聊聊怎么用 Claude Code 搓出大模型不太擅长的 AI Agent 和 MCP,以及高效阅读源码的一点心得。
正好遇到快手发布 KAT-Coder-Pro 免费白嫖活动,于是我花了两周,消耗了 2.9 亿 Token 搓了一个辅助读书学习的 AI Agent--我给它起名“学习魔法书”,如下图所示。

上线的首本书籍是谷歌工程主管 Antonio Gulli 编写的《Agentic Pattern》中文版 ——《智能体设计模式:构建智能系统的实战指南》。这本书很多人都在求资源,我索性把自己翻译和校对后的中文版放在了我的网站。

“学习魔法书”自带 AI 助手阅读功能,如果遇到不懂的问题,点一下 AskAI 按钮,它会自动从全书中检索线索、调用多个 MCP 工具进行推理,然后返回推断后的答案。比如:Agent 中反思模式一般什么时候使用,它会自动进入思考 → 调用 MCP 检索 → 思考 → 调用 MCP 调用....→ 总结 → 回答,整个过程就像一个在帮你读书、查笔记、思考的助教。

整个系统基于 OpenAI Agents SDK[1] + 我自己魔改的 PageIndex MCP[2] 构建(PS:PageIndex 原作者也在粉丝交流群里 😎)。PageIndex 的核心理念是模拟人类查找资料的行为,就像我们翻目录找知识点。这种模式和 Google DeepMind 的ReadAgent有异曲同工之妙,更具体的详情可以查阅这篇《拒绝碎片化 RAG,谷歌 DeepMind 推出 ReadAgent:模拟人类阅读长文本,或是NotebookLM底层技术?》。
⚠️ 友情提示:Agent 模式+PageIndex 是真的费 Token。最大轮次 10 轮,大一点的问题就能瞬间烧掉几十万 Token。比如上面那个问题就直接干掉了 35 万 Token……
接下来,说说 vibe 的过程以及一些心得体会。首先要把 KAT-Coder-Pro 接入 Claude Code,不会的同学可以移步官网。
我发现,大多数大模型其实并不擅长写 AI Agent 和 MCP 服务,可能是技术比较新,语料库里没有相关的资料。刚开始,我让 KAT-Coder-Pro 写一个 AI Agent,能够自动加载 MCP 服务,能够自动多轮次调用工具。它 chuachuachua 的写,但就是跑不起来,我甚至提供了 OpenAI Agents SDK 的官方文档说明,也未能成功。后来它甚至自己去读 OpenAI Agents SDK 的源码尝试 Debug,但依然不行。
其实之前使用其他国模编写web-fetch-mcp[3]也有类似的囧境,粉丝交流群里也有同学有过类似的汇报,大模型编写 MCP 和 AI Agent 效率非常低,而且很难写成功。就这样过了一天时间,我突然想明白了,我们人类程序员在使用新 SDK 的时候,我们的第一步其实是跑官方 demo。
于是我这么提示它:
你看日志还是一直报错,你不如参考官方文档,写个 demo 看看能不能跑的通https://openai.github.io/openai-agents-python/ 里的 streamable mcp 以及这里设置非 openai 模型的方式 https://openai.github.io/openai-agents-python/models/
等等等~
跑通了!之后要求它再改写之前的 Agent,就像突然打通了任督二脉——无论是查询 MCP 还是输出总结,全都能顺畅运行了 😊
在 Vibe 学习魔法书 Agent 过程中,我发现调用 MCP 工具并不能总是按照意愿调用,有时候甚至装死不调用,问题出在哪里呢?之前看过 Agent 都没有这方面的资料,所以我决定研究一下AI Agent 最佳范式:各种开源编程智能体,比如 Cline 家族和 Gemini-CLI 等。
反正免费,我直接用 CC+KAT-Coder-Pro 完整分析了一下 Cline 的运行流程,国模就是又快又爽,大概十几分钟我就研究明白了 Cline 的 Agent 运行流程
我以前就想看 Cline 源码学习 Agent 如何运行的,奈何不懂 TypeScript 啊,现在阅读源码的效率高太多了,有时间我再研究一下 Gemini-CLI😊。
中间还遇到个奇怪的问题:KAT-Coder-Pro 设置 Agent 的 max_turns 失效,因为那个函数不支持 max turns 参数。所以我干脆直接下载了整个 openai-agents-sdk源码到本地,让 Claude Code 帮我查这个参数藏在哪……虽然操作骚,但真好用啊,比什么垃圾 Context7 好用多了,哈哈哈!
最终统计下来,整个过程烧掉了 2 亿 9 千万 Token。还好是白嫖,不然按市价算得几千块下去了。

搓完这个“学习魔法书”Agent,我最大的感受是:
我悟了!AI Agent 并没有那么多高深魔法,当我戳破这层膜后,有种轻舟已过万重山的感觉!
这套 In-Context Retrieve 模式实践后,感觉 Agent+MCP 大有可为啊!不论是接入常规的 RAG 也好,还是现在接入的 PageIndex 也好,甚至是接入一些其他工具感觉也能跑的通,我甚至觉得当前这套,不仅仅是适用书籍,也适用一个文档合集,就像 Google NotebookLM 那样,希望有一天能够做到吧~
最后愿在座各位都能手搓出自己的 Agent!需要使用我的学习魔法书辅助学习《智能体设计模式:构建智能系统的实战指南》的同学,可以后台发送魔法学习书即可获得邀请口令~
如果想了解我魔法学习书的 AI Agent 打造过程和干活分享,欢迎关注,会在后续发出~
[1]
OpenAI Agents SDK: https://openai.github.io/openai-agents-python
[2]
PageIndex MCP: https://github.com/VectifyAI/PageIndex
[3]
web-fetch-mcp: https://github.com/KylinMountain/web-fetch-mcp