mcpField
W
Weasley DeepMind

Weasley DeepMind

本地服务
github.com/potatohoney-p记忆与知识413 周前更新

关于 Weasley DeepMind

Weasley DeepMind 是面向 AI Agent 的可自托管记忆服务,存储带类型的片段并关联证据。它可在令牌预算内检索排序后的上下文,而非重放完整对话历史。

主要功能

  1. 01带来源信息的类型化记忆片段
  2. 02关键词、图谱与向量搜索
  3. 03按令牌预算检索上下文
  4. 04记忆关联与生命周期管理
  5. 05stdio 和 Streamable HTTP 传输

适用场景

  1. 01为 Agent 任务找回相关上下文
  2. 02保存决策与流程以供后续使用
  3. 03探索记忆片段之间的关联
  4. 04维护可自托管的 Agent 记忆

MCP 相关

通过本地 stdio 或 `/mcp` 上的 Streamable HTTP 向 MCP 客户端提供 remember、recall、link、context 等记忆工具。HTTP 请求默认需要访问密钥。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"potatohoney-p-weasley-deepmind": {
"command": "npx",
"args": [
"-y",
"weasley-deepmind"
],
"env": {
"DATABASE_URL": "<DATABASE_URL>",
"WEASLEY_DEEPMIND_AUTO_MIGRATE": "<WEASLEY_DEEPMIND_AUTO_MIGRATE>",
"EMBEDDING_API_KEY": "<EMBEDDING_API_KEY>"
}
}
}
}
启动命令npx -y weasley-deepmind
需要配置的环境变量
DATABASE_URL密钥PostgreSQL connection URL for a database with pgvector installed.
WEASLEY_DEEPMIND_AUTO_MIGRATEApply pending database migrations before starting the stdio server.
EMBEDDING_API_KEY密钥Optional embedding provider API key for semantic recall.

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

安装包
npmweasley-deepmind1.0.0

工具

20

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

参数类型必填说明
goalstring否情节片段的目标(建议用于 episode 类型)
typeenum是片段类型。fact=事实,decision=决策,error=错误,preference=用户偏好,procedure=流程,relation=关系,episode=情节(1000 字)。episode 以外的类型超过 300 字时会被截断。fact | decision | error | preference | procedure | relation | episode
phasestring否工作阶段(例如 planning、debugging、verification)
scopeenum否存储范围。permanent=长期记忆(默认),session=会话工作记忆(会话结束时消失)permanent | session
topicstring是片段的主题标识符。可在 recall 时用作 topic 筛选条件,TemporalLinker 会自动为相同 topic 的 ±24h 片段创建时间链接。建议按项目名或领域指定(例如 weasley-deepmind、authentication、deployment)。
affectenum否情绪标签(migration-034-v2.16.0-bundle)。frustration=反复失败/受挫,confidence=验证通过/确信,surprise=意外结果,doubt=不确定,satisfaction=解决/满意。默认值为 neutral。不允许的值将强制设为 neutral。neutral | frustration | confidence | surprise | doubt | satisfaction
caseIdstring否此片段所属的工作/案例标识符。未设置时会自动设为当前 session_id。建议格式:{debug|feat|incident}-{主题}-{YYYY-MM-DD}。指定 caseId 时,也建议设置 resolutionStatus(open|resolved|abandoned)(未指定时会发出 caseIdHasResolutionStatus 警告)。
dryRunboolean否设为 true 时不会实际应用更改,只返回执行计划。无需创建片段,即可预先查看配额和冲突检查结果。
sourcestring否来源(会话 ID、工具名称等)
agentIdstring否Agent ID(RLS 隔离用)
contentstring是要记住的内容(建议 1~3 句,不超过 300 字)。 GOOD 示例: - '将用户认证 API 响应时间从 500ms 优化到 120ms(将 ORM N+1 查询改为单个 JOIN 查询)' - '登录失败原因:JWT 过期验证存在 timezone 不一致 → 统一服务器和客户端使用 UTC 后解决' - '用户偏好:禁止在提交消息中使用表情符号' - '订单支付流程架构决策:从同步 REST 切换为基于 Kafka 事件的方案(优先保证重试)' BAD 示例(保存前必须重写): - '因为那个很慢所以优化了' — 主体、对象和数值不明确 - '解决了之前的错误' — 无法确定具体是什么错误 - '会话自动摘要:调用工具 3 次,处理 2 个片段' — 元信息和自我指涉,没有事实 - '修改了前端,也修复了 API' — 两个独立主题,需要分开调用 - '按用户在这次对话中的要求处理' — 提及元信息,没有事实
outcomestring否에피소드 파편의 결과
isAnchorboolean否重要片段是否固定。为 true 时,不会因重要性衰减(decay)或过期而删除。
keywordsarray否用于搜索的关键词(未填写时自动提取)。建议指定 3~5 个。包含项目名、主机名和主题可提高搜索精度。未指定时,自动提取质量可能较低,导致搜索遗漏。
linkedToarray否要关联的现有片段 ID 列表
sessionIdstring否当前会话 ID。用于将同一会话中的片段按时间邻近关系归为一组。
workspacestring否工作区名称(例如:'weasley-deepmind'、'personal'、'client-acme')。未指定时,应用密钥中的 default_workspace。若要保存为全局记忆(可从所有工作区检索),请勿指定此项,且密钥中也不得包含 default_workspace。
importancenumber否重要性 0~1(未填写时使用对应 type 的默认值)。建议:preference=0.9、error/procedure=0.8、decision=0.7、fact=0.6。0.5 及以下在搜索时优先级较低,因此核心信息必须指定为至少 0.6。
supersedesarray否要替代的现有片段 ID 列表。指定的片段会设置 valid_to,且 importance 减半。
contextSummarystring否此记忆产生时的上下文/背景摘要(1~2 句话)。调用 recall 时会一并返回,以还原前后关系。
idempotencyKeystring否用于安全重试的标识符。在相同 key_id 范围内,以相同值重复调用 remember 时,将返回现有片段 id,不会创建新片段。用于防止客户端重试和网络重复。建议格式:{작업명}-{날짜}-{순번}
assertionStatusenum否片段的可信度级别。默认值:observed。inferred=推断(尚未验证),verified=已验证,rejected=已弃用。observed | inferred | verified | rejected
resolutionStatusenum否任务解决状态open | resolved | abandoned

详细介绍

Weasley DeepMind

Weasley DeepMind

Weasley DeepMind 是一款可自托管的 AI Agent 记忆服务。它存储小型、类型化的记忆片段,关联相关证据,并通过 MCP 找回合适的上下文,无需在每次提示词中重新加入完整的对话历史。

它是 Weasley Open Source 系列的一部分,采用 Apache-2.0 许可证发布。

为什么选择 DeepMind

  • 实用的记忆检索,而非转储对话记录。 关键词、PostgreSQL GIN、图邻居和可选的 pgvector 搜索结果会合并,并在 token 预算内进行排序。
  • 结构化记忆。 事实、决策、流程、偏好、事件和错误均保留来源、重要性、链接和生命周期状态。
  • 原生支持 MCP。 使用本地 stdio 进程或 /mcp 上的 Streamable HTTP 端点。
  • HTTP 安全默认拒绝。 未配置访问密钥时,HTTP 服务会拒绝请求。只有在本地开发时,才能显式禁用身份验证。
  • 数据可自托管。 PostgreSQL 是权威数据源。Redis 以及外部嵌入或大模型提供商均为可选项。
  • 已做好运维准备。 迁移使用 PostgreSQL advisory lock 串行执行,日志中的密钥会被隐藏,更新会拒绝存在未提交更改的 Git 检出目录。

要求

  • Node.js 20.19 或更高版本
  • PostgreSQL 15 或更高版本,并安装 pgvector 扩展
  • Redis 7(可选,用于缓存和低延迟关键词查询)

从 npm 安装

npm install --global weasley-deepmind

创建一个安装了 pgvector 的 PostgreSQL 数据库,然后配置连接:

export DATABASE_URL='postgresql://postgres:password@localhost:5432/weasley_deepmind'
export WEASLEY_DEEPMIND_ACCESS_KEY='replace-with-a-long-random-secret'

weasley-deepmind migrate
weasley-deepmind serve

HTTP 服务默认监听 http://127.0.0.1:57332。其 MCP 端点为 http://127.0.0.1:57332/mcp。

将其添加到 MCP 客户端

npm 包包含一种以换行符分隔的 stdio 传输方式。通用 MCP 客户端配置如下:

{
  "mcpServers": {
    "weasley-deepmind": {
      "command": "npx",
      "args": ["-y", "weasley-deepmind", "stdio"],
      "env": {
        "DATABASE_URL": "postgresql://postgres:password@localhost:5432/weasley_deepmind",
        "WEASLEY_DEEPMIND_AUTO_MIGRATE": "true"
      }
    }
  }
}

对于已运行的 HTTP 部署,将客户端指向 /mcp,并发送 Authorization: Bearer <WEASLEY_DEEPMIND_ACCESS_KEY>。

在本地运行代码仓库

git clone https://github.com/potatohoney-p/weasley-deepmind.git
cd weasley-deepmind
npm ci
docker compose -f docker-compose.dev.yml up -d
cp .env.example.minimal .env
npm run migrate
npm start

开发用 Compose 文件将 PostgreSQL 暴露在 localhost:35432,将 Redis 暴露在 localhost:36379。启动服务前,请更新 .env 以匹配这些端口。

核心流程

flowchart LR
    Agent["AI agent"] --> MCP["stdio or Streamable HTTP"]
    MCP --> Tools["remember · recall · reflect · context"]
    Tools --> Rank["keyword + graph + vector ranking"]
    Rank --> Postgres["PostgreSQL + pgvector"]
    Rank -. optional cache .-> Redis["Redis"]

主要工具集包括 remember、batch_remember、recall、forget、amend、link、reflect、context、memory_stats、memory_consolidate、graph_explore、fragment_history、reconstruct_history 和 search_traces。工具的可用性可能会受到 API 密钥权限和运行模式的限制。

配置

变量用途默认值
DATABASE_URLPostgreSQL 连接 URL根据 POSTGRES_* 推导
WEASLEY_DEEPMIND_ACCESS_KEYHTTP 模式必需的 Bearer 密钥无;HTTP 默认拒绝请求
WEASLEY_DEEPMIND_AUTH_DISABLED仅限回环地址的显式身份验证豁免;启动时会拒绝非回环监听地址false
WEASLEY_DEEPMIND_AUTO_MIGRATEstdio 启动前运行迁移false(server.json 建议设为 true)
WEASLEY_DEEPMIND_HOMECLI 缓存和本地状态目录~/.weasley/deepmind
WEASLEY_DEEPMIND_HOSTHTTP 监听地址127.0.0.1
PORTHTTP 端口57332
REDIS_ENABLED启用 Redis 支持的功能false
EMBEDDING_PROVIDERopenai、gemini、ollama、localai、cloudflare、transformers(需可选安装)或 customopenai
EMBEDDING_API_KEY可选的嵌入提供商密钥无

完整配置表请参阅 .env.example、配置说明 和安装指南。

默认安装会有意排除本地 transformers 嵌入功能,以避免核心 MCP 服务依赖可选的原生镜像。选择 EMBEDDING_PROVIDER=transformers 前,请按照 docs/embedding-local.md 中固定版本的配置步骤操作。

CLI

weasley-deepmind serve       Start the HTTP MCP server
weasley-deepmind stdio       Start the local stdio MCP server
weasley-deepmind migrate     Apply pending database migrations
weasley-deepmind health      Check database, Redis, and embeddings
weasley-deepmind recall      Search memory from the terminal
weasley-deepmind remember    Store a memory fragment
weasley-deepmind update      Preview or apply an update

运行 weasley-deepmind --help,或参阅 CLI 参考 了解所有命令。

安全默认设置

  • 除非你使用可信的反向代理并明确设置了来源允许列表,否则请将 HTTP 监听器保持在回环地址上。
  • 使用唯一且高熵的 WEASLEY_DEEPMIND_ACCESS_KEY,并且绝不要提交 .env。
  • Stdio 模式信任本地 MCP 主机进程;请相应保护主机账户和数据库凭据。
  • 请按照 SECURITY.md 中的说明私下报告漏洞。

开发

npm ci
npm test
npm run lint
npm run lint:migrations
npm pack --dry-run

架构和运维详情请参阅 docs/architecture.en.md 和 docs/operations。欢迎通过 CONTRIBUTING.md 参与贡献。

许可证

版权所有 2026 Weasley Open Source。

根据 Apache License 2.0 授权。署名信息请参阅 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

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

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