在 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