前言¶
DeepSeek Harness (DSH) 的核心設計理念是“一切皆插件”。智能體在會話中編寫代碼,但將其部署到特定平臺(如 WePre Next)通常需要人工操作。此插件將 dsh 會話連接到 WePre,使智能體能夠直接發佈卡片。
是什麼¶
插件名 shujitech/dsh-plugin-wepre,由 shujiTech 維護。它是一個 DeepSeek Harness 插件,核心功能是將單屏內容卡片從 dsh agent 會話發佈到 WePre Next。安裝後,一個 dsh 會話可以從“編寫卡片”直接變爲“卡片上線”。
安裝與啓用¶
安裝插件:
dsh plugin --profile web add dsh-plugin-wepre
安裝後驗證圖層已加載:
dsh --profile web --dump-config # 應顯示 "# == dsh-plugin-wepre" 層
dsh --profile web
無需構建步驟或 prepare 腳本,直接從 git host 安裝同樣有效。
核心功能¶
插件向模型暴露了五個工具,位於 ctx.tools:
wepre_request_code:發送一次性登錄代碼(SMS / 郵件)。wepre_login:兌換代碼,會話 Cookie 持久化存儲。wepre_whoami:顯示當前登錄狀態。wepre_publish:通過服務器端 QA 閘門上傳index.html/.zip卡片。wepre_qa_report:獲取內容的完整 QA 報告(按視口)。
這些工具的描述告知了模型 WePre 的內容規則(單屏佈局、無網絡調用、無外部資源等)以及 QA 修復循環:當閘門返回 QA_GATE_FAILED 時,智能體會讀取結構化的視口問題並修復,無需人工介入即可重新發布。
認證與配置¶
wepre_publish / wepre_qa_report 按以下順序解析憑證:
token配置字段:來自 WePre 發佈頁面的短期發佈令牌。WEPRE_PUBLISH_TOKEN環境變量。- 存儲的登錄會話:由
wepre_login創建,持久化到sessionFile(默認~/.dsh/wepre-session.json,權限 0600)。
對於交互式使用,只需要求智能體登錄:
“log in to WePre with 13800138000”
它會發送代碼並要求輸入,隨後存儲會話。對於 CI / 無頭模式(dsh --profile headless "..."),請設置令牌。
配置示例(覆蓋 cordis.patch.yml):
- id: wepre-publish
name: dsh-plugin-wepre
config:
endpoint: 'https://wepre.cn/next-test'
token: !!js process.env.WEPRE_PUBLISH_TOKEN
sessionFile: '/home/me/.dsh/wepre-session.json'
| Key | Default | Meaning |
|---|---|---|
endpoint |
https://wepre.cn/next-test |
WePre Next 站點根地址 |
token |
— | 短期發佈令牌 (Bearer) |
sessionFile |
~/.dsh/wepre-session.json |
持久化登錄會話 |
內容規則與限制¶
WePre Next 卡片是單屏、離線、沙盒化的頁面。發佈前工具會進行本地預檢,檢查違禁詞(如 fetch, localStorage, Worker, overflow:auto 等)。
內容必須滿足以下規則:
* 根容器高度 100dvh,overflow:hidden。
* 無 overflow:auto/scroll。
* 無網絡調用、localStorage、Worker。
* 無外部或根絕對 URL。
* execute 模式卡片必須在 wepre-next:execute postMessage 上運行主動作。
適用場景與注意¶
此插件適合需要在 AI 生成後直接部署到 WePre Next 的場景。它以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。無構建步驟,使用純 ESM JavaScript。
短結尾¶
該插件通過工具和自動 QA 循環,填補了 DSH 智能體編寫代碼與平臺發佈之間的空白。
- GitHub: https://github.com/shujiTech/dsh-plugin-wepre
- 目錄: https://www.skillhub.cn/plugins/shujiTech/dsh-plugin-wepre