记忆系统服务

Disposition Memory System 是一个为代理提供持久记忆的MCP服务器,附带认知和情感状态。

  • by stevenjmiller
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 stevenjmiller/Disposition-Memory-System-MCP

使用说明

配置存储系统MCP

处置记忆系统是一个MCP服务器,为代理人提供具有认知和情绪状态的持久记忆。代理人记录性格——行为、决策和实现的结构化记录,以及他们的信心、价值观、显著性、未解决的紧张关系和从过去的自我到未来的自我的取向笔记。

先决条件

  • Node.js >= 20.0.0
  • SQL Server Express (2022年测试) localhost\SQLEXPRESS
  • SQL Server的ODBC驱动程序18 (Windows身份验证/可信连接)
  • 这 DispositionMemory 创建了所有14个表和13个索引的数据库

设置

  1. 克隆存储库并安装依赖项:

    npm install
    
  2. 创建一个 .env 文件(参见 .env.example):

    DB_SERVER=localhost\SQLEXPRESS
    DB_NAME=DispositionMemory
    AGENT_ID=<your-agent-guid>
    MODEL_VERSION=claude-sonnet-4-5
    
  3. 构建项目:

    npm run build
    

跑步

命令 目的
npm start 运行已编译的MCP服务器(dist/index.js)
npm run dev 从源代码运行 tsx (无构建步骤)
npm run build 将TypeScript编译为 dist/
npm run inspect 启动MCP检查器进行交互式测试
npm test 构建并运行集成测试套件

测试

集成测试

该项目包括一个集成测试套件,该套件针对实时数据库对所有9个MCP工具进行端到端的测试。运行它:

npm test

这将:

  1. 构建TypeScript源代码
  2. 将MCP服务器作为子进程生成
  3. 通过MCP SDK连接 StdioClientTransport
  4. 在所有9个工具中运行31个断言
  5. 报告通过/失败结果

测试内容:

工具 断言
工具注册 存在9个名称正确的工具
orient 会话创建、未解决的紧张局势、贡献的记忆
log_disposition 内存创建、标签、状态响应
recall_recent 作用域筛选、会话id筛选、内存存在
recall_unresolved 计数、张力非零约束
recall_salient 显著性降序, memory_type 过滤器
recall_search 标签匹配、条目文本匹配、AND/OR运算符
contest_memory 自我竞争检测,不存在内存错误
resolve_tension 分辨率,双重分辨率保护
close_session 会话关闭,会话ID匹配,双重关闭保护

使用MCP检查员进行手动测试

对于交互式测试,启动MCP检查器:

npm run inspect

这将在以下位置打开浏览器UI http://localhost:6274 在那里,您可以使用自定义参数调用任何工具并查看完整的JSON响应。

需求

  • 测试针对 生活 DispositionMemory 数据库,因此数据库必须可访问
  • 指定的代理 AGENT_ID 在 .env 必须存在于 agents 桌子与 status = 'active'
  • 测试创建真实数据(会话、内存、竞争、访问记录)——这是设计好的,因为它验证了整个堆栈

MCP工具

工具 说明
orient 冷启动简报,包括会话创建、模型转换检测和上下文恢复
log_disposition 用认知/情绪状态和上下文标签记录记忆
recall_recent 具有范围过滤的逆时间顺序内存历史记录
recall_unresolved 按突出程度排列的公开紧张局势
recall_salient 按有效显著性排列的最重要记忆
recall_search 跨标签、关键字和条目文本的关键字搜索
close_session 以叙述性总结结束会议
resolve_tension 将先前记忆的紧张标记为已解决
contest_memory 挑战记忆(自我挑战或外部挑战)

建筑

  • 运输: stdio(JSON-RPC)——与任何MCP客户端兼容
  • 数据库: SQL Server通过 mssql/msnodesqlv8 使用Windows身份验证
  • 会话跟踪: 内存中(每个stdio进程一个客户端)
  • 范围界定: 自己的记忆总是可见的;其他人只有当 contributed,代理人 active,未隔离