知识代理:通过更好的结构超越前沿模型(18分钟阅读)
摘要
文章介绍了‘知识代理’,这是一种通过混合检索系统将相关知识注入AI代理的方法论,使得较小的模型在金融、政策、医疗等专业领域超越大型前沿模型。
Anthropic撤回了其Mythos模型,而文章作者开发了名为“知识代理”的较小代理模型,以匹配更大的前沿模型。这些代理通过注入特定相关知识来增强AI,即使在像Qwen 3.6 27B这样较小的模型上也表现良好。该方法涉及嵌入、数据结构化和多次搜索遍历,成功增强了LLM在专业查询和专有数据上的能力。
查看缓存全文
缓存时间: 2026/06/23 13:42
# 知识代理:用更好的结构击败前沿模型
Anthropic 最近因美国政府法令不得不撤下 Mythos/Fable。虽然 Mythos 相比 Opus 有所提升,但我一直在积极转向*更小*的智能体模型——同时匹配某些最大前沿模型的输出质量。
这些用例涵盖了从硬核的“对冲基金级别”(暂缺更好描述)市场分析、财务管理、AI 个人助手,甚至帮助几位朋友处理棘手的医疗状况。我将这种模式称为“知识代理”,并为所有人提供了一个通用模板。它们将正确的知识注入到与之连接的 AI 智能体中。**任何人都可以做到这一点,无论是否使用我的模板。**
正如我的 README 自豪地宣称(是的,我确实让 AI 写我的文档——你*喜欢*写全面的技术文档吗?):
> 这套方法论是在一个市场知识代理上开发并经过实战检验的,旨在复现 James Wang 在市场上的思考过程:约 10,000 页扫描的金融市场参考资料 + 约 100 篇网络文章,生成了 381 份概念文档和 54 份论点文档,采用混合 BM25 + 语义搜索。该方法论还在其他专业领域进行了测试——包括公司特定政策文档(用于“企业知识代理”)和罕见研究领域(鉴于 James 的背景,女性性健康)——效果显著。这里的通用版本捕获了一种领域无关的方法论,因此可以应用于任何主题。
这些是首批,但到目前为止,我有十二个这样的专业“知识代理”,负责处理来自其他智能体的查询。或者,显然,来自我本人的查询。当我在编写需要专业知识的新东西时,我通常会在*知识代理文件夹*中启动 Claude Code,而不是新建一个文件夹,让它利用其中的专业知识进行规划。尤其是对于专门的机器学习算法或经济模型,这种方式获得的结果*远优于*“主题无关”模型——即使是真正的大型前沿模型。
[](https://substackcdn.com/image/fetch/$s_!9oPg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92e9bd5-8b80-4294-a7e6-f01f88ae7260_1448x1086.jpeg)读者反馈说信息图很有用。这个看起来不言自明,但如果你喜欢,请告诉我!
总的来说,我在这些“知识代理框架”中使用了 Claude Opus。这是将真正的大型模型*与*框架注入的知识配对。然而,我发现即使使用小得多的模型,我也能获得非常好的结果。LLM 仅仅是“引擎”——所有专业知识都由我的知识代理系统提供,该系统在正确的时间呈现相关的知识。
当然,“相关”是关键。正如你们大多数人所知,你无法简单地将 10,000 页文档拖入聊天窗口。即使可以,你得到的也会是一堆无关信息,淹没了 LLM。实际上,即使平台允许你这样操作,你很可能也会耗尽上下文,永远得不到答案。
这使我能够将许多智能体从 Anthropic 的 Claude(由于一项本会让我每月花费 2000 多美元的计费变更,现已被推迟)迁移到本地运行的开源 Qwen 模型。它的规模仅为 Claude Opus(旗舰模型)的一小部分,并且能够在插在家里的硬件上运行。现在它就在我脚下,我正在打字。
*(顺便提一下,你需要将非 Claude 智能体指向 CLAUDE.md 或将其复制到 AGENTS.md——AGENTS.md 通常是作为“智能体需要首先阅读这些指令”的等效物用于非 Claude 系统的。)*
[](https://substackcdn.com/image/fetch/$s_!Qht9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F534ac6ea-11f1-4378-bdf9-be0903d84159_3336x1588.png)*在之前的文章中,我提到我可以在旧版 3090 Ti 上运行 Qwen 3.6 27B。我承认已经升级到 5090,因为我发现我经常使用本地智能体。这算过度配置吗?嗯,可能吧。另外,是的,这看起来像游戏配置……因为这就是消费级 GPU 的目标市场。*
简单的答案是,如前所述,它在正确的时间将正确的、特定的知识注入到 AI 智能体中。更长的答案?让我们先谈谈 LLM 中知识的*形式*。
首先,前沿模型庞大体积的很大一部分是“知识”。我可能会称之为伪知识,因为它是概率性的,不能保证给出正确答案……但最大的模型已经在极其广泛的数据集上进行了训练。这以数值权重即“参数化”知识的形式被捕获。虽然如果你只是随便问 Claude Opus 或 GPT-5.5 关于某个随机话题,这非常有用,但如果你已经拥有你想要引用的数据,**或者**这些数据根本就不是公开可用的——因此它永远无法训练到——这就完全无关紧要了。后者在专业化(医学研究领域)、保密性(高端金融)或专有性(前沿、公司特有的材料科学)的领域中非常普遍。如果我不需要它……那么,为覆盖每个随机主题而带来的模型巨大体积,很大程度上就是一种巨大的浪费。
第二种形式是在上下文窗口中提供的数据——换句话说,是你的提示词/查询。该数据与权重驱动的“知识”不同。在上下文窗口中注入的知识不会使幻觉变得不可能,但它在机制上与参数化知识不同。而且,一般来说,如果你注入的是*相关的*知识(理论上,一个好的系统应该做到这一点,而不是注入*不相关的*知识),它就在*那里*,更有可能被使用。虽然并非不可能,但当你要求现代前沿模型总结你直接粘贴进去的文本时,通常不会出现幻觉。
再说一次,对于那些在 LLM 从更广阔互联网消费的参数化知识中缺失或罕见的知识,你*必须*给它这些知识才能得到好的答案。
这个基本概念就是 **RAG(检索增强生成)**。对于不太懂技术的人来说,这基本上就是你在查询中粘贴了一堆相关数据/上下文的一种花哨说法。
这似乎显而易见,但难点不在于“提供相关信息”。而在于**如何**真正做到这一点,并呈现出正确的东西以得到好的答案——即使是针对极其困难的问题。这实际上是一个相当严肃的学术研究领域。我的特定自制方案可能不是绝对最好的,但它*非常有效*——在我感兴趣的主题领域击败了许多现成的库,这些领域通常涉及大量极其困难、跨越多重来源的专有知识(例如,金融/交易、深奥的医学领域)。
[](https://substackcdn.com/image/fetch/$s_!hxeg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73b74fec-0f27-4e47-9d1f-f72e67ac056c_1536x1024.png)完整的信息图,如果你是视觉学习者的话。不过我个人觉得这样看起来比文字描述更复杂……
这些其他方面中的第一个是嵌入。一个朴素的文本搜索通常会遗漏很多东西。如果我搜索关于“贵宾犬”的概念,与“狗”相关的内容可能高度相关。如果尽管有大量关于“狗粮”的信息,但搜索“贵宾犬食物”却什么也找不到,那将是一个糟糕的系统。
这已经是自然语言处理领域多年的概念,但这个概念显然也与 LLM(大型*语言*模型)相关。将单词(实际上是 token)转换为数值表示的一个层面就是这些单词或单词部分与什么*相关*。这就是嵌入模型的工作。
为了不那么糟糕,我们至少需要有基础级别的相关概念出现,而不需要字面匹配。在我的知识代理中,我同时使用字面搜索*和*使用嵌入的搜索。
为了计算嵌入,我现在使用一个本地嵌入模型,但 OpenAI 有一个只需一个 API 密钥就能轻松使用的。它足够便宜,我认为即使是非常密集的使用——而且你只需要在添加新知识时运行嵌入模型——也需要付出异乎寻常的努力才能超过一杯星巴克咖啡的成本。
在我使用它的所有时间里,处理了数千份文档,在我切换到自己的机器上的嵌入模型之前……成本不到一美元。如果你使用我的模板,将你的 OpenAI API 密钥放入 `.env.example` 并移除 “.example”。
虽然如果只是有一个搜索就能给我所需的确切内容那就太好了,但*需要多少*才是实际需要呢?如果搜索只带出它所在的句子……嗯,那可能不够。我们至少需要周围的句子,对吧?但是如果周围的句子不够,我们实际上需要整篇,比如学术论文呢?这通常很难说。
既然如此,我们为什么不直接把整篇论文调出来呢?好吧,如果我们发现*很多篇论文*,这就成了一个问题。如果内容只*非常长*,那问题更大。在我的一些知识代理中,我喂给了它们*整本书*(包括我自己的书,用于一个知识代理,它基本上可以调出我写过的任何东西——或者……不,我没对任何读者做过这个……根据我以前说过的话以我的身份回答问题)。一整本书作为返回的搜索结果*太*长了。
这里的问题是我们如何**分块**我们的数据?是的,这是技术术语。我们如何将它分解成相关的块?
这实际上*相当困难*,我花了很多试错时间。为了我的目的,使用引用*摘要子文档*用于某些目的最终是可行的。我有三种类型的文档。嗯,如果你包括实际来源,是四种:
1. **源提取**——这些是 markdown 格式的原始来源。我工作流程中成本最高的部分之一(以 token 计算)是让框架中的一个模型详细描述图像和图表中的内容。因此,我们处理的是纯文本的“原始”文件,即使它们最初充满了图像、图表或表格。
2. **概念**——这些是我们规范知识库的“百科词条”。我们需要基础概念……这些就是。
3. **论点**——这些更具观点性,是贯穿多份来源的*综合*。如果出现某些主题,我们应该将其捕获在论点中。
4. **PRIMER.md**——这是“摘要”和自更新的指南,帮助智能体在启动时定位。记住,AI 智能体开始时没有记忆——所以这至少给了它们一个基础,知道在这个知识代理框架中它们是哪种专家。
这个提取过程和结构是关键,我不会撒谎——这在 token 消耗上*极其昂贵*。每次你添加新数据,你可能都需要在概念中添加新的参考文献,并产生更多的论点。如果来源有很多图像/图表,它们可能是巨大的 token 消耗。但贯穿性的概念和论点消耗更大。
计算机科学和统计学专业的人会理解。这是一个组合数学问题。每个单独的文档都需要(至少在理论上)由运行该过程的 AI 模型与*所有其他文档*进行交叉引用。这呈组合爆炸式增长,迅速变得极其昂贵。但这也是当你搜索时,尤其是在下一步中,获得正确块的关键。
虽然这一步不如知识提取那么昂贵,但我确实发现,为了获得最佳结果,我们需要消耗更多的 token。即使有了完美的概念和论点提取,有时我们仍会遇到非常非常困难的主题,需要多次搜索。虽然知识代理总是可以选择阅读源文档,但有时你需要一个*完全不同的搜索*。
为什么?让我们举个例子。如果我有一个完全疯狂的查询,比如:“描述亚洲金融危机期间泰国央行的资产负债表,并告诉我今天对美国有哪些教训或可迁移的想法。”
智能体应该搜索什么?嗯,显然“泰国央行”和“亚洲金融危机”。但“美国”?范围太广。一个足够聪明的模型会从第一次搜索中意识到“泰国央行”是泰国的*中央银行*。在美国的类似机构是美联储。此外,泰国使用泰铢,但亚洲金融危机也是一场货币危机,所以类似物需要是美元。
好了,我们已经有了第二层次的搜索。但随着智能体阅读更多……它意识到它实际上需要理解作为储备货币如何会产生影响。*并且*需要更好地理解美联储系统的基础金融管道、货币市场等如何运作……并且,如果能涉及最近央行积累黄金的话题,则更好。
无论这些对你来说是否有意义,我将其设计为一个没有*大量*深层知识就无法很好回答的问题。毕竟,这才是知识代理的意义所在。如果我只需要用*简单的*查询获得一个摘要……嗯,任何基本的搜索都能做到。
这里的概念,写入了智能体的指令中,就是它必须进行*多次遍历*。多少次呢?嗯……这是我做的一个经验性土办法。在没有先验知识的情况下,智能体*不知道多少次搜索是合适的。*一次太少。十次可能会开始拉入整个知识库。**我最终定为三次。**一般来说,这提供了足够的广度,而不会淹没智能体。四次或五次可能没问题,但我将其保持在我能看到通常良好结果的最小值。
简单的查询需要绕过这个逻辑——这也需要 AI 智能体“实时调用”,我不太喜欢,但已写入指令。虽然多次遍历对简单查询的结果并不总是糟糕透顶,但多次遍历确实会倾倒大量无关信息,并往往使简单问题变得非常冗长和漫无边际。
好吧,你自己看看结果。然而,有一个细微差别你应该注意。
[](https://substackcdn.com/image/fetch/$s_!1viw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7e631dc-b2cd-4a05-840d-a95550051f80_2297x1022.png)当然,这些事情没有客观的衡量标准。因此,我使用了三个前沿
相似文章
AI 代理如何重塑知识工作(18 分钟阅读)
本文介绍了 Perplexity 与哈佛商学院合作研究的结果,探讨了像 Perplexity 的 Computer 这样的 AI 代理如何重塑知识工作,显示出在降低成本的同时提高了自主性、效率和范围。
使用AI助手几个月后,我最大的观察
个人对具有持久记忆的AI助手变革潜力的反思,认为上下文和工作流组织将比模型本身更重要。
AI代理如何重塑知识工作:自主性、效率与范围
本研究使用Perplexity的生产数据,比较AI代理与对话式助手,发现代理将完成任务时间减少87%,成本降低94%,同时扩展了知识工作的范围和质量。
关于 AI 智能体的真实内情
一位资深从业者分享了将 25 个以上 AI 智能体部署到生产环境的经验教训,指出记忆、编排和可审计性远比模型选择重要。文章详细介绍了上下文丢失、静默成本循环等常见故障模式,并推荐了包含 Claude Sonnet 4、Pydantic AI 以及 Octopodas 等专用记忆层的技术栈。
构建高效的智能体
Anthropic 发布了构建高效 AI 智能体的工程指南,倡导采用简单、可组合的模式以及直接使用 API,而非依赖复杂的框架。文章区分了工作流与自主智能体,并就何时使用每种架构提供了实用建议。