5.5 KiB
5.5 KiB
Assistant 任务线程信息架构
本文分为两部分:
- 当前已实现的线程信息架构基线
- 尚未落地、只应视为未来扩展方向的 IA 目标
这份文档不再把未来目标写成“当前 UI 已实现”。
目标
XWorkmate 的 Assistant 已经采用“任务即线程”的基本模型,目标是让以下状态尽量按线程隔离:
- 会话历史
- 执行模式
- skills
- 模型
- 顶部连接状态
- 线程标题 / 归档状态
同时需要明确哪些能力当前还没有做成线程级持久化。
当前已实现基线
核心原则
- 一个任务对应一个
AssistantThreadRecord executionTarget、selectedSkillKeys、assistantModelId、messageViewMode跟线程走- 右上角 connection chip 只反映当前线程的解析结果,不直接沿用别的线程状态
- 全局设置只提供默认值,不直接覆盖已有线程
当前页面结构
flowchart LR
A["左侧任务线程栏"] --> B["中间会话区"]
C["会话头部"] --> B
D["底部 composer 工具栏"] --> B
A1["分组:仅 AI Gateway / 本地 / 远程"]
A2["新对话"]
A3["任务卡片"]
A4["归档动作"]
C1["标题"]
C2["任务状态"]
C3["owner / surface / session key"]
C4["message view mode"]
C5["connection chip"]
D1["执行模式切换"]
D2["多 Agent toggle"]
D3["skills"]
D4["permission"]
D5["model"]
D6["thinking"]
D7["附件选择"]
D8["发送 / 重连 / 打开设置"]
当前没有独立落地的右侧“线程上下文抽屉”。
当前 UI 真实分布
1. 左侧:任务线程栏
当前已实现:
- 任务按
AssistantExecutionTarget分组显示 - 支持新建线程
- 支持切换线程
- 支持归档线程
- 任务卡片显示标题、状态、更新时间
当前未实现:
- 线程导出
- 线程模板
- 线程级自动化入口
2. 会话头部
当前头部显示的是:
- 当前线程标题
- 当前任务状态 pill
- owner
- surface
- session key
- message view mode
- connection chip
当前没有把以下信息集中放到头部:
- 单独的 skills 数
- 单独的模型标签
- 独立的模式标签字段
这些能力目前主要在底部 composer 工具栏里呈现;模式语义则通过 connection chip 和执行模式按钮共同体现。
3. 中间:会话内容区
当前已实现:
- 渲染当前线程的消息历史
- 渲染本地任务卡片 / tool call / assistant message
- 流式结果回到当前线程
- 切线程后按当前线程重新解析内容来源
4. 底部:输入与执行区
当前已实现:
- 执行模式切换
- skills 选择
- 模型选择
- 权限等级
- reasoning 选择
- 附件选择
- 提交 / 停止 / 重连 / 打开设置
也就是说,当前“模型”和“skills”不是头部状态栏字段,而是 composer toolbar 字段。
5. 右侧上下文抽屉
当前状态:
- 独立的“线程上下文抽屉”没有落地为已交付能力
- 文档里提到的
线程配置 / 已选技能 / 附件 / 运行历史 / 导出目前不应视为已实现 UI
当前线程隔离矩阵
| 维度 | 当前状态 | 说明 |
|---|---|---|
| 消息历史 | 是 | 每个线程独立保存 / 解析历史 |
| 执行模式 | 是 | AI Gateway Only / Local / Remote 跟线程绑定 |
| Skills | 是 | 已导入 / 已选 skills 跟线程绑定 |
| 模型 | 是 | assistantModelId 跟线程绑定,没设时回退到默认模型 |
| 顶部连接状态 | 是 | 只显示当前线程解析出的连接状态 |
| message view mode | 是 | 跟线程绑定 |
| 自定义标题 | 是 | 通过 settings 持久化 |
| 归档状态 | 是 | 通过 settings 持久化 |
| 草稿输入 | 否 | 当前只有页面级 _inputController |
| 发送前附件草稿 | 否 | 当前只有页面级 _attachments |
| 导出 | 否 | 未实现 |
当前交互规则
新建线程
当前实现:
- 新线程继承当前线程的
executionTarget - 新线程继承当前线程的
messageViewMode - 不继承上一线程的消息历史
当前未实现:
- 创建时可选继承当前线程已选 skills
- 线程级输入草稿继承
切换线程
当前会同步切换:
- 当前模式
- 当前 skills
- 当前模型
- 当前顶部连接状态
- 当前消息内容解析路径
当前不会恢复线程级输入草稿,因为这项能力还没有实现。
切模式
当前实现:
- 模式切换默认只影响当前线程
- 同时允许更新
settings.assistantExecutionTarget作为默认新线程模式 - 切换后会按线程目标重连 / 断连 runtime,并刷新 skills / connection state
当前实现与未来目标的边界
下面这些描述只应视为未来扩展方向,不能再当成“当前 UI 已实现”:
- 右侧线程上下文抽屉
- 线程级输入草稿持久化
- 发送前附件的线程级草稿隔离
- 新线程可选继承当前线程已选 skills
- 线程导出
- 线程模板
- 线程级自动化
为什么仍然坚持线程优先
虽然当前 UI 还没把所有线程信息都集中到一个面板里,但线程优先原则已经成立:
- 当前线程决定执行模式
- 当前线程决定模型
- 当前线程决定 imported / selected skills
- 当前线程决定 connection chip 显示
这也是后续继续扩展任务工作台能力的基础。