dsh-tool-gzh-publisher:在 DSH 里把关并推送公众号草稿

前言

在 DeepSeek Harness(DSH)里写公众号稿件时,常见做法是:本地跑脚本校验、再手动复制到后台或另开终端推送。模型若直接 exec 外部脚本,需要自己拼参数、解析中文输出、判断成败;微信凭据与限频接口若再写一套封装,容易出现两套「真相来源」。

dsh-tool-gzh-publisher 把已有 gzh_auto.py 管线以类型化工具暴露给 Agent:先过发布质量门,再推入微信草稿箱,对话内即可完成,且不重新实现微信 API。

这是什么

插件全名 dsh-tool-gzh-publisher,维护者为 yuehancn,在 SkillHub 等社区目录中归类为工作流。一句话定位:面向 DSH 的微信公众号(WeChat Official Account)管线——对稿件做发布门校验,通过后推送到草稿箱(不直接对外发布)。

它是一层类型化桥接:access_token 握手、草稿创建、发布前质量门仍由本机已跑通的 gzh_auto.py(来自 gzh-auto-publisher 技能)完成;插件负责类型化参数、结构化输出与稳定路径配置。

兼容性说明(来自仓库 README):在 dsh 0.2.0-rc.2(preview)上构建与测试;apply(ctx) 插件规范相对稳定,若你使用更新版本请自行核对。

核心功能

插件向 Agent 注册五个工具,描述中区分是否联网,避免「只想体检配置」时误触发鉴权。

工具 联网 作用
gzh_accounts 否 读 accounts.json,列出本机可发布公众号及定位、关键词、工作目录
gzh_validate 否 对指定稿件跑发布门(字数、金句、emoji、AI 腔、结尾等),不访问网络
gzh_check 否 账号配置体检:必填字段、磁盘路径、env 中是否有 APPID/SECRET
gzh_push_draft 是 先过门再推草稿箱;不发布,最终发布仍需人工在微信后台点击
gzh_verify 是 真实凭据握手,换取 access_token

配置项里可为 accounts、validate、check、push、verify 逐项设为 false,关闭不想暴露的工具。

权限与数据边界(摘要):插件本身不读凭据,由 gzh_auto.py 从 env_file 读取 WECHAT_APPID / WECHAT_APPSECRET;access_token 仅发往 api.weixin.qq.com;离线工具不出网;无遥测;不写本地文件;通过 execFile 调用你配置的 pythonPath 执行 scriptPath,这是插件唯一会启动的进程。

安装与启用

一行安装

官方安装命令如下(将 desktop 换成你的 profile 名,亦支持 web):

dsh plugin --profile desktop add github:yuehancn/dsh-tool-gzh-publisher

装完插件不是开箱即用。必须在本机准备好被桥接的 gzh_auto.py 与 accounts.json,并在 profile 里配好路径;否则工具会报 gzh: publisher script not found at "…" 一类明确错误。

前置条件与配置

需要三样外部资源,并在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中覆盖插件配置(示例 id 为 tool-gzh-publisher):

配置键 说明
scriptPath gzh_auto.py 绝对路径(默认示例指向 …/gzh-auto-publisher/scripts/gzh_auto.py)
pythonPath 执行脚本的 Python 解释器(文档示例为本机 3.13.12 venv)
accountsPath accounts.json 绝对路径
timeoutMs 默认 180000;gzh_push_draft 调用预算,可按需改为如 300000

accounts.json 每个账号条目包含 name、positioning、keywords、workdir、env_file 以及 min_cjk / max_cjk、min_gold、ending、author 等门控字段。env_file 含微信密钥,不要提交到任何仓库。

手工开发安装(junction、bundles 启用、cordis.patch.yml 按 id 覆盖等)见 GitHub README 的「安装(手工,本机开发用)」折叠段;生产环境以 CLI dsh plugin add 为主即可。

典型用法

下面按常见顺序说明 Agent 侧可复现的流程(具体账号名、稿件路径替换为你本机值)。

  1. 列账号:调用 gzh_accounts,确认 accounts.json 里有哪些公众号及工作目录。
  2. 配置体检:调用 gzh_check --account <账号名>,确认路径与 env 字段完整(注意:这不是「列草稿箱」,草稿列表仍走微信后台)。
  3. 可选鉴权:需要确认凭据有效时再调用 gzh_verify(会联网换 token)。
  4. 校验稿件:对 .md 调用 gzh_validate,根据结构化结果改稿(例如 CJK 字数、金句数、结尾格式)。
  5. 推草稿:校验通过后调用 gzh_push_draft,可选 --title、--digest;成功后到微信后台人工发布。

插件在调用 Python 时已设置 PYTHONIOENCODING=utf-8 与 PYTHONUTF8=1,减轻 Windows 下中文乱码;成功/失败判定不仅看退出码,还会结合输出中是否含 ❌(与 gzh_auto.py 行为一致)。

适用场景与注意

适合谁:已在用或愿意部署 gzh-auto-publisher + gzh_auto.py 的 DSH 用户,希望把「质检 + 推草稿」固定成 Agent 可调用的工具,而不是每次让模型拼 shell。

务必注意:

  • 插件以当前 dsh 进程权限运行,安装前请阅读 GitHub 源码 与 MIT 许可证,自行评估凭据与脚本执行风险。
  • gzh_push_draft 是不可逆的对外动作之一(内容会发到微信草稿箱),虽不等于点击「发布」,仍应在确认账号与稿件后再调用。
  • 社区目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,本插件是工作流类社区贡献,非官方应用商店内置能力。

验证插件是否加载:桌面版可用 README 中的 ELECTRON_RUN_AS_NODE=1 + --dump-config 方式 grep dsh-tool-gzh-publisher;勿把 dump-config 写在 dsh plugin 子命令后面(会被误透传)。

链接

  • 社区目录页:https://www.skillhub.cn/plugins/yuehancn/dsh-tool-gzh-publisher
  • 源码与完整说明:https://github.com/yuehancn/dsh-tool-gzh-publisher

经过上面的步骤,你可以在 DSH 对话内完成公众号稿件的质量门与草稿箱推送,同时把微信 API 与凭据逻辑继续收敛在单一的 gzh_auto.py 实现上。

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

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

Xiaoye