前言¶
在 DeepSeek Harness(DSH)裏做會話總結或事項歸檔,常見做法是讓模型直接輸出 Word 或 Markdown,再由人工調整版式。紅頭公文對機關名、文號、標題、正文縮進、落款與行距有固定規範,模型直接排版容易出現序號錯亂、佔位符殘留或版式偏差。
下面介紹 dsh-tool-hongtou:由 ExElectron 維護的工作流插件,採用「LLM 結構化提綱 + 確定性 Word 2003 XML 渲染」的兩階段解耦流水線,把內容生成與版式渲染分開處理。
這是什麼¶
dsh-tool-hongtou 是 Cordis 主機側 DSH 插件,當前版本 0.2.0,MIT 許可證。它在會話中提供 /hongtou 命令,讀取完整會話上下文,先產出合法 JSON 提綱,再注入標準紅頭模板骨架生成 .doc 文件並落盤到 output/。
插件託管於 GitHub:ExElectron/dsh-tool-hongtou;社區目錄頁:SkillHub 插件頁(SkillHub 爲獨立社區目錄,與 DeepSeek / 幻方無官方從屬關係)。
架構:兩階段解耦¶
執行 /hongtou [事由/標題] 時,流水線如下:
/hongtou [事由/標題]
│
├─ 會話上下文:ctx.sessionQuery.readSession() 讀取完整原始事件日誌
│
├─ 階段一:LLM 結構化輸出(lib/phase1-llm.js)
│ · 只輸出合法 JSON 提綱,嚴禁手寫 XML 標籤與 Markdown 符號
│ · 輸出經 schema 校驗(lib/schema.js)+ Markdown/佔位符清洗
│ · 失敗自動重試一次;仍失敗回退確定性提煉(lib/fallback.js,同爲 JSON)
│
└─ 階段二:確定性排版渲染(lib/phase2-render.js)
· Node.js 純代碼解析 JSON,注入 templates/document-skeleton.xml 骨架
· 序號(一、/(一)/1.)、字體、行距、紅線全部由代碼確定性生成
· 最終校驗:無文本框/批註/註釋/佔位符/Markdown 殘留 → 落盤 output/
階段一隻負責結構化內容;階段二由代碼接管版式,模型不參與排版。
核心能力¶
版式復刻¶
模板 templates/document-skeleton.xml 由一次性構建腳本從樣板真實片段組裝,主要保證包括:
- 完整複製樣板
<w:fonts>(含方正粗宋簡體、華文中宋、宋體、仿宋_GB2312、黑體、楷體等)與 11 個<w:styles>; - 紅頭機關名使用 VML 藝術字
v:textpath(華文中宋加粗、紅色、高度 51pt,寬度按字數自適應居中); - 紅色分割線爲樣板原樣雙 VML 線條;
- 文號、標題、正文首行縮進、落款、日期等段落屬性與 28 磅固定行距由代碼注入;
- 模板不含文本框與批註,生成後移除佔位符並校驗無註釋殘留。
模型零排版權¶
LLM 輸出進入渲染層前經 stripMarkdown 與 hasForbiddenContent 雙重清洗,過濾鏈接符號、佔位符(如 xxxx、(空一行)、(此處填寫…) 等)。非法內容直接回退,不進入文檔。
序號確定性生成¶
sections 編號爲「一、二、…」,子條款爲「(一)(二)…」,由階段二按數組順序生成,避免模型序號錯亂。
安裝與啓用¶
插件通過 dsh.bundle.patch 聲明掛載。安裝到 web profile 可用以下命令:
# 從 npm 安裝
dsh plugin --profile web add dsh-tool-hongtou
# 或從 GitHub 安裝
dsh plugin --profile web add github:ExElectron/dsh-tool-hongtou
也可手動在 profile 的 package.json 中添加依賴並聲明 bundle:
"dependencies": {
"dsh-tool-hongtou": "^0.2.0"
// 或 "dsh-tool-hongtou": "github:ExElectron/dsh-tool-hongtou"
},
"dsh": { "profile": { "bundles": ["dsh-tool-hongtou"] } }
掛載後需重啓 dsh(web profile 在啓動時裝配 bundle 補丁)。運行環境要求 Node.js >= 22.19.0;peer 依賴包括 @deepseek-ai/cordis ^4.0.1、@deepseek-ai/dsh-llm ^0.1.0-rc.6、@deepseek-ai/dsh-session-query ^0.1.0-rc.6。
典型用法¶
重啓 dsh 後,在會話中輸入:
/hongtou
/hongtou 紅頭公文插件重構事項
不帶參數時,插件從當前會話上下文提煉內容;帶參數時,參數作爲事由或標題線索參與結構化輸出。生成的 Word 2003 XML 文檔寫入 output/ 目錄。
適用場景與注意¶
適合需要將 DSH 會話內容整理爲標準紅頭公文格式的場景,例如事項總結、內部通報草稿等。兩階段設計把「寫什麼」與「怎麼排」分開,降低模型直接輸出 Word 時的版式風險。
使用前請注意:
- 插件以當前 dsh 進程權限運行,安裝前應閱讀源碼並確認 MIT 許可證條款;
- 輸出爲 Word 2003 XML 格式(
.doc),需用兼容該格式的編輯器打開; - 階段一依賴 LLM 與 schema 校驗,模型不可用時會回退到
lib/fallback.js的確定性提煉,內容質量取決於會話上下文完整度。
開發與驗證¶
維護者在 README 中提供了語法檢查與測試命令:
node --check lib/index.js && node --check lib/schema.js && node --check lib/phase1-llm.js && node --check lib/phase2-render.js
node --test --test-isolation=none test/schema.test.js test/phase1.test.js test/phase2.test.js test/e2e.test.js
主要模塊:lib/index.js(入口與編排)、lib/phase1-llm.js、lib/schema.js、lib/phase2-render.js、lib/fallback.js、templates/document-skeleton.xml。
結尾¶
dsh-tool-hongtou 把紅頭公文的生成拆成 LLM 結構化提綱與確定性 XML 渲染兩步,在 DSH 工作流裏提供可復現的版式輸出路徑。如需查看源碼或提交 issue,見 GitHub 倉庫;社區索引見 SkillHub 目錄頁。