agentscope-ai / agentscope-ai/QwenPaw
[Feature]: 请求支持跨频道绑定和切换已有会话(Console、飞书、钉钉等) Support cross-channel binding and handoff of existing sessions across Console, Feishu, DingTalk, and other channels
- Lingua principale
- Python
- Stelle
- 34.9k
- Fork
- 3.1k
- Merge medio
- 1g 15h
- PR unite (30g)
- 225
Descrizione
### 问题描述 / Problem Description
当前 QwenPaw 的不同聊天入口会根据各自的平台身份或会话标识自动创建和绑定独立 Session。例如,用户在 Console 中新建一个工作对话并持续处理较长时间后,如果离开电脑,希望通过飞书或钉钉继续同一段对话,目前无法选择或绑定该 Console Session。飞书、钉钉等频道会继续使用其自动生成的固定 Session,导致同一个任务被拆分到不同会话中。
这并不是切换 Agent 的需求,而是希望同一个 Agent 的同一段会话能够在不同入口之间无缝接力:在 Console 工作,出门后通过飞书或钉钉继续,回到电脑后再从 Console 接着处理。
Currently, different QwenPaw chat entry points automatically create and bind independent sessions based on their platform-specific user or conversation identifiers. For example, after a user works for a long time in a Console session, there is no way to select or bind that existing Console session when continuing through Feishu or DingTalk. These IM channels keep using their automatically generated fixed sessions, splitting one task across multiple conversations.
This is not a request to switch agents. It is a request for the same agent and the same session to move seamlessly between entry points: work in Console, continue from Feishu or DingTalk while away, and return to the same session in Console later.
---
### 具体痛点 / Pain Points
- 长期工作对话无法从 Console 无缝转移到飞书、钉钉等移动端入口继续处理。
Long-running Console conversations cannot be seamlessly continued from mobile channels such as Feishu or DingTalk.
- 每个频道固定绑定自己生成的 Session,用户无法查看、选择或切换到已有 Session。
Each channel is bound to its automatically generated session, and users cannot view, select, or switch to an existing session.
- 同一任务被拆分到多个会话后,实时上下文、任务状态、工具调用状态和待处理事项无法自然延续。
When one task is split across sessions, live context, task state, tool state, and pending work cannot continue naturally.
- 通过历史记忆检索只能部分缓解问题,但这不等同于继续原 Session,也无法保持统一的会话记录和运行状态。
History retrieval only partially mitigates the problem; it is not equivalent to continuing the original session and does not preserve one unified transcript and runtime state.
- 对需要长时间运行、经常在桌面和移动端之间切换的个人助理场景,这会明显限制 QwenPaw 的“全频道连接”体验。
This significantly limits the cross-channel assistant experience for long-running workflows that frequently move between desktop and mobile devices.
---
### 期望效果 / Desired Behavior
希望 QwenPaw 增加统一的跨频道 Session 绑定与切换能力:
- Console 可以查看某个 Session 当前绑定的频道和目标用户/群聊,并允许绑定或解除绑定。
- 飞书、钉钉等频道可以列出当前用户有权限访问的已有 Session,并切换到其中一个继续对话。
- 可提供类似 `/session list`、`/session current`、`/session bind `、`/session unbind`、`/session new` 的统一命令。
- 绑定后,来自该频道的后续消息应写入目标 Session,但回复仍返回当前消息来源频道。
- 同一个 Session 在 Console、飞书、钉钉之间切换时,应保持统一的历史、上下文和任务状态。
- 应增加访问权限校验,确保用户只能绑定自己有权访问的 Session,避免会话 ID 泄露造成越权访问。
- 应处理同一 Session 在多个入口同时发送消息时的并发问题,例如通过会话锁、队列或明确的冲突提示保证顺序一致。
- 建议将“频道地址”和“Agent Session”解耦:频道地址负责消息从哪里来、回复发到哪里;Session 负责上下文和状态,从而支持安全的跨频道接力。
QwenPaw should provide unified cross-channel session binding and switching:
- Console should show which channel and target user/group are bound to a session, and allow binding or unbinding.
- Feishu, DingTalk, and other channels should list existing sessions accessible to the current user and allow switching to one of them.
- Provide unified commands such as `/session list`, `/session current`, `/session bind `, `/session unbind`, and `/session new`.
- After binding, subsequent messages from that channel should be written to the target session, while replies should still be delivered to the channel where the message originated.
- The same session should preserve one unified history, context, and task state when moving among Console, Feishu, and DingTalk.
- Access control must ensure that users can only bind sessions they are authorized to access, preventing unauthorized access through leaked session IDs.
- Concurrent input from multiple entry points should be serialized or rejected with a clear conflict message to keep session state consistent.
- Consider decoupling the channel address from the agent session: the channel address determines where messages come from and where replies are sent, while the session owns context and state. This would enable safe cross-channel handoff.
---
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.