mcpField
M
Myco Brain

Myco Brain

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

关于 Myco Brain

Myco Brain 是基于自有 Postgres 的可自托管记忆层与 MCP 服务,面向需要跨会话共享上下文的 AI Agent 和团队。它以确定性规则处理事实,保留来源与变更历史,并支持按客户隔离。

主要功能

  1. 01跨会话记忆与上下文检索
  2. 02事实保留来源及变更历史
  3. 03Postgres 行级隔离
  4. 04本地全文与语义搜索
  5. 05可审核的事实提议与晋级

适用场景

  1. 01让多个 Agent 共享项目决策
  2. 02为机构客户隔离各自记忆
  3. 03追溯某条事实的来源与变化

MCP 相关

通过 MCP 提供记忆工具,并在 instructions 通道传递使用约定。文档引擎另提供用于搜索、取回和知识图谱操作的 MCP 工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"myco-brain": {
"command": "npx",
"args": [
"-y",
"@mycobrain/mcp-server"
]
}
}
}
启动命令npx -y @mycobrain/mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@mycobrain/mcp-server1.3.0

工具

11

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

参数类型必填说明
limitnumber否返回的最大文本块数(默认值 10,最大值 50)
querystring是自然语言查询
embeddingarray否预先计算的查询嵌入(可选;OpenAI 为 1536 维,Ollama 为 768 维)。通常省略此项,服务端会对查询进行嵌入。
hyobject_typesarray否按 type_ids 筛选
include_peopleboolean否
include_entitiesboolean否
relational_limitnumber否返回的最大关系边数(默认值 25,最大值 100)
context_token_budgetnumber否返回文本块的可选令牌预算;启用确定性压缩
include_session_notesboolean否
include_relational_contextboolean否

详细介绍

Myco Brain

为你的 AI Agent 提供共享记忆,存储在你自己的 Postgres 上。每条事实都会保留其来源;发生变更时,新事实会取代旧事实,而不是覆盖它;每个客户端的事实都严格限定在各自的边界内。

CI npm LongMemEval License: Apache-2.0 MCP Compatible

两条命令,为你的 Agent 配备记忆

npm install -g @mycobrain/mcp-server
mycobrain-setup memory

你需要 Node.js 20 或更高版本。设置过程会询问几个问题,显示每个即将修改的文件,并等待你确认。它会备份所有修改过的文件,不会将任何密钥写入这些文件,最后写入一条事实并读取验证。mycobrain-setup memory --uninstall 会移除它添加的内容。

  • 记忆存储位置。 使用带有 pgvector 的本地 Postgres:设置程序会在你的机器上查找一个,或在 Docker 中启动一个。你也可以通过引用提供任意 Postgres 连接字符串(Supabase、Neon、RDS、可自托管),这样连接字符串就不会出现在你的 shell 历史记录中。
  • 入门模板。 可选择代理机构、设计工作室、建筑或景观公司、独立顾问,或选择 custom,通过简短访谈生成适用于你自己业务的模板。模板会设定如何将客户划分到不同空间、实体的类型,以及哪些信息值得记住。
  • 在 Claude Code 和 Codex 中自动运行。 钩子会在会话开始时以及每条提示词发送前,召回相关事实。后台工作进程会读取每个已结束的会话,并归档从中找到的持久事实。
  • 通过 MCP 在 Cursor、Windsurf 和 Claude Desktop 中使用。 这些应用没有钩子,因此会使用一个包含两个工具 brain_memory_context 和 brain_memory_write 的 MCP 服务,以及指导 Agent 在采取行动前先召回信息、并记录所学内容的说明。
  • 事实均注明来源,绝不覆盖。 每条事实都会记录其来源。事实发生变化时,旧事实会被新事实取代;mycobrain-memory history 会显示两者及变更原因。
  • 在数据库中强制执行客户边界。 不同空间会隔离客户,且只有你能创建空间。mycobrain-memory binding add <name> --house <slug> 会让承包商的 Agent 只能访问一个客户的信息。每个工具都有自己的凭据,因此你可以查看哪个工具写入了某条事实,也可以撤销某个工具的权限,而不影响其他工具。
  • 无需 API 密钥。 工作进程通过你已登录的 claude 或 codex CLI,使用你自己的 Claude 或 Codex 订阅读取会话。如果安装了 Ollama,嵌入计算会在本地运行。若没有 Ollama,召回功能会匹配提示词中的词语,对名称、地点和数字效果很好。
  • Dream 默认关闭。 启用后,它会提出合并重复事实、生成每位客户的档案以及发现跨客户模式的建议。在你通过 mycobrain-memory review approve 批准建议之前,不会有任何更改。

你可以随时使用 mycobrain-doctor --memory 检查。操作指南:docs/memory-quickstart.md。所有命令:docs/memory-cli.md。

发布前,我们在一个新建的主目录中,从打包好的 npm tarball 运行了文档中记录的命令,并将环境设置为一家虚构的景观公司。第一场会话中做出的决定,在第三场会话中未经提示便被召回。一条变更取代了旧事实,并保留了历史记录。一个仅限访问某位客户信息的 Agent,没有找到另一位客户的任何信息。数据库停止运行时,会话仍能启动;写入操作会排队等待,并在之后送达。卸载后,配置文件逐字节恢复原样。

文档引擎(可选)

引擎是 Myco Brain 最早推出的部分:摄取文档、代码仓库和聊天导出记录,搜索这些内容,构建知识图谱,并追溯每个答案所依据的文档。它以 Docker 堆栈的形式运行,可与记忆层并行运行,也可独立运行。如果你希望答案来自文档,而不只是 Agent 记录的事实,就可以添加它。下面的大部分内容都在介绍引擎。

看它如何记住——保存后,几天后提问,并追溯来源

  • 来源可追溯。 每条事实都能追溯到其来源文档(brain_why)——没有让人只能盲信的摘要。
  • 信任会不断累积。 独立佐证会_提高_事实的可信度;出现矛盾时会_取代_该事实——旧事实会保留并接受审计,绝不会被悄悄覆盖。
  • 无需密钥,本地优先。 全文搜索、语义搜索和知识图谱都无需依赖托管服务即可运行——只有在追求最准确的图谱时才需要添加 Anthropic 密钥。
  • 由你掌控。 Apache-2.0、原生 Postgres 表、13 个引擎 MCP 工具。兼容 Claude、Cursor、Windsurf、Continue、Zed。

适用人群: 运行 Agent 的开发团队,需要共享记忆 · 需要严格隔离各客户数据的代理机构 · 任何希望助手能跨会话记住信息的人——导入你的 ChatGPT / Claude 历史记录(来自你的数据导出),让 AI 从第一天起就了解你。

解决 Agent 健忘问题的常见方法——让大模型自行维护记忆——会让记忆充斥重复内容、幻觉摘要,以及无法追溯来源却语气笃定的答案。Myco Brain 遵循截然相反的原则:

大模型提出建议。由确定性规则决定哪些内容成为事实。由你设定 标准——既可以采用基于交叉佐证的自动晋升机制(默认),也可以 要求每条事实都经过严格的人工审核(BRAIN_REQUIRE_HUMAN_REVIEW=1)。

Claude、Cursor、Windsurf、Continue、Zed 和自定义 Agent 都可以共享由你自己的 Postgres 提供支持的同一份记忆。

⭐ 如果你认同这种信任机制,点个星标有助于更多人发现它。

# 1. Boot the stack (Postgres + MCP server + extraction worker)
git clone https://github.com/thegoodguysla/myco-brain.git && cd myco-brain
docker compose up -d

# 2. Give your agent a memory — point it at any repo or folder
#    (no env needed: it finds the quickstart stack on localhost)
npx -y -p @mycobrain/mcp-server mycobrain-ingest github:your-org/your-repo

# 3. Connect your client (one-liner below), then ask across sessions:
#    "what did we decide about auth, and where is that documented?"
#    → answered from your docs, with the source cited.

提示

从头到尾都无需 API 密钥。 全文搜索、语义搜索(本地嵌入)和知识图谱(本地提取)均无需依赖托管服务即可运行。只有在追求最准确的图谱时才需要添加 Anthropic 密钥。

专为 MCP 打造——你的 Agent 知道何时使用记忆,而不只是如何使用。 大多数 MCP 服务只提供工具,寄希望于模型会调用它们。Myco 通过 MCP 的 instructions 通道提供使用约定:连接后,你的 Agent 就会知道在任务开始前获取上下文、保存重要决策,并使用 brain_why 引用来源——无需针对每个项目单独编写提示词。只需复制粘贴一个代码块即可调整策略:教会你的 Agent 有效使用它。

快速链接: 两条命令即可启用记忆 · 引擎快速入门 · 教会你的 Agent 有效使用它 · 信任引擎 · 基准测试——亲自运行 · 运行所有验证 · 适用人群 · 环境变量 · 架构 · 路线图 · 云服务候补名单

记忆愈发可信(信任度累积提升)

大多数 Agent 记忆会悄无声息地覆盖事实。Myco Brain 会让信任度累积提升:

累积提升的信任度 — 交叉印证会提升信任度,矛盾信息会取而代之

  • 独立来源对某项事实的认同会提升其信任度 (阻尼 noisy-OR——同一文档的十个片段不会形成任何交叉印证;只有 不同来源才计入)。
  • 对单值关系(如你为谁工作、某物位于何处)的高可信度矛盾信息会 取代旧事实:旧事实会被关闭并降低信任度——保留,绝不删除—— 取代记录则会写入经过审计的声明账本。
  • 询问 brain_why 了解任何事实,即可查看其不同来源的数量(按 关系计数,而非按提及次数)、随时间变化的信任度趋势(“0.8 → 0.86”) 以及任何被取代的历史记录。 矛盾信息会保留下来。你的记忆不会对你进行煤气灯操纵。
works for → Halcyon Labs           0.55  [SUPERSEDED — kept, not deleted]
works for → Driftwood Analytics    0.90  [ACTIVE]
claims ledger: old fact superseded_by → new fact (audited)

