跳转至

线程与会话

论坛主题如何映射到会话、智能体和 ACP 绑定。

论坛主题与会话

论坛主题与线程行为

论坛超级群组:主题会话键会追加 :topic:<threadId>;回复和输入状态指向主题线程;主题配置路径为 channels.telegram.groups.<chatId>.topics.<threadId>。

通用主题(threadId=1)是特殊情况:发送消息时省略 message_thread_id(Telegram 会拒绝 sendMessage(...thread_id=1) 并返回 “thread not found”),但输入状态操作仍包含 message_thread_id(经验上需要该字段才能显示输入指示器)。

主题条目会继承群组设置,除非被覆盖(requireMention、requireMentionInBotThreads、allowFrom、skills、systemPrompt、enabled、groupPolicy)。agentId 仅属于主题,不会从群组默认值继承。topics."*" 为该群组中的每个主题设置默认值;精确主题 ID 仍然优先于 "*"。

按主题的智能体路由:每个主题都可以通过主题配置中的 agentId 路由到不同的智能体,使其拥有自己的工作区、内存和会话:

{
  channels: {
    telegram: {
      groups: {
        "-1001234567890": {
          topics: {
            "1": { agentId: "main" },      // General topic -> main agent
            "3": { agentId: "zu" },        // Dev topic -> zu agent
            "5": { agentId: "coder" }      // Code review -> coder agent
          }
        }
      }
    }
  }
}

随后每个主题都有自己独立的会话键,例如 agent:zu:telegram:group:-1001234567890:topic:3。

持久 ACP 主题绑定:论坛主题可以通过顶层类型化绑定固定 ACP 运行时会话(bindings[] 包含 type: "acp"、match.channel: "telegram"、peer.kind: "group",以及带主题限定的 ID,例如 -1001234567890:topic:42)。当前范围限于群组/超级群组中的论坛主题。参见 ACP Agents。

聊天中的线程绑定 ACP 生成:/acp spawn <agent> --thread here|auto 将当前主题绑定到新的 ACP 会话;后续消息会直接路由到该会话,并且 OpenClaw 会在主题内固定生成确认消息。由 session.threadBindings.spawnSessions 控制(默认:true)。

启动时会等待已存储的线程绑定,然后再接受更新。关闭时会排空已接受的绑定变更,然后再由替换机器人重新加载它们。内置 Telegram 处理器通过共享 SQLite 工作进程持久化绑定,因此存储不会阻塞消息处理。已弃用的同步 Plugin SDK touch 和生命周期 setter 会在同一绑定所有者上保持其即时行为,直到下一个 SDK 主版本。

全局禁用、针对 Telegram 禁用或针对单个账号禁用 threadBindings.enabled 时,普通 Telegram 消息仍可正常工作。

模板上下文会暴露 MessageThreadId 和 IsForum。带有 message_thread_id 的私聊会保留回复元数据,但只有当 Telegram getMe 报告 has_topics_enabled: true 时,才会使用线程感知的会话键。 已退役的 dm.threadReplies 和 direct.*.threadReplies 覆盖项已移除;BotFather 的线程模式是唯一事实来源。运行 openclaw doctor --fix 以移除过时的配置键。

机器人创建的论坛主题

在群组或主题上设置 requireMentionInBotThreads,可仅在接收机器人创建的论坛主题中覆盖提及门控。false 允许未提及的消息在那里开始回合;true 要求提及,包括回复机器人时。省略则保留现有行为。主题设置优先于所选群组设置。相同路径也可在 channels.telegram.accounts.<accountId>.groups 下使用。

OpenClaw 会从观察到的 forum_topic_created 服务消息或机器人成功创建主题时记录创建者。所有权特定于该机器人:其他机器人的主题或人类创建的主题仍保留普通提及策略。在主题中回复不会使机器人成为其创建者。

主题所有权会与主题名称一起持久化在现有缓存中,该缓存最多保留 2,048 个最近使用的主题。在 OpenClaw 观察到之前创建的主题以及被逐出的条目仍保留普通提及策略。Telegram 不提供主题所有者查询来恢复这些事实。此设置不会更改私聊主题、授权、群组静默策略或可见回复策略。有关配置和 Telegram 可见性要求,参见 提及行为。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw