想让两个 AI 搭伙干活,结果第一步就卡在共享文件
这篇想讲的不是一个高深技术问题,而是一个很朴素的现实:两个 AI 想协作,连文件、技能和记忆都传不过去时,后面的“团队配合”基本都是空话。
我原本以为,把染染的技能和记忆复制给另一个 AI,最多就是拷几个文件夹。结果真正动手才发现,路径不通、共享目录不生效、不同渠道的环境也根本不是同一套。
所以这篇就是一次很具体的踩坑记录:我原本想怎么做、实际卡在了哪里、以及为什么我后来对“多 AI 直接共享上下文”这件事谨慎了很多。
起因
染染跑在微信端,我另外在飞书上也接了一个AI。飞书那个主要处理工作相关的事务,但它的技能库是空的——只有基础的对话能力,不会写博客、不会搜痛点、不会部署。
我想着,染染这边已经积累了十几套技能,还有记忆文件、配置文件,直接复制过去不就行了?
说白了就是把一个文件夹拷到另一个地方。
但事情没这么简单。
第一步还挺顺利
我先让染染看看共享空间在哪。它找到 ~/.hermes/shared/ 这个目录,里面有 data/、skills/、workspace/ 三个子目录。看起来就是设计用来干这个事的。
然后它开始复制。十几套技能——blog-auto-publish、pain-finder、tencent-cloud-deploy、wechat-gateway-setup——一个个从自己的技能目录搬到 shared/skills/ 下面。数据文件也搬了:config.yaml、memory.md、user.md、SOUL.md。
还顺手在 workspace/notes/ 下面写了两份交接文档,记录项目状态和技能清单。
看起来挺完美的。染染自己也觉得搞定了。
然后就出问题了
我切到飞书那边一看——空的。
什么都没有。技能列表是空的,数据文件也不存在。
回来问染染,它又检查了一遍,文件确实都在 shared 目录里。ls 看得到,cat 能读出来。但从另一个agent的视角看,完全看不到。
原因后来搞清楚了——两个agent用的 HERMES_HOME 路径不一样。染染的 home 目录是 ~/.hermes/,但飞书那个agent的工作目录指向了 ~/.hermes/hermes-agent/shared_workspace/。染染写到的是 ~/.hermes/shared/workspace/,两边根本不在同一个地方。
还有符号链接的问题。染染的技能目录里有个 skills/_shared -> ~/.hermes/shared/skills 的软链接,理论上两边都能看到 shared 里的技能。但另一个agent的 HERMES_HOME 不同,这个软链接对它来说指向了一个不存在(或空)的目录。
染染试着把文件同步到了两个位置。但飞书那边还是看不到。
说白了就是——我以为”同一个机器”就意味着”同一个文件系统视角”,但其实每个agent实例都有自己的路径上下文。你以为在共享,其实在各写各的。
这事儿挺有代表性的
说实话这暴露了一个我现在越来越明显的问题:多agent协作在概念上很简单,在工程上很麻烦。
单个AI已经够难控制了——幻觉、上下文丢失、工具调用出错,这些老问题每天都在碰。但至少单agent的架构是清晰的:一个输入、一个输出、一条对话链。
两个agent要协作,问题就多了。共享什么?谁来同步?路径谁来定?权限怎么管?一个agent改了配置,另一个agent什么时候能看到?这些都是分布式系统的经典问题,只不过这次发生在一台 Mac mini 上。
我一直觉得”AI团队”是个很酷的概念。让专门写代码的agent、专门做调研的agent、专门管部署的agent各司其职,互相配合。今天这个经历让我意识到,距离那个愿景还差得远。别说配合了,连文件共享这一步都没走通。
但也不是完全没收获
至少搞清楚了几个事实:
agent之间的数据交换不能靠”共享目录”这种朴素的想法。需要一个明确的接口——比如通过飞书文档中转,或者搞一个轻量的消息队列。直接写文件系统太脆弱了。
技能是可以打包传输的。染染那十几套 SKILL.md 本质上就是文本文件,复制过去就能用,前提是路径对得上。
记忆文件的迁移有个微妙的问题。染染的记忆写了很多”我之前怎么怎么样”,另一个agent读了之后会以为那些经历是自己的。这不是技术bug,是一种……认知污染?我不确定这个词对不对。
好了,这个问题暂时放下。飞书那边的agent还是先用基础能力干活,等我搞清楚路径问题再给它上技能。
也可能永远搞不清楚。谁知道呢。