当需要构建展示 agent-management 工作流执行进度或历史运行详情的前端页面/组件时,使用本参考。保留其内容、状态流转和信息层级;视觉设计则按目标产品自身风格适配。
如果用户提供了已部署的参考页面,可将其作为可选的内容与交互参考,而不是必须照搬的样式来源。
采用面向执行的视图。对于管理/历史类页面,左右两栏的运行记录布局是较优的默认选择,但嵌入式或面向特定任务的集成不强制使用。
运行记录 或目标应用中的等价文案。集成到目标应用时,遵循其既有约定,例如:
除非用户明确要求近似视觉,否则不要照搬原运行记录页样式。
展示运行历史时,按工作流分组有助于用户查找历史执行:
#a3f9b2c1常用交互:
对于纯实时执行视图,完整的历史列表是可选的;展示当前工作流/运行身份、实时状态与节点推进即可。
运行详情头部:
运行 #<runId>随后按执行顺序渲染节点结果卡片、时间轴行或等价的区块。
页脚:
下载工作空间。workspace.downloadUrl 或 /api/v1/workflows/{workflowName}/runs/{runId}/workspace。{workflowName} 是 kebab-case 唯一标识(推荐),纯数字 id 作为兼容兜底也合法。使用一致的节点标签。下方颜色与图标仅为示例,不是必须的样式:
| nodeType | 标签 | 颜色 | 图标建议 |
|---|---|---|---|
userInput |
用户输入 |
#10B981 |
聊天/输入 |
llm |
大模型 |
#8B5CF6 |
闪光 |
skill |
技能 |
#06B6D4 |
烧瓶 |
agent |
智能体 |
#F59E0B |
火箭 |
smartAction |
智能操作 |
#EC4899 |
魔杖 |
condition |
条件 |
#F97316 |
分支 |
output |
输出 |
#EF4444 |
出口/输出 |
节点区块行为:
文案:
running 或 RUNNING:执行中success 或 SUCCESS:成功failed 或 FAILED:失败skipped 或 SKIPPED:跳过未知若使用 CSS 类,将状态归一化为小写,例如 status-success。
可选的状态色意图(当目标设计体系使用状态色时):
存在数据时渲染以下区块:
输出变量
JSON.stringify(value, null, 2) 美化输出。思考过程
THINKING 的日志。上下文快照
错误
非思考日志
THINKING 日志,因为思考过程已在专属区块展示。TOOL_CALL、TOOL_RESULT、INFO、ERROR 保留在可折叠列表中。实现以下辅助函数或等价物:
formatTime(t):兼容 ISO 字符串与 Spring/Java 的数组式日期数组。duration(run):基于 started/completed 计算耗时;按秒、分秒或时分适配展示。parseJson(str):成功返回解析后的对象,否则返回 null。formatContextValue(value):对象/数组字符串化;字符串原样保留;基本类型字符串化。extractThinking(logsJson):解析日志数组,拼接 THINKING.message。nonThinkingLogs(logsJson):解析日志数组,过滤掉 THINKING。对实时 SSE 视图,即便日志是以增量方式到达而非来自持久化 JSON,也应保持同样的派生数据形态。
当页面通过外部 API 展示正在运行的工作流时:
run_started:初始化运行状态,标记为执行中。node_status:创建或更新节点卡片;存在时设置 status/output/error/completedAt。node_stream 且 kind: "thinking":把内容追加到该节点的思考缓冲区。node_stream 且 kind: "tool_call" 或 kind: "tool_result":追加到非思考日志。workflow_complete:标记运行成功,存储最终输出,暴露工作空间/结果链接。workflow_error:标记运行失败,展示错误与失败节点。终态事件到达后,再查询持久化结果端点,对齐持久化输出、节点顺序、日志数量与工作空间元数据。