Darwin RAG について
Darwin RAGは、AIエージェントでプライベートな文書を検索したい人向けのローカル優先RAGエンジンです。キーワードと密ベクトルのインデックスを組み合わせ、MCP経由で検索や文書管理を提供します。
主な機能
- 01文書、表計算、画像、URLの取り込み
- 02BM25と密ベクトルによるインデックス
- 03キーワード・セマンティック・ハイブリッド検索
- 04任意のLLMによる回答生成
- 05独立ストアと構造化セッションログ
活用シーン
- 01エージェントでローカルPDFやメモを検索
- 02構造化CSVファイルからレコードを検索
- 03プロジェクトやテナントごとにインデックスを分離
- 04インデックス済みファイルや検索ログを確認
MCP 対応
Darwin RAGは、文書の取り込み、検索、ストア管理、ファイル状態、ログをMCPツールとして公開します。stdio、SSE、Streamable HTTPの各トランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx darwin-ragOPENAI_API_KEYシークレットOpenAI API key for LLM answer generationANTHROPIC_API_KEYシークレットAnthropic API key for LLM answer generationGEMINI_API_KEYシークレットGoogle Gemini API keyDARWIN_BASE_DIROverride the base data directoryローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Darwin RAG
自分のマシン上でプライバシーを保ちながら、あらゆる AI エージェントで自分のドキュメントを検索できます。
Darwin はローカルファーストの RAG エンジンです。ドキュメントを取り込み、BM25 と高密度埋め込みでインデックスを作成し、MCP サーバーを通じて検索機能を提供します。Claude、Cursor、または任意の MCP クライアントを接続すれば、PDF、メモ、スプレッドシート、ウェブページをクラウドのインデックスに送信することなく、エージェントから検索できます。
セットアップ中にモデルをダウンロードするため、一度だけインターネット接続が必要です。その後は、検索もインデックス作成も完全にオフラインで実行できます。
- 取り込み:PDF、Markdown、HTML、画像(OCR)、CSV、Excel、ODS、URL
- インデックス作成:BM25 キーワード検索と高密度埋め込みによるハイブリッドインデックス。チャンク分割方式を設定できます
- 検索:再ランキング、多様性のための再ランキング、構造上のペナルティに対応したハイブリッド、セマンティック、またはキーワード検索
- 生成:LiteLLM(OpenAI、Anthropic、Gemini など)による LLM ベースの回答生成
- 可観測性:セッションごとの履歴を含む構造化ログ。MCP 経由で検索できます
- 分離:テナントやプロジェクトごとに分離された複数のストア
- デプロイ:stdio(AI エージェントのサブプロセス)、SSE、または Streamable HTTP に対応。Docker 対応
- ローカルファースト:すべてローカルで動作し、セットアップ後は完全にオフラインで利用できます
BrightDotDev が開発しています。
Darwin を選ぶ理由
- デフォルトでプライベート。 ドキュメントは自分のマシンから外に出ません。
- エージェントと連携。 標準の MCP サーバーとして、Claude Desktop、Cursor、その他の MCP クライアントで利用できます。
- 質問に合った検索。 正確な用語にはキーワード検索、意味の検索にはセマンティック検索、判断が難しい場合はハイブリッド検索を使えます。
- 手軽に始められます。
requiredプリセットでは、埋め込みモデルを 1 つだけダウンロードします。
クイックスタート
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. 試してみる
エージェントに次のように尋ねてください:「Darwin で ./my-notes を取り込み、 について書いたものをすべて見つけてください。」
エージェントスキルとして使う
Darwin には、MCP ツールをいつ、どのように使うかをエージェントに伝えるスキル(skills/darwin-rag/SKILL.md)が付属しています。インデックスの確認、ドキュメントの取り込み、検索モードの選択、情報源に基づく回答の作成ができます。darwin-rag フォルダーをエージェントのスキルディレクトリにコピーしてください(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 カラー出力を無効にします |
* 回答の生成には、少なくとも1つの LLM プロバイダーキーが必要です。検索/インデックス作成はキーなしで動作します。
セットアップの詳細
| コマンド | 動作 |
|---|---|
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.md | MCP サーバー、ツール、リソース、トランスポート |
| admin.md | 管理 CLI リファレンス |
| architecture.md | 開発者およびコントリビューター向け |
| pipeline.md | 取り込みとインデックス作成 |
| retrieval.md | 検索エンジン |
| storage.md | DarwinStore |
| models.md | モデルレジストリと推論 |
| logger.md | 構造化ロギング |
| orchestrators.md | 高水準のビジネスロジック |
| api.md | Python API(Darwin クラス) |
貢献
バグを見つけましたか?何かを追加したいですか?ぜひご参加ください。
- Issue: github.com/BrightDotDev/DARWIN/issues で Issue を作成してください
- コード:フォークし、ブランチを作成して、PR を送ってください。変更は最小限にしてください。
- AI が生成したコードでも問題ありませんが、提出するコードには責任を持ってください。提出前にテストしてください。
詳しいガイドラインについては、CONTRIBUTING.md をお読みください。
ライセンス
MIT。LICENSE をご覧ください。
コアアーキテクチャと実装は BrightDotDev によるものです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。