dsh-weixin-reader:微信公衆號文章解析插件

前言

DeepSeek Harness 的內置工具 web_fetch 在處理微信公衆號文章時經常失效,因爲微信的站點返回環境檢查頁,正文被大量內聯樣式和嵌套容器包裹,且圖片採用懶加載。dsh-weixin-reader 插件旨在解決這些痛點,將微信文章正文提取爲乾淨的 Markdown 格式,並提供專門的工具供模型調用。

核心功能

該插件在 Harness 中註冊了一個名爲 weixin_read 的工具,供模型直接調用。

工具參數
| 參數名 | 類型 | 必填 | 說明 |
| :— | :— | :— | :— |
| url | string | 是 | 微信文章鏈接,例如 https://mp.weixin.qq.com/s/xxxxxxxx |
| maxChars | integer | 否 | 正文最大字符數,超出將被截斷並標記 |
| saveToFile | boolean | 否 | 是否將全文保存到工作區文件 |

返回結果
工具返回包含以下字段的標準結果:
- title:標題
- author:作者
- publishedAt:發佈時間
- sourceUrl:源鏈接
- wordCount:字數
- imageCount:圖片數量
- markdown:解析後的 Markdown 內容
- truncated:是否被截斷
- savedTo:保存路徑(如果啓用)
- bodyChars:正文實際字符數

此外,插件會註冊一個系統提示段,告訴模型在遇到微信公衆號文章時優先使用 weixin_read 而非 web_fetch。

安裝與啓用

在安裝前,請確認當前 DeepSeek Harness 進程具備聯網能力。

dsh plugin --profile web add github:jack1545/dsh-weixin-reader

安裝完成後,重啓 Harness 進程以加載插件層。可以通過以下命令驗證插件是否生效(檢查配置中是否包含 dsh-weixin-reader 層):

dsh --profile web --dump-config

如需卸載:

dsh plugin --profile web remove dsh-weixin-reader

配置說明

插件的各項配置位於 cordis.patch.yml 的 config 塊中,支持在特定 profile 的配置中覆蓋默認值。

配置項 默認值 說明
timeoutMs 30000 請求超時時間(毫秒)
maxChars 60000 正文最大字符數限制
saveToFile false 是否默認保存全文到文件
saveDir ”“ 保存目錄,空字符串則保存至 <workspace>/weixin-articles/
systemPromptOrder 10120 系統提示段插入順序
userAgent ”“ 自定義 User-Agent,留空則使用默認桌面瀏覽器 UA

技術細節與限制

依賴與沙箱限制
- 零外部依賴:插件不引入任何第三方包,僅使用 Node.js 內置模塊和 Harness 提供的 ctx。
- 禁用子進程:由於 Harness 的文件沙箱限制了 Node 子進程的管道讀寫(execFileSync 和 spawn 均報 EPERM 錯誤),插件無法使用外部 fetch 工具或子進程。它使用宿主環境的 fetch,並繼承當前進程的代理設置。

功能邊界
- 僅限 mp.weixin.qq.com:插件明確拒絕其他域名,不可作爲通用抓取工具。
- 顯式錯誤處理:遇到環境檢查頁、已刪除或受限文章、或無法識別的頁面結構時,會直接拋出錯誤,而非靜默返回空內容。
- Markdown 輸出:返回的是解析後的 Markdown,而非原始 HTML。圖片保留爲 Markdown 語法,不進行下載。複雜的富文本佈局(如自定義卡片)會降級爲純文本。
- 不支持批量:插件僅支持單篇抓取,且需遵守微信平臺條款,請求頻率應保持較低。

典型用法

1. 在 Harness 中調用
在對話或配置中直接調用 weixin_read 工具:

請使用 weixin_read 工具獲取以下鏈接的正文並總結:
https://mp.weixin.qq.com/s/xxxxxxxx

2. 本地調試
插件包含一個獨立的解析器 lib/parser.js,可在不依賴 Harness 的情況下運行:

import { fetchArticle, formatArticle } from './lib/parser.js';

const article = await fetchArticle('https://mp.weixin.qq.com/s/xxxxxxxx');
console.log(article.title, article.author, article.wordCount);
console.log(formatArticle(article));

結語

dsh-weixin-reader 爲 DeepSeek Harness 提供了針對微信公衆號文章的專用解析能力,解決了通用抓取工具在微信環境下的兼容性問題。其設計遵循了 Harness 的插件生態規範,支持零依賴運行和精細化的配置。更多詳情與源碼,請訪問:GitHub 倉庫 | 社區目錄。

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

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

小夜