线程与会话
论坛主题如何映射到会话、智能体和 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