Skip to content

feat(session): 支持 Agent 自动重命名当前 Botmux 会话 #1355

Description

@DeepColds

背景

在长期使用的飞书话题群中,通常会同时运行多个开发、排障、调研任务。现有会话标题不一定符合统一规范,话题较多时,不便于在 Dashboard 和 /sessions 中快速识别、搜索当前任务。

Botmux 已支持用户在飞书中发送:

/rename <标题>

该命令会更新 Botmux canonical session title,并 best-effort 同步支持该能力的底层 CLI 原生会话名。但目前缺少面向会话内 Agent 的原生命令或内置 Skill。

现有 botmux chat rename / botmux-chat-rename 修改的是整个飞书群名,不适合长期话题群里的单个会话。

期望能力

提供一个供 Agent 调用、自动定位当前会话的命令,例如:

botmux session rename "排障|支付回调超时"

并提供配套的内置 Skill(建议名:botmux-session-rename),让使用者只需在角色说明或自定义规则中补充命名规范,例如:

首轮理解任务后,将当前会话命名为「类型|具体事项」;
任务主线发生明显变化时可以更新;不要按细碎进度频繁改名。

安全与行为要求

  1. 命令只允许修改调用 Agent 所属的当前会话
  2. 不提供 --session 等跨会话选择参数,避免误改或越权修改其他任务。
  3. 通过 worker 祖先进程标记自动识别当前 session,并复用 rotating per-turn capability;在 sandbox / read-isolation 下无需暴露 daemon host secret。
  4. 复用现有标题规范化与 updateSessionTitle(..., 'agent') 逻辑。
  5. 更新后同步:
    • Botmux canonical session title;
    • 持久化记录;
    • Dashboard;
    • /sessions
    • 支持该能力的底层 CLI 原生会话名(best-effort)。
  6. 用户通过 /rename 或 Dashboard 手动指定的标题具有更高优先级,不应被迟到的自动标题覆盖。
  7. 无当前会话、会话不属于调用者、capability 无效等情况应 fail closed,并返回可诊断错误。

可复用的现有实现

当前已有:

  • POST /api/sessions/:sessionId/rename
  • updateSessionTitle(...)
  • session title 的清洗、限长、持久化和 Dashboard 事件推送
  • 原生 CLI 会话名同步
  • postSessionCliIpc(...)sessionCliIpcAuth(...) 的当前会话 capability 鉴权模式

建议主要补充:

  1. botmux session rename <标题> CLI 包装;
  2. 将 rename route 纳入 session-scoped narrow capability 通道;
  3. botmux-session-rename 内置 Skill;
  4. CLI help 与中英文文档;
  5. 正常改名、无上下文、跨会话拒绝、sandbox/read-isolation、手动标题优先等回归测试。

飞书话题标题

建议将“Botmux 会话标题”作为本需求的主能力,不承诺修改既有飞书原生话题标题:当前飞书 thread API 没有通用的话题标题更新接口,且机器人无法可靠修改用户创建的根消息。

可以分别考虑:

  • 对 Botmux 主动创建的新话题,在创建时使用规范化名称作为首条根消息;
  • 对既有话题,将新标题同步到机器人状态卡或置顶卡,改善飞书内可见性;
  • Dashboard 和 /sessions 始终以 canonical session title 为准。

验收标准

  • Agent 可在当前 Botmux 会话中执行原生命令改名
  • 命令无需手工提供 session ID
  • 无法修改其他会话
  • sandbox / read-isolation 场景可用且不泄漏 host secret
  • Dashboard、/sessions 与持久化标题一致
  • 支持的底层 CLI 收到 best-effort 原生改名
  • 用户手动标题不会被迟到的自动命名覆盖
  • 已补齐内置 Skill、CLI help、中英文文档和回归测试

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions