前端架构Agent Console状态机交互设计可观测性
Agent 控制台前端设计:步骤、状态与可中断操作的工程化实践
聊天界面只能展示“结果”,却难以支撑复杂 Agent 任务。本文从前端工程视角拆解 Agent 控制台设计:步骤状态机、取消与重试语义、审计回放、可观测埋点与交互优先级,帮助团队构建可运营、可排障、可扩展的 Agent Console。
2026年3月5日
Synthly 团队
预计阅读 16 分钟

📷 Photo by fauxels via Pexels
一、为什么 Agent 需要“控制台”而不是“聊天框”
在 demo 阶段,聊天框足够;在生产阶段,聊天框会暴露三个问题:
- 任务状态不可见:卡住还是运行中,用户无法判断
- 操作不可控:缺少取消、重试、审批入口
- 问题不可复盘:失败后只有一段自然语言解释
因此,Agent 产品进入真实业务后,前端重心应从“对话展示”转到“任务控制”。
一个可运营的 Agent Console,本质是执行状态机的可视化外壳。
二、信息架构:三层视图,先控场再细看
1)任务层(Task)
展示任务整体生命周期:
- Pending / Running / WaitingApproval / Succeeded / Failed / Canceled
- 总耗时、成本、重试次数
2)步骤层(Step)
展示关键执行链路:
- 当前步骤
- 前后依赖
- 失败原因摘要
3)事件层(Event)
只在需要时展开:
- 工具调用事件
- 回执摘要
- 错误与重试记录
这三层对应三类用户需求:
- 业务用户关心任务是否完成
- 运营关心哪个步骤拖慢或失败
- 工程师关心具体事件链
三、状态机设计:别只做颜色标签
很多界面把状态机简化成“绿色成功、红色失败”,这会掩盖关键语义。
建议最小状态机包含:
runningwaiting_userretryingpartial_successfailed_recoverablefailed_terminalcanceled
特别是 failed_recoverable 与 failed_terminal 必须区分:
- 前者可重试/可降级
- 后者需要人工介入或重新规划
这直接决定前端该展示 Retry 还是 Create Follow-up Task。
四、可中断操作:先定义语义,再做按钮
在 Agent 产品里,“中断”至少有三种含义:
- Stop Streaming:停止前端流式显示(任务仍可能在执行)
- Cancel Execution:请求后端停止后续步骤
- Compensate / Undo:对已落地副作用做补偿
如果这三种动作混成一个“停止”按钮,会导致责任不清。
推荐交互:
- 主按钮:
取消任务 - 二级入口:
仅停止实时输出 - 失败后:
执行补偿(仅在可补偿场景出现)
五、审计回放:为排障和面试准备“证据链”
控制台要支持“回放一次任务”,至少包括:
- 任务参数快照(脱敏)
- 步骤状态变化时间线
- 工具回执摘要
- 人工确认记录
回放不是为了炫技,而是为了回答三个核心问题:
- 为什么失败?
- 失败是否可恢复?
- 这次改动是否让下一次更稳?
可以联动阅读:
六、前端实现建议:Event Store + 派生视图
不要把流式数据直接拼 DOM,建议采用:
- 事件入库(Pinia store)
- 按任务/步骤聚合
- UI 读取派生状态
这样能自然支持:
- 断线重连
- 回放
- 多任务并行显示
- 可观测埋点
建议埋点最少包括:
task_cancel_clickedstep_retry_clickedapproval_openedapproval_confirmedreplay_started
七、MVP 清单:两周可落地版本
- 任务层卡片 + 关键状态
- 步骤列表 + 失败摘要
- 取消/重试/确认三类操作
- 事件回放抽屉
- 基础操作埋点
做到这一步,你的 Agent 前端就从“会聊”升级为“可运营”。