在使用 DeepSeek Harness 进行智能体开发时,需要实时感知当前会话是否正在运行或是否出现错误。现有的 Web UI 可能无法直接提供这种直观反馈。traffic-light 插件通过在聊天输入框区域增加一个三色信号灯,提供即时的状态可视化。
这是一个 DeepSeek Harness Web UI 插件,由 aliuguofa 维护。它位于 conversation.composer.dock 插槽,显示红、黄、绿三色信号灯,反映会话状态。点击可查看详情。这是一个纯 UI 插件,宿主半为空 apply()。
核心功能¶
该插件主要包含以下能力:
- 三色状态指示:在聊天输入框区域显示红、黄、绿三色信号灯。信号灯会根据当前会话状态自动切换颜色。
- 实时状态反映:绿灯表示会话空闲(就绪);黄灯表示助手正在思考或调用工具(生成中);红灯表示出错或中断。
- 详情面板:点击信号灯会弹出详情面板,显示状态说明、错误文本与排查提示(出错时),以及实时吞吐量(生成中时)。
- 数据源可靠:无轮询,无猜测。所有信号均来自 DSH 客户端会话快照与官方 projection。
- 无障碍与国际化:支持 ARIA 属性和键盘交互,支持中英文 i18n。
- 可定制性:支持自定义位置顺序、灯色样式与文案。
安装与启用¶
将插件目录作为 npm 包加入当前 DSH profile:
dsh plugin --profile desktop add ./traffic-light
安装完成后刷新 Web GUI,信号灯会自动出现在输入框区域。
状态判定逻辑¶
插件依赖 DSH 框架注入的 useSession 和 useProjection hooks。状态判定逻辑如下:
- 绿灯:
running === false且无错误。 - 黄灯:
running === true。 - 红灯:
promptError !== null或openState === "error"。
优先级为:出错(红) > 生成中(黄) > 就绪(绿)。
自定义配置¶
修改位置顺序¶
插件默认插入到输入框停靠区(conversation.composer.dock)的特定位置。若需调整顺序,需编辑 lib/client.js 中的 slots.register,修改 order 值(数值越大越靠后)。
修改灯色样式¶
编辑 .tl-lamp-on.tl-* 相关的 CSS 规则,修改 background 或 box-shadow 属性。
修改文案¶
编辑 lib/client.js 顶部的 zh / en 字典对象。
兼容性与依赖¶
- 依赖环境:DSH Desktop 0.1.1-rc.1。
- 依赖接口:
conversation.composer.dock插槽、会话快照字段(running/promptError/openState/openError/composerPhase)、liveTokenUsageprojection。 - 运行权限:仅读取官方稳定字段,不写入任何设置,不发起网络请求。
- 健壮性:当框架未注入必要 hooks 时,插件会安全降级渲染,不会破坏输入框功能。
文件结构¶
插件采用自包含模式,文件结构如下:
traffic-light/
├── package.json # 声明 dsh.bundle + dsh.client
├── cordis.patch.yml # Profile 层挂载配置
├── lib/
│ ├── index.js # 宿主半:空 apply()
│ └── client.js # 浏览器半:组件逻辑、状态判定、i18n、CSS
├── LICENSE
└── README.md
插件遵循 MIT 许可证。