fish-bridge — Session Knowledge Graph について
fish-bridge は AI チャットを型付きナレッジグラフに圧縮し、後続ターン用の指示ファイルに書き込みます。プロジェクトのコンテキストを保ちたい開発者向けで、ローカルの Ollama に対応し、基本ワークフローに MCP は不要です。
主な機能
- 01チャットを型付きナレッジグラフに圧縮
- 02会話ログ、文書、コードベース、テスト出力を取り込み
- 03重複ノードを統合し状態の矛盾を検出
- 04Copilot または Claude の指示ファイルにコンテキストを記録
- 05ローカルおよびクラウドの LLM バックエンドに対応
活用シーン
- 01コーディングセッション間で決定事項やタスクを保持
- 02後続ターン向けに Copilot の会話を要約
- 03プロジェクト仕様とリポジトリ情報を統合
- 04失敗したテストをグラフノードとして記録
MCP 対応
オプションの MCP サーバーは VS Code のエージェントモードでターンをリアルタイムに記録します。ターン記録、コンテキスト取得、グラフノード管理、セッションのインポートとエクスポート用ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx fish-bridge-mcpANTHROPIC_API_KEYシークレットAPI key for Claude extraction backend (omit when using local/Ollama)OPENAI_API_KEYシークレットAPI key for OpenAI extraction backend (omit when using local/Ollama)GEMINI_API_KEYシークレットAPI key for Gemini extraction backend (omit when using local/Ollama)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| user_message | string | はい | |
| assistant_message | string | はい |
詳細
fish_bridge
AI チャットのコンテキスト圧縮に対応した、セッション単位のナレッジグラフエンジンです。
生の AI チャット(40k 以上のトークン)を、コンパクトで型付きのナレッジグラフ(約 300~800 トークン)に変換し、.github/copilot-instructions.md または CLAUDE.md に書き込みます。これらのファイルは、あらゆるモード(質問、編集、エージェント)でのすべての AI ターンに自動的に含まれます。コアのワークフローに MCP サーバーは必要ありません。
Raw session (40k tokens) → [fish_bridge] → Compressed graph (350 tokens)
written to copilot-instructions.md
picked up by every AI turn automatically
インストール
uvをまだお持ちでない場合は、まずインストールしてください:curl -LsSf https://astral.sh/uv/install.sh | sh(macOS/Linux)、または uv のドキュメントをご覧ください。1 つのツールで pip + pipx + pyenv を置き換えられるため、仮想環境を管理する必要はありません。
推奨 — uv tool install(fish-bridge CLI と fish-bridge-mcp MCP サーバーの両方を PATH にインストールします):
# Local Ollama backend — free, offline (requires Ollama running)
uv tool install fish-bridge-mcp
# Gemini backend (~$0.0002/turn, ~95% quality — recommended cloud option)
uv tool install "fish-bridge-mcp[gemini]"
export GEMINI_API_KEY=...
# Claude backend (~$0.002/turn, ~97% quality)
uv tool install "fish-bridge-mcp[claude]"
export ANTHROPIC_API_KEY=sk-ant-...
# OpenAI backend (~$0.0003/turn, ~93% quality)
uv tool install "fish-bridge-mcp[openai]"
export OPENAI_API_KEY=sk-...
# Everything
uv tool install "fish-bridge-mcp[all]"
インストール後、PATH から次の 2 つのコマンドを使用できます:
fish-bridge— メイン CLI(ingest、compile、show、serve、...)fish-bridge-mcp— VS Code エージェントモード用の MCP サーバー
MCP 設定のみ(永続的なインストールは不要): .vscode/mcp.json で uvx を直接使用します。必要に応じて MCP サーバーをダウンロードして実行します:
{ "command": "uvx", "args": ["fish-bridge-mcp"] }
完全な設定については、以下の MCP サーバーのセクションをご覧ください。
従来の pip インストール(独自の Python プロジェクトに fish-bridge をライブラリとして組み込む場合)
pip install fish-bridge-mcp
pip install "fish-bridge-mcp[gemini]" # with Gemini backend
pip install "fish-bridge-mcp[claude]" # with Claude backend
pip install "fish-bridge-mcp[all]" # everything
2 分で始める
# 1. Initialize for your project
fish-bridge init --tool copilot --project ./
# 2. Ingest the latest Copilot session (auto-discovers JSONL on macOS/Linux/Windows)
fish-bridge ingest --source copilot
# 3. View the graph
fish-bridge show
# 4. Compile to your instructions file (done automatically after ingest)
fish-bridge compile
これで完了です。.github/copilot-instructions.md に、約 350 トークンに圧縮されたセッションの要約が含まれるようになり、今後のすべてのターンで生の履歴に置き換わります。
バックエンド
| バックエンド | インストール用 extra | モデル | 品質 | ターンあたりのコスト |
|---|---|---|---|---|
local (Ollama) | (なし — Ollama が必要) | qwen2.5:7b | 約 85% | $0 |
gemini | [gemini] | gemini-2.5-flash | 約 95% | 約 $0.0002 |
openai | [openai] | gpt-4.1-mini | 約 93% | 約 $0.0003 |
claude | [claude] | claude-opus-4-7 | 約 97% | 約 $0.002 |
hybrid | [claude] または [openai] | ローカル + クラウド | 最良 | 混在 |
次のように設定します:
fish-bridge config --backend gemini
# or set GEMINI_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY as env vars
CLI リファレンス全文
# --- Session init ---
fish-bridge init # create session for current project
fish-bridge init --tool claude # → writes to CLAUDE.md instead
# --- Ingest chat turns ---
fish-bridge ingest --source copilot # auto-discover latest VS Code Copilot session
fish-bridge ingest --source copilot --session <id> # target specific session
fish-bridge ingest --source paste # paste any chat text — opens $EDITOR (universal fallback)
fish-bridge ingest --source file --file export.json # from a saved export file
fish-bridge watch --source copilot # tail JSONL, auto-update on new turns
# --- Merge external knowledge ---
fish-bridge merge --source document --file HANDOVER.md
fish-bridge merge --source codebase --path ./ # git log + README
fish-bridge merge --source obsidian --vault ~/notes
fish-bridge merge --source deps --path ./ # package.json / pyproject.toml etc.
fish-bridge merge --source testout --file results.json # jest / pytest / JUnit
fish-bridge merge --source iac --path ./ # Terraform / CDK / CloudFormation
fish-bridge merge --source openapi --file openapi.yaml
fish-bridge merge --source session --file prior.chatgraph.json
# --- Compile & view ---
fish-bridge compile # update instruction file (runs after ingest by default)
fish-bridge compile --mode digest # full handover markdown
fish-bridge compile --mode focus --query "Redis caching"
fish-bridge show # pretty-print active nodes
fish-bridge show --all # include resolved/deferred items
fish-bridge serve # open Cytoscape.js graph viewer at localhost:8080
fish-bridge digest # generate handover digest
# --- Node management ---
fish-bridge resolve "DNC caching strategy"
fish-bridge defer "v16 index validation"
fish-bridge add "Use Redis for session cache" --type decision
fish-bridge conflict show
fish-bridge conflict resolve <node-id> --keep old
# --- Export / import / diff ---
fish-bridge export # save .chatgraph.json
fish-bridge import prior-session.chatgraph.json
fish-bridge diff session-a.chatgraph.json session-b.chatgraph.json
# --- Config ---
fish-bridge config --show
fish-bridge config --backend gemini
MCP サーバー(任意 — エージェントモードのみ)
MCP サーバーを使用すると、VS Code エージェントモードで record_turn によるリアルタイムの記録が可能になります。必須ではありません — 上記のファイルベースのワークフローは、MCP サーバーなしですべてのモードで動作します。
.vscode/mcp.json に追加します(uvx を使用するため、事前のインストールは不要です):
{
"servers": {
"fish-bridge": {
"command": "uvx",
"args": ["fish-bridge-mcp"],
"env": { "FISH_BRIDGE_BACKEND": "gemini", "GEMINI_API_KEY": "${env:GEMINI_API_KEY}" }
}
}
}
uv tool install fish-bridge-mcp を使用した場合は、インストール済みのバイナリを直接指定することもできます:
{ "command": "fish-bridge-mcp" }
Claude Desktop、Cursor、Windsurf の設定例については、examples/ をご覧ください。
MCP ツール:record_turn、get_context、get_focus、mark_resolved、add_node、export_session、import_session、show_active、list_deferred
ソースの取り込み
| ソース | コマンド | 取り込む内容 |
|---|---|---|
| Copilot | ingest --source copilot | VS Code Copilot の JSONL トランスクリプト(自動検出) |
| 貼り付け | ingest --source paste | あらゆるチャットテキスト — 汎用フォールバック |
| ドキュメント | merge --source document | Markdown、JSON、YAML の仕様書および ADR |
| コードベース | merge --source codebase | Git のコミット + README + HANDOVER |
| Obsidian | merge --source obsidian | Wiki リンクとフロントマターを含む Vault のノート |
| セッション | merge --source session | 以前の .chatgraph.json エクスポート |
| 依存関係 | merge --source deps | package.json、pyproject.toml、Cargo.toml、go.mod、Gemfile、pom.xml |
| テスト出力 | merge --source testout | Jest JSON、pytest JSON、JUnit XML — 失敗したテストごとにエラーノードを作成 |
| IaC | merge --source iac | Terraform、CDK(synth 出力)、CloudFormation、docker-compose |
| OpenAPI | merge --source openapi | OpenAPI 3.x / Swagger 2.0 / AsyncAPI の仕様 |
仕組み
- 取り込み — JSONL(Copilot)、貼り付け、または任意のファイル形式からチャットの生のターンを読み取ります
- 抽出 — LLM が型付きノード(質問、決定、エラー、タスク、スキル、ファイル)とエッジを抽出します
- 重複排除 — 意味的類似性に基づいて重複に近い項目を統合し、競合検出によってステータスの反転を警告します
- コンパイル — グラフを約 300~800 トークンの XML/Markdown ブロックに圧縮します
- 書き込み — ブロックを
.github/copilot-instructions.md(またはCLAUDE.md)に書き込みます - 配信 — 次のターンで AI ツールがファイルを自動的に読み取ります — 注入もエージェントも不要です
ドキュメント
ライセンス
MIT — LICENSE を参照
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。