mcpField
D
Darwin RAG

Darwin RAG

本地服务
github.com/Brightdotdev记忆与知识32 周前更新

关于 Darwin RAG

Darwin RAG 是面向希望 AI Agent 搜索私有文档的本地优先 RAG 引擎。它结合关键词与密集向量索引,并通过 MCP 提供搜索和文档管理能力。

主要功能

  1. 01摄取文档、表格、图片和网址
  2. 02结合 BM25 与密集向量索引
  3. 03支持关键词、语义和混合检索
  4. 04可选的 LLM 答案生成
  5. 05独立数据存储与结构化会话日志

适用场景

  1. 01让 Agent 搜索本地 PDF 和笔记
  2. 02从结构化 CSV 文件检索记录
  3. 03隔离不同项目或租户的索引
  4. 04查看已索引文件与搜索日志

MCP 相关

Darwin RAG 将文档摄取、搜索、数据存储管理、文件状态和日志作为 MCP 工具开放。它支持 stdio、SSE 和 Streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"brightdotdev-darwin-rag": {
"command": "uvx",
"args": [
"darwin-rag"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"DARWIN_BASE_DIR": "<DARWIN_BASE_DIR>"
}
}
}
}
启动命令uvx darwin-rag
需要配置的环境变量
OPENAI_API_KEY密钥OpenAI API key for LLM answer generation
ANTHROPIC_API_KEY密钥Anthropic API key for LLM answer generation
GEMINI_API_KEY密钥Google Gemini API key
DARWIN_BASE_DIROverride the base data directory

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypidarwin-rag0.2.18

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Darwin RAG

在自己的设备上私密地搜索自己的文档,适用于任何 AI Agent。

Darwin 是一款本地优先的 RAG 引擎,可摄取文档,使用 BM25 和稠密嵌入为文档建立索引,并通过 MCP 服务提供搜索功能。将 Claude、Cursor 或任何 MCP 客户端连接到它,Agent 就能搜索你的 PDF、笔记、电子表格和网页,而无需将它们发送到云端索引。

初次设置时需要联网下载模型。之后,搜索和索引都可完全离线运行。

License: MIT PyPI

  • 摄取:PDF、Markdown、HTML、图片(OCR)、CSV、Excel、ODS、URL
  • 索引:结合 BM25 关键词和稠密嵌入的混合索引,支持可配置的分块策略
  • 搜索:支持混合、语义或关键词检索,并提供重排、多样性重排和结构惩罚
  • 生成:通过 LiteLLM(OpenAI、Anthropic、Gemini 等)合成由 LLM 支持的答案
  • 可观测性:结构化日志,包含可通过 MCP 查询的会话历史
  • 隔离:支持多个独立存储,实现租户/项目隔离
  • 部署:支持 stdio(AI Agent 子进程)、SSE 或 Streamable HTTP;可用于 Docker
  • 本地优先:所有操作均在本地运行,设置完成后可完全离线使用

由 BrightDotDev 构建。


为什么选择 Darwin?

  • 默认保护隐私。 你的文档会留在自己的设备上。
  • 适配你的 Agent。 标准 MCP 服务:适用于 Claude Desktop、Cursor 和其他 MCP 客户端。
  • 按问题选择合适的搜索方式。 精确匹配用关键词搜索,理解含义用语义搜索,不确定时用混合搜索。
  • 轻松起步。 required 预设只会下载一个嵌入模型。

快速开始

1. 安装
pip install darwin-rag
2. 设置模型
# Interactive: detects hardware, pick your models
darwin-admin setup interactive

# Or one-shot (embedding-only, no prompts)
darwin-admin setup --preset required
3. 启动 MCP 服务并连接
# stdio mode: for AI agent subprocess (Claude Desktop, Cursor, etc.)
darwin mcp

# Or HTTP mode: for remote clients
darwin mcp --http --port 8765

配置 MCP 客户端:

{
  "mcpServers": {
    "darwin": {
      "command": "darwin",
      "args": ["mcp"],
      "env": {
        "OPENAI_API_KEY": "sk-..."  // At least one LLM provider key
      }
    }
  }
}

或自动生成配置:

darwin config claude          # Claude Desktop config
darwin config cursor          # Cursor config
darwin config all --copy      # All clients + copy to clipboard
4. 试用

向 Agent 提问:“使用 Darwin 摄取 ./my-notes,然后查找我写过的所有关于 的内容。”


将其用作 Agent 技能

Darwin 自带一项技能(skills/darwin-rag/SKILL.md),用于告诉 Agent 何时以及如何使用 MCP 工具:检查索引内容、摄取文档、选择搜索模式,并根据来源作答。将 darwin-rag 文件夹复制到 Agent 的技能目录中(对于 Claude Code:~/.claude/skills/)。


MCP 工具

工具描述
search_darwin使用混合/语义/关键词搜索查询知识库
search_lists按字段值搜索结构化数据(CSV、JSON 数组)
get_search_results列出已保存的搜索结果
get_search_result_by_id按文件名加载已保存的搜索结果
get_schema检查结构化文件的架构(键、类型、记录数)
run_pipeline从路径或 URL 摄取文档并建立索引
purge_artifacts删除指定文件的流水线产物
create_store创建新的隔离数据存储
list_files列出所有已跟踪文件及其流水线状态
file_status查看单个文件在所有阶段的详细状态
get_logs查询会话日志(按时间从旧到新,不包含 INFO)

完整文档:docs/mcp.md


远程/HTTP 模式

在可通过网络访问的端点上启动服务:

# SSE transport (legacy)
darwin mcp --sse --host 0.0.0.0 --port 8765

# Streamable HTTP transport (recommended for production)
darwin mcp --http --host 0.0.0.0 --port 8765

使用以下 URL 配置 MCP 客户端:

{
  "mcpServers": {
    "darwin": {
      "url": "http://your-host:8765/mcp"  // or /sse for SSE mode
    }
  }
}

环境变量

变量必需描述
OPENAI_API_KEY否*OpenAI 提供商密钥
ANTHROPIC_API_KEY否*Anthropic 提供商密钥
GEMINI_API_KEY否*Google Gemini 提供商密钥
MISTRAL_API_KEY否*Mistral AI 提供商密钥
GROQ_API_KEY否*Groq 提供商密钥
COHERE_API_KEY否*Cohere 提供商密钥
TOGETHER_API_KEY否*Together AI 提供商密钥
OPENROUTER_API_KEY否*OpenRouter 提供商密钥
DEEPSEEK_API_KEY否*DeepSeek 提供商密钥
DARWIN_BASE_DIR否覆盖基础数据目录
NO_COLOR否设置为任意值即可禁用 ANSI 颜色输出

* 生成答案至少需要一个大模型提供商密钥。搜索/索引无需密钥即可运行。


设置详情

命令功能
darwin-admin setup interactive引导式设置:检测硬件、选择模型
darwin-admin setup --preset required仅下载嵌入模型(最快)
darwin-admin setup --preset recommended下载嵌入、重排序和 OCR 模型
darwin-admin setup logging仅重新配置日志记录
darwin-admin setup validate验证当前设置

完整操作指南(包括 Docker、从源码安装和 API 密钥配置)请参阅 docs/setup.md。


CLI 参考

darwin:用户 CLI

命令描述
darwin mcp启动 MCP 服务(stdio;使用 --sse 或 --http 进行网络连接)
darwin config [client]生成 MCP 客户端配置

darwin-admin:高级用户 CLI

命令描述
darwin-admin setup设置模型、日志记录和配置
darwin-admin status系统状态概览
darwin-admin models模型注册表:列出、安装、切换模型和管理密钥
darwin-admin store数据存储:状态、文件、审计、健康检查和修复
darwin-admin pipeline数据摄取管道:运行、摄取、索引、清除
darwin-admin search交互式搜索
darwin-admin logs结构化日志查看与管理
darwin-admin system系统信息
darwin-admin uninstall移除 Darwin 数据和配置

完整命令参考请参阅 docs/admin.md。


Python API

如需在自己的应用中将 darwin-rag 嵌入为库:

from core import Darwin

d = Darwin()
d.ingest("./papers", recursive=True)
results = d.search("what is this paper about")
records = d.search_records(filters={"status": "active"})

完整参考:docs/api.md


文档

文档内容
setup.md完整设置指南
mcp.mdMCP 服务、工具、资源和传输方式
admin.md管理 CLI 参考
architecture.md面向开发者和贡献者
pipeline.md数据摄取与索引
retrieval.md搜索引擎
storage.mdDarwinStore
models.md模型注册表与推理
logger.md结构化日志记录
orchestrators.md高级业务逻辑
api.mdPython API(Darwin 类)

贡献

发现了 Bug?想添加新内容?欢迎参与。

  • 问题:在 github.com/BrightDotDev/DARWIN/issues 中提交
  • 代码:Fork 仓库、创建分支并提交 PR。尽量保持精简。
  • AI 生成的代码也可以,但你要对提交的代码负责。提交前请先测试。

完整指南请参阅 CONTRIBUTING.md。


许可证

MIT。请参阅 LICENSE。

核心架构和实现由 BrightDotDev 提供。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。