工程开发
librarian avatar

librarian

抓取、索引并搜索 GitHub 和网站上的开发者文档,为 AI 代理提供准确、基于真实来源且具备版本控制的代码上下文。

简介

Librarian 是一款专门为解决 AI 代理工作流程中「幻觉」问题而设计的工具,旨在提供基于真实资料来源的开发者文档。它使开发者和 AI 代理能够将外部知识库(从特定的 GitHub 仓库到公开的文档网站)导入至本地的向量索引数据库中。通过结合关键字匹配与语义向量搜索的混合搜索模式,Librarian 能确保 API 细节、复杂的代码示例以及特定版本的指南能被高精度地检索。对于使用如 Next.js、Hono 或自定义内部 API 等快速演进框架的开发者来说,这是不可或缺的工具,因为标准模型的训练资料往往过时或不足。

  • 可从 GitHub 仓库(支持指定分支或版本)以及公开网站(通过 sitemap、llms.txt 或直接爬取)导入文档。

  • 支持混合搜索模式,包括关键字搜索、语义向量搜索以及两者结合,以针对不同查询类型进行最优化。

  • 维护特定于项目库的版本控制,允许用户将搜索范围限缩在特定版本标签或文档快照中。

  • 提供强大的 CLI 界面来管理来源、触发导入作业,并在将文档整合至 AI 工作流程前在本地测试搜索结果。

  • 内建 MCP (Model Context Protocol) 服务器,可将文档查询功能无缝整合至 Claude Code 或其他本地开发环境的 AI 代码助理中。

  • 自动检测执行环境,处理 Bun、npm 和 pnpm 的复杂安装流程。

  • 前置条件:运行期需要 Bun 以处理繁重的 CLI 操作与索引任务。

  • 安装方式:建议通过 npm install -g @iannuttall/librarianbun add -g 进行全局安装。

  • 操作流程:从 add 加入来源开始,接着执行 ingest --embed 导入数据,最后使用 searchget 指令检索特定的文档片段。

  • 版本管理:在项目目录中使用 librarian detect 自动识别版本标签,并在搜索指令中使用 --version 旗标以限制范围。

  • 性能调整:针对大型网站,请使用 --depth--pages 限制参数来控制爬取范围与导入速度。

  • 隐私保护:所有操作均在本地执行,确保在检索过程中不会泄漏敏感文档或 API 金钥。

仓库统计

Star 数
98
Fork 数
8
Open Issue 数
1
主要语言
TypeScript
默认分支
main
同步状态
空闲
最近同步时间
2026年5月3日 17:38
在 GitHub 查看