证明:npm run test:compounding——几秒内即可针对实时数据库运行完整生命周期测试,无需 LLM。

架构随数据演进(动态架构)

  • 提取工作进程会发现目录中尚不存在的实体类型和关系类型,并提出 建议(brain_stats:“Brain 根据你的数据提出了 3 种新类型”)。
  • 默认由你决定是否晋升——也可以选择开启自动晋升,让得到足够多不同源文档 交叉印证的类型自动晋升 (BRAIN_SCHEMA_AUTO_PROMOTE=1)。每份文档只计一次,而非每次提及都计, 因此,两份文档即使来回传递也无法制造共识。一份内容冗长的文档永远无法促成晋升。
  • 晋升后的类型仍会限定在让它获得晋升的工作区中——一个客户端的 词汇不会泄漏到另一个客户端的目录中(参见 按客户端隔离)。

证明:npm run test:dynamic-schema、npm run test:schema-promotion。

由你选择信任级别:

模式行为
默认高可信度事实自动晋升;新类型等待审核
BRAIN_REQUIRE_HUMAN_REVIEW=1严格审核——未经人工决定,LLM 提出的任何内容都不会进入规范图谱
BRAIN_SCHEMA_AUTO_PROMOTE=1经交叉印证的新类型会自动晋升,并接受审计

当有内容等待你处理时——默认模式下是新类型,严格模式下则是所有内容—— 你可以从命令行进行审核:

mycobrain review                 # list pending entities, relationships, types
mycobrain review approve <id>    # promote it into the graph
mycobrain review reject  <id>    # reject it (kept and audited, never deleted)

证明:npm run test:review——批准后,实体/边/类型确实会进入规范图谱;拒绝则绝不会进入。

私有记忆,共享知识

多 Agent 团队可以实现真正的隔离:标记为 private 的文档只有创建它们的 Agent 才能读取—— 每个读取工具都会强制执行此限制,且工作区行级安全也会提供额外保护。工作区记忆仍然共享。证明: npm run test:sharing(双 Agent 可见性矩阵)。 与工作区隔离一样, 此机制仅在权限最小化的 brain_app 角色下生效 (安全说明)。

每个客户端拥有独立的工作区——专为代理机构打造

为每位客户设置独立工作区,共享一份代理机构统一的操作手册;你承诺提供的保障是 Postgres 行级安全——属于客户 A 的会话无法返回客户 B 的行。 代理机构入门套件 会通过一条命令完成配置,并提供可真正实现隔离的最小权限数据库角色。证明: npm run test:agency——客户 A 看不到客户 B 的任何事实。

重要

只有使用最小权限角色时,隔离才有效。 RLS 无法约束 Postgres 超级用户;零配置快速入门默认使用的 brain 角色 就是超级用户(适合单工作区的自托管场景——无需隔离)。在同一个数据库中放入多位客户之前,请使用代理机构套件提供的 NOSUPERUSER brain_app 角色运行应用;mycobrain-doctor 会标记超级用户连接。多租户隔离是 brain_app 的保障,而不是默认快速入门角色的保障。

进阶——多租户网关:调用者是谁?(BRAIN_TRUST_REQUEST_IDENTITY)

RLS 决定租户可以读取哪些行;此设置决定请求属于哪个租户——这是 RLS 之前的步骤。默认情况下,在 stdio 服务上,身份仅取自服务的环境变量:工具调用参数中提供的 workspace_id、agent_id 或 api_key 都会被忽略,因此,即使提示词注入了 Agent,它也无法传入 workspace_id: "<someone-else>" 来访问其他工作区。(对于 brain_ 密钥,身份仅由密钥字符串确定。)

只有在服务前端部署了真正的多租户网关,且该网关会对每个请求进行身份验证并自行映射到租户时,才设置 BRAIN_TRUST_REQUEST_IDENTITY=1——此时会采用每个请求的身份(且服务角色 JWT 必须与 BRAIN_SERVICE_ROLE_KEY 完全相同,不能只是看起来像)。单租户自托管无需进行这些设置——其身份已经由环境变量确定。

通过 HTTP 查询(只读)

并非所有应用都支持 MCP。对于 Web 应用、自动化流程或合作伙伴后端, mycobrain-rest 会在 brain 前端提供一个小型只读 API——仅包含两个 工具:search 和 why,以及健康检查:

mycobrain-rest                                  # → http://127.0.0.1:8787

curl -s localhost:8787/search \
  -H "Authorization: Bearer brain_<ws>_<agent>_<secret>" \
  -d '{"query":"what did we decide about pricing?","limit":5}'
  • **作用域:**密钥会将每次查询限定在其所属工作区(与 MCP 使用相同的 RLS),并且 没有写入路由。与 MCP 一样,只有使用最小权限的 brain_app 角色时,此限制才有效(参见安全说明)——切勿将 REST 暴露为默认的 brain 超级用户(mycobrain-doctor 会标记此情况)。
  • **密钥验证:**迁移至 …_agent_api_key_verification.sql 的安装会在注册密钥后,通过 agent_api_keys 验证每个密钥的 <secret>(通过 brain_set_agent_api_key_secret(...) 注册或轮换)。在此之前,密钥会作为持有者令牌使用;设置 BRAIN_REQUIRE_API_KEY_SECRET=1,即可要求先注册密钥后再暴露 REST。
  • **绑定:**默认绑定到回环地址——只有确实要对外暴露时,才在自有 TLS/代理之后设置 BRAIN_REST_HOST=0.0.0.0,并像保护密码一样保护密钥。

证明:npm run test:rest。

五个经过验证的演示

1. 跨会话回忆

在一段对话中保存一条事实:

Save a memory: the board meeting is every Wednesday at 9 AM Pacific.

开始一段新对话并提问:

What time is the board meeting?

预期结果:新会话会检索已存储的事实,而不是依赖聊天记录。

2. 跨 Agent 共享记忆

通过一个客户端写入:

Save a memory: Acme's renewal call is on October 15 with Jordan.

通过另一个客户端读取:

What is Acme's renewal date?

预期结果:两个客户端都能读取相同的共享记忆,因为事实来源是 Postgres,而不是单个聊天对话。

3. 答案溯源

针对任意事实询问 brain_why,即可获得来源链——而非要求你盲目信任的摘要。 以下是基于演示语料构建的实体的实际输出:

{
  "subject": { "kind": "entity", "name": "Mara Quinn" },
  "evidence": {
    "mention_count": 4,
    "source_document_count": 4,
    "summary": "Supported by 4 mentions across 4 source documents."
  },
  "source_proposals": [
    { "extracted_by": "ollama:llama3.2:3b", "confidence": 1, "state": "auto_promoted",
      "source_hyobject_id": "8e31414c-…" }
  ]
}

每条已接受的事实都能追溯到其来源文档,以及事实的提取方式。

4. 使用来源摄取文档

摄取文件或 URL:

Ingest ./docs/customer-handbook.pdf and summarize the onboarding checklist with sources.

预期结果:文档会被分块、编入索引,并通过检索返回引用。

5. 图关系

提问:

Show related entities for Acme and explain how they connect.

预期结果:关系查询会找出彼此关联的人物、文档和实体,以及提取工作器构建的实体间边(例如,Mara Quinn —manages→ Northwind Coffee),而非只返回平铺的向量匹配。使用 Ollama 在本地构建知识图谱,无需 API 密钥。

所有演示都是代码,而非屏幕录制——demos/ 会针对全新堆栈确定性地重新渲染这些演示(npm run demo:render -- all)。

Myco 对比

不同工具做出了不同的取舍;此处对比的是架构 方案,而非直接基准测试结果——当检索召回率较高时,答案模型就会成为瓶颈,因此跨系统的分数对比会产生误导(参见基准测试部分)。

典型的由 LLM 维护的记忆框架记忆(例如 LangChain)Myco Brain
可复现的基准测试自行报告—仓库内附带测试框架——自行复现数据
事实提取基于 LLM基于 LLM确定性写入路径;LLM 输出仅通过受控的提议队列进入
相互矛盾的事实作为独立记录共存可能出现被取代,而非覆盖——经审计的声明账本
事实置信度静态—随独立证据累积提升,遇到矛盾时下降
幻觉事实可能出现可能出现从写入路径中排除
来源溯源部分支持部分支持通过 brain_why 原生支持(来源 + 审计轨迹 + 置信度趋势)
共享记忆取决于应用配置取决于应用配置原生 Postgres 数据源,支持带对象级隐私的多 Agent
数据可移植性由供应商/框架决定由框架决定普通 Postgres 表

10 分钟内快速开始

文档引擎。已验证的本地运行方式:从全新克隆的仓库使用 Docker Compose。(如果只需要记忆,则无需这些;请参阅 只需两条命令,为你的 Agent 配置记忆。)

git clone https://github.com/thegoodguysla/myco-brain.git
cd myco-brain
docker compose up -d

启动的组件:

  • Postgres 16 + pgvector
  • MCP 服务
  • 提取工作器

启动时无需 API 密钥——以下是启用各项能力的要求:

能力开箱即用?启用方式
全文(BM25)搜索✅ 立即可用无需配置
语义搜索需要嵌入BRAIN_EMBED_PROVIDER=ollama(本地使用,无需密钥)
知识图谱需要提取器在本地使用 Ollama(无需密钥),或设置 BRAIN_ANTHROPIC_API_KEY(准确度最高)

运行一条命令,确认服务是否健康。mycobrain-doctor 不只是检查是否设置了环境变量——对于本地 Ollama 运行方式,它会实时验证配置(对 Ollama 发送 ping,确认嵌入和提取模型已拉取,并执行实际的嵌入和生成),然后检查提取积压和审核队列。只有发生实际故障(出现红色提示)时,它才会以非零状态码退出,因此显示绿色就表示运行正常:

npx -y -p @mycobrain/mcp-server mycobrain-doctor

添加 --fix,即可让它为你拉取缺失的 Ollama 模型:

npx -y -p @mycobrain/mcp-server mycobrain-doctor --fix
连接你的客户端

推荐 — 引导式设置。 只需一条命令,即可逐步完成 Agent 连接,每一步都会征求你的同意:

npx -y -p @mycobrain/mcp-server mycobrain-setup

该命令会运行预检(每项都会提供修复方案)、验证 pgvector 和数据库中的实际写入,并配置你的 MCP 客户端(Claude Code、Claude Desktop、Cursor、Codex、Windsurf)。如果 zip 文件已位于 ~/Downloads,还会提供一键导入 ChatGPT 或 Claude 数据导出的选项。每个已连接的客户端都会获得独立的 Agent 身份,这样之后回忆内容时,就能看到记忆来自哪个工具。想要自己动手?下面是手动配置方法。

Claude Code — 手动配置(使用快速入门堆栈预置的公开本地开发凭据):

claude mcp add myco-brain \
  --env DATABASE_URL=postgresql://brain:brain@localhost:5432/brain \
  --env BRAIN_API_KEY=brain_00000000-0000-0000-0000-000000000001_00000000-0000-0000-0000-0000000000a1_localdev \
  -- npx -y @mycobrain/mcp-server

重启 Claude Code 后,brain_* 工具即可使用 — 服务会自动向每个已连接的 Agent 提供使用规范(何时回忆、保存和引用),因此开箱即用。

Claude Desktop — 将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json (Cursor 和 Windsurf 也使用相同的 mcpServers 配置块,放在 .cursor/mcp.json / 各自的 MCP 设置中):

{
  "mcpServers": {
    "myco-brain": {
      "command": "npx",
      "args": ["-y", "@mycobrain/mcp-server"],
      "env": {
        "DATABASE_URL": "postgresql://brain:brain@localhost:5432/brain",
        "BRAIN_WORKSPACE_ID": "00000000-0000-0000-0000-000000000001",
        "BRAIN_API_KEY": "brain_00000000-0000-0000-0000-000000000001_00000000-0000-0000-0000-0000000000a1_localdev"
      }
    }
  }
}

注意: BRAIN_WORKSPACE_ID 根据你的 brain_ API 密钥推导得出,因此是可选的 — 上面的 Claude Code 单行命令省略了它,效果相同。

接下来测试一下顺利流程:

Save a memory: the launch checklist lives in the ops folder.

开启新会话并询问:

Where does the launch checklist live?

完整设置指南:docs/quickstart.md

首次运行 — 快速体验属于你的神奇时刻

Myco 初始状态为空。用你自己的数据最能带来惊喜,因此建议第一步先导入你的历史记录:

# Guided getting-started — leads with importing your own history
npx -y -p @mycobrain/mcp-server mycobrain-onboard
# Import your ChatGPT or Claude export (~30s), then ask your agent about your past
mycobrain-ingest --from chatgpt-export ~/Downloads/<your-export>.zip
mycobrain-ingest --from claude-export  ~/Downloads/<your-export>.zip
#   → "what did I decide about <topic>?" answered from your own conversations.

想跳过这一步?直接开始使用即可 — Brain 会在你工作时记住内容。或者,你也可以通过 60 秒实时导览体验示例数据;导览结束后会自动清理(不会触碰你的工作区):

mycobrain-onboard --tour
通过演示语料查看运行效果(可选沙盒)

想看更丰富的引导示例?加载随附的演示语料 — 一组关于虚构代理机构及其客户、彼此关联的文档:

npx -y -p @mycobrain/mcp-server mycobrain-ingest ./examples/demo-corpus

然后向任意已连接的 Agent 提问:

  • “Northwind 的品牌重塑什么时候发布?谁负责这个客户?”
  • “我们为 Northwind 选择了哪种定价模式?为什么?”
  • “给我看看这个说法的来源。” — 通过 brain_why 查看出处
  • “给我看看 Myco 的记忆统计。” — 通过 brain_stats 查看健康状况概览

每个答案都能追溯到其来源文档。无需 API 密钥。

压轴体验: 语料中包含一处刻意设置的矛盾 — 一份文档称 Devin Osei 在 Lumen 工作,之后的一份文档则称他已离职并加入 Harbor & Co.。 启动无需 API 密钥的本地图谱后,提问:

  • “Devin Osei 为谁工作?发生了什么变化?你怎么知道的?”

旧事实会以已被取代 — 保留而非删除的状态返回,并引用两份来源文档。这就是信任引擎在你的数据上发挥作用的效果,而不是预设的演示脚本。

探索完毕?使用以下命令,仅清除随附的示例数据(不会触碰你自己的导入内容和记忆):

mycobrain-onboard --reset-demo

批量导入文件夹或代码仓库

让 Brain 读取一个目录或 GitHub 代码仓库,它就会为其中的每个文本文件建立索引 — 可跨会话搜索,并且每个答案都能追溯到来源文件。

npx -y -p @mycobrain/mcp-server mycobrain-ingest ./docs        # a local folder
npx -y -p @mycobrain/mcp-server mycobrain-ingest github:owner/repo   # a GitHub repo

