团队记忆存储服务

为AI编程代理提供共享团队记忆存储,采用贝叶斯置信度评分和时间衰减机制,支持Claude Code、Devin、Cursor等MCP兼容客户端。

  • by gustavolira
  • JavaScript
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 gustavolira/team-memory-mcp

使用说明

团队记忆MCP

AI编码代理共享团队记忆。贝叶斯置信度评分与时间衰减。适用于 克劳德代码, 德文, 光标,以及任何兼容MCP的客户端。

问题

AI编码代理在会话中学习有价值的东西:

  • “弹簧靴:使用 @Transactional(readOnly = true) 关于只读查询以避免不必要的写锁”
  • PostgreSQL:始终添加 CONCURRENTLY 到 CREATE INDEX 在超过10万行的表上,以避免锁定生产”
  • “REST API:返回 409 Conflict (不是 400)当资源已经存在时,API网关在400上重试
  • “Flyway:迁移文件必须遵循 V{ticket}_{seq}__{description}.sql 或CI拒绝PR”

但当课程结束时,这些知识就会消失。下一节课从零开始。

将其乘以一个由10名工程师组成的团队,每个工程师独立使用人工智能代理,你每周都会发现同样的错误。同样的错误 @Transactional 范围。相同的锁 CREATE INDEX同样的400对409混淆。

解决方案

Team Memory为AI代理提供了一个持久的共享知识库,其中存储了工程模式,由团队验证,并随着时间的推移按置信度进行排名。

  1. 工程师或人工智能代理存储他们在开发过程中发现的模式
  2. 每种模式都以~0.667的置信度开始
  3. 团队成员的确认会增强信心;更正会减少它
  4. 90天内未确认的模式逐渐失去信心(时间衰减)
  5. 搜索结果按置信度排序——首先出现经过充分验证的模式

这在实践中是什么样子的

"Spring Boot: use @Transactional(propagation = REQUIRES_NEW) for audit logging
 to ensure logs persist even if the parent transaction rolls back"
→ Confirmed 23 times | Confidence: 0.92

"PostgreSQL: always add CONCURRENTLY to CREATE INDEX on tables with 100k+ rows"
→ Confirmed 15 times | Confidence: 0.88

"REST APIs: return 409 Conflict (not 400) when resource already exists on POST"
→ Confirmed 8 times, corrected 1 time | Confidence: 0.82

"JPA: avoid fetch = FetchType.EAGER on @ManyToOne — causes N+1 queries in lists"
→ Confirmed 31 times | Confidence: 0.94

新团队成员从第一天起就获得了积累的知识。AI代理不再犯同样的错误。

如何比较

在构建之前,我们调查了10多个现有的MCP内存服务器。现有的解决方案没有将共享工程知识的所有四个属性结合起来:

能力 团队内存 服务器内存 mem0 mcp内存服务 Memento Memorix Graphiti/Zep
贝叶斯置信度 是 -- -- --仅限手动 -- -
时间衰减 90d半衰期 -- -- 巩固 30d半衰期 -- 无效
确认跟踪 按模式 -- -- access_count -- --
团队/共享记忆 PostgreSQL - 云API 基础SSE - 是 组(弱)
零配置本地 SQLite JSONL -- SQLite -- JSON --
编码模式模式 域/标签/作用域 -- -- --- -- --

为什么不使用现有的解决方案?

@模型上下文协议/服务器内存 --Anthropic的官方参考实施。存储在平面JSONL文件中的知识图。没有信心得分,没有衰退,没有团队支持。故意最小化。

内存0 mcp --商业平台(YC支持,筹集2400万美元)针对会话内存进行了优化。通过user_id/agent_id进行团队范围界定,但置信度是基于LLM的重新排名,而不是透明的概率模型。无法查询“此模式被确认了多少次?”云依赖性和成本。

mcp存储器服务 --大多数功能丰富的OSS内存服务器(1500+星)。具有质量字段、访问计数和合并衰减。但质量评分是LLM评估的(不透明),团队记忆是基本的SSE事件传播,没有访问控制,每个记忆没有确认计数。

MCP纪念品 --Neo4j支持可配置的半衰期衰变关系。在数学上最接近我们的置信度模型,但置信度值是由LLM手动分配的,而不是根据证据计算的。仅限单个用户。需要Neo4j基础架构。

记忆库 --最佳团队协作原语(文件锁、任务板、跨IDE的消息传递)。但没有置信度评分,没有时间衰减,没有观察计数跟踪。

Graphiti/Zep --学术上严谨的双时态知识图(23k+颗星,已发表论文)。信心是二元的——事实要么有效,要么无效。没有分级信心,没有确认跟踪。需要Neo4j/FalkorDB。

差距

没有现有的解决方案跟踪: “这种模式已被5名不同的工程师在12次会议上确认了47次。”

这就是团队记忆所做的。置信度得分为:

  • 透明 --你可以确切地看到为什么一个模式有一个给定的分数
  • 基于证据的 --根据确认和更正计数计算
  • 自动校正的 --未使用的模式会衰减,错误的模式会得到纠正
  • 无LLM依赖 -纯数学,没有API评分要求

设置

快速启动(npx--无需安装)

npx team-memory-mcp

使用克劳德代码注册

claude mcp add team-memory -- npx team-memory-mcp

注册Devin

devin mcp add team-memory -- npx team-memory-mcp

使用游标注册

添加到您的 .cursor/mcp.json:

{
  "mcpServers": {
    "team-memory": {
      "command": "npx",
      "args": ["team-memory-mcp"]
    }
  }
}

从源代码安装(替代)

git clone https://github.com/gustavolira/team-memory-mcp.git
cd team-memory-mcp
npm install
npm run build
node build/index.js

存储

本地模式(默认)

SQLite数据库位于 ~/.team-memory/memories.db。不需要外部服务。零配置。

共享模式(PostgreSQL)

设置 TEAM_MEMORY_DATABASE_URL 连接到集中式PostgreSQL实例的环境变量:

export TEAM_MEMORY_DATABASE_URL=postgresql://user:password@host:5432/team_memory

设置后,团队中的所有代理和工程师共享相同的内存存储。服务器在第一次运行时自动创建所需的表和索引。

MCP工具

工具 说明
store_pattern 使用域、标签和范围保存学习到的模式
search_patterns 按关键字、域或标签搜索——按置信度排名
get_pattern 按ID检索特定模式
confirm_pattern 将模式标记为有效(+置信度)
correct_pattern 标记为不正确或提供替换(-置信)
forget_pattern 永久删除图案

信心评分

使用具有时间衰减的贝塔-伯努利贝叶斯模型:

confidence = (alpha / (alpha + beta)) × decay + floor × (1 - decay)

alpha = 1 + confirmations    (starts at 2)
beta  = 1 + corrections      (starts at 1)
decay = 0.5 ^ (days_since_last_confirmation / 90)
floor = 0.05
事件 信心
新模式 0.667
+1确认 0.750
+2确认 0.800
+5次确认 0.875
+1更正(无确认) 0.500
90天未确认 减半
180天未确认 约为原件的25%

界定范围

模式的范围可以包括:

  • 项目 (默认)--绑定到当前git存储库(从中自动检测 git remote get-url origin)
  • 全球 --适用于所有项目

默认情况下,搜索时会返回项目范围和全局模式。

特性

  • 自动检测贡献者 --阅读自 git config user.name
  • 缓存git检测 --每个会话解析一次项目ID和贡献者
  • 优雅的错误处理 --数据库错误返回MCP错误响应,永不崩溃
  • 双存储后端 --SQLite用于本地,PostgreSQL用于团队共享
  • 零配置 --开箱即用,无需环境变量

使用示例

"Remember: Spring Boot @Transactional(readOnly = true) should be used on all read-only
 service methods to avoid write locks and improve connection pool usage"
→ AI calls store_pattern with domain="spring-boot", tags=["transactional", "performance"]

"What patterns do we have for PostgreSQL?"
→ AI calls search_patterns with query="PostgreSQL"

"That pattern about CONCURRENTLY on CREATE INDEX is correct, saved us from a production lock"
→ AI calls confirm_pattern (confidence goes up)

"That pattern about 400 vs 409 is wrong for our new gateway — it no longer retries on 400"
→ AI calls correct_pattern with replacement text (confidence goes down, content updated)

路线图

  • []通过嵌入进行语义搜索
  • []Claude Code的自动捕获挂钩
  • []任务开始时设计自动召回
  • []用于模式管理的Web仪表板
  • []矛盾模式的冲突解决
  • [x] 发布于npm: npx team-memory-mcp

构建于

许可证

麻省理工学院