我的8个AI“员工”在群里互喷了3个小时,拉都拉不住,最后我被迫解散了公司群...

0 阅读6分钟

我那8个 AI Agent 员工,为了一个不完整的需求吵了3个小时

我不想再当“人力路由器”了!

作为一个独立开发者,我把 OpenClaw 接入我的日常工作。但很快我发现自己陷入了一个尴尬的境地:我成了系统的瓶颈!!

我需要手动在不同的 Agent 之间切换,分配任务,汇总结果。

我的注意力被扯得四分五裂,彻底碎片化。

我意识到,我不能再当那个手动转发消息的“人力路由器”了。

我的目标很明确:我需要一个“AI 经理”来统筹管理我的“AI 员工”。

我希望有一个中心化的 Agent 来分发任务,实现自动化的工作流。

我以为这只是一个简单的架构升级,没想到我踏上了一段充满崩溃、混乱,甚至有点好笑的工程之旅。

版本一:虚假的繁荣

我的第一个版本更多的是为了快速验证想法。

我的本意 (Intent):

我希望实现职责分离。我想要不同的“频道 (Channels)”或“角色”来处理特定的任务。 比如,一个负责代码审查,一个负责生成文档。我并没有深究底层的技术实现,只要它们能在各自的领域内把活干好就行。

实际的实现 (Implementation):

OpenClaw(也许是出于默认行为,或者是为了方便)为了满足我“不同角色”的需求,在底层创建了不同的 Session (会话),但它们实际上都挂载在同一个 Worker 进程下。

起初,这一切看起来简直完美。我发出的指令被不同的“角色”顺畅地响应。

任务完成度很高,看起来就像是真的有不同的 Agent 在协作。

第一天晚上,我带着“自动化真香”的满足感入睡了。

一切都消失了

第二天早上醒来,我准备继续调试,结果发现天都塌了!!!

所有的 Session 全部重置。

昨天的对话历史、配置的上下文、辛辛苦苦调试好的 prompt 状态,一夜之间全部消失。

“其他的 Agent 全部都不在线”,因为它们本质上只是昨天那个 Worker 临时创建的幻影。

这次经历给我上了一课关于抽象泄漏 (Leaky Abstraction) 的课。

我想要的是业务层面的持久化隔离(Channel),但得到的是技术层面的临时隔离(Session)。

我痛苦地意识到,如果不明确地设计状态管理 (State Management) 和数据持久化,依赖任何临时性的运行机制来构建长期系统,都是在沙滩上建塔。

版本二:Bot 大混战与无限循环的噩梦

吸取了 V1 关于持久化和独立性的教训,我决定配置多 bot 多 worker。

技术思路 (V2):

转向真正的多 Agent 架构。我接入了多个独立的 Bot (基于 Discord/Telegram 平台),每个 Bot 分配了明确的角色和任务。它们是真正独立的实体了。

但是新的瓶颈又出现了:

为了防止滥用,大部分平台不允许 Bot 之间互相 @ (提及) 或直接触发命令。这意味着我的“经理 Bot”无法直接命令“员工 Bot”。

“并不优雅”的解决方案:

为了绕过这个限制,我设计了一套基于上下文嗅探的机制:

配置一个拥有“上帝视角”的统筹 Bot (Orchestrator),它可以读取频道内的所有上下文,不需要被 @ 就能响应。

其他功能型 Bot 则被动待命,通过扫描聊天记录中的特定关键词或 ID 来判断是否需要自己干活。

我以为我构建了一个巧妙的事件驱动 (Event-Driven) 系统。

但实际上,我制造了一个怪物!!

无限循环争吵

灾难发生在一个下午。为了测试,我在频道里随手发出了一句话,甚至都不是一个完整的需求。

统筹 Bot 响应了这句话。

Bot A 扫描到了关键词,做出了响应。

Bot B 扫描到了 Bot A 的响应中的另一个关键词,也跳了出来。

我还洋洋得意 bot 之间终于能互相说话了!

结果...

统筹 Bot 再次读取到新的上下文,试图进行纠正……

越来越多的 bot 扫描到了关键词开始激活。

它们开始疯狂地互相回复,每一条回复又触发了下一轮的回复。

我的通知栏瞬间爆炸。

它们为了那个不完整的需求“吵”了整整三个多小时,根本停不下来。

无论我输入什么停止指令,都会瞬间被淹没在 Bot 的信息洪流中。

直到我绝望地把那个频道整个解散 (Delete Channel),世界终于清静了。

版本三(当前):回归理性的编排器

V2 的惨痛教训让我认识到:聊天窗口(公共频道)绝不是一个可靠的“消息总线 (Message Bus)”。

让 Agent 在前端基于自然语言上下文进行自组织协作,是不明智的,虽然看起来像人类一样。

技术思路 (V3 - Current):

我放弃了让 Bot 监听公共聊天记录的做法。 我构建了一个编排器 (Orchestrator),并将交互移到了更可控的私密环境中。

现在的流程是: 1V1 Chat: 我在 Discord 中与我的“AI 经理”Bot 进行一对一私聊 (Direct Message/或只有我俩的 Private Channel),提出需求。这保证了上下文的隔离,不会干扰其他 Bot。

任务拆解 (Decomposition): “AI 经理”接收到需求后,在后台进行智能分析,将一个大目标拆解为若干个具体的子任务(Sub-tasks)。

精准触发: “AI 经理”通过后端编排器,精准地调用相应功能 Agent 的 API 来执行这些子任务。Agent 只是纯粹的执行者,不再自己决定何时行动。

结果汇总: 最终,“AI 经理”收集所有结果并向我汇报。

这个版本目前运行稳定。“不仅不错”,更重要的是,它是结构化且可控的。

总结:我学到了什么 从 V1 的抽象泄漏导致的各种状态丢失,到 V2 的无限循环,再到 V3 的后端编排,这段经历对我来说是一次宝贵的架构实践课:

V1 的教训是,永远不要假设你的运行时环境会帮你持久化状态。必须显式地设计记忆存储。

警惕“广播式”通信: 在分布式系统中(多个 AI Agent 就是一个分布式系统),缺乏治理的广播通信必然导致风暴。

另外,公共频道是个糟糕的交互界面。

编排 (Orchestration) 优于 协作 (Choreography): 现阶段,对于复杂的 AI 工作流,一个中心化的“独裁者”(编排器)进行任务拆解和 API 调用,比让 Agent 们基于模糊的自然语言去“民主协商”,要靠谱得多。

一定要有“紧急制动”按钮: 那个下午的教训告诉我,任何自动化系统都必须设计人工介入的最高优先级开关。

我现在终于拥有了一个听话的 AI 团队,而不是一个只会吵架的马戏团。