使用快速入门堆栈时无需设置环境变量 — CLI 默认使用该堆栈。如需连接自己的 Postgres 或工作区,请设置 MCP 服务所用的相同环境变量(DATABASE_URL、BRAIN_WORKSPACE_ID、BRAIN_API_KEY)。

然后向任意已连接的 Agent 提问:“在我导入的文件中搜索身份验证流程”,或*“给我看看 Myco 的记忆统计”*。私有代码仓库需设置 GITHUB_TOKEN。

构建知识图谱 — 本地运行,无需 API 密钥

Myco 与向量存储的区别在于图谱。提取工作进程会读取你摄取的文档,并:

  • 提取实体——人物、公司、项目、地点;
  • 合并重复项,让“Priya”和“Priya Raman”成为同一个节点;
  • 将它们连接为有向关系——Mara Quinn —任职于→ Northwind Coffee,绝不会反过来(随附的提示词能识别方向,模型忘记列出的端点也会自动补回);
  • 并提出它发现的新类型,让架构随着你的领域不断扩展。

你可以选择用于提取的模型。使用 Ollama 时,数据不会离开你的设备;Anthropic 生成的图谱最准确。

14 条边的黄金测试数据集上,有两个不同且常被混为一谈的质量指标 (验证方式:npm run test:direction):

指标衡量内容分数
有向准确率边的方向是否正确86%(12/14,llama3.2:3b)
边保留率是否找回端点,而非将其丢弃~80%(11–12/14,门槛 ≥75%)
选项 A — 本地运行且免费(Ollama,无需 API 密钥)
# Install Ollama (https://ollama.com/download), then pull a model:
ollama pull llama3.2:3b

# Point the worker at it and restart:
echo "BRAIN_OLLAMA_BASE_URL=http://host.docker.internal:11434" >> .env
docker compose up -d
选项 B — 最准确(Anthropic,使用你自己的密钥)
echo "BRAIN_ANTHROPIC_API_KEY=sk-ant-..." >> .env
docker compose up -d

如果两者都已配置,则会自动使用 Anthropic(准确度更高);设置 BRAIN_EXTRACTION_PROVIDER=ollama|anthropic 可强制选择。

试试看

摄取几份文档,稍等片刻让工作进程处理,然后向已连接的 Agent 提问:

  • “我的 Northwind 文档中有哪些实体?” — brain_neighbors
  • “Mara Quinn 与 Northwind 有什么关系?” — 实体之间的关系
  • “显示我的 Myco 记忆统计信息。” — 查看图谱增长情况(brain_stats)

无论选择哪种方式,权威图谱都存储在你的 Postgres 中——模型只负责提出建议;数据库决定哪些内容会成为持久事实。

基准测试 — 自行运行

这里的重点是可复现性,而非单一分数——本仓库包含 LongMemEval 测试框架,因此你可以自行运行测试;我们不宣称任何测试结果。

指标子集(500 个问题)配置分数
端到端问答oracle阅读器 gpt-4o-mini · 评审器 gpt-4o73.6%
端到端问答oracle高性能阅读器(gpt-4o)71.8%
证据召回率@5(Ev@5)longmemeval_s混合检索(向量 + BM25)89.2%
证据召回率@5(Ev@5)longmemeval_s无需密钥的时效性重排器91.6%
证据召回率@10longmemeval_s混合检索 → 时效性90.2% → 93.2%

端到端问答使用 oracle 子集,该子集仅向阅读器提供黄金证据会话,因此衡量的是推理能力,而非检索能力(检索由下文的 Ev@5 衡量)。高性能阅读器配置的分数更低(gpt-4o,71.8%):证据已经位于上下文中时,记忆层已达到饱和,因此阅读器不是瓶颈——这正是跨系统比较单一头条指标会产生误导的原因。其他人公布的约 90% 分数,通常使用了不同的子集、阅读器和评审器;我们并未宣称在正面对比中胜出,而是提供测试框架,让你在相同条件下对任何系统进行评分。

cd evals/longmemeval && python3 -m venv .venv && .venv/bin/pip install -r requirements.txt && cd ../..
OPENAI_API_KEY=sk-... DATABASE_URL=postgresql://brain:brain@localhost:5432/brain \
  evals/longmemeval/.venv/bin/python3 -m evals.longmemeval.run \
  --examples 500 --subset longmemeval_oracle --judge-model gpt-4o

检索质量(表中的 Ev@5)才是真正的检索指标——上文的 oracle 子集并未测试检索能力——它是在包含干扰项的完整 longmemeval_s 子集上测得的。时效性重排器(brain_search(reranker: 'recency'))具有确定性:无需 API 密钥,也不会发起网络请求。混合检索需要嵌入提供方(可通过本地 Ollama 无需密钥,或使用 OpenAI);默认的纯 BM25 搜索得分较低。复现方式(仅嵌入,不使用评审器): python -m evals.longmemeval.run --subset longmemeval_s -n 500 --no-qa。

方法说明、两种配置、各类别的细分结果(包括对我们来说较难的类别——如实报告,不予隐藏),以及成本更低的样本命令: evals/longmemeval/README.md。

每项声明都有验证方式

本页面上的内容都不需要你盲目信任——每项能力都列出了在开发过程中用于验证它的可运行检查。(在 npm install 后,从 mcp-server/ 运行 npm run 和 node test/ 检查;node examples/ 和 evals/ 路径相对于仓库根目录。)

声明检查
快速入门可端到端运行node test/quickstart-e2e.mjs(也会在 CI 中针对真实 Docker 技术栈运行)
不会发生重复;溯源信息完整node examples/benchmark/run.mjs
无需密钥的语义搜索能找到含义,而非只匹配词语npm run test:local-embeddings
关系能识别方向;边不会丢失npm run test:direction
证据越多,置信度越高;矛盾信息会被取代npm run test:compounding
会提出新类型(且仅在有佐证并选择启用时才会自动提升)npm run test:dynamic-schema · npm run test:schema-promotion
严格策展模式会阻止所有自动提升npm run test:strict-mode
私有文档保持私有npm run test:sharing
全部 15 个工具都能放入上下文(约 4.0K 个 token;仅 2 个记忆工具时约 1.5K 个 token)npm run audit:tokens
代理机构:客户 A 无法读取客户 B 的数据(工作区 RLS)npm run test:agency
审核提案确实会将其提升或拒绝npm run test:review
只读 REST API:具备身份验证、只读限制和 DoS 防护上限npm run test:rest
基准测试结果evals/longmemeval/(完整测试框架位于仓库中)

适用对象

Myco 是记忆层,适用于任何需要 AI Agent 带有凭据地记住信息的团队。以下每个页面都会针对你的受众重新介绍 Myco,并展示它在各行业中的相同用例(金融科技、医疗保健、法律、会计、保险、SaaS、客户支持、电子商务)。

  • 开发者:为生产环境构建 Agent,使用一个 MCP 服务、确定性的写入路径,以及由你掌控的溯源信息。
  • Vibecoders:快速交付,只需一行代码即可实现持久记忆;无需密钥、免费,也不必搭建基础设施。
  • 团队:将 AI 集成到产品中,使用按租户隔离的客户记忆,并存储在由你掌控的 Postgres 上。
  • 代理机构:每位客户都拥有独立且可审计的工作区。

架构

Myco 架构 — MCP 客户端通过确定性的写入路径调用大脑工具,将数据写入作为真实数据源的 Postgres。信任引擎会累积置信度,并取代矛盾信息。可选的本地优先 LLM 层只负责提出建议,绝不会成为记忆存储。

设计刻意保持简单:数据库是权威数据源,写入路径由程序控制,LLM 提供辅助,但不会成为记忆存储。

工具接口

配置好引擎后,MCP 服务会列出 15 个工具;仅以记忆模式运行时则列出 2 个工具(mycobrain-setup memory 为 Cursor、Windsurf 和 Claude Desktop 写入的配置)。

记忆工具:

  • brain_memory_context
  • brain_memory_write

引擎工具:

  • brain_context_pack
  • brain_search
  • brain_why
  • brain_neighbors
  • brain_ingest
  • brain_propose_fact
  • brain_annotate
  • brain_save_memory
  • brain_recall_memory
  • brain_get_related
  • brain_stats
  • brain_set_mode
  • brain_self_check

每个工具的完整输入、输出和示例:docs/api-reference.md。

环境变量

Docker 快速入门无需任何这些变量——它自带预置的本地凭据,BM25 搜索开箱即用。以下配置可供你自行部署时参考。带注释的完整列表及调优阈值见 .env.example。不确定当前启用了哪些配置?运行 mycobrain-doctor。

必需

变量默认值作用
DATABASE_URL—Postgres 连接字符串。唯一的硬性要求。
BRAIN_API_KEY已预置brain_<workspace>_<agent>_<secret> 密钥;快速入门自带一个 localdev 密钥。
BRAIN_WORKSPACE_ID从密钥获取从 BRAIN_API_KEY 派生;仅在使用服务角色身份验证时显式设置。

语义搜索 (可选——不设置时,BM25 全文搜索仍可用)

变量默认值作用
BRAIN_EMBED_PROVIDERautoollama 或 openai;根据已设置的凭据自动选择。
BRAIN_OLLAMA_EMBED_MODELnomic-embed-text本地嵌入模型(无需密钥,数据不会离开你的设备)。
BRAIN_OPENAI_API_KEY—使用 OpenAI 嵌入,而非本地嵌入。

知识图谱 (可选)

