机器人

Telegram 机器人之间如何通信:多智能体集群、链式命令与事件工作流

多个机器人同处一个群组时,它们并不会彼此“看见”或自动协作。本文拆解四种常见配置——单机器人多职能、按受众拆分、多服务商并存、链式依赖——并说明各自的失效模式、权限归属与排查方法。

内容导读

多个机器人同处一个群组时,它们并不会彼此“看见”或自动协作。本文拆解四种常见配置——单机器人多职能、按受众拆分、多服务商并存、链式依赖——并说明各自的失效模式、权限归属与排查方法。

Telegram 机器人之间如何通信:多智能体集群、链式命令与事件工作流主题插画

没有什么能阻止一个群组拥有多个机器人,很多群组也确实如此:一个负责管理,一个负责商店,一个负责发布动态。它们合在一起,可以凑出某种类似系统的效果。

但它们也可能凑出四件各自独立出故障的事情,由四个你从未见过的人分别运营。决定一个群组该有多少个机器人,是运营层面的判断,而不是技术层面的判断。

你将能够做到

  • 判断第二个机器人是否值得添加。
  • 按受众而非按功能来拆分。
  • 了解多个运营方在实践中意味着什么。
  • 当机器人彼此依赖时,诊断故障出在哪里。

从成员的角度看,这里并没有什么系统——只有几个账号,你说话时它们会回应。

机器人不会通过“观察”来彼此交谈

人们通常的直觉是,往一个房间里加两个机器人,它们就能像会议上的两个人那样协作。它们做不到。每个机器人只接收发给自己的内容,而一个机器人发消息,并不是另一个机器人会坐在那里注意到的事。

任何看起来像协作的行为,都发生在它们背后,发生在运营方所搭建的东西里:一个服务干好几件事、通过好几个账号说话,或者由同一个所有者把几个独立服务连接起来。房间只是输出出现的地方,而不是连接发生的地方。

这就有用地重新框定了问题。你并不是在群组里组装一个系统;你是在决定有多少个彼此独立的当事方能在其中占有一席之地,以及故障可能来自多少个地方。

每个机器人都是一个独立的运营方 来自三个服务商的三个机器人,意味着有三家公司在你的社区里占有一席之地、三套条款、三样需要更新的东西,以及三种被辜负的方式。这就是第二个和第三个机器人的真实成本。
互动

四种配置,从最简单到最脆弱

每一种在某个场景下都是对的;区分它们的是失效模式。

一个机器人,多项职能

按受众拆分

多个运营方

链式连接

默认选择,通常也是正确答案

一个账号、一套权限、一个运营方、一件需要向成员解释的事。运营它的一切都更简单。
成员只需要记住一个名字,而这在很大程度上决定了机器人到底会不会被使用。
当它行为异常时,不必纠结是哪个机器人干的——最近操作日志会写明是谁,问题就解决了。
但限制是真实存在的:一个只为某项小任务需要管理员权限的机器人,如今对所有事情都拥有这些权限。

一个公开机器人加一个管理机器人

唯一一种始终值得其复杂度的拆分:成员与之对话的机器人不需要任何权限,而负责删除内容、更改设置的那个机器人,成员根本不会去跟它说话。
它把危险权限留在一个团队之外无人与之交互的账号上,这正是关键所在。
它还让你可以在不动管理机器人的情况下替换面向成员的那个,反之亦然。
给它们起能区分彼此的名字。一个房间里有两个名字相似的机器人,正是有人把命令发给错误对象的开端。

来自三个服务商的三个机器人

每一个都是独立的故障点。一个平静的周二,欢迎功能突然不工作了,这就是一个你会在不知道哪个服务出问题的情况下回答的支持问题。
功能重叠会引发可见的问题:两个机器人都欢迎新成员,都过滤链接,都回复同一条命令。
当每一个都明显在其本职上最出色、且它们触及的东西互不重叠时,值得这么做。当你已有的机器人已经能完成八成工作时,就该抵制这种冲动。
把哪个机器人负责什么写下来,放在其他管理员能读到的地方。不出两个月,就没人记得了。

当一个依赖另一个时

最脆弱的配置,因为第一步的故障会表现为最后一步的沉默——而沉默是最难追踪的症状。
成员看不到一条链。他们看到的是那件事没有发生,然后他们会怪罪群组,而不是某个具体的服务。
如果你要搭建这样一条链,就让每个环节在行动时都发出点声音。一个可见的确认,正是把“什么都没发生”变成可追踪故障点的关键。
并且为它所自动化的事情保留一条手动路径。任何涉及金钱或访问权限的事情,都需要在它出故障的那天能由人来完成。

添加第二个机器人,是为了区分谁跟它说话,而不是为了增加功能。

查明是哪个机器人做了某件事

当一个房间里不止一个机器人时,实用技能就是归因。群组的最近操作日志记录了什么被删除、置顶、提升或更改,以及是谁做的——包括机器人——这是唯一能可靠回答这个问题的地 方。

在任何投诉之后都值得去读一读它,而不是去推理哪个机器人被配置成做什么。配置描述的是意图;日志描述的是实际发生了什么,而这两者之间的差距,正是每一场漫长的管理争论的所在。

移除你已不再使用的那些 一个被遗弃的机器人会保留它原有的所有权限,由一个你不再关注的服务运营,待在一个满是你的成员的房间里。保持群组整洁在这里不是家务事——而是在关闭无人看管的账号。

运行多个机器人

  1. 从一个开始 大多数群组永远不需要第二个。
  2. 按谁来跟它说话来拆分 成员,还是管理员。
  3. 把权限留在面向管理员的那个上 而不是公开的那个。
  4. 给它们起可区分的名字 相似的名字会导致命令发错。
  5. 让每个自动化步骤都宣告自己 沉默无法追踪。
  6. 争论之前先读操作日志 它会写明是谁做了什么。

← 返回 TG知识库