每天一个开源项目#60 TencentDB Agent Memory:1.4万星的团队记忆中枢
GitHub Trending 第 1 名 |2026-08-05 快照|⭐ 14,327 |Fork 1,315 |主语言 TypeScript |许可证 MIT(仓库文件)
项目地址:github.com/TencentClou...
📋 项目概览
| 项目 | 信息 |
|---|---|
| 项目名 | TencentDB Agent Memory |
| 一句话定位 | 面向个人与团队的 Agent 记忆资产中枢,把对话、文档和代码沉淀为可治理、可共享、可装配的长期资产 |
| Trending 排名 | 1 / 18 |
| Stars | 14,327(Trending 快照) |
| Forks | 1,315 |
| Open Issues | 513(GitHub 的该字段包含 Issue 与 PR) |
| 主语言 | TypeScript;GitHub Linguist 占比 91.6% |
| 许可证 | 仓库 LICENSE 明确为 MIT;GitHub API 暂未正确识别,返回 NOASSERTION |
| 最新 Release | v2.0.0,发布于 2026-08-03 |
| 默认分支 | feat/server_team,而不是常见的 main / master |
| 运行要求 | 完整镜像栈采用 Docker;源码包要求 Node.js ≥ 22.16 |
| 四类核心资产 | Chat Memory、Skill、LLM-Wiki、CodeGraph |
语言分布
| 语言 | GitHub Linguist 占比 | 主要职责 |
|---|---|---|
| TypeScript | 91.6% | Memory Core、Proxy、Panel、Knowledge Service 与 SDK 主体 |
| Python | 3.5% | Python SDK、Hermes 适配与辅助脚本 |
| Shell | 2.2% | 一键部署、校验、迁移与运维脚本 |
| CSS | 1.8% | Memory Panel 界面 |
| JavaScript | 0.6% | 构建与兼容代码 |
| Dockerfile | 0.3% | 镜像化部署 |
| HTML | <0.1% | 少量静态入口 |
数据口径:Stars、Forks、Issues、语言占比取自 2026-08-05 Trending 任务快照;Release、Watchers 与源码结构为同日补充核验。补充 API 一度显示 14,331 Stars,只能说明两个观察时点之间增加 4 Stars,不能当作"今日新增"。
🔥 为什么值得关注
很多所谓"Agent Memory"只解决一个问题:把聊天切块、做 Embedding、再从向量库取 Top-K。TencentDB Agent Memory 的野心明显更大------它试图把 Agent 的工作经验拆成四种不同资产:人的偏好与决策进入 Chat Memory,成功流程沉淀为 Skill,文档变成带关系的 Wiki,代码变成可查询的 CodeGraph。重点不只是"能搜到",而是这些资产还有 Owner、版本、状态、可见性和 Agent 绑定关系。
这改变的是团队使用 Agent 的工作边界。过去,新会话、新成员或换一个 Agent 框架都要重新解释项目背景;现在可以把已经付过学习成本的内容做成"团队存档",再按 Scout、Builder、Reviewer 等角色装配不同资产。它不是简单扩大上下文窗口,而是先把经验结构化,再决定谁能看、装给谁、何时注入。
更值得研究的是,仓库并非只有一张产品概念图。源码里能看到独立的 Memory Core、Memory Proxy、Memory Knowledge、Memory Panel,包含混合检索、异步提炼、分布式锁、死信队列、协议适配、会话预热缓存、Wiki 双阶段摄取、代码增量索引和 ACL 等工程机制。不过,它仍处在快速演进期:默认分支命名异常、版本面不统一、公开分支没有测试文件、README 也明确称 Team Memory Beta 正在快速迭代。它更像一个技术含量很高的早期平台,而不是"装完即可无脑托管全部组织知识"的成熟产品。
🏗️ 核心特性
1. 四类资产不是四个入口,而是四种复用粒度
- Chat Memory:保存偏好、事实、约束和决策,并按 L0→L1→L2→L3 逐层提炼。
- Skill:从成功任务与工具调用中抽取可执行经验,带版本、资源文件、触发边界、步骤与验证规则。
- LLM-Wiki:把产品文档、设计说明和运维手册重组为结构化 Markdown 页面与链接关系。
- CodeGraph:索引文件、符号与调用关系,为 Agent 提供搜索、调用链和影响范围查询。
这四类资产分别回答:
text
Chat Memory:这个人/团队有哪些不能忘的事实?
Skill:这类任务上次是怎样可靠完成的?
Wiki:文档中的实体、概念和关系是什么?
CodeGraph:代码在哪里,改动可能波及哪些调用路径?
2. L0→L3:从原始对话到可注入 Persona
源码配置显示,默认每 5 轮对话触发一次 L1;启用 warm-up 后,阈值会从 1、2、4 逐步增长到配置上限。L1 提取原子记忆并执行去重,L2 聚合场景,L3 生成更稳定的 Persona。默认每 50 条新记忆触发 Persona 生成,最多保留 20 个场景块。
text
L0 原始对话
└─ 捕获消息、工具调用、会话与 team/agent/task 身份
↓ 后台 LLM 提取 + 去重
L1 原子记忆
└─ 事实 / 偏好 / 决策 / 约束 / 经验
↓ 场景聚合
L2 Scenario
└─ 某类任务或上下文中的稳定模式
↓ Persona 汇总
L3 Persona
└─ 面向后续 Agent 的长期画像与高层上下文
这里的价值不是层级名称,而是把高频原始数据与低频稳定画像分开:L0/L1 可以设 TTL,L2/L3 负责长期注入,避免把整段聊天历史原样塞回上下文。
3. 混合检索:FTS5 与向量搜索并行,RRF 合并
Memory Core 的 memory_search 不是单纯向量 Top-K。SQLite 路径会并行运行 FTS5 关键词检索和向量检索,各自超取 limit × 3 个候选,再使用 Reciprocal Rank Fusion 合并:
text
RRF score(d) = Σ 1 / (60 + rank(d) + 1)
当 Embedding 服务不可用时,它可以降级为 FTS5;FTS5 不可用时可以退化为向量检索。使用 Tencent Cloud VectorDB 时,则可走服务端 dense + sparse 的原生混合检索。这个设计的现实意义是:代码名、错误码等精确词更适合关键词检索,偏好和语义相似经验更适合向量检索,RRF 避免直接比较两套不可同标的原始分数。
4. Skill 不是 Prompt 片段,而是受治理的团队资产
Skill 支持私有、团队和受限三种可见性。private 只属于 Owner,team 对团队成员可见,restricted 可以通过 User、Role、Agent ACL 精细授权。团队成员可以评审后共享,再把 Skill 绑定给指定 Agent,而不是让所有 Agent 一次性加载全部规则。
检索层支持 bm25、embedding、hybrid 三种模式,查询 Top-K 有边界;资产层跟踪版本、状态、所有者与使用次数。也就是说,系统同时处理"如何找技能"和"哪一版技能允许谁使用"两个问题。
5. Wiki:先分析,再生成,再确定性落盘
Wiki 默认采用两阶段 LLM 摄取:阶段 A 先生成抽取计划,阶段 B 再输出 FILE 块。超过约 28,000 字符的源会被分块;LLM 输出经过路径白名单、结构文件保护、规范化路径与去重合并后才落盘。schema.md、purpose.md、index.md 等结构文件禁止被模型直接覆盖。
text
原始文档
→ 分块(约 28K 字符预算)
→ 阶段 A:分析与抽取计划
→ 阶段 B:生成 FILE 块
→ 路径白名单 / canonicalize / locked 检查
→ 新建或合并 Markdown 页面
→ 重建 index.md 与 SQLite 索引
这层确定性后处理很重要:模型可以决定内容,但不能任意决定最终路径、覆盖结构文件或绕过 locked 页面。它比"让模型随便写一堆 Markdown"更接近可维护的知识工程。
6. CodeGraph:结构查询,而不是另一套文档 RAG
CodeGraph 会浅克隆仓库、创建索引,并在后续同步时调用增量 sync();失败后再回退到重新克隆。对外暴露 8 个查询动作:
| 工具 | 用途 |
|---|---|
search |
搜索符号或相关代码节点 |
explore |
从节点继续探索图关系 |
callers |
查找调用方 |
callees |
查找被调用方 |
impact |
分析潜在影响范围 |
node |
获取节点详情 |
status |
查看索引状态 |
files |
查看文件层信息 |
必须注意证据边界:本仓库的 Knowledge Service 主要是对 @colbymchenry/codegraph v1.2.0 的编排与 API 包装,具体 AST 解析和边构建算法在外部平台包中,不应仅凭本仓库断言它使用某种 parser,也不能把结构图查询等同于独立验证过的缺陷召回率。
7. Proxy 同时支持 Anthropic 与 OpenAI 协议
Proxy 负责身份校验、会话初始化、上下文注入和上游模型转发。请求先由协议 Adapter 解析成统一 AgentContext,再按固定注入点执行 Hook,最后序列化回原协议。Agent Profile 优先通过 URL 路径识别,避免每次扫描 system prompt;会话初始化阶段还可预热 Hook 缓存。
text
Claude Code / CodeBuddy / OpenAI Client
→ 协议 Adapter
→ 用户鉴权 + team/agent/task 会话绑定
→ Hook Cache / Memory / Skill / Knowledge 查询
→ system / tools / user 指定位置注入
→ 上游 LLM
→ 对话回写与后台资产提炼
Hook 失败默认是非致命的:记录错误后继续其他注入,避免一个知识源不可用就让主模型请求整体失败。这提高可用性,但也意味着运维时必须观察注入日志与指标,否则"请求成功"并不等于"记忆已成功加载"。
🔬 技术架构深度解析
总体架构:数据面、知识面、注入面、治理面分离
text
┌──────────────────── Agent / Client ─────────────────────┐
│ Claude Code │ CodeBuddy │ OpenClaw │ Hermes │ API Client │
└──────────────────────────┬───────────────────────────────┘
│ Anthropic / OpenAI protocol
┌──────────────────────────▼───────────────────────────────┐
│ Memory Proxy :8096 │
│ auth → session init → adapter → hooks/cache → injection │
└───────────────┬───────────────────────┬──────────────────┘
│ │
┌───────────────▼──────────────┐ ┌─────▼──────────────────┐
│ Memory Core :8420 │ │ Knowledge :8424 │
│ L0 capture │ │ Wiki ingest/index │
│ L1/L2/L3 pipeline │ │ CodeGraph clone/sync │
│ FTS5/vector/hybrid recall │ │ MCP/API query tools │
│ Skill + metadata + ACL │ └──────────┬─────────────┘
└───────────────┬──────────────┘ │
└──────────────┬──────────────┘
▼
SQLite / JSONL / COS / Redis / Tencent VDB
│
┌──────────────────────────────▼───────────────────────────┐
│ Memory Panel :8125 │
│ Team / Agent / Task / Owner / Version / ACL / Binding │
└──────────────────────────────────────────────────────────┘
任务调度:为 LLM 慢任务准备的并发与恢复机制
Memory Pipeline Worker 使用竞争消费模型。源码注释给出的服务模式是 Redis Stream Consumer Group;每个 session 的 L1/L2 使用分布式锁,L3 默认按 instance 加锁。锁每 30 秒续约,默认 TTL 240 秒;锁丢失后通过 AbortSignal 中止仍在进行的 LLM 调用,并跳过 ACK,让任务可被其他 Worker 回收。
| 配置项 | 源码默认值 | 工程含义 |
|---|---|---|
| Worker 并发消费协程 | 60 | 不同 session 可并行;不是性能实测吞吐量 |
| 锁 TTL | 240 秒 | 为最长约 120 秒的 LLM 请求留 2 倍缓冲 |
| 锁续约周期 | 30 秒 | 降低 GC 或事件循环卡顿导致锁过期的概率 |
| 最大重试 | 3 次 | 超限进入死信逻辑 |
| 退避 | 5 / 15 / 45 秒 | 降低 LLM/API 故障时的重试风暴 |
| Pending 回收周期 | 30 秒 | 回收异常退出 Worker 遗留任务 |
| Pending 判定超时 | 300 秒 | 必须大于锁 TTL |
| Recall 总超时 | 5 秒 | 超时则跳过召回,不阻塞主请求太久 |
这张表是默认参数审计,不是官方性能 Benchmark。仓库 README 没有给出可复现的延迟、吞吐、召回率或成本对比,因此不能从"并发 60"推导"每秒处理 60 个任务"。
数据一致性与故障边界
- 幂等写入 :Memory Worker 通过
record_idupsert,COS 使用覆盖写。 - 锁粒度可切换:默认 session 粒度;若共享 JSONL 产生并发追加风险,可临时切到 instance 粒度,代价是同实例任务串行。
- CodeGraph 构建状态机 :
pending → processing(cloning/indexing) → ready / failed,创建与同步立即返回,由后台队列处理。 - 知识构建共享队列:Wiki 与 CodeGraph 默认共享串行 BuildQueue,优点是避免本地构建争抢资源,缺点是大仓库索引可能阻塞后续 Wiki 任务。
- 自动同步:CodeGraph 可启用定时扫描与固定 Worker Pool,队列通过 Set 去重;默认不开启,扫描周期配置默认 10 分钟、最大并发默认 3。
- 重启恢复:启动时把中断的构建任务标记为失败,并异步恢复已经同步的图实例和 Wiki 索引。
安全与隔离边界
系统的团队、Owner 和 ACL 是应用层授权,不是操作系统沙箱。Knowledge Service 的 Git Source Fetcher 只接受 HTTPS,并包含内网/环回地址阻断以降低 SSRF 风险;代码索引目录按 service_id/team_id/code_graph_id 隔离。Proxy Cache Key 还包含 user、agent source、session 与 space 等维度,避免跨用户缓存碰撞。
但部署者仍需自行保护四个本地端口、LLM API Key、管理员 user_key、持久卷与代理上游。README 推荐把管理员账号用于运维,把普通业务账号用于日常 Agent 资产。这个建议应视为最小权限起点,而不是完整的零信任方案。
源码规模与成熟度审计
对 v2.0.0 默认分支提交 0aff21a 做浅克隆统计:
| 指标 | 结果 | 口径 |
|---|---|---|
| Git 跟踪文件 | 837 | git ls-files |
| 估算源码行数 | 176,154 | 统计 TS/TSX/JS/Python/Shell/CSS/HTML/SQL,排除构建目录与二进制 |
| MemoryCore 文件 | 324 | 顶层目录归属 |
| MemoryPanel 文件 | 200 | 顶层目录归属 |
| MemoryProxy 文件 | 151 | 顶层目录归属 |
| MemoryKnowledge 文件 | 69 | 顶层目录归属 |
| 测试样式文件 | 0 | 当前公开默认分支未找到 test/tests/__tests__ 或 .test/.spec 文件 |
值得警惕的是,多个 package.json 保留了 Vitest 和 E2E 脚本,但当前公开默认分支没有对应测试文件;这意味着无法从仓库直接复核其回归质量。另一方面,源码并不是薄壳:Memory Core 与 Proxy 的实现规模很大,关键任务调度、混合检索、Wiki 落盘和 CodeGraph 编排都有具体代码。合理判断是:产品实现深度高,但公开可验证性仍落后于功能扩张速度。
📖 README 核心内容摘要
README 的核心主张可以浓缩为一句话:不要让每个 Agent 重新学习同一份项目,把已经付过的上下文成本变成团队存档。
README 强调的三个闭环
- 自动提炼:从对话与任务中抽取 Chat Memory 和 Skill,从文档与代码生成 Wiki、CodeGraph。
- 跨 Agent 携带:资产与单一 Agent 框架解耦,可由不同成员和不同 Agent 共享维护。
- 冷启动导入:导入现有代码库、文档和历史 Agent 会话,让新 Agent 从已有经验开始。
"一人公司"的角色装配方式
README 用 Scout、Builder、Reviewer 展示按角色装配资产:Scout 加载用户访谈记忆、市场 Wiki 与竞品 Skill;Builder 加载产品 Wiki、项目 CodeGraph 与交付 Skill;Reviewer 加载历史事故记忆、CodeGraph 与发布检查 Skill。关键不是创建多个聊天窗口,而是让角色获得不同且受控的上下文,减少无关信息。
与普通 RAG 的区别
| 维度 | 普通 RAG | TencentDB Agent Memory |
|---|---|---|
| 主要问题 | 哪些文本块与问题相似? | 哪类经验应该沉淀、谁能用、哪一版有效、装给哪个 Agent? |
| 资产形态 | Chunk + Embedding | Chat Memory + Skill + Wiki + CodeGraph |
| 结构关系 | 通常较弱 | Wiki Link Graph 与 CodeGraph |
| 治理 | 常依赖外部系统 | 内置 Owner、版本、状态、可见性和 ACL |
| Agent 注入 | 应用自行拼接 | Proxy 通过协议 Adapter 与 Hook 注入 |
需要读者自行补上的边界
- v2.0.0 已发布,但
MemoryCore/package.json仍写2.0.0-beta.1,MemoryKnowledge 与 MemoryProxy 又各自是0.1.0,版本面并未完全对齐。 - README 徽章写 MIT,仓库 LICENSE 也确实是 MIT;GitHub API 的
NOASSERTION是识别失败,不代表没有许可证。 - CodeGraph 能提供结构遍历,但不能替代编译、测试、静态扫描与人工评审;动态语言运行时行为也不应仅凭静态图完全推断。
- Wiki 与记忆提炼依赖 LLM,输出质量、成本和隐私边界取决于部署者配置的模型与上游服务。
🚀 快速上手
前置条件
- 安装 Docker,并确保端口 8420、8125、8424、8096 未被占用。
- 准备两组 LLM 参数:一组供 Memory/Knowledge 提炼,一组供 Proxy 转发主 Agent 请求。
- 若直接开发源码,需要 Node.js ≥ 22.16;完整镜像部署不要求本机编译 TypeScript。
1. 拉取并准备配置
bash
git clone https://github.com/TencentCloud/TencentDB-Agent-Memory.git
cd TencentDB-Agent-Memory/deploy/global-images
cp .env.example .env
$EDITOR .env
至少填写:
text
MEMORY_LLM_BASE_URL / MEMORY_LLM_API_KEY / MEMORY_LLM_MODEL
PROXY_UPSTREAM_URL / PROXY_UPSTREAM_API_KEY / PROXY_UPSTREAM_MODEL
2. 先做确定性预检,再启动
bash
./verify.sh
./start-all.sh
离线环境可使用仓库明确支持的参数跳过 LLM 外部探测:
bash
./verify.sh --skip-llm
start-all.sh 会按 Memory Core → Memory Hub → Proxy 的顺序启动,并等待前一服务健康后再继续。本文已对 v2.0.0 中这组 Shell 脚本执行 bash -n,语法检查通过;但未代替读者使用真实 Docker、模型密钥和持久卷完成端到端部署。
3. 打开控制台并接入 Claude Code
控制台地址:http://localhost:8125。首次启动生成的管理员 Key 会保存在部署目录的 .admin-key。README 推荐先创建普通业务用户,再用业务用户的 user_key 接入 Agent:
bash
export ANTHROPIC_BASE_URL=http://127.0.0.1:8096/claude-code/default
export ANTHROPIC_AUTH_TOKEN='<business-user-key>'
claude --model '<PROXY_UPSTREAM_MODEL>'
首次会话会依次选择 Team、Agent 和可选 Task。绑定完成后,后续轮次由 Proxy 自动注入该 Agent 的 L2/L3、Skill 与 Knowledge;L0 对话继续回写,后台 Worker 再提炼新的资产。
4. 验证流水线是否真的工作
bash
curl -s http://localhost:8420/health | jq .services.pipelineWorker
重点观察 tasksConsumed 与 tasksCompleted 是否增长。只看到模型能回复还不够,还要确认:会话绑定成功、注入日志出现、后台任务被消费、资产在 Panel 中产生。
📊 增长速度与社区热度
增长速度评估
仓库创建于 2026-04-07,至 2026-08-05 快照相隔 120 天。按 14,327 Stars 计算,历史生命周期平均约 119.4 Stars/天。这个数只能说明仓库自创建以来的整体吸引力,不能代表最近 24 小时速度;任务快照没有保留"今日新增 Stars",Trending 第 1 名也不能反推出日增量。
| 指标 | 数值 | 解读 |
|---|---|---|
| Trending 排名 | 1 / 18 | 当日曝光与关注度最高 |
| Stars | 14,327 | 对仅创建约 4 个月的仓库而言非常高 |
| Forks | 1,315 | Fork/Star 约 9.2%,说明有较强试用与二次研究意愿 |
| Open Issues + PRs | 513 | GitHub 聚合字段;数量高,既反映活跃,也提示维护压力 |
| Watchers | 53 | 同日 API 补充值 |
| Releases | 至少 10 个 | 从 v0.2.2 到 v2.0.0,版本推进很快 |
| 最新正式版 | v2.0.0 | 2026-08-03 发布,距离榜单快照仅 2 天 |
| 默认分支公开提交 | 浅克隆仅见 6 个 | 发布式大提交/历史压缩使传统贡献统计失真 |
GitHub Contributors API 在默认分支只返回 4 个账号,最高贡献数为 2;这与 17 万行级源码规模明显不匹配,说明公开历史很可能经过迁移、Squash 或发布式导入。因此,不能用"4 位贡献者"直接判断真实开发团队规模,也不能用默认分支 6 个提交评价研发活跃度。
社区热度的正面信号是 Stars、Forks、频繁 Release 和 500+ Issue/PR 聚合量;风险信号则是 Team Memory 仍标注 Beta、默认分支非常规、公开测试缺失、版本号跨组件漂移,以及 Issues/PR 队列较大。更准确的结论是:增长极快、讨论密集、工程投入大,但维护与稳定化阶段尚未结束。
今日 Trending 完整榜单
| 排名 | 仓库 | 排名 | 仓库 |
|---|---|---|---|
| 1 | TencentCloud/TencentDB-Agent-Memory | 10 | gabime/spdlog |
| 2 | zhaoxuya520/reverse-skill | 11 | denoland/deno |
| 3 | firecrawl/pdf-inspector | 12 | usekaneo/kaneo |
| 4 | uber/ADR | 13 | livekit/agents |
| 5 | obra/superpowers | 14 | angular/angular |
| 6 | microsoft/generative-ai-for-beginners | 15 | tailwindlabs/tailwindcss |
| 7 | cypress-io/cypress | 16 | browser-use/video-use |
| 8 | lyogavin/airllm | 17 | esengine/DeepSeek-Reasonix |
| 9 | webpack/webpack | 18 | EveryInc/compound-engineering-plugin |
在这 18 个项目中,TencentDB Agent Memory 值得优先分析,不仅因为它排名第一,还因为它同时覆盖记忆提炼、检索、知识图谱、代码图、协议代理和团队治理,技术面明显深于教程仓库、规则集合或单一用途工具。
🎯 适用场景
| 场景 | 适合度 | 原因与建议 |
|---|---|---|
| 长周期软件项目 | 高 | 可沉淀架构决策、事故经验、代码关系和发布 Skill |
| 多 Agent 协作 | 高 | 不同角色可装配不同资产,减少上下文噪声 |
| 个人"一人公司" | 高 | Scout/Builder/Reviewer 可共享同一团队存档 |
| 企业内部知识中枢试点 | 中高 | 有 ACL、Owner 与团队模型,但需补充 SSO、审计、备份和网络隔离评估 |
| Claude Code / CodeBuddy 增强 | 高 | Proxy 已提供会话选择、协议适配与自动注入 |
| OpenClaw / Hermes 集成 | 中高 | 仓库提供相应适配,但应先在非关键环境验证版本兼容性 |
| 严格离线环境 | 中 | 核心可本地部署,但提炼、Embedding 与主模型是否离线取决于模型配置 |
| 强合规生产系统 | 谨慎 | 需要额外验证数据保留、删除、权限审计、密钥管理与第三方模型出站 |
| 只想给聊天加简单记忆 | 偏低 | 四服务与治理模型可能过重,SQLite + FTS/向量插件更简单 |
💡 总结
TencentDB Agent Memory 最有价值的地方,不是又做了一个向量记忆库,而是提出了一套完整的"Agent 经验资产化"框架:对话变记忆,成功流程变 Skill,文档变 Wiki,代码变 CodeGraph,再通过团队、Owner、版本、ACL 和 Agent 绑定进行治理。Proxy 把这些资产送回 Claude Code、CodeBuddy 等客户端,形成捕获---提炼---治理---注入---再生产的闭环。
从源码看,它已经具备超过概念验证的工程深度:FTS5 与向量 RRF 混合检索、带分布式锁与死信的异步流水线、协议 Adapter、注入 Hook、Wiki 确定性落盘、CodeGraph 增量同步都是真实实现。与此同时,缺少公开测试、组件版本不齐、默认分支历史过浅以及 Beta 状态也提示我们:它适合现在就做技术验证和团队试点,但进入关键生产链路前,仍应补齐压测、回归、备份恢复、安全审计和模型成本评估。