BitBear StudioINDEPENDENT SOFTWARE
6 PRODUCTS博客
返回博客

Telegram 消息改了,机器人记录也该改吗?编辑同步与确认规则

区分 Telegram 新消息与编辑更新,为草稿、已确认记录和未知旧消息制定不同规则,避免用户改一句话就意外新增或覆盖业务记录。

群成员向读书会机器人提交“推荐《书 A》”,随后把原消息改成“推荐《书 B》”。机器人该修改推荐记录、增加一条推荐,还是保持原记录不动?这不是 Telegram 替你决定的业务规则。

在让 AI 创建机器人之前,先把“聊天消息的新版本”和“业务记录的修改授权”分开。下面以读书会推荐清单为例,设计一套可向用户解释、也能实际验收的编辑策略。

收到编辑更新,不等于收到一次新提交

aiogram 的 Update 类型文档区分新消息 message、编辑后的消息 edited_message,以及频道帖子的 edited_channel_post。文档还提醒:机器人未使用、甚至不可见的消息字段发生变化,也可能触发编辑更新。因此,“来了编辑事件”本身不足以证明推荐书名改变了。

grammY 的过滤查询文档同样把新消息与编辑更新分开处理;其 edit 快捷方式覆盖编辑后的普通消息和频道帖子。不要假定处理新文本的入口会自动处理文本编辑,也不要把这些框架的过滤写法当成所有平台通用的接口。

两份文档解释的是事件与处理入口,不替业务选择“编辑即修改”还是“确认后锁定”。下文是据此提出的设计建议,不是 Telegram 强制的行为。

先选清楚:消息是输入,还是持续同步的数据源

对读书会推荐清单,可以先采用这个保守约定:

  • 尚未确认的推荐是草稿。用户编辑原消息时,只更新与这份草稿关联的书名或说明,再展示新的预览。
  • 用户确认后,推荐成为独立记录。之后编辑聊天原文,不直接覆盖它;机器人提示通过明确的修改入口操作。
  • 已进入投票或展示环节的推荐,修改书名可能改变他人理解。必要时交给管理员审核,而不是悄悄换掉投票对象。

这套约定适合“提交后有承诺”的清单。若你确实需要镜像频道内容,可以另选“持续同步”策略,但必须告诉读者同步哪些字段、持续多久、哪些已锁定内容不能被源消息覆盖。不要在同一个流程里一会儿把消息当表单,一会儿又把它当实时数据库。

建立关联,而不是每次重新解析成新任务

建议给推荐记录独立的业务编号,并保存其来源聊天与消息标识。消息标识用于定位输入,业务编号用于后续确认和修改;两者不要混用,也不要只凭相同书名寻找记录。

编辑更新到达时,可按下面的顺序判断:

  1. 这条消息是否关联当前读书会的一份已知推荐?没有关联时,不根据编辑后的命令自动创建推荐;可以提示重新提交,或进入待人工确认状态。
  2. 它目前是草稿、已确认,还是已锁定?先执行对应状态的修改规则。
  3. 书名、说明等实际使用字段是否真的变化?与已保存的相关字段比较;无关变化不应制造“推荐已修改”的通知。
  4. 若允许修改,更新原记录并反馈结果;不要再执行一次“新增推荐”的动作。

尤其要明确:把原来的 /recommend 书 A 改成 /recommend 书 B,不应再次增加推荐名额;把文本改成另一条命令,也不应借编辑动作切换活动或执行新的业务操作。

如果旧消息在导入前产生、来源关联丢失,或者无法判断收到的版本是否比已保存内容更新,应暂缓覆盖并要求明确确认。编辑事件不是补齐未知历史的可靠捷径。

用这些场景验收编辑行为

无需先讨论框架代码,可以先和机器人一起检查以下结果:

  • 草稿里把“书 A”改成“书 B”:仍只有一份草稿,预览显示书 B,确认按钮对应这份新预览。
  • 已确认后编辑原文:业务记录仍是书 A,机器人说明如何申请修改,不声称已经同步。
  • 修改未参与业务的消息信息:推荐内容不变,不产生虚假的变更提醒。
  • 编辑一条找不到关联的旧消息:不凭空新增推荐,也不覆盖同名记录。
  • 把原消息改成另一个活动的提交命令:不跨活动转移记录。
  • 正常发送一条新提交:仍走新消息流程,不因添加编辑规则而失效。

这些测试分别检查事件入口、关联、状态和反馈。普通消息的删除是另一个问题;不能仅凭存在编辑更新,就承诺能自动识别所有聊天消息删除并清理业务数据。

给 BotFatherV2 的需求可以这样写

向 BotFatherV2描述需求时,可以使用这段约束:

为读书会建立推荐清单。新提交先成为草稿,确认后才公开。仅当编辑消息关联已知草稿时,同步书名和说明;无关字段变化不提醒。已确认或锁定的推荐不随原文编辑而改变,提供明确修改入口。编辑不得新增推荐、重新消耗名额或切换活动;来源未知或版本顺序不明时先要求确认。请先说明当前 Telegram Serverless SDK 能否接收并区分所需编辑更新,再实现,并逐项给出上述测试结果;无法支持的入口要明确说明。

截至 2026-10-18 核验的公开产品说明,BotFatherV2 支持通过 AI 对话创建和修改机器人,并支持导入已有 Telegram Serverless 机器人、版本发布及保留当前业务数据的代码回滚。根据公开 AI 开发说明的校验边界,具体事件能否在当前 SDK 中使用,仍需单独核对,不能由 aiogram 或 grammY 的文档推导为平台承诺。

当前文档说明固定 SDK 不支持任意 npm 模块或 Node/Bun 运行时 API,首版不新增依赖付费 AI 的机器人运行能力。因此,上面的需求不是要求安装这些框架,也不依赖运行时 AI Agent。BotFatherV2 是独立产品,与 Telegram 官方 BotFather 无隶属关系。

来源与阅读范围

本文原创整理业务策略、需求写法和验收案例;引用文档用于核对更新类型与过滤边界,不表示 BotFatherV2 已集成上述框架。

BITBEAR / TELEGRAM-BOT-EDITED-MESSAGES-RECORD-POLICY2026年10月18日