dsh-workflow-ui:DeepSeek Harness 对话内工作流时间线

前言

在 DeepSeek Harness(DSH)的 Web 界面中,官方的 workflow 工具卡与 workflow-run 聊天节点只能展示静态信息。当工作流包含多个阶段、子代理和并行分支时,执行过程难以在对话流中直观呈现。dsh-workflow-ui 把这些节点替换为横向时间线,在对话流内直接渲染轨道、阶段站、子代理药丸、循环弧线和并行带,让执行计划与状态一目了然。

这是什么

dsh-workflow-ui 是一个 DSH 插件,用于在 Web GUI 的对话流中展示工作流的运行时间线。由 zuiyouli 维护,属于「工作流」分类。它通过客户端扫描 workflow 脚本,在运行前就渲染出全部计划站点与依赖弧线,并在运行过程中逐阶段更新状态。

核心功能

  • 对话内嵌卡片:每次 workflow 运行一张卡,直接长在对话流里,无需打开任何面板。
  • 计划先行:客户端扫描 phase() 调用、parallel() 块和阶段回访,开跑前就渲染出计划站点、药丸占位与依赖弧线。
  • 并行带与弧线:parallel() 阶段渲染为抬升轨道,fork/merge 接头为圆角弧;非相邻前向边与循环回边在轨道上空飞行,弧道按跨度分配,短跨低道、相交上推,落地箭头为 march 状态点亮。
  • 窄窗口自动换行:宽屏画完整弧线;窄屏换行时只画同排弧,跨排回边由 ↩ 徽标承担。
  • 药丸折叠:单站超过 5 个子代理自动折叠为「+N」展开片,展开状态跨实时刷新保留,隐藏药丸里有运行中的会在折叠片上闪呼吸点。
  • 药丸跳转子会话:点击药丸按 DSH 0.2.1 契约(openSession({parentSessionId, childSessionId, mode}),mode 传 unknown 由工作区自行解析)直达对应子会话,支持键盘聚焦与 Enter 触发。
  • 自带 agent 预设:安装即向名册添加「Workflow 编排」预设(标准全量工具 +「多步任务主动用 workflow」的 persona 指引),卸载即移除。
  • DSH 官方图标与状态:StateDot 状态点(done/error = 6px 实心核,running = 中性 spinner 弧,pending = idle 点)、官方 ListPen 卡头图标、1px Check/Close 标记。
  • 子代理药丸:逐 agent 状态 + 表情(运行中张望/眨眼),结算勾,未启动的计划占位。
  • 主题与无障碍:经 DSH 别名 token 适配亮/暗主题,全链路尊重 prefers-reduced-motion,状态字形带 aria 标签。

安装与启用

dsh plugin --profile web add github:zuiyouli/dsh-workflow-ui

安装后重启一次 dsh(组合变更),再刷新页面。要求 DSH >=0.1.0-rc.5;已在 0.2.0-rc.2 与 0.2.1-rc.2 实测,web profile。

装好后建议切换到自带的「Workflow 编排」预设(新会话选择器里),模型会对多步任务主动使用 workflow 编排。

原理

插件通过两个 keyed 槽位以 priority: -1 影子官方渲染器(官方默认 0,priority 最低者渲染;本组件崩溃会自动 abdicate 回退官方):

  • conversation.chat.node key workflow-run — 数据来自官方 Definition 对持久化事件(tool-workflow/run-start|agent-start|agent-end|run-end)的投影,本插件只换呈现。
  • tool.call.toolview key workflow — 渲染不可见标记(该行经 CSS :has 隐藏,0.2.1 起连同 turn-process 流程头一并隐藏),并把工具入参的脚本元数据 stash 进模块 store,供运行卡做计划先行渲染。

样式以 <style data-plugin> 一次性注入、卸载时移除;类名全部 zcf- 前缀。颜色落在 14 个局部 --color-* token,映射到 DSH --dsw-alias-*。

适用场景与注意

适合需要在对话流中实时查看工作流执行进度、阶段拆解与子代理状态的开发者与智能体工程师。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(MIT)。

路线图

迭代方向与版本主题见 docs/roadmap.md(下一版 v0.3.0:完成态折叠摘要 + 耗时/循环指标 + 失败复盘)。

边界说明

  • 工具行只作为隐形数据源存在;时间线卡是会话中的唯一入口。
  • 宽屏单排画完整弧线;换行模式只画同排弧,跨排依赖以 ↩ 徽标提示。
  • 完成后卡片默认收成一行复盘摘要(阶段/进度/循环/失败定位/耗时,耗时需上游时间字段支持);状态词为内置中文,locale 通道暂未接。
  • 只读消费 workflow 事件,不保存任何平行编排状态。

生态背景

DSH 理念是「一切皆插件」;社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye