关于 Weasley DeepMind
Weasley DeepMind 是面向 AI Agent 的可自托管记忆服务,存储带类型的片段并关联证据。它可在令牌预算内检索排序后的上下文,而非重放完整对话历史。
主要功能
- 01带来源信息的类型化记忆片段
- 02关键词、图谱与向量搜索
- 03按令牌预算检索上下文
- 04记忆关联与生命周期管理
- 05stdio 和 Streamable HTTP 传输
适用场景
- 01为 Agent 任务找回相关上下文
- 02保存决策与流程以供后续使用
- 03探索记忆片段之间的关联
- 04维护可自托管的 Agent 记忆
MCP 相关
通过本地 stdio 或 `/mcp` 上的 Streamable HTTP 向 MCP 客户端提供 remember、recall、link、context 等记忆工具。HTTP 请求默认需要访问密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y weasley-deepmindDATABASE_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
20收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| goal | string | 否 | 情节片段的目标(建议用于 episode 类型) |
| type | enum | 是 | 片段类型。fact=事实,decision=决策,error=错误,preference=用户偏好,procedure=流程,relation=关系,episode=情节(1000 字)。episode 以外的类型超过 300 字时会被截断。fact | decision | error | preference | procedure | relation | episode |
| phase | string | 否 | 工作阶段(例如 planning、debugging、verification) |
| scope | enum | 否 | 存储范围。permanent=长期记忆(默认),session=会话工作记忆(会话结束时消失)permanent | session |
| topic | string | 是 | 片段的主题标识符。可在 recall 时用作 topic 筛选条件,TemporalLinker 会自动为相同 topic 的 ±24h 片段创建时间链接。建议按项目名或领域指定(例如 weasley-deepmind、authentication、deployment)。 |
| affect | enum | 否 | 情绪标签(migration-034-v2.16.0-bundle)。frustration=反复失败/受挫,confidence=验证通过/确信,surprise=意外结果,doubt=不确定,satisfaction=解决/满意。默认值为 neutral。不允许的值将强制设为 neutral。neutral | frustration | confidence | surprise | doubt | satisfaction |
| caseId | string | 否 | 此片段所属的工作/案例标识符。未设置时会自动设为当前 session_id。建议格式:{debug|feat|incident}-{主题}-{YYYY-MM-DD}。指定 caseId 时,也建议设置 resolutionStatus(open|resolved|abandoned)(未指定时会发出 caseIdHasResolutionStatus 警告)。 |
| dryRun | boolean | 否 | 设为 true 时不会实际应用更改,只返回执行计划。无需创建片段,即可预先查看配额和冲突检查结果。 |
| source | string | 否 | 来源(会话 ID、工具名称等) |
| agentId | string | 否 | Agent ID(RLS 隔离用) |
| content | string | 是 | 要记住的内容(建议 1~3 句,不超过 300 字)。 GOOD 示例: - '将用户认证 API 响应时间从 500ms 优化到 120ms(将 ORM N+1 查询改为单个 JOIN 查询)' - '登录失败原因:JWT 过期验证存在 timezone 不一致 → 统一服务器和客户端使用 UTC 后解决' - '用户偏好:禁止在提交消息中使用表情符号' - '订单支付流程架构决策:从同步 REST 切换为基于 Kafka 事件的方案(优先保证重试)' BAD 示例(保存前必须重写): - '因为那个很慢所以优化了' — 主体、对象和数值不明确 - '解决了之前的错误' — 无法确定具体是什么错误 - '会话自动摘要:调用工具 3 次,处理 2 个片段' — 元信息和自我指涉,没有事实 - '修改了前端,也修复了 API' — 两个独立主题,需要分开调用 - '按用户在这次对话中的要求处理' — 提及元信息,没有事实 |
| outcome | string | 否 | 에피소드 파편의 결과 |
| isAnchor | boolean | 否 | 重要片段是否固定。为 true 时,不会因重要性衰减(decay)或过期而删除。 |
| keywords | array | 否 | 用于搜索的关键词(未填写时自动提取)。建议指定 3~5 个。包含项目名、主机名和主题可提高搜索精度。未指定时,自动提取质量可能较低,导致搜索遗漏。 |
| linkedTo | array | 否 | 要关联的现有片段 ID 列表 |
| sessionId | string | 否 | 当前会话 ID。用于将同一会话中的片段按时间邻近关系归为一组。 |
| workspace | string | 否 | 工作区名称(例如:'weasley-deepmind'、'personal'、'client-acme')。未指定时,应用密钥中的 default_workspace。若要保存为全局记忆(可从所有工作区检索),请勿指定此项,且密钥中也不得包含 default_workspace。 |
| importance | number | 否 | 重要性 0~1(未填写时使用对应 type 的默认值)。建议:preference=0.9、error/procedure=0.8、decision=0.7、fact=0.6。0.5 及以下在搜索时优先级较低,因此核心信息必须指定为至少 0.6。 |
| supersedes | array | 否 | 要替代的现有片段 ID 列表。指定的片段会设置 valid_to,且 importance 减半。 |
| contextSummary | string | 否 | 此记忆产生时的上下文/背景摘要(1~2 句话)。调用 recall 时会一并返回,以还原前后关系。 |
| idempotencyKey | string | 否 | 用于安全重试的标识符。在相同 key_id 范围内,以相同值重复调用 remember 时,将返回现有片段 id,不会创建新片段。用于防止客户端重试和网络重复。建议格式:{작업명}-{날짜}-{순번} |
| assertionStatus | enum | 否 | 片段的可信度级别。默认值:observed。inferred=推断(尚未验证),verified=已验证,rejected=已弃用。observed | inferred | verified | rejected |
| resolutionStatus | enum | 否 | 任务解决状态open | resolved | abandoned |
详细介绍

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_URL | PostgreSQL 连接 URL | 根据 POSTGRES_* 推导 |
WEASLEY_DEEPMIND_ACCESS_KEY | HTTP 模式必需的 Bearer 密钥 | 无;HTTP 默认拒绝请求 |
WEASLEY_DEEPMIND_AUTH_DISABLED | 仅限回环地址的显式身份验证豁免;启动时会拒绝非回环监听地址 | false |
WEASLEY_DEEPMIND_AUTO_MIGRATE | stdio 启动前运行迁移 | false(server.json 建议设为 true) |
WEASLEY_DEEPMIND_HOME | CLI 缓存和本地状态目录 | ~/.weasley/deepmind |
WEASLEY_DEEPMIND_HOST | HTTP 监听地址 | 127.0.0.1 |
PORT | HTTP 端口 | 57332 |
REDIS_ENABLED | 启用 Redis 支持的功能 | false |
EMBEDDING_PROVIDER | openai、gemini、ollama、localai、cloudflare、transformers(需可选安装)或 custom | openai |
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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。