神经发散记忆MCP服务器
](https://www.npmjs.com/package/neurodivergent-memory) ](https://hub.docker.com/r/twgbellok/neurodivergent-memory)  ](https://nodejs.org/en/about/previous-releases)
📽️ Click to preview
Project Preview
This is a Model Context Protocol server for knowledge graphs designed around neurodivergent thinking patterns.
This TypeScript-based MCP server implements a memory system inspired by neurodivergent cognitive styles. It organizes thoughts into five districts (knowledge domains), ranks search results using BM25 semantic ranking, and stores memories as a persistent knowledge graph with bidirectional connections.
Design note: The district model is rooted in FractalSemantics (FractalStat) addressing, where every entity inherits ancestry from a single anchor point called LUCA (Last Universal Common Ancestor). These concepts are also used in Warbler-CDA and the seed. The five canonical districts are the five direct children of LUCA in the default schema. Custom districts in later milestones must declare a valid LUCA-derived address, making ancestry explicit and traceable rather than assumed.
快速启动
视窗
# Download and install Chocolatey:
powershell -c "irm https://community.chocolatey.org/install.ps1|iex"
# Download and install Node.js:
choco install nodejs --version="24.14.1"
# Verify the Node.js version:
node -v # Should print a Node.js 24.x version.
# Verify npm version:
npm -v # Should print an npm 11.x version.
# Run the packaged neurodivergent-memory CLI without a global install
npx neurodivergent-memory@latest init-agent-kitLinux/macOS
# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
# in lieu of restarting the shell
. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 24
# Verify the Node.js version:
node -v # Should print a Node.js 24.x version.
# Verify npm version:
npm -v # Should print an npm 11.x version.
# Run the packaged neurodivergent-memory CLI without a global install
npx neurodivergent-memory@latest init-agent-kit模型流动
flowchart LR
A[Client MCP Request] --> B[MCP Server Stdio Transport]
B --> C{Request Type}
C -->|Tools| D[Tool Handler]
C -->|Resources| E[Resource Handler]
C -->|Prompts| F[Prompt Handler]
D --> G[NeurodivergentMemory Core]
E --> G
F --> G
G --> H[Memory Graph Store]
G --> I[BM25 Index]
H --> J[Persisted JSON Snapshot]
D --> K[MCP JSON Response]
E --> K
F --> K
K --> A流程说明:
- 内存操作会更新图形状态和BM25索引。
- 持久性写入本地快照文件以实现重启连续性。
- 所有MCP响应都通过stdio传输返回。
特性
五个记忆区
记忆按认知领域组织:
- 逻辑分析 --结构化思维、问题解决和分析过程
- 情绪处理 --感觉、情绪反应和情感状态
- 实际执行 --以行动为导向的思想、任务和实施
- 警惕监控 --意识、安全问题和保护性思维
- 创意_综合 --新颖的联系、创造性的见解和创新思维
资源
- 通过以下方式探索记忆区和个人记忆
memory://尤里斯 - 每个内存都包括内容、标签、情感元数据和连接信息
- 将内存作为具有完整元数据的JSON资源访问
工具
store_memory--创建具有可选情绪效价和强度的新记忆节点retrieve_memory--按ID获取特定内存update_memory--修改内容、标签、地区、情感_长度、强度或项目归因delete_memory--删除内存及其所有连接connect_memories--在内存节点之间创建双向边search_memories--BM25使用可选的目标上下文、近因偏差和过滤器(地区、项目id、标签、认知状态、情感效价、强度、min_score)对语义搜索进行排名traverse_from--从起始内存遍历最多N个跃点related_to--通过图接近度+BM25语义混合查找记忆,可选择目标上下文和认知状态过滤器list_memories--带有可选地区/原型/项目id/认知状态过滤器的分页列表memory_stats--具有可选项目范围的汇总统计数据(总计、每个地区/每个项目计数、访问最多、孤儿)server_handshake--返回运行时服务器标识/版本详细信息,以进行明确的客户端版本确认storage_diagnostics--在一个响应中显示解析的快照路径、WAL路径和有效持久性源import_memories--从内联JSON条目或快照批量导入file_path,与dry_run、重复数据消除策略和显式快照迁移标志prepare_memory_city_context--工具镜explore_memory_city适用于支持工具但不调用MCP提示的客户端prepare_synthesis_context--工具镜synthesize_memories适用于快速有限的客户prepare_packetized_synthesis_context--工具镜synthesize_memory_packets适用于快速受限或附件受限的客户端
提示
explore_memory_city--区域和记忆组织的引导性探索synthesize_memories--通过连接现有记忆创造新的见解synthesize_memory_packets--附件受限客户端的分组合成提示;发出一个覆盖率清单和有界内存切片,总结更广泛的图
使用 synthesize_memories 当MCP客户端可以舒适地消耗许多原始内存资源时。使用 synthesize_memory_packets 当调用者路径受附件约束时,或者当您需要在少量结构化资源中实现更广泛的图形覆盖时。
为了在MCP客户端之间实现最大的互操作性,服务器以两种形式公开相同的合成/探索上下文:
- 提示 通过
prompts/list+prompts/get对于实现MCP提示调用的客户端。 - 工具 通过
prepare_*_context为支持MCP工具但忽略或低于支持提示的客户端提供的工具。
一些客户端,如Cline,以命名空间斜线命令的形式公开MCP提示 /mcp:: 而不是 / .
核心概念
记忆原型
每个记忆都被分配了一个与其所在地区相关的原型:
- 学者 --逻辑分析
- 商人 --实际执行
- 神秘的 --情感加工与创意合成
- 守卫 --警惕监控
语义排名
搜索用途 霍加皮BM25 排名(k1=1.5,b=0.75)而不需要嵌入或云调用。结果标准化为0-1分范围。
情感元数据
每个存储器可以选择携带:
- 情感价值 (-1比1)——情感负荷或情感语调
- 强度 (0-1)——精神能量或重要性权重
认识状态
记忆可以选择携带 epistemic_status 将初步计划与经过验证的知识区分开来。
draft--临时或规划导向validated--确认并安全治疗outdated--被取代但保留了下来
当 store_memory 或 import_memories 创建新 practical_execution 无显式存储器 epistemic_status,服务器默认为 draft 如果存储器有任务标签。规范任务标签为 kind:task,服务器也接受兼容性同义词 type:task 光秃秃的 task这使得计划笔记不会悄无声息地呈现为既定事实。
项目归属和范围检索
记忆可以选择包含一级 project_id 用于跨多项目图的归因和范围检索。
project_id在写入时是可选的(store_memory,update_memory,import_memories).update_memory接受project_id: null明确现有项目的归属。search_memories,list_memories,以及memory_stats接受可选project_id过滤器。search_memories,list_memories,以及related_to接受可选epistemic_statuses过滤器,以便呼叫者在适当的时候避免过时的计划记忆。search_memories接受可选context和recency_weight参数。上下文被融入排名中,作为轻量级的BM25提升;recency_weight必须介于0和1并且在不替换语义相关性的情况下增加了近因性增强。search_memories接受min_intensity/max_intensity作为首选的强度滤光片名称。遗产intensity_min/intensity_max为了兼容性,仍支持别名。related_to接受可选context参数,使相关的记忆排名偏向调用者的当前目标。- 统计数据现在包括
perProject故障。 - 作用域的
memory_stats报告totalConnections仅适用于两个端点都在范围内的边。 list_memories包括aproject: ...每行中的分段(unset当不存在项目归因时)。- 验证合同:
project_id必须匹配^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$(最大长度64)。 - 无效值返回稳定的错误代码
NM_E020在恢复指导下。
导入诊断和迁移语义
storage_diagnostics 报告解析的快照路径、WAL路径以及哪个配置源赢得了持久性路径优先级检查。
import_memories 支持两种源模式:
- 内联
entries用于普通批量播种。 file_path对于服务器快照导入,避免了大量的MCP负载。
导入验证标志:
dry_run: true在不写入数据的情况下验证请求,并返回确定性结果would_import,would_skip,以及would_fail计数。dedupe接受none,content_hash,或content_plus_tags.- 已删除的行会报告稳定的原因代码:
DEDUPE_CONTENT_HASH或DEDUPE_CONTENT_PLUS_TAGS. - 快照
file_path进口接受.json默认情况下,解析持久性目录下的文件。集NEURODIVERGENT_MEMORY_IMPORT_ALLOW_EXTERNAL_FILE=true仅当有意导入外部快照文件时。
快照迁移标志:
preserve_ids仅在以下情况下有效file_path;任何与实时商店的ID冲突都会被确定地拒绝。merge_connections仅在以下情况下有效file_path;每个引用的连接目标都必须存在于导入的快照或实时存储中,否则该行将无法通过验证INVALID_CONNECTION_TARGET.- 如果存在验证失败,则整个非模拟运行导入将被拒绝。跑
dry_run: true请先检查故障列表,然后重试。
知识图谱持久化
记忆通过预写日志(WAL)加快照模型进行持久化:
- 每次变异操作都会附加到
memories.json.wal.jsonl第一。 - 然后更新内存图,并定期快照到
memories.json. - 启动时,服务器加载
memories.json,重放WAL条目,压缩为新快照,然后截断WAL。
与仅快照持久性相比,这改善了崩溃恢复行为。
对于显式控制,请设置以下环境变量之一:
NEURODIVERGENT_MEMORY_DIR选择包含以下内容的目录memories.jsonNEURODIVERGENT_MEMORY_FILE指向特定的快照文件NEURODIVERGENT_MEMORY_MAX限制总内存(整数;默认不受限制)NEURODIVERGENT_MEMORY_EVICTION在达到最大值时选择驱逐策略:
- lru (默认) - access_frequency - district_priority
安装在 /home/node/.neurodivergent-memory 在没有任何环境覆盖的情况下继续工作——这是容器的 node 用户主页,并自动检查。
⚠️ 突变(v0.2.0): 图像以如下方式运行node用户和 无法阅读/root,因此之前的安装在/root/.neurodivergent-memory被默默地跳过。特工们似乎已经失去了所有的记忆。看 升级后恢复记忆 在......下面
升级后恢复记忆
如果您之前在以下位置装载了数据 /root/.neurodivergent-memory,您的快照在主机卷上仍然完好无损。使用以下选项之一重新安装:
选项A——明确 /data 安装(推荐):
"-e", "NEURODIVERGENT_MEMORY_DIR=/data",
"-v", "mydata:/data"选项B——在路径 node 用户已拥有:
"-v", "mydata:/home/node/.neurodivergent-memory"不 NEURODIVERGENT_MEMORY_DIR 选项B需要重写——服务器会自动查找现有快照。
对于代理:如果升级容器后出现内存丢失,请使用 import_memories 从备份导出重新加载,或要求您的AI助手重新运行 memory_stats 在正确重新安装卷以确认恢复后。
多层内存持久性
服务器支持跨多个项目工作的代理的三层内存架构。每一层 它位于自己的目录中,可以独立同步。
| 层级 | 目的 | 典型路径 | 环境变量 |
|---|---|---|---|
| 项目 | Repo范围的记忆——短暂的、CI友好的 | .github/agent-kit/memories | NEURODIVERGENT_MEMORY_PROJECT_DIR |
| 用户 | 跨项目个人知识——持久,每个开发人员 | ~/.neurodivergent-memory | NEURODIVERGENT_MEMORY_USER_DIR |
| 组织 | 共享组织知识——可选,团队范围内 | 任何共享量 | NEURODIVERGENT_MEMORY_ORG_DIR |
主服务器仍然从以下位置读取其活动快照 NEURODIVERGENT_MEMORY_DIR (或发现的汽车 默认)。层变量仅由 sync-memories 帮手。
标记记忆以进行同步
添加一个 persistence:durable 标记到任何应该提升到用户或组织层的内存。回忆 没有此标签将被视为短暂的,并留在项目层。
["topic:typescript", "scope:global", "kind:pattern", "layer:architecture", "persistence:durable"]使用 persistence:ephemeral 作为对你永远不想被推广的记忆的明确退出。
在层之间同步内存
在构建、里程碑或会话之后,将持久记忆从项目层提升到用户层:
NEURODIVERGENT_MEMORY_PROJECT_DIR=.github/agent-kit/memories \
NEURODIVERGENT_MEMORY_USER_DIR=~/.neurodivergent-memory \
npm run sync-memories -- --from project --to user或者使用显式路径:
node build/scripts/sync-memories.js \
--from .github/agent-kit/memories \
--to ~/.neurodivergent-memory完整选项参考:
--from
Source snapshot directory, or tier name: project | user | org
--to
Target snapshot directory, or tier name: project | user | org
--tags Promote only memories matching ALL listed tags (default: persistence:durable)
--any-tag Match memories that have ANY of the listed tags (OR logic)
--dry-run Report counts without writing any data安全注意事项: 在运行sync之前停止目标层的MCP服务器——脚本直接写入 快照文件,如果检测到目标目录的打开WAL,将发出警告。
释放安全
- GitHub操作运行于 Node.js 24 LTS 用于CI和发布自动化
- npm发布使用 OIDC来源 随着
npm publish --provenance --access public - Docker镜像是用 Buildx,发布到Docker Hub,并随 软件物料清单 和 来源 元数据
- GitHub操作生成 人工制品证明 用于npm tarball和推送容器镜像摘要
- 标记的发布将npm tarball、校验和和证明包作为发布资产上传
开发RC频道
推到 development 分支机构发布 释放候选人 使用相同的npm包名(neurodivergent-memory)以及容器存储库。
- npm预发行版发布为
0.x.x-rc.N带有npm dist标签rc. - npm预发布后缀
N用途run_number.run_attempt以避免工作流重新运行时发生冲突。 - Docker镜像以不可变的方式发布
rc-0.x.x-rc.N仅标记,其中N源自于run_number.run_attempt. - RC版本的GitHub发布标记为 预发布.
这些构建故意不如研究预览线稳定,只应用于验证和早期集成测试。
现场准备烟雾(project_id)
使用确定性活烟安全带进行验证 project_id 端到端的归因/范围检索:
- 本地构建目标:
npm run smoke:project-id- 最新的Docker RC目标(PowerShell):
$rc = (Invoke-RestMethod -Uri "https://hub.docker.com/v2/repositories/twgbellok/neurodivergent-memory/tags?page_size=25").results |
Where-Object { $_.name -match '^rc-' } |
Sort-Object { $_.last_updated } -Descending |
Select-Object -First 1 -ExpandProperty name
node test/live-project-id-smoke.mjs "docker run --rm -i twgbellok/neurodivergent-memory:$rc"烟雾安全带在断言失败时退出非零,适合作为释放准备门。
错误合同
在文本响应中嵌入了一个稳定的面向操作员的形状,从而返回突变和查找工具故障:
❌
Code: NM_EXXX
Message: Human-readable failure summary
Recovery: Suggested next action主要的总结行是上下文相关的,而 Code/Message/Recovery 块保持稳定,以便操作员解析和搜索。这使得MCP响应在聊天客户端中可读,同时为操作员提供了一个稳定的代码,他们可以在日志和发布说明中搜索。结构化日志使用Pino写入stderr,并包含相同的内容 code 已知故障路径上的字段。
并发安全
当多个代理同时调用服务器时,可变工具通过异步互斥体进行序列化,以防止并发写竞争。
写入队列行为:
- 挂起的写入操作受以下限制
NEURODIVERGENT_MEMORY_QUEUE_DEPTH(默认值:50). - 当队列已满时,变异工具将返回
NM_E010带有面向重试的恢复消息。 - 队列高水位/清澈过渡记录了结构化的Pino警告。
WIP护栏性能:
store_memory检查实际正在进行的任务饱和度agent_id当任务标签包含进度标记时。- 盖子由以下部件控制
NEURODIVERGENT_MEMORY_WIP_LIMIT(默认值:1;set0禁用)。 - 超过上限会在工具响应和日志中发出警告线
NM_E011为了操作员的可见性。
环路遥测和护栏
服务器跟踪回路信号,并可以显示目标护栏响应:
- 重复检测
store_memory将传入内容与最近10个内存进行比较(相同agent_id当提供时)使用标记器一致的标记重叠评分和精确匹配的快速路径。 - 符合重复阈值设置的商店
repeat_detected: true,增量repeat_write_count在匹配的内存上,并添加No net-new info警告工具响应。 - 重复的
logical_analysis阅读emotional_processing记忆增加了distill_memory一旦超过配置的阈值,建议。 - 在滚动操作窗口中跟踪读/写乒乓转换,增量
ping_pong_counter当满足阈值条件时,可以选择启动临时跨区写冷却。 memory_stats现在包括aloop_telemetry用以下方式阻止:
- repeat_write_candidates (前5名) - ping_pong_candidates (前5名) - recent_high_similarity_writes (最后5个)
配置:
NEURODIVERGENT_MEMORY_REPEAT_THRESHOLD(默认值:0.85)NEURODIVERGENT_MEMORY_LOOP_WINDOW(默认值:20)NEURODIVERGENT_MEMORY_PING_PONG_THRESHOLD(默认值:3)NEURODIVERGENT_MEMORY_DISTILL_SUGGEST_THRESHOLD(默认值:3)NEURODIVERGENT_MEMORY_CROSS_DISTRICT_COOLDOWN_MS(默认值:0,已禁用)
性能基准基线
Issue#19为针对内置服务器的端到端MCP stdio测量添加了确定性基准线束。
运行它:
npm run benchmark基准:
- 使用隔离的临时持久性目录,这样它就不会改变您的本地内存图。
- 为每个数据集层播种,然后进行测量
store_memory目标层上100次写入的吞吐量。 - 措施
search_memories和list_memories在1k、5k和10k内存中,延迟超过100次迭代。 - 措施
traverse_from在500个存储器的连接图上,深度2、3和5处的延迟。 - 将结构化JSON报告打印到stdout,以便进行自动化友好的捕获。
- 将特定于运行的输出写入以下带时间戳的文件
benchmark-results/. - 还写了滚动最新别名:
- benchmark-results/memory-benchmark-latest.json - benchmark-results/memory-benchmark-latest.md
还有一个方便的别名:
npm run bench承诺的基线旨在作为RC与稳定比较的相对回归参考,而不是作为跨机器的通用绝对性能保证。
要有意刷新已提交的基线文件,请执行以下操作:
npm run benchmark -- --update-baseline发展
安装依赖项:
npm install构建服务器:
npm run build对于自动重建的开发:
npm run watch安装
要与Claude Desktop一起使用,请添加服务器配置:
在macOS上: ~/Library/Application Support/Claude/claude_desktop_config.json 在Windows上: %APPDATA%/Claude/claude_desktop_config.json
对于npm:
{
"mcpServers": {
"neurodivergent-memory": {
"command": "npx",
"args": ["neurodivergent-memory"]
}
}
}对于Docker:
{
"mcpServers": {
"neurodivergent-memory": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NEURODIVERGENT_MEMORY_DIR=/data",
"-v",
"neurodivergent-memory-data:/data",
"docker.io/twgbellok/neurodivergent-memory:0.3.0"
]
}
}
}完全自动批准的工具:
{
"mcpServers": {
"neurodivergent-memory": {
"autoApprove": [
"store_memory",
"retrieve_memory",
"connect_memories",
"search_memories",
"update_memory",
"delete_memory",
"traverse_from",
"related_to",
"list_memories",
"memory_stats",
"storage_diagnostics",
"import_memories",
"distill_memory",
"prepare_memory_city_context",
"prepare_synthesis_context",
"prepare_packetized_synthesis_context",
"register_district"
],
"disabled": false,
"timeout": 120,
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NEURODIVERGENT_MEMORY_DIR=/data",
"-v",
"neurodivergent-memory-data:/data",
"docker.io/twgbellok/neurodivergent-memory:0.3.0"
],
"env": {}
}
}
}如果你想在Github Copilot代理工作流中使用mcp服务器(Github每次都会启动一个新的VM,因此不存在跨工作流内存。会话内存正在工作,但在作业完成时会被擦除。):
{
"mcpServers": {
"neurodivergent-memory": {
"type": "stdio",
"command": "npx",
"args": [
"neurodivergent-memory@0.3.0"
],
"env": {
"NEURODIVERGENT_MEMORY_DIR": ".neurodivergent-memory"
},
"tools": [
"retrieve_memory",
"connect_memories",
"update_memory",
"delete_memory",
"traverse_from",
"related_to",
"import_memories",
"storage_diagnostics",
"distill_memory",
"prepare_memory_city_context",
"prepare_synthesis_context",
"prepare_packetized_synthesis_context",
"register_district",
"list_memories",
"store_memory",
"search_memories",
"memory_stats"
]
}
}
}如果你想要按项目隔离,而不是共享全局内存文件,请挂载一个特定于项目的主机目录,并保持相同的容器端目标。为您的操作系统使用路径分隔符:
- 视窗:
${workspaceFolder}\.neurodivergent-memory:/data - macOS/Linux:
${workspaceFolder}/.neurodivergent-memory:/data
{
"mcpServers": {
"neurodivergent-memory": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NEURODIVERGENT_MEMORY_DIR=/data",
"-v",
"${workspaceFolder}/.neurodivergent-memory:/data",
"docker.io/twgbellok/neurodivergent-memory:0.3.0"
]
}
}
}注: 替换/随着\在Windows上:${workspaceFolder}\.neurodivergent-memory:/data
Docker运行时
使用明确的版本标记。已发布的Docker镜像故意不保持浮动 latest 标签。
您还可以直接运行打包的服务器映像:
docker run --rm -i twgbellok/neurodivergent-memory:0.3.0调试
由于MCP服务器通过stdio进行通信,调试可能具有挑战性。我们建议使用 MCP检查员,可作为包脚本使用:
npm run inspector检查器将提供一个URL,用于访问浏览器中的调试工具。
代理工作流设置
此存储库提供可重复使用的 代理定制套件 其创作来源位于 . 使用打包的安装程序将这些模板具体化到消费者存储库中 .github/... 文件夹,而不是跟踪此存储库中实时生成的代理文件。
目录
| 文件 | 目的 |
|---|---|
templates/neurodivergent-agent.agent.md | 功能齐全的内存驱动开发协调代理。五阶段工作流程:拉取上下文→ 研究→ 改善记忆力→ plan → 行动和交接 |
templates/memory-driven-template.agent.md | 最小化的通用代理模板——如果你想在上面构建自己的工作流,这是一个更轻松的起点。 |
templates/nd-memory-workflow.instructions.md | 共享指令文件,在日常编码会话中强化内存驱动的习惯,而不需要显式的代理调用。 |
templates/setup-nd-memory.prompt.md | 引导式安装提示,要求用户在安装任何东西之前选择安装策略。 |
templates/copilot-instructions.md | GitHub Copilot会话的Bootstrap参考——标签模式、区域表、工具快速参考和会话清单在一个文件中。 |
templates/explore_memory_city.prompt.md | 提示引导探索记忆区域和图形结构。 |
templates/memory-driven-issue-execution.prompt.md | 提示使用全内存驱动上下文执行跟踪问题(pull→ plan → act → 更新)。 |
将工具包安装到项目中
将当前打包的工具包安装到您所在的仓库中:
npx neurodivergent-memory@latest init-agent-kit有用的选项:
- `--target
` 安装到不同的存储库根目录中。
--dry-run显示了在不写入文件的情况下复制的内容。--force覆盖现有的目标文件。--mode prompt-first|auto-setup在命令输出中记录预期的安装策略,同时保持模板措辞不变。
安装程序将模板复制到标准自定义位置,例如 .github/agents/, .github/instructions/, .github/prompts/,以及 .github/copilot-instructions.md.
编写源文件和生成的文件
真相的来源仍然存在 已安装的实时代理文件 .github/agents/neurodivergent-agent.agent.md 有意将其视为生成的消费者状态,而不是跟踪的仓库工件,因此远程Copilot更新无法在此存储库中不断清除它。
手动复制回退
复制 您需要将文件放入项目的标准自定义位置——不要移动它们,因此原始文件仍可供未来的代理或贡献者参考。
正确的目标目录因代理平台而异。使用代理本机读取的任何位置。常见示例:
.github/agents/用于代理定义.github/instructions/用于共享指令.github/prompts/用于提示.github/支持copilot-instructions.md
安装策略握手
在任何项目中安装神经发散记忆MCP之前,请询问用户应用哪种策略:
prompt-first*(默认)* --安装前请获得明确批准。auto-setup--自动安装,无需提示。
更新导入的代理文件的安装部分以反映所选策略。如果没有说明偏好,则默认为 prompt-first.
附录
这是一个副驾驶指令示例.md
# neurodivergent-memory — Agent Bootstrap Instructions
This file is automatically read by GitHub Copilot and compatible agents at the start of every session.
It replaces the need to fetch the governance memory (`memory_11`) before working with this MCP server.
---
## What this server is
`neurodivergent-memory` is a **Model Context Protocol (MCP) server** that stores and retrieves memories as a
knowledge graph. It is designed for neurodivergent thinking patterns: non-linear, associative, tag-rich.
Memories are organised into five **districts** (knowledge domains) and connected via bidirectional edges.
Search uses **BM25 semantic ranking** — no embedding model or cloud LLM required.
---
## Canonical Tag Schema
Always apply tags from the five namespaces below when calling `store_memory`.
Multiple tags from different namespaces are expected on every memory.
When storing execution-heavy memories, include the reasoning behind the action and, when possible, connect the entry to a durable principle in `logical_analysis` or `creative_synthesis` so retrieval preserves understanding and not just activity.
| Namespace | Purpose | Examples |
|---|---|---|
| `topic:X` | Subject matter / domain | `topic:unity-ecs`, `topic:adhd-strategies`, `topic:rust-async` |
| `scope:X` | Breadth of the memory | `scope:concept`, `scope:project`, `scope:session`, `scope:global` |
| `kind:X` | Type of knowledge | `kind:insight`, `kind:decision`, `kind:pattern`, `kind:reference`, `kind:task` |
| `layer:X` | Abstraction level | `layer:architecture`, `layer:implementation`, `layer:debugging`, `layer:research` |
| `persistence:X` | Sync-tier eligibility | `persistence:durable`, `persistence:ephemeral` |
**Example tag set for a Unity ECS memory:**
["topic:unity-ecs", "topic:dots", "scope:project", "kind:pattern", "layer:architecture"]
**持久跨项目内存的示例标记集:**
["topic:typescript", "scope:global", "kind:pattern", "layer:architecture", "persistence:durable"]
______________________________________________________________________
## 区域
|关键|目的|
| --- | --- |
| `logical_analysis` |结构化思维、分析、研究成果|
| `emotional_processing` |感觉、情绪状态、情感反应|
| `practical_execution` |任务、计划、实施、行动项|
| `vigilant_monitoring` |风险、警告、限制、安全问题|
| `creative_synthesis` |新颖的联系、创造性的想法、跨领域的见解|
______________________________________________________________________
## 可用的MCP工具(快速参考)
|工具|目的|
| --- | --- |
| `store_memory` |创建新的内存节点|
| `retrieve_memory` |按ID获取一个内存|
| `update_memory` |修改内容、标签、地区、价格或强度|
| `delete_memory` |删除内存及其所有连接|
| `connect_memories` |在两个内存节点之间添加边|
| `search_memories` |BM25排名搜索,可选 `context`, `recency_weight`, `min_score`、区域、标签、效价和强度过滤器|
| `traverse_from` |BFS图从一个节点走到N跳|
| `related_to` |给定内存ID的跳跃接近度+BM25混合,可选择目标上下文增强|
| `list_memories` |所有存储存储器的分页枚举|
| `memory_stats` |每个地区/每个项目的总数、最多访问的人数和孤儿人数|
| `storage_diagnostics` |解析快照路径、WAL路径和有效持久性源|
| `import_memories` |从内联条目或带有模拟运行和迁移控制的快照文件进行批量导入|
| `distill_memory` |翻译一个 `emotional_processing` 将内存转化为结构化的逻辑工件|
| `prepare_memory_city_context` |工具镜 `explore_memory_city` 适用于快速有限的客户|
| `prepare_synthesis_context` |工具镜 `synthesize_memories` 适用于快速有限的客户|
| `prepare_packetized_synthesis_context` |工具镜 `synthesize_memory_packets` 适用于附件受限的客户端|
| `register_district` |通过LUCA血统验证注册自定义地区|
______________________________________________________________________
## 坚持
记忆会自动保存到 `~/.neurodivergent-memory/memories.json` 每一次写作。
该图在服务器启动时恢复——重新启动之间没有数据丢失。
______________________________________________________________________
## 内存质量保护
- 不要停留在“发生了什么”。重要的记忆应该捕捉到采取行动的原因、推动行动的权衡或原则,以及洞察力是否可重复使用。
- 对待 `practical_execution` 作为操作日志,然后将其与 `logical_analysis` 或 `creative_synthesis` 当更深层次的理论基础应该比实现细节存活更长时间时。
- 当调试跟踪、切换或情绪/原始内存有噪音时,请使用 `distill_memory` 或显式后续存储器,以在剥离附带细节的同时保存信号。
- 更喜欢连接合成而不是孤立的任务日志:将实现记忆链接回持久原则,如显式状态而不是隐式状态、有界增长或环境感知验证。
______________________________________________________________________
## 新代理会话的Bootstrap检查表
1. 呼叫 `memory_stats` 看看有多少记忆存在。
1. 使用 `search_memories` 通过广泛的查询来定位相关的先前上下文。
1. 检查最近的记忆是否已经解释了任务背后的基本原理或持久原则,而不仅仅是最后一个执行步骤。
1. 调用时应用规范标记模式 `store_memory`.
1. 通过以下方式将新记忆连接到相关的现有记忆 `connect_memories`.
1. 使用 `traverse_from` 或 `related_to` 用于关联检索而不是重复搜索。
1. **无快速任务豁免**:此存储库中的任何文件编辑、决策或查找都是值得内存的——在继续之前先写入内存。如果你发现自己认为“这太小了”——这是触发因素,而不是绕过。
1. **无执行仅内存豁免**:如果一个记忆说发生了什么变化,它也应该说为什么会发生变化,或者链接到发生变化的记忆。
______________________________________________________________________