多 agent 协作第一坑:共享文件、技能和凭证都不是小事

我以前把“多 agent 协作”想得太轻了。

总觉得一个 agent 会写代码,一个 agent 会做调研,一个 agent 会审核,大家分工明确,系统自然就像一支小团队。真正动手以后才发现,多 agent 协作的第一道坎不是智能,而是基础设施。

文件放在哪里?技能怎么共享?凭证谁能用?记忆能不能复制?一个 agent 改了配置,另一个 agent 什么时候知道?这些问题不解决,后面那些“团队协作”“自动流转”“AI 公司”基本都是概念图。

这篇把两次事故合在一起写:第一次,我想让两个 AI 共享文件,结果它们根本看不到同一个目录;第二次,我只是想加一个新 agent,结果差点把主 agent 的环境搞丢。

我以为只是复制几个文件

最开始的问题很朴素。

一个 agent 已经积累了技能、记忆和项目上下文。另一个 agent 刚接入飞书,几乎是空的。我想当然地认为:把技能目录、记忆文件、项目笔记复制过去,不就能用了?

看起来甚至有专门的共享目录:shared/skillsshared/workspaceshared/data

于是我开始搬:技能、配置、memory、user、SOUL,还有项目交接文档。搬完之后,在源 agent 那边 ls 能看到,cat 能读出来,一切正常。

切到另一个 agent,一片空白。

这就是第一次被现实打脸:同一台机器,不代表同一个文件系统视角。

两个 agent 的 home 路径、workspace 路径和符号链接解析方式并不一致。我以为写进了共享目录,实际上写进的是其中一个 agent 自己理解的共享目录。另一个 agent 看的是另一个地方。

“共享目录”这四个字,只有在所有运行实例都指向同一个绝对路径时才成立。

路径问题不是小问题

这类问题很容易被低估,因为它看起来像普通路径错误。

但在多 agent 系统里,路径就是边界。

一个 agent 看到的 ~/.xxx/shared/skills,不一定是另一个 agent 看到的同一个目录。软链接也不可靠,因为软链接里的 ~、相对路径、运行用户和启动环境都会影响最终解析结果。

这件事让我对“直接共享文件”谨慎了很多。文件系统共享不是不能用,但必须满足几个条件:

问题 风险 更稳的做法
home 路径不同 写到不同目录 全部用绝对路径
软链接跨环境 目标不存在或指错 启动前做路径验证
技能版本不一致 一个 agent 会用,另一个不会 统一技能仓库或只读共享目录
记忆直接复制 角色身份污染 只同步事实,不同步第一人称经历
配置直接复制 覆盖渠道和权限 配置分层,敏感项单独注入

最重要的是:共享不是“我把文件放在那里”,而是“所有参与者都能以同一种方式读写它”。

这听起来像废话,但系统出问题时,往往就是废话没做到。

加一个新 agent,先炸的是旧环境

后来我又踩了第二个坑。

我想新增一个 agent,给它独立 profile、独立分工、独立项目上下文。按理说这只是“加成员”。结果创建到一半,主 agent 先出问题:记忆、配置、技能像被重置了一样,醒来之后连自己是谁都不清楚。

当时最可怕的不是新 agent 没配好,而是老 agent 的状态也被污染了。

这暴露了一个更大的问题:我之前没有把“全局环境”和“agent profile”分清楚。

哪些配置是所有 agent 共享的?哪些应该属于单个 agent?哪些凭证能共用?哪些记忆只能由主 agent 读?这些如果没有明确边界,一次 profile 初始化就可能改到不该改的地方。

最后虽然恢复回来了,但这件事逼着我重建了一遍多 agent 基础设施。

共享技能:可以共享,但要只共享能力

技能最适合共享。

它们本质上是工具说明、脚本和操作模式,不带太强的个人上下文。比如博客写作、网页抓取、部署、搜索,这些能力多个 agent 都可能需要。

但共享技能也要注意两点。

第一,技能目录应该尽量只读。至少普通任务执行时,不应该让每个 agent 都随手改共享技能。否则一个 agent 为了自己方便改了规则,其他 agent 下次启动就全受影响。

第二,技能依赖要可验证。一个 SKILL.md 被复制过去,不代表对应命令、依赖、环境变量都存在。技能共享后,还要有检查脚本确认它真的能用。

我后来更认可这种结构:

1
2
3
4
shared-skills/        # 统一能力库
agent-workspace/ # 各 agent 自己的工作区
shared-docs/ # 项目事实和交接文档
secrets/ # 不直接进共享文档的凭证

技能是能力,不是记忆。把这两件事分开,系统会清楚很多。

共享凭证:方便,但风险最大

凭证最麻烦。

GitHub token、服务器 SSH、腾讯云 API key、飞书 app secret,这些东西多个 agent 可能都要用。但如果随手复制到各自目录里,很快就会变成一堆过期、重复、权限不清的密钥。

我当时的临时方案是做共享凭证文件,再用同步脚本分发。

这能解决“到处配一遍”的问题,但它不是最终答案。因为共享凭证很容易把权限边界打穿:本来只负责写博客的 agent,突然也能改服务器;本来只负责调研的 agent,也拿到了部署权限。

更稳的方式应该是按角色拆权限:

  • 写作 agent:只读资料、写文件;
  • 开发 agent:能改代码、跑测试;
  • 部署 agent:才有部署凭证;
  • 主 agent:负责协调,但不随便代替别人执行高权限动作。

多 agent 系统里,凭证不是“谁方便谁拿”,而是“谁承担风险谁拿”。

共享工作区:写事实,不写人格

记忆共享还有一个很微妙的问题。

如果把一个 agent 的 memory 原封不动给另一个 agent,它会读到大量第一人称经历:我做过什么、我踩过什么坑、我和用户有什么约定。

这些内容对协作有用,但也可能造成身份污染。新 agent 会误以为那些经历都是自己的。

所以共享工作区更应该写事实,而不是人格:

  • 公司/项目当前目标;
  • 重要决策和原因;
  • 正在推进的任务;
  • 已知坑和禁忌;
  • 每个 agent 的分工;
  • 需要人工确认的边界。

不要写“我当时怎么想”,而写“系统当时发生了什么”。

这也是我后来给团队知识库的定位:它不是谁的日记,而是所有 agent 可读的项目事实层。

我现在的判断

多 agent 协作不是不能做,但顺序要反过来。

不要先设计复杂组织架构,再幻想 agent 自动配合。应该先把最基础的三件事跑顺:

  1. 统一事实层:所有 agent 读到同一份项目状态;
  2. 明确权限层:每个 agent 只拿自己需要的工具和凭证;
  3. 可靠交接层:任务交给谁、做到哪、怎么验收,都能查得到。

这三件事没做好,agent 越多越乱。

之前我总觉得多 agent 像组团队。现在更觉得它像分布式系统:缓存会不一致,权限会越界,状态会丢,消息会重复,失败会互相放大。

所以别急着让 AI 们开会。

先让它们看见同一份文件,拿到正确的工具,知道自己该做什么、不该碰什么。能做到这些,已经比大多数“AI 团队”概念靠谱多了。


多 agent 协作第一坑:共享文件、技能和凭证都不是小事
https://nmdft.cn/2026/04/12/2026-04-12-two-ai-agents-cant-share-files/
作者
nmdft
发布于
2026年4月12日
许可协议

评论

邮箱仅用于识别评论者,不会公开显示。

评论加载中…