dsh-agent-driver-writehere:把 WriteHERE 长文写作循环作为 DeepSeek Harness 的第二个推理循环

前言

在 DeepSeek Harness(下称 DSH)上做长文写作智能体,一种常见做法是把检索、撰写、修订封装成一组工具,挂在默认的 ReAct 循环上。这样一来,大纲、草稿、修订都挤在同一条循环里,不同类型的工作没有各自的位置,中途修改也缺少独立的承载。

dsh-agent-driver-writehere 换了一个挂载点:它不往默认循环上追加工具,而是把 WriteHERE 的长文写作循环(异构递归规划)实现为一个 agent driver,作为第二个推理循环运行。下面介绍它的设计、安装与用法。

这是什么

dsh-agent-driver-writehere 是 Player-YN 维护的 DSH 插件,许可证为 MIT。一句话定位:把 WriteHERE 长文写作循环(异构递归规划)作为 DeepSeek Harness 的 agent driver 运行——WriteHERE 作为第二个推理循环,而不是额外的 ReAct 工具。

重点在「驱动」二字。它不是一个工具包:宿主在准备会话循环时可以直接选用这个驱动构造器,长文写作的规划、检索与撰写由此获得独立于默认 ReAct 循环的运行方式。

核心机制:tick 协议与类型化卡片

写作循环由 tick 协议驱动,每个周期依次经过四步:

GetInfo → Update → Decide → 类型化执行(Execute)

循环内的工作以三种类型化卡片承载:

  • write:读者正文。叶子 write 节点追加写入 article.md
  • think:备忘。
  • task:通过 startContinuable 调用 preset: 'standard' 的 worker。

配套有两条约束:

  • 编辑会话使用 WriteHereAgent 构造器,且 tools: [],不使用原生函数调用工具;会话永远不会打开终端。需要执行命令、读取仓库或调用外部 API 时,应写成 task 卡片。
  • task 卡片会搁置该流程(park the process);需要 worker 返回时,请使用 Web。

Web UI:Card tree

Web UI 提供 Card tree 可拖拽窗口:无限画布,父子连线保持连接,默认自上而下布局。会话运行时,可以从侧边栏页脚打开它,直接查看卡片树的展开。

安装与启用

先做准备工作:确认 dsh 在 PATH 上,且本机安装了 pnpm。这个包尚未发布到 npm registry;由于它声明了 dsh.bundle,官方加载器 dsh plugin add 在安装时会追加一个配置层并安装 zod。

一行安装(推荐):

dsh plugin --profile web add github:Player-YN/dsh-agent-driver-writehere
dsh --profile web

插件首次加载时(仅当 ~/.dsh/.agent-presets/ 不存在),会复制 article-editor 预设,注册 WriteHere 驱动并绑定该预设。React 仍是 标准模式 / PTC / 极简 / 创造 的默认驱动;绑定 WriteHere 的会话不会回退到 React。

如果不希望 main 分支移动导致安装结果变化,可以用 #<sha> 固定 commit 安装:

dsh plugin --profile web add github:Player-YN/dsh-agent-driver-writehere#<sha>

也可以先 clone,再在仓库目录内添加:

git clone https://github.com/Player-YN/dsh-agent-driver-writehere.git
cd dsh-agent-driver-writehere
dsh plugin --profile web add .

Windows 下可以从 checkout 安装并立即复制预设:

.\install.ps1

经过上面的步骤,可以用以下命令确认、更新或移除插件:

dsh --profile web --dump-config   # 查找 "# == dsh-agent-driver-writehere"
dsh plugin --profile web update github:Player-YN/dsh-agent-driver-writehere
dsh plugin --profile web remove dsh-agent-driver-writehere

两点提醒:如果某个 profile 已经从其他层组合了该驱动,请勿再次添加 bundle;install-remote.sh / install-remote.ps1 只是对官方 add 的包装并负责复制预设,属于可选项,只应执行你已读过的脚本。

典型用法

Web 是推荐的路径,步骤如下:

1、启动 profile:dsh --profile web(或 dsh web)。
2、新建会话,选择「技术博客博主」(article-editor)。该会话会绑定 WriteHere 驱动。
3、发送一个主题,而不是 shell 命令。
4、从侧边栏页脚打开 Card tree,查看卡片树的父子连线。
5、叶子 write 节点追加写入 article.md;task 节点把工作交给 standard worker。

如果宿主支持把 --preset 转发到 session.header.agentPreset,也可以走 headless 模式:

dsh --profile headless --preset article-editor "Why write-back is required"

适用场景与注意

适合的对象:在 DSH 上搭建长文写作工作流,希望规划、检索与撰写的中间产物有结构化承载的开发者。

使用前有几点需要留意:

  • 插件以当前 dsh 进程的权限运行,安装前应当检查源码与许可证(本项目为 MIT)。
  • 发布环节(例如微信公众号的排版与发布)不属于本包——宿主调度器只负责规划、更新与撰写。
  • 编辑会话不打开终端,命令、仓库读取和外部 API 都应通过 task 卡片完成。
  • task 卡片会搁置流程,需要 worker 返回时请使用 Web。

小结

dsh-agent-driver-writehere 的价值在于换了一个接入方式:不是把长文写作拆成默认循环上的零散工具,而是把 WriteHERE 的异构递归规划循环作为第二个推理循环,用类型化卡片承载规划、检索与撰写,并通过 Card tree 把过程摊开在 Web UI 里。如果你在 DSH 上有长文写作的需求,可以从下面两个地址开始:

  • 目录页:https://www.skillhub.cn/plugins/Player-YN/dsh-agent-driver-writehere
  • GitHub 仓库:https://github.com/Player-YN/dsh-agent-driver-writehere
羽毛球分组比赛记分
小程序二维码

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

小夜