大多数多智能体设置就像一屋子戴耳机的人。以下是我所做的改变。
摘要
作者分享了构建多智能体基础设施的心得,指出“身份漂移”是关键挑战,通过实施严格的智能体通行证和文件访问控制解决了这一问题。
我所见过的大多数多智能体设置基本上就像一屋子戴耳机的人。智能体并行运行,没有共享意识,不知道谁在做什么。这不是协作,这只是共存。
我一直在公开构建这个项目,已经近12周了。12个智能体,6500多次测试,95颗星。以下是我真正学到的东西。
问题不在于记忆,而在于身份。一个智能体可能在技术上正确,但完全偏离目标。不是幻觉,而是漂移。就像一个能干的人走错了会议室,开始发表意见却没意识到自己进错了房间。
我花了几周时间改进记忆——更长的上下文、更好的嵌入、持久化状态。但这些都没能解决漂移问题。问题不在于智能体记住了什么,而在于它不知道自己的身份。
解决办法是三个文件。每个智能体都有一个 passport.json——我是谁,我做什么,我不做什么。大概30行,很少改动。然后是 local.json——滚动会话日志、关键学习记录,最多20条记录,满了自动归档到向量搜索。还有 observations.json——协作模式,即我如何与其他智能体协作。
每个会话通过钩子首先加载身份。智能体从不冷启动。我现在有12个智能体,每个都是领域专家。邮件系统通过自身的bug构建了696个测试。路由系统深度超过80个会话——它只考虑路由。它们不做彼此的工作。
当另一个领域出现问题时,它们会互相发邮件。编排器将工作分派给它们并信任它们,因为它们比编排器更了解自己的代码。
每次我发布相关内容,总会有人问两个智能体同时写同一个文件会怎样。问得好。它们做不到。不是“我们告诉它们不要这样做”——有一个叫做 pre_edit_gate 的钩子在每次写入前触发。
如果分支A的智能体试图编辑分支B目录下的文件,写入会被拒绝。硬性阻止。智能体会看到“跨分支写入被阻止”,然后必须请求一个受信任的分支进行更改,或者通过 drone 发送邮件请求。
整个系统中只有三个分支(编排器、审核器和创建新智能体的工厂)允许跨分支写入。其他所有分支都被物理限制在自己的目录内。
我们还锁定了收件箱——智能体不能通过直接写入另一个智能体的邮箱文件来伪造消息。它们必须使用邮件系统。这不是约定,而是强制执行。
本周我停止了功能开发,开始测试。拿了一台旧 MacBook,擦除数据,从头安装 Ubuntu。在一台没有任何预配置的机器上克隆。发现了所有安装障碍——缺少 git 配置、新 Ubuntu 上 venv 损坏、钩子未连接。现在都已修复。
安装包从大约2GB减少到大约100MB。构建了一个接待员智能体,引导新用户完成入职流程——12个阶段,243个测试。第一印象很重要,我们的第一印象说实话很粗糙。95颗星。小项目。
老实说,我是独立开发者,这些智能体帮助构建和维护自身——每个PR都是人类与AI的协作。最难的部分不是代码,而是解释这到底是什么。人们听到“智能体”就以为是任务执行器。不是这样的。这是用于构建能够记忆和协调的系统的基础设施。在上面放什么取决于你。
有没有其他人遇到过身份漂移问题?我很好奇其他人是如何解决的——或者大多数人只是加了更多上下文就继续了?
相似文章
我解决了多智能体架构中的三大痛点
Agentlas 推出了一种分层多智能体架构,可消除无限循环问题;通过访谈引导智能体创建;并内置安全扫描器,可在安装前审查智能体。
公开构建多智能体框架已经 7 周了,这是一段旅程。
AIPass 是一个本地 CLI 多智能体框架,它为 AI 智能体提供持久化身份、共享文件系统访问和智能体间消息通信,且无需沙箱环境。该项目由开发者独自公开构建,历时 7 周,包含 4000 多项测试和 400 多个 Pull Request。
跨整个组织的简单多智能体架构。让一切保持循环。
本文描述了一个大规模运行的多智能体架构,使用LangGraph、CrewAI和Harbor来处理目标智能体、任务协调以及带有追踪的安全访问。
大多数多智能体设置让一个智能体包办一切——撰写建议、判定结果、路由输出。当我将它们拆分开来,情况发生了变化。
描述了一个专为代码审查设计的特殊多智能体系统,具有明确的角色和持久状态,已开源为 agile-team-skill。该系统将审查者与决策者角色分离,以提升代码质量和流程记忆。
构建多智能体系统让我意识到记忆比编排更难
构建多智能体系统表明,管理共享记忆和上下文一致性比编排更具挑战性。作者使用 Statewave 进行的实验将记忆视为一个不断演化的生命周期,而非单纯的检索问题。