Agentic RAG:让代理搜索

一个最小的 OpenAI Agents SDK 实现,其中检索成为搜索-读取-决定循环Agentic RAG:让代理搜索首先出现在 Towards Data Science 上。

来源:走向数据科学

应用程序是一个 RAG 应用程序。

秘诀很简单:分块、嵌入、检索,然后回答。

纸面上看起来很干净。但一旦你在实际案例中使用它,事情很快就会变得混乱:相似性搜索找到相似的措辞,但不一定是有用的块,正确的证据永远不会出现在检索到的上下文中,因为它的排名太低,或者重要的上下文可能会跨块边界分割。

由于背景不足,法学硕士几乎没有恢复的空间。

那么,我们让检索迭代怎么样?如果模型可以搜索、读取、判断是否有足够的证据,并在需要时再次搜索,会怎么样?也许我们一开始就不需要向量嵌入。

这就是代理 RAG 的前提。

在这篇文章中,我们将使用 OpenAI Agents SDK 构建一个迷你代理 RAG 工作流程。我们将研究代理如何迭代地搜索、读取和确定其答案。

最后,我们将退后一步,简要讨论构建实用的代理 RAG 解决方案的注意事项。

1. 案例研究:使用 Agentic RAG 回答政策问题

对于我们的案例研究,我们将基于公司策略文档集合构建一个策略 RAG 代理。

1.1 整理文档集

在这里,我创建了六个综合公司政策文档。它们都是 Markdown 文件。每一项都有标题、生效日期、简短摘要和政策文本。

实际上,这些文档涵盖了 6 个常见的公司政策领域:

  • approval_matrix.md,包含常见商务旅行决策的审批级别,于 2025 年 7 月 1 日生效。
  • conference_guidelines.md,包含参加外部活动的规则,2025 年 5 月 15 日生效。
  • faq.md,包含常见旅行问题的非正式解答,于 2025 年 9 月 1 日生效。
  • policy_updates_2026.md,包含 2026 年住宿、会议旅行和审批时间的更新,于 2026 年 1 月 1 日生效。
  • remote_work_policy.md,包含远程工作规则,2026 年 2 月 1 日生效。
  • 1.2 定义代理

    在较高层次上,代理就是这样: