Skip to content

feat: Markdown ファイルの自動ナレッジ化 #337

@Kewton

Description

@Kewton

概要

ナレッジ化フラグが ON のブランチ内の Markdown ファイルを自動的にナレッジとして取り込む機能。

仕様

  • フラグ ON のブランチ内の .md ファイルを監視
  • ファイルの追加・更新を検知して自動的にナレッジとして登録・更新
  • ナレッジの保存形式は検討中(全文テキスト / チャンク / ベクトル等)
  • ナレッジの保存先はローカル(完全ローカル方針を維持)

検討事項

  • ナレッジ化の単位(ファイル単位 / セクション単位)
  • ベクトル検索を導入するか、全文検索で十分か
  • 活用できる OSS(mem0 / Chroma / LlamaIndex 等)は別途リサーチ

OSS 調査結果(2026-02-21)

mem0(推奨候補)

  • コンテナ化対応済みserver/ ディレクトリに Dockerfile + docker-compose.yaml あり
  • FastAPI ベースの REST API サーバーとして起動可能
  • CommandMate(TypeScript)から fetch() で HTTP 呼び出しが可能 → Python 依存なし
  • 完全ローカル動作(データは手元の Chroma / SQLite に保存)
CommandMate(TypeScript / Next.js)
      ↓ HTTP REST API
mem0 コンテナ(localhost:8888 等)
      ↓
ローカルの Chroma / SQLite にメモリ保存

利用できるエンドポイント:

エンドポイント 用途
POST /memories Markdown の内容をナレッジとして登録
GET /memories/search commandmate knowledge get のバックエンド
PUT /memories/:id ファイル更新時のナレッジ更新
DELETE /memories ブランチ削除時のナレッジ削除

OSS 候補の比較

OSS ライセンス CommandMate との相性 備考
mem0(コンテナ) Apache 2.0 REST API 経由で Python 依存なし。完全ローカル
Chroma Apache 2.0 Node.js SDK あり。TypeScript から直接呼べる
LlamaIndex.TS MIT TypeScript ネイティブだが依存関係が重め

推奨実装パス

フェーズ1(最短): BM25 キーワード検索で Markdown チャンクを返す(ベクトル DB なし)
フェーズ2: mem0 コンテナ または Chroma(Node.js SDK)を導入してセマンティック検索を追加

関連

Epic: #335
CLI: #338

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions