张三在 Agent 里花了一下午搞明白了支付模块的设计意图,李四第二天还得从头来。
我们团队的 AI Coding 现状
我们团队五个人,最近半年开始全面用 AI Coding。每个人都有自己的 Coding Agent,日常开发中跟 Agent 结对编程已经成了常态。
效率确实提升了不少。但有一个问题越来越明显:我们五个人的 Agent 是五座孤岛。
几个真实场景:
重复踩坑。 张三负责支付模块,花了整整一个下午跟 Agent 解释我们支付系统的设计意图——为什么用了 Saga 模式而不是 TCC,为什么补偿操作要设计成幂等的,为什么某些异常要吞掉而某些要向上抛。Agent 终于理解了,那天的开发效率很高。第二天,李四要改支付模块的一个小 Bug。他开了自己的 Agent,花了一小时才把上下文重新建立起来。而且因为理解不到位,第一版修复方案还是错的。
知识碎片化。 王五在调一个性能问题,最终发现是 ORM 框架的 N+1 查询。他跟 Agent 一起排查了两个小时,总结出了一套排查 N+1 问题的方法论。但这个方法论只存在于王五的 Agent 会话里。下周赵六遇到了类似的问题,依然要从头排查。
规范不一致。 我们团队有编码规范,但很多细节是在实践中逐步明确的。比如"异步操作统一用 CompletableFuture 而不是 Future"这种约定,是在多次 code review 中才形成的共识。每个人的 Agent 只知道自己参与的那些讨论。新人入职,他的 Agent 完全不知道这些约定,写出来的代码风格跟团队格格不入。
根源:Agent 记忆的隔离性
这些场景指向同一个问题:每个人的 Agent 记忆是隔离的。
当前主流的 Coding Agent,Claude Code、Cursor 还是其他工具,它们的记忆(如果有的话)都是绑定在单个用户会话上的。张三的 Agent 不知道李四的 Agent 里发生了什么,反之亦然。
单人开发时这不是问题。但在团队协作场景下,这种隔离性导致了严重的知识碎片化:
- 每个人都在跟自己的 Agent 重复解释团队共有的上下文
- 一个人积累的 Agent 经验无法被其他人复用
- 团队的隐性知识——设计决策、踩坑记录、最佳实践——散落在五个不同的 Agent 会话中
传统做法是用文档来弥补——把重要的决策写成 Wiki,把规范写成文档。说实话,这个方案大家都知道该做,但实际执行总是打折扣:没人喜欢写文档,尤其是细节性的经验总结;文档容易过时,维护成本高;即使有文档,Agent 也不一定能检索到并正确使用。
让 Agent 共享记忆的思路
这个问题困扰了我们一段时间,后来我们尝试了 ContextDB 的方案。它的思路是给团队创建一个共享的 Workspace,团队成员的 Agent 都连接到这个 Workspace。每个人的 Agent 在交互中产生的有价值知识,自动沉淀到共享 Workspace 中。同时,每个人的 Agent 在需要上下文时,检索整个 Workspace 的知识,而不仅仅是自己的会话记忆。
五座孤岛就连成了一片。
具体是怎么工作的?
知识自动提取。 每个人的 Agent 在与用户交互过程中,会自动提取有价值的信息。张三跟 Agent 解释了 Saga 模式的设计意图,提取为原子事实,存入 Workspace。李四调试发现某个配置参数需要特殊设置,提取为原子事实,存入 Workspace。王五总结了一套 N+1 排查方法,提取为知识条目,存入 Workspace。
知识结构化聚合。 三层记忆架构在这里发挥了作用。原子事实层是最小的知识单元,带置信度和时间戳。记忆实体层把相关事实聚合为实体画像——"支付模块设计"这个实体,聚合了张三、李四分别贡献的多条事实。记忆图谱层把实体之间建立关联——"支付模块"关联到"Saga 模式","Saga 模式"关联到"幂等设计"。
不同成员贡献的知识,在实体和图谱层面自动融合。张三贡献了"支付模块用 Saga 模式",李四贡献了"Saga 补偿操作要幂等",这两条信息在图谱中自动关联起来。
按权限分发。 Workspace 支持精细化的权限控制。你可以设定某些知识全团队可见(如编码规范、架构决策),某些知识只对特定角色的 Agent 可见(如运维相关知识只对运维同学的 Agent 开放),某些知识保持个人私有(如个人的实验性探索)。
接入方式每个团队成员各自执行一条命令:
curl -fsSL 'https://context-database-client.oss-cn-hangzhou.aliyuncs.com/install.sh' | bash -s -- --agent <agent> --api-key <api-key>
支持 Qoder、Claude Code、Codex、OpenClaw、OpenCode、Hermes、QoderWork 等主流 Agent。
实际效果和一些真实感受
接入之后,前面提到的三个场景确实有改善,但没有想象中那么完美。
场景一:重复踩坑减少了。 张三搞明白了支付模块的设计意图后,这些知识自动沉淀到了 Workspace 中。李四第二天改 Bug 时,他的 Agent 自动检索到了这些知识。大多数情况下能直接理解 Saga 模式的设计意图,偶尔还是需要人工补充一下上下文。体感上从 1 小时缩短到十几分钟。
场景二:方法论能共享了。 王五总结的 N+1 排查方法论存入 Workspace 后,赵六遇到类似问题时 Agent 检索到了这个方法论。不过说实话,检索出来的方法论和实际问题的匹配度不是每次都 100%,有时候还是需要人判断一下是否适用。但比起从零排查,已经好很多了。
场景三:新人上手更快了。 团队的编码约定在一次次交互中被自动提取和聚合。新人入职后,他的 Agent 从 Workspace 中检索到了这些约定。我们观察到 code review 中"风格问题"类的 comment 明显减少了,具体减少了多少我没精确统计,大概有七八成的改善。
总的来说,这个方案解决了知识共享的大方向问题,但不要期望它是银弹——有些复杂的上下文、需要深度讨论的技术决策,光靠自动提取是不够的,团队成员之间的直接沟通仍然不可替代。
知识治理:不是越多越好
"共享记忆"听起来好,但如果所有人都往里面塞东西,会不会变成垃圾场?这是我最开始也担心的。
它的做法是分层治理:
AI 筛选。 不是所有的对话内容都会被提取为知识。AI 会先做初筛,过滤掉明显的噪音、临时性的讨论、重复的信息。
人工评审。 对于重要的知识(如架构决策、安全规范),可以设置人工评审流程。AI 提取的候选知识需要经过团队 lead 或相关负责人的确认才会正式入库。
置信度衰减。 知识的置信度不是一成不变的。如果一条知识长期没有被引用或确认,它的置信度会自动衰减。这避免了过时知识对 Agent 产生误导。
冲突消解。 如果两条知识互相矛盾(比如一条说"用 MySQL",另一条说"用 PostgreSQL"),系统会根据时间、来源、置信度等因素进行自动消解,保持知识库的一致性。
实际用下来,AI 筛选的效果大体可以,但偶尔会漏掉一些有价值的信息,或者把不该入库的东西放进来。人工评审这个环节目前还不能省。对于五人小团队来说,这个额外的工作量还在可接受范围内,但如果团队更大,可能需要更明确的治理流程和分工。
记忆晋升为知识
有一个设计我觉得比较巧妙:记忆到知识的晋升机制。
团队成员在日常交互中产生的信息,一开始是"记忆"(Memory)。有置信度、有时间戳,但还不是正式的"知识"。
当一条记忆满足一定条件——比如被多次引用、被多人确认、经过人工评审——它可以"晋升"为正式知识(Knowledge)。晋升后的知识具有更高的优先级和更稳定的置信度。
这个机制平衡了"快速积累"和"质量保证"的矛盾。你不需要在积累知识时就做严格的质量把关(这会拖慢速度),而是让知识在使用中自然进化。
最后说几句
AI Coding 做到后面,比的不是谁的 Agent 更聪明,而是谁的 Agent 更懂你的项目。
对于团队来说,"懂"不是一个人懂,而是所有人的 Agent 都懂。这需要一套机制来让个人经验沉淀为团队知识,让那些口口相传的"潜规则"变成 Agent 能理解的结构化知识。
当然,共享记忆也不是万能的。有些知识天然就是个人的、实验性的、不适合共享的。如何在"充分共享"和"不过度共享"之间找到平衡,我们还在摸索。权限模型提供了一些工具,但实际操作中的尺度把握,还是得靠团队自己摸索。
ContextDB 不是要取代文档和 Wiki——那些正式的、结构化的知识沉淀依然重要。它解决的是文档写不下的那部分:日常开发中产生的、零散的但很关键的经验知识。五个人的团队,五个 Agent,一个共享的上下文——至少在我们的场景里,这个方向是对的。
参考链接