前言¶
给公众号稳定产出文章,工序不少:找选题、列大纲、写成稿、查质量、按微信排版要求渲染、配图,最后推进草稿箱。手工做,每次都要在几个工具之间来回切;自己写脚本拼管线,运行记录、状态管理、凭据存放又都得自己兜底。
dsh-wewrite 解决的就是这个问题。它是 DeepSeek Harness(DSH)的一个插件,把上面这整条管线产品化:一条命令安装,在本地 Web UI 里从选题一路走到草稿箱,模型与凭据走你自己的账号,数据只落本地。
这是什么¶
dsh-wewrite 由 jerryjiao 维护,MIT 协议开源。一句话定位:把一整套微信公众号 AI 写作管线(选题 → 大纲 → 成稿 → 质量门禁 → 排版渲染 → 配图 → 草稿箱)产品化的 DSH 插件。
适用环境:DSH v0.1.x developer preview,Node ^22.19.0 || >=24.0.0,前提是机器上已能运行 npx @deepseek-ai/dsh。
模型不需要在插件里单独配:文本生成直接用 DSH 原生的模型配置(ctx.llm,即 DSH 设置页里配的模型),也可以对单次运行覆盖 provider / model。
核心功能¶
选题与逐条 AI 速览¶
热门榜选题内置 Hacker News(走官方 Algolia 索引,无需 key),另外支持 DailyHotApi 兼容的自定义聚合源。点开热榜条目,插件会抓取原文并生成中文要点速览——抓取有三条约束:8 秒超时、2MB 上限、仅接受 text/html;抓不到原文自动降级为标题解读。速览按条当日缓存。
六步管线与质量门禁¶
选定主题后,管线按选题 → 大纲 → 成稿 → 门禁 → 渲染 → 配图六步自动执行,进度实时可见。成稿先过质量门禁:内容质量校验加编号配图一致性校验。门禁未过会阻断默认推送路径——可以改稿重过,也可以显式覆盖。
编辑器与微信预览¶
改稿在 Markdown 编辑器里做,右侧是微信预览,预览 HTML 与最终推送载荷字节一致。排版主题三套:professional-clean / tech-dark / minimal-gray。
局部修改用「AI 选中改写」:选中一段文字,给一句话指令,AI 只重写选中段落并原位替换,Ctrl+Z 可撤销,全文其余部分不动。内置四个快捷方向:更口语 / 精简一半 / 扩写细节 / 更有数据感。
配图 fallback 链¶
配图按 9 家图片供应商的 fallback 链依次尝试:
openai(gpt-image-2)→ doubao → dashscope → jimeng → minimax
→ azure_openai → gemini → openrouter → replicate
单家失败自动降级下一家;全部失败时无图推进,不阻塞成稿。缺省链只含 openai(gpt-image-2),其余 8 家在设置页按需增排。单图上限 10MB,单篇正文图上限 10 张。
定时任务¶
RRULE 规则定时跑管线,产物恒定推草稿箱,运行历史完整可审计;错过计划时刻不补偿。
对话框直写(v0.4.0 起)¶
除工作台外,也可以在 DSH 对话框里直接驱动管线:对 agent 说「用 wewrite 写一篇……」,六步进度实时出现在对话流里。推送动作必须经宿主原生审批面板人工确认,审批不可用即拒绝执行。
安装与启用¶
先确认前提:Node ^22.19.0 || >=24.0.0,且已能运行 npx @deepseek-ai/dsh。
安装插件(命令固定在 #v0.2.0 标签):
npx @deepseek-ai/dsh plugin --profile web add github:jerryjiao/dsh-wewrite#v0.2.0
需要卸载时:
npx @deepseek-ai/dsh plugin --profile web remove dsh-wewrite
启动 DSH Web:
npx @deepseek-ai/dsh web
打开 http://127.0.0.1:3080 ,会话视图环里会出现「wewrite 工作台」tab。
然后在设置页填公众号 AppID + AppSecret;图片供应商 API Key 可选,不配则文章无图推进、不阻塞发布。保存后点「连接测试」。凭据只经 DSH 凭据服务落本地 ~/.dsh,界面回显掩码。
典型用法¶
工作台路径:
- 在「选题」面板选一条热榜,点开先看 AI 速览;
- 合适就点「写这个」(或直接输入固定主题),管线自动跑完六步;
- 在编辑器里改稿,右侧微信预览确认排版;
- 点「推草稿箱」,之后到微信公众平台后台「内容与互动 → 图文素材」查看草稿。
对话框路径:对 agent 说「用 wewrite 写一篇……」,或使用命令:
/wewrite <主题>
需要推送时对 agent 说「推草稿箱」,宿主审批面板确认后即推草稿。
适用场景与注意¶
适合谁:已经在用 DSH、需要周期性给公众号产出内容、希望整条管线在本地跑、模型与凭据用自己的账号的写作者。选题、速览、成稿、排版、配图、定时这些环节插件都内建了,不需要自己拼脚本。
用之前有几件事需要知道:
- 插件以当前 dsh 进程的权限运行,安装前建议先检查源码与许可证(MIT)。
- 默认只到草稿箱:v0.1 的推送面只有 draft/add 族端点,freepublish / 群发调用路径在类型层不可达,群发必须由你在公众平台后台人工执行。
- 微信服务端接口有 IP 白名单约束。报 errcode 40164 时,可以把设置页的「微信 API 地址」改为 relay 地址(仓库自带 tools/wechat-relay),所有微信调用统一走该地址。
- 凭据与数据只落本地
~/.dsh;插件无默认遥测,secret / access_token / API key 在日志、错误与运行历史中一律掩码。 - Agent 工具(
wewrite_run/wewrite_push_draft/wewrite_list_schedules)默认关闭,需要时在设置里打开。 - 运行历史上限缺省 200(可配 1–1000);调度轮询间隔缺省 30 秒(宿主级 cordis.patch.yml 层配置)。
小结¶
dsh-wewrite 把公众号写作里重复、机械的部分——选题、成稿、排版、配图、推草稿——收进一条可审计的本地管线,把需要人判断的部分(改稿、推送审批、群发)留给你。如果已经在跑 DSH,一条命令就能把它装进工作台。
- 社区目录页(独立社区站点):https://www.skillhub.cn/plugins/jerryjiao/dsh-wewrite
- GitHub 仓库:https://github.com/jerryjiao/dsh-wewrite