コンテンツにスキップ
Zenn Dev Karaage0703 Articles D7eaf62437185d

Skillsで実現する軽量パーソナルRAG

  • URL: https://zenn.dev/karaage0703/articles/d7eaf62437185d
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: PostgreSQL + pgvector を使っていた MCP 版 RAG を廃し、SQLite + intfloat/multilingual-e5-small(384次元・約500MB)で動く軽量 RAG をClaude Code のSkillsとして実装した workspace-rag を紹介している。セットアップは uv sync のみで、常駐サーバーなしでも動作するCLIモードと、モデルをロードし続けることで検索を約9秒から約0.1秒に短縮できる常駐HTTPサーバーモードを備える。EMNLP 2024 の R²AG アイデアを参考に検索結果に関連度スコアを付与している。

詳細

  • 前回の MCP RAG との比較: DB が PostgreSQL+pgvector(Docker 必須)→ SQLite(ファイル1つ)、モデルが multilingual-e5-large 1024次元→ multilingual-e5-small 384次元、インターフェースが MCP プロトコル → AI エージェントの Skills
  • CLI コマンド例: uv run python workspace_rag.py search -w /path/to/workspace -q “クエリ”
  • インデックス作成は初回のみ数分、以降は差分のみで数秒
  • 検索結果は「関連度: 0.94 (高)」形式のスコア付きで出力(R²AG の簡易実装)
  • CLIモードの課題: 実行ごとにモデルをロードするため1回の検索に約9秒(モデルロード8秒+DB処理1秒)
  • 常駐HTTPサーバー(workspace_rag_server.py)でモデルを常駐させると検索が約0.1秒に短縮
  • systemd ユーザーサービスとして PC 起動時に自動起動する設定も可能
  • Skills として利用する場合: SKILL.md とスクリプトを .claude/skills/ に置き、シンボリックリンクで全エージェント共通化できる