feat(agent): 抽屉与会话页统一成一个对话界面,子会话在父会话里实时可见
- 抽屉和会话页渲染同一套 GoalComposer / AgentRunPanel;抽屉标题即最近会话切换, 头部只有新对话、在页面打开、关闭;去掉右下角悬浮按钮和最小化小窗 - 会话列表合一:对话与巡检混排带类型小标签,搜索 + 一个状态下拉,只列顶层会话 (GET /agent/runs?roots=true,新增可选参数) - 子会话卡片:由镜像的 subagent_* 事件折成,显示任务、状态、当前步骤、用时、调用次数、费用, 可展开看过程、可打开;顶部「N 个子会话运行中」跳到卡片;subagent_completed 加可选 durationMs - 回答去内部字段:汇报规则禁止照抄键值与字段表;展示层 stripInternalFields 把字段行 / 字段表移进技术信息 - 开场建议按页面给 2 条完整问法、点了直接发;指令只留 /先给方案,/重跑 改成「重新运行」按钮 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
1 parent
dd0f6e2c09
commit
3692793dff
35 files changed
+1454
-1137
No files matched your search
@@ -171,3 +171,15 @@
|
||||
|
||||
已知限制:幂等键来自审计事件(`/audit-events` 按 `payload.agentRunId` 过滤,最多翻 3 页、按同能力先后与工具调用配对),
|
||||
较早的运行可能取不到;审批卡片的计划来自工具调用输入/输出里能解析到的 `planId`(摘要被截断时可能漏)与服务端汇报。
|
||||
|
||||
## 7. 会话体验改版(2026-10-08)
|
||||
|
||||
用户反馈:入口太多、抽屉和会话页是两套界面、列表太乱、看不到子会话在做什么、回答里夹着内部字段、快捷目标和指令绕。改成:
|
||||
|
||||
- **一个对话组件,两个入口**。新对话是 `GoalComposer`,会话是 `AgentRunPanel`(`agent-run-panel.tsx`);抽屉(`agent-drawer.tsx`,`compact`)和会话页右栏(`routes/console/agent._index.tsx` / `agent.$runId.tsx`)渲染的是同一套。抽屉头部:标题即最近会话切换(弹层里是 `AgentSessionList`)、新对话、在页面打开、关闭;没有最小化小窗,关上抽屉会话照常在后台跑。会话页头部多一个「在侧边打开」。入口与 IA 见 `console-ia.md` 文末「智能体入口」。
|
||||
- **一个会话列表**(`agent-session-list.tsx`):搜索 + 一个状态下拉(全部状态 / 等你处理 / 进行中 / 失败),等你处理置顶;对话与巡检混排,巡检 / 事件会话带小标签;只列顶层会话(`GET /agent/runs?roots=true`),子会话不成行。
|
||||
- **子会话卡片**(`agent-subagents.tsx`):父会话事件流里镜像的 `subagent_spawned / subagent_event / subagent_completed` 在 `foldEvents` 里折成一个 `subagent` 展示项,挂在派出它的那段进度行下面、结论正文之前。卡片显示任务、状态(`RunStatusBadge`,状态色同全站)、正在做什么(最近一次还没结束的工具调用)、用时(运行中每秒走;结束后取 `subagent_completed.durationMs`,旧事件按起止时间算)、调用次数、费用;快照里的子会话(`children`)校正状态与用量。「查看过程」在卡片里读子会话自己的事件流,用 `AgentConversation nested` 渲染;「打开会话」在抽屉里就地打开,在页面里跳会话页。会话顶部的「N 个子会话运行中」点一下滚到卡片。
|
||||
- **回答不夹内部字段**:汇报规则(`packages/agent/src/prompt/layers/report.ts`)要求转述子会话结论、不照抄键值和「返回字段」表;展示层 `stripInternalFields`(`report-humanize.ts`)把字段行、字段表和行内的「字段: null」从正文拿掉,原文进「技术信息」。
|
||||
- **开场建议与指令**:开场建议按所在页面给最多 2 条完整问法,点了直接发出,不再有半句话;输入框只剩 `/先给方案`,`/重跑` 改成结束后顶部的「重新运行」按钮。
|
||||
|
||||
演示模式(`?mock=1`)里「检查所有站点的登录状态和最近的抓取」是一个一直在跑的会话:一个子会话很快结束、一个停在检测站点上,用来看卡片的实时样子。
|
||||
Reference in new issue
Block a user