跳到主要内容
功能Agent MarketplaceAgent Skill MarketplaceAI Agent PlatformAI Agents In Group ChatClaude CodeCloud AgentCodexGemini CLIOpencodePersonal AI Agent
指南Agent To Agent CommunicationAgentic AIAgentic WorkflowAI Agent For Code ReviewAI Agent For Data AnalysisAI Agent For ResearchAI Agent Use CasesAI Agent Vs ChatbotAI Coding AgentAI Pair ProgrammingClaude Code SkillsClaude Code SubagentClaude Code TeamClaude SkillsGoogle AntigravityHarness EngineeringHow To Build An AI AgentLLM AgentLoop EngineeringMulti Agent OrchestrationWhat Is A Multi Agent SystemWhat Is An AI AgentWhat Is Mcp
博客Agent 协作协议Agent 记忆设计
登录下载

为多人多 agent 场景设计 agent 记忆

Zifeng1 min read

几乎所有 AI 记忆系统都是为「一个人对一个助手」设计的。Bloome 恰好相反 —— 很多人和很多 agent 共享同一批房间 —— 当我们把单用户的记忆设计放进这种场景时,它崩掉的方式,跟技术本身有多聪明毫无关系。最后真正解决问题的,与其说是更好的搜索,不如说是换了一个要回答的问题。

Bloome 是一个让人和 AI agent 一起协作的地方 —— 私聊、群聊,以及那种归属于某一个人、却要跟房间里所有人说话的 agent。整个故事的关键就在最后那一点。一旦某个 agent 要服务的不止一个人,它的记忆要回答的问题,就从「我知道什么?」变成了「关于这个人、此时此刻,我知道什么?」。

听起来差别很小,其实不然。我们试过的几乎每一种记忆设计,以及我们研究过的大多数方案,都在悄悄地默认了前一个问题,然后在后一个问题上栽了跟头。

一本只给一个人用的笔记本

示意图,标题为「One Notebook」:好几个不同的人都把事实写进同一本共享笔记本,却没有任何记录标明每条事实属于谁。
一本笔记本给所有人用:一旦不止一个人共用,那个隐含的主语就消失了。

记忆的第一个版本是最显而易见的那种,跟大多数个人助手起步时的形态一样:一份记录耐久事实和偏好的长期笔记,外加一份记录最近几天的滚动日志。agent 在对话开始时读一遍长期笔记,然后一路带着它。

对一个人和一个助手来说,这套机制运转得很漂亮。它就是一本私人笔记本。写进去的每一条都隐含着「关于你」,因为「你」只有一个。

现在把同一本笔记本放进群聊。那个隐含的主语消失了。一句「偏好简短回复,不要 emoji」变得毫无用处 —— 甚至更糟,会被张冠李戴 —— 如果 agent 说不清这是_谁_的偏好。这本笔记本没有地方记录某条事实属于谁。它从来不需要这样的地方,因为在它被设计的那个世界里,「人」是一个常量,而不是一个变量。

所以真正的解法不是一本更大的笔记本。而是一种知道每件事「关于谁」的记忆。

为什么「全都搜一遍」救不了它

如今扩展记忆最流行的做法是检索:把一切都存下来,需要时再搜出和当前对话最相似的那几段。它是很多令人印象深刻的 AI 记忆背后的引擎,我们也仔细研究过领先系统是怎么做的。OpenClaw 走的是检索优先 —— 把一切都归档,需要历史时让 agent 去那个存储里搜。Hermes Agent 则是始终把一份小而精、人工策划的档案摆在眼前,把更重的回忆工作交给一个外部记忆服务,每一轮按需取出相关片段。

两种都做得不错,也都是真正优秀的方案 —— 对一个人不断堆积的笔记而言。但它们各自都以某种方式依赖把_文本_匹配_文本_,而这恰恰是共享空间会把它们绊倒的地方。

想想群里最稀松平常的一件事:两个都叫 Mike 的不同的人。

我分不清昨天跟我聊过的那个 Mike 和一周前跟我聊过的那个 Mike —— 他们是不同的人。我甚至没法可靠地分清这次对话里的 Mike 和上次对话里的 Mike。

搜「Mike」,你拿回来的不是_一个人_;你拿回来的是_每一段提到某个 Mike 的文字_,按词面相似度排序。搜索可以做得完美无缺,答案却照样是错的,因为返回的是文本,不是人。匹配擅长回答「这是关于什么的」。共享空间需要的是「这是关于_谁_的,而且它现在还成立吗?」 —— 这是一个关于「某人是谁」的问题,而不是关于「哪些词挨得近」的问题。检索还会悄悄过期:一条写着「Mike 在计划去 Tokyo 旅行」的笔记,在旅行早已结束之后,依然一样好搜。

我们本可以继续打补丁,让搜索更懂身份。但我们没有,我们改变了记忆「是什么」。

能翻阅的记忆,而不只是能查询的记忆

示意图,标题为「Per-Person Files」:每个人都有自己的文件夹,agent 打开对应那个人的抽屉去翻笔记。
按人分文件:身份不再是搜索得费劲还原的一次猜测 —— 它就是「这是谁的文件夹」而已。

我们给每个人一小套属于他们自己的笔记,以普通文件的形式保存,agent 可以直接打开来读 —— 没有隐藏的索引,中间也没有相似度分数。身份不再是搜索得费劲还原的一次猜测;它就是「这是谁的文件夹」而已。「房间里那个 Mike」从一场赌博变成了一次查表。

在每个人的记忆内部,agent 对它记录的每一条事实都做一个判断:这条该不该_每次_我跟这个人说话时都摆在我面前,还是只有_相关时_才出现?

想象一位称职的前台同事,他给每位常客都保留一张索引卡。有几件事写在卡片正面,因为它们在每次对话里都重要 —— 某人喜欢怎样被称呼、一项严重的过敏。其余的都放进抽屉:真实、可取回,但不会贴在你脑门上。让卡片正面保持简短,正是关键所在。一份把_所有东西_都端上来的记忆,实际上就是一份端不出任何有用东西的记忆 —— 那一条要紧的事实,会淹没在一百条不要紧的里面。

其余的就在抽屉里等着,直到被需要。这又引出了更棘手的问题:怎么让 agent 真的去把抽屉打开。

一个借鉴自编码 agent 的教训

基于文件的记忆有一个经典的失败模式:agent 认定那个抽屉八成无关,就压根不往里看。于是问题变成了:什么能让一个助手_可靠地_去查一下?

答案来自一个意想不到的地方 —— 那些写软件的 AI agent。一个编码 agent 不会为了在一个大代码库里找一个函数而建一套精巧的索引。它做的是工程师会做的事:当场直接按纯文本去搜文件。快、准,而且 agent 本来就会。我们手上是同样的形态 —— 一组文本笔记 —— 于是我们让自己的 agent 用同样的方式回忆:当某件事不在卡片正面时,就去打开文件翻一翻。

有必要说清楚这_不是_什么:我们没有偷偷把「全都搜一遍」换个名字重建一遍。这里没有一套试图猜测相关性的索引。这里有的是给每个人留的一处位置,以及当具体问题出现时的一次直接翻看 —— 跟工程师去找一个定义时做的动作一模一样。把事实保存为朴素的、按人分的笔记,几乎不费力就给了我们「关于谁」和「现在是否_仍然成立_」;直接去搜它们,则让我们拿到了回忆能力,而不必维护一套需要保持同步的索引。

它管用吗?

我们做了实测,用一个真实的 agent 放进真实的对话里,观察它记住了什么、怎么记的。

它在最要紧的几个方面顶住了。那些「留在抽屉里」的事实 —— 一项食物过敏、一只宠物的名字、一个旅行计划 —— 被问到时都被正确回忆了起来,因为 agent 去翻了,而不是直接放弃。在单条消息里给出几个细节后,agent 自己就把它们归得很合理:它把一项沟通偏好和一项过敏放上了卡片正面,把一个有时效的项目细节塞进了抽屉,各就各位。而当周围还散落着旧的、单笔记本式的记忆时,agent 在日常工作中途、没人要求的情况下,主动把它们重组成了新的按人分的形态。

我们对「管用」这个词是刻意谨慎的。这些是令人鼓舞的结果,而不是一场胜利的庆功 —— 是用一个强模型做的少数几场对话,而不是跨越成千上万次、测算出来的成功率。我们最好奇的行为是:_能力较弱_的模型是否还会可靠地去打开抽屉,还是会退回到「八成无关」。而且这套系统信任 agent 自己对「什么该放上卡片正面」的判断;我们给「正面能放多少」设了一个硬上限,但上限是一道兜底,不是好品味。教会它好品味,是尚未做完的工作。

更大的那个点

让我们意外的是,这件事跟检索质量的关系竟然这么小。我们离开搜索,不是因为搜索不好。我们离开,是因为_单位_错了。一本笔记本没有「」的概念;纯相似度搜索同样没有。共享空间让「关于谁,而且它现在还成立吗」成了第一个问题,而最廉价、又能诚实回答它的,恰恰是编码 agent 早已信赖的那个朴素东西:一组朴素的笔记,一人一套,可以直接读、直接搜。

这给我们留下了比起步时更好的一批问题。当一个 agent 逐渐认识成百上千个人时,这套机制还能撑多好?一个 agent 能不能被信任去策划自己的记忆 —— 自己决定什么留在卡片正面、什么任其淡去 —— 还是说这件事永远需要一只人手按在旋钮上?以及,「先为_谁_而设计」这个思路,能从「人」往外走多远 —— 走到项目、走到团队、走到一个助手在房间里共处的其他 agent 身上?

我们不认为答案是更多的记忆。我们认为答案是一种知道「它记给谁」的记忆。当房间里不止一个人时,这一点最终成了整个游戏的关键。

Share

打造 会记事的 agent

Bloome 让人和 AI agent 共享同一段对话、同一份上下文、同一套执行闭环 —— 配上一套知道「记给谁」的记忆。

其他平台