变量默认值作用
BRAIN_OLLAMA_BASE_URL—本地提取/嵌入端点(例如 http://localhost:11434)。
BRAIN_OLLAMA_MODELllama3.2:3b本地提取模型。
BRAIN_ANTHROPIC_API_KEY—最准确的图谱;设置后会自动使用。
BRAIN_EXTRACTION_PROVIDERauto强制使用 ollama 或 anthropic。

信任调节 (治理)

变量默认值作用
BRAIN_REQUIRE_HUMAN_REVIEW0严格审核——未经人工决策,LLM 提出的内容不会进入图谱。
BRAIN_SCHEMA_AUTO_PROMOTE0允许经佐证的新类型自动晋升,并进行审计且限定在工作区范围内。

服务

变量默认值作用
BRAIN_REST_HOST127.0.0.1mycobrain-rest 的绑定主机。仅在你自己的 TLS/代理后使用 0.0.0.0。
BRAIN_REST_PORT8787只读 REST 端口。
BRAIN_HEALTH_PORT8080健康检查端口。

身份与安全

变量默认值作用
BRAIN_REQUIRE_API_KEY_SECRET0要求每个 Agent 密钥都具有已注册的 <secret>,身份验证才会成功。
BRAIN_TRUST_REQUEST_IDENTITY0仅用于 Stdio、多租户网关。 关闭时:身份仅来自环境变量,因此会忽略调用方提供的 workspace_id/api_key(可抵御提示词注入)。仅当请求由能对每个请求进行身份验证的网关处理时,才设置为 1。详情 ↑
BRAIN_AGENT_ID从密钥获取服务角色身份验证使用的 Agent 身份;否则从 BRAIN_API_KEY 派生。
BRAIN_SERVICE_ROLE_KEY—供可信服务调用方使用的 Supabase 服务角色 JWT(brain_ 密钥的替代方案)。

调优阈值(BRAIN_SCHEMA_PROMOTE_MIN_SEEN、BRAIN_EXTRACTION_LEASE_MS、BRAIN_FUNCTIONAL_PREDICATES,……)见 .env.example。

仓库布局

myco-brain/
├── mcp-server/              # TypeScript MCP server + bulk-ingest CLI
├── supabase/migrations/     # versioned SQL migrations
├── demos/                   # demos-as-code (VHS + ffmpeg + narration pipeline)
├── docs/quickstart.md       # setup guide
├── evals/
│   └── longmemeval/         # LongMemEval benchmark harness (run it yourself)
├── examples/
│   ├── demo-corpus/         # sample interconnected docs to ingest
│   └── benchmark/           # reproducible dedup + provenance benchmark
├── docker-compose.yml       # local quickstart
├── ROADMAP.md               # where this is headed
└── LICENSE                  # Apache-2.0

导入你的 ChatGPT / Claude 历史记录

数月的助手对话将成为可追溯来源、去重且可搜索的记忆——每段对话对应一份文档:

# Official OpenAI data export (zip, extracted folder, or conversations.json)
mycobrain-ingest --from chatgpt-export ./chatgpt-export.zip

# claude.ai data export
mycobrain-ingest --from claude-export ./claude-export.zip
  • 重新导入不会产生重复项——每段对话都是一份以内容哈希为键的 文档,因此重新运行不会产生任何变化。继续对话并重新导出后,较长的 转录内容会作为新版本与旧版本一并导入。
  • 导入 ChatGPT 分支会话中的活动分支——导入你 实际保留的转录内容,而不是被拒绝的重新生成内容。
  • 完整的来源追踪——brain_why 会追溯每条导入事实对应的导出文件。

验证:npm run test:export-import。

免动手操作——监视你的 Downloads 文件夹。 请求导出后,Myco 会在导出文件 到达时立即导入,无需复制路径,且数据不会离开你的设备:

# Poll ~/Downloads and auto-import a ChatGPT/Claude export the second it arrives (Ctrl-C to stop)
mycobrain-ingest --watch-downloads

# Already downloaded it? Import whatever export is there, then exit
mycobrain-ingest --watch-downloads --once

此功能需主动启用,并像其他导入一样进行去重;使用 BRAIN_WATCH_DIR 指定 其他文件夹(需要在 PATH 中安装 unzip)。

云端候补名单

默认采用自托管。如果你想使用托管服务,请加入候补名单:

mycobrain.dev

该页面是候补名单的官方入口。本 README 特意不嵌入表单。

开源文件

资源

谁构建了这个项目

Myco Brain 由 Nick Taylor 构建——他是一位增长营销人员,而非职业工程师,并带领一支 AI 编码 Agent 团队。项目耗时约三个月,模型支出约 6,000 美元,采用 AI 辅助工程方式构建。重点不在于价格,而在于清晰的产品愿景加上现代 Agent 工具,如今就能交付生产级基础设施——这个仓库就是成果:本页的每项声明都对应一项可运行的检查(参见每项声明都有检查),你可以自行判断,而不必只凭项目起源故事来相信我们。

喜欢这个项目? 点个 ⭐ 有助于让更多人发现它;点击页面顶部的 Watch → Releases,新功能发布时就会收到通知——接下来要做什么,请参阅路线图。

想为你的团队打造这样的系统? 如果你的公司想找一位能构建 Agent 系统、自动化和增长工程的人,这正是 The Good Guys 的业务——请发送邮件至 [email protected],或预约通话。

评论

支持 Markdown

第一次接触 MCP?

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

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