dsh-goal-mode:DeepSeek Harness Web 界面可视化 Goal 模式

前言

DeepSeek Harness (DSH) 的原生目标系统主要通过对话命令(如 /goal)或模型工具(create_goal / get_goal / update_goal)进行操作。这种操作方式在 Web 界面中缺乏直观的视觉反馈,且需要记忆具体的命令或 API 调用方式。

dsh-goal-mode 插件为 DSH 的 Web 界面引入了可视化的 Goal 模式,将原本隐匿在命令行的操作转化为“看得见、点得动”的界面组件,降低了使用门槛。

插件定位

  • 名称:dsh-goal-mode
  • 功能:为 DeepSeek Harness Web 界面提供可视化 goal 模式
  • 维护者:xlennart
  • 分类:客户端
  • 许可证:MIT

核心功能

该插件在 DSH Web 界面中通过两个主要入口提供功能:

  1. 完整生命周期目标栏
    插件在 Composer 输入框上方注册了 conversation.input.dock 条目,替换了原有的内置 goal 条。根据状态不同,它展示不同的内容:
    - 无目标时:显示 ◎ 按钮,点击展开“设定目标”创建表单。
    - 有目标时:显示状态标签、目标文本、轮次进度条(n/上限)以及“已达上限”徽标。
    - 操作按钮:提供暂停(⏸)、恢复(▶)、编辑(✎,支持多行)、完成(✓)、清除(🗑)和收起功能。
    - 完成态:显示完成横幅及“开始新目标”按钮。

  2. 多行编辑与创建
    目标内容采用多行文本框实现,支持自动换行和拖动高度调整,用户可通过 Ctrl+Enter 提交。在创建表单中,用户可同框设置轮次上限。

  3. Composer 工具行入口
    在输入框左侧工具栏(conversation.input.left)添加目标入口按钮和阶段色点(绿=进行中 / 黄=暂停 / 红=阻塞)。点击可展开或收起目标栏。目标栏支持折叠为内容自适应的胶囊形态。

  4. 设置与持久化
    - General 设置开关:在 settings.general.item 中提供“在输入框工具行显示目标入口”的开关,设置项通过 ui-goal-mode 段落持久化。
    - 独立目标设置页:在 settings.section 中提供独立的“目标”设置页,展示当前会话状态、轮次和紧凑预览,长目标可展开查看。

  5. 零空闲干扰
    在未设置目标时,Composer 上方不渲染任何内容(除非显式打开创建表单),保持界面整洁。

安装

安装前请确保已安装 DeepSeek Harness Web GUI(web profile)0.2.0-rc.2 及以上版本。

插件提供两种形态,推荐使用形态 A(正式插件包):

dsh plugin --profile web add <tgz 路径>

安装后刷新页面或重启进程即可生效。

使用与原理

  • 形态:形态 A 为独立 npm 包结构(dsh.plugin.json + cordis.patch.yml + 构建产物),使用 dsh plugin add 安装;形态 B 为动态插件源码,可在会话内通过 cordis_define + cordis_run 加载(保留用于调试)。
  • 数据存储:目标数据存储在会话日志中,通过 goal/change 事件进行持久化,插件只负责展示与操作。
  • 技术实现:使用 useProjection('goal') 进行实时数据投影,操作通过 ctx.remote.goals 通道进行,支持乐观并发。

注意事项

  • 版本兼容:需要 DeepSeek Harness Web GUI 0.2.0-rc.2 及以上版本(插件 0.2.0 对应 0.2.0-rc.2)。
  • 架构变化:从 0.2.0 版本开始,插件不再发布运行库不变式伴生文件(./invariant)。在 0.2 纪律下,插件仅包含槽位注册与设置表单投影,没有可独立分叉的观测点。
  • 权限:插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。

参考资源

  • GitHub 仓库:https://github.com/xlennart/dsh-goal-mode-enhance
  • 插件目录:https://www.skillhub.cn/plugins/xlennart/dsh-goal-mode-enhance
羽毛球分组比赛记分
小程序二维码

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

小夜