在 DSH 環境中執行 Python 源碼常面臨三個痛點:Shell 轉義地獄(多層引號)、兩步成本(先寫腳本再執行)以及編碼異常(GBK 干擾)。dsh-plugin-pyrun 是 DeepSeek Harness(DSH)的一個插件,它將模型生成的 Python 源碼通過 stdin 直灌到 python -X utf8 -u -,實現一步返回結果。
功能概覽¶
- 直灌執行:源碼不經 Shell,直接作爲 stdin 輸入,規避轉義與命令行長度限制。
- 全鏈路 UTF-8:默認使用
python -X utf8 -u -,保證中文、Emoji 等字符原樣往返。 - 前臺/後臺模式:支持前臺同步執行與後臺異步運行。
- 沙箱控制:支持沙箱提權與權限審批,輸出截斷處理並記錄溢出文件。
- 作業管理:提供
job_output、job_kill、job_list接口管理後臺作業。
安裝¶
使用 link: 方式安裝:
dsh plugin --profile web add link:D:/Projects/dsh-plugin-pyrun
安裝說明:
- link: 安裝不會往 profile 裝任何依賴。
- 安裝成功後必須重啓 dsh 才能生效。
使用¶
工具名 python,參數如下:
| 參數 | 類型 | 說明 |
|---|---|---|
code |
string(必填) | Python 程序原文 |
workdir |
string | 工作目錄,缺省用會話 cwd |
timeout_ms |
number | 前臺超時,後臺運行時不適用 |
run_in_background |
boolean | 後臺運行模式 |
sandbox_permissions |
enum | 沙箱提權模式 |
justification |
string | 審批面板說明 |
結果標記¶
[exit code: N]:非零退出碼[timed out after Nms]:超時[aborted]:中止[stderr]:標準錯誤輸出[output truncated; full output: <path>]:輸出截斷,完整內容在文件中
後臺作業管理¶
job_output:收割作業輸出job_kill:停止作業job_list:查看作業名冊
注意事項¶
- 版本要求:僅支持 DeepSeek Harness 0.2.x 運行時(0.1.x 會被版本閘門拒絕)。
- 運行環境:需要 Node.js >= 22。
- 依賴契約:核心包必須聲明爲
peerDependencies,避免符號分裂導致工具調用崩潰。 - 超時規則:前臺運行時
timeout_ms生效,後臺運行時不適用。
資源鏈接¶
- GitHub:https://github.com/cup113/dsh-plugin-pyrun
- 生態目錄:https://www.skillhub.cn/plugins/cup113/dsh-plugin-pyrun