mcpField
F
fish-bridge — Session Knowledge Graph

fish-bridge — Session Knowledge Graph

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

关于 fish-bridge — Session Knowledge Graph

fish-bridge 将 AI 聊天会话压缩为类型化知识图谱,并写入指令文件供后续轮次读取。它面向需要保留项目上下文的开发者;可使用本地 Ollama,核心流程无需 MCP。

主要功能

  1. 01将聊天压缩为类型化知识图谱
  2. 02摄取聊天记录、文档、代码库和测试输出
  3. 03合并重复节点并标记状态冲突
  4. 04将上下文写入 Copilot 或 Claude 指令文件
  5. 05支持本地及云端 LLM 后端

适用场景

  1. 01在编码会话间保留决策和任务
  2. 02为后续轮次整理 Copilot 聊天
  3. 03合并项目规范和代码库信息
  4. 04将失败测试记录为图节点

MCP 相关

可选的 MCP 服务支持在 VS Code Agent 模式下实时记录对话轮次,并提供记录轮次、获取上下文、管理图节点以及导入导出会话的工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"makeamouse-fish-bridge": {
"command": "uvx",
"args": [
"fish-bridge-mcp"
],
"env": {
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>"
}
}
}
}
启动命令uvx fish-bridge-mcp
需要配置的环境变量
ANTHROPIC_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypifish-bridge-mcp0.1.3

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
user_messagestring是
assistant_messagestring是

详细介绍

fish_bridge

CI PyPI Python License: MIT

面向 AI 聊天上下文压缩的会话级知识图谱引擎。

将原始 AI 聊天记录(40k+ 个 token)转换为精简的类型化知识图谱(约 300–800 个 token),并写入 .github/copilot-instructions.md 或 CLAUDE.md——在所有模式(ask、edit、agent)下自动包含在每轮 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 文档。它用一个工具替代 pip + pipx + pyenv——无需管理虚拟环境。

推荐——uv tool install(会在 PATH 中同时安装 fish-bridge CLI 和 fish-bridge-mcp MCP 服务):

# 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 中会有两个可用命令:

  • fish-bridge——主 CLI(ingest、compile、show、serve 等)
  • fish-bridge-mcp——用于 VS Code Agent 模式的 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 个 token),可在之后的每轮对话中替代原始历史记录。

后端

后端安装附加项模型质量每轮成本
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 服务(可选——仅用于 Agent 模式)

使用 VS Code Agent 模式时,MCP 服务会增加实时 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

接入来源

来源命令接入内容
Copilotingest --source copilotVS Code Copilot JSONL 对话记录(自动发现)
粘贴ingest --source paste任意聊天文本——通用备用方式
文档merge --source documentMarkdown、JSON、YAML 规格和 ADR
代码库merge --source codebaseGit 提交记录 + README + HANDOVER
Obsidianmerge --source obsidian带有 wikilinks 和 frontmatter 的 Vault 笔记
会话merge --source session先前导出的 .chatgraph.json
依赖项merge --source depspackage.json、pyproject.toml、Cargo.toml、go.mod、Gemfile、pom.xml
测试输出merge --source testoutJest JSON、pytest JSON、JUnit XML——每个失败的测试对应一个错误节点
IaCmerge --source iacTerraform、CDK(合成输出)、CloudFormation、docker-compose
OpenAPImerge --source openapiOpenAPI 3.x / Swagger 2.0 / AsyncAPI 规格

工作原理

  1. 接入 — 从 JSONL(Copilot)、粘贴内容或任意文件格式读取原始聊天轮次
  2. 提取 — 大模型提取带类型的节点(问题、决策、错误、任务、技能、文件)和边
  3. 去重 — 语义相似度用于合并近似重复项;冲突检测会标记状态反转
  4. 编译 — 将图压缩为约 300–800 个 token 的 XML/Markdown 块
  5. 写入 — 将块写入 .github/copilot-instructions.md(或 CLAUDE.md)
  6. 交付 — AI 工具会在下一轮自动读取该文件——无需注入,也无需 Agent

文档

许可证

MIT——详见 LICENSE

评论

支持 Markdown

第一次接触 MCP?

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

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