LlamaIndex 'legal-kb': 基于Index v2的代理检索,集成retrieve、find、read和grep工具
LlamaIndex发布了legal-kb,这是一个基于Index v2的公共参考应用,展示了代理检索模式。该应用为AI代理提供类似文件系统的工具集,包括混合语义搜索、文件查找、内容读取和正则表达式grep,并支持自动版本控制和可视化引用。
LlamaIndex 发布了 legal-kb,这是一个基于 GitHub 的公共参考应用,旨在为法律文档提供知识库功能,底层由 LlamaIndex Index v2(即 LlamaParse 平台)驱动。该项目展示了一种称为“检索工具集”(Retrieval Harness)的代理检索模式。
与单次检索不同,该模式为 AI 代理提供类似文件系统的工具,使其能够在大规模且持续更新的知识库中自主探索以解决问题。这些工具模拟了工程师熟悉的操作:语义与关键词搜索、正则表达式 grep、文件搜索和文件读取。
legal-kb 是一个基于 TanStack Start 的 Web 应用,而非库。用户登录后可以创建项目、上传文件并与代理聊天。每个项目对应一个由 LlamaCloud 管理的 Index v2。上传的文件会在后台自动解析和索引,聊天代理在每次交互中实时查询该索引。
检索工具集提供了持久化的数据管道,连接数据源、索引并保持更新。在此基础上,它向代理暴露一组工具。这些工具刻意接近文件系统操作:代理可以列出文件、读取文件、在文件内执行 grep 或运行混合搜索。由于工具的通用性,用户可以将此工具集集成到自己的代理中。
代理拥有四个工具,每个工具对应 Index v2 的检索 API:
- retrieve:运行混合语义搜索,支持可选的重新排序和元数据过滤。
- findFiles:通过精确名称或子串搜索文件,自动分页。
- readFile:读取文件原始内容,支持偏移量和长度窗口。
- grepFile:在一个文件中匹配模式,返回字符位置。
系统提示强制了执行顺序:代理必须先调用 findFiles 建立文档清单,然后通过 retrieve 缩小范围,最后用 readFile 或 grepFile 确认具体措辞后再引用。
上传遵循清晰的管道:文件被推送到 LlamaCloud 源目录,同时记录到 PostgreSQL。索引同步是异步的,UI 会轮询状态直至就绪。版本化基于(项目,文件名)对,重新上传同一文件会产生 v1、v2、v3 等版本,检索层可以通过版本元数据字段过滤。
代理使用 Vercel AI SDK 6 的 ToolLoopAgent,支持 OpenAI 或 Anthropic 模型,用户需自带 API 密钥。推理过程会流式输出,Claude 模型使用扩展思考,OpenAI 推理模型使用中等推理努力。
答案附带可视化引用:每个检索到的块有一个短 ID(如 cite:c7f2qa),代理在回答中内联引用,UI 渲染可点击的引用芯片,点击后打开源文件页面截图,并高亮显示引用文本的矩形框。
与传统的单次 RAG 相比,代理检索工具集在多个维度上有所不同:检索流程为多步工具循环而非单次向量搜索;搜索模式包括混合搜索、关键词和正则表达式;代理可按需读取完整文件;知识库持续更新且支持版本控制;精度控制参数(如 top_k、分数阈值)暴露给用户。
该设计针对需要代理导航大型文档集的领域,如法律和金融科技。例如,合同问题可通过代理列出文件、检索相关条款、grep 精确句子来回答。在尽职调查场景中,代理可以按名称查找文件并逐一读取,无需人工打开每个 PDF。版本化策略支持随时间追踪变更。
legal-kb 是一个重要的参考实现,展示了如何将 Index v2 的检索能力与代理框架结合,为构建高级文档问答系统提供了蓝图。