🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

强制 Python 执行 yinghan-123/dsh-python-only

DeepSeek 客户端
yinghan-12310 天前有提交已提供中文文档扫描:未发现敏感能力兼容 / 相关生态

让智能体所有代码执行与数据处理都走 python 工具

29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/yinghan-123/dsh-python-only.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件:强制 Agent 一切代码执行与数据处理使用 python 工具,并用工具守卫拦截 bash(无例外),让 DSHM 端侧稳定走进程内 CPython。

README

由 DeepSeek 最新模型翻译生成
dsh-python-only GitHub:https://github.com/yinghan-123/dsh-python-only · 一行安装:pnpm add github.com/yinghan-123/dsh-python-only 强制 DeepSeek Harness(DSH)的智能体一切代码执行与数据处理都使用 python 工具,并用工具守卫拦截 shell 类工具。为 DSHM 端侧(HarmonyOS 手机 / 平板 / PC)设计:端侧 python 工具跑在宿主进程内的内嵌 CPython 3.12(不 execve、不依赖 guest VM),而 bash 走 guest 虚拟机、guest 里没有 python3。 它做什么 两层约束同时生效: | 层 | 机制 | 效果 | | 提示词 | systemPrompt.section(app:python-only)+ 每步动态提醒(app:python-only-reminder) | 模型在第一次思考时就知道必须用 python,并知道运行时边界 | | 守卫 | tools.guard() 同步拦截 | 模型若仍调用 bash / pwsh / terminal_*,调用被直接拒绝(结果 Error: …
展开完整文档(README 剩余 1 节)
dsh-python-only

GitHub:https://github.com/yinghan-123/dsh-python-only · 一行安装:pnpm add github.com/yinghan-123/dsh-python-only

强制 DeepSeek Harness(DSH)的智能体一切代码执行与数据处理都使用 python 工具,并用工具守卫拦截 shell 类工具。为 DSHM 端侧(HarmonyOS 手机 / 平板 / PC)设计:端侧 python 工具跑在宿主进程内的内嵌 CPython 3.12(不 execve、不依赖 guest VM),而 bash 走 guest 虚拟机、guest 里没有 python3。

它做什么

两层约束同时生效:

| 层 | 机制 | 效果 |
| 提示词 | systemPrompt.section(app:python-only)+ 每步动态提醒(app:python-only-reminder) | 模型在第一次思考时就知道必须用 python,并知道运行时边界 |
| 守卫 | tools.guard() 同步拦截 | 模型若仍调用 bash / pwsh / terminal_*,调用被直接拒绝(结果 Error: …),文案指向改用 python |

守卫是单调的:一旦拒绝,没有任何插件能重新放行该次调用。

设置界面

设置 → 侧栏「强制 Python」(客户端半部 lib/client.js 注册 settings.section,order 26)。
页面内容:

| 控件 | 作用 |
| 开关 | 总开关;关闭后提示词仍生效、但不再拦截工具 |
| 拦截工具列表 | 逗号/换行分隔的工具名,默认 bash、pwsh、terminal_open/send/read/signal/close/list |
| 保存 / 恢复默认 | 写入 profile 行并立即生效 |

实现要点:

- 为什么需要客户端半部:DSH 的「设置 → 插件」页只渲染官方插件的 companion 配置页;第三方 bundle 的配置页必须由包自己的浏览器 bundle 注册到 slot。本插件注册一个独立设置页,不依赖任何官方 UI 包的其他接口。
- 数据通道全部走平台公开面:ctx.configForms.get("python-only") 拿表单 scope,getSnapshot()/subscribe() 读、set()/unset() 写。
- 热生效:host 半部的 Config 字段都标了 volatile(),写入经 settings 服务落回 profile 行、再由 cosmokit 的 volatile 引用原地更新运行中的实例 —— 设置页保存后无需重启。
- 平台模块(react、primitives)全部 optional,缺 React 时退化为 inert 渲染而不是拖垮设置面板。

也可以直接写 profile 行的 config(见下节),两种方式等价。

不做什么

- 不提供 python 工具本身。端侧由 @deepseek-ai/dshm-tool-python 提供;桌面端由 DSH 自带 python 工具提供。
- 不拦 read / glob / grep / web_fetch / web_search / 子代理等非执行类工具。
- 没有命令白名单:git、pnpm、构建命令同样被拦(刻意选择——端侧 bash 不可靠,与其半开不如全关)。
- 不写持久化状态:配置就是 profile 行里的 config。

安装(DSHM 端侧)

一行安装 —— DSHM 端侧 PATH 里的 pnpm 是 Host 布置的假壳,add 会被改写成安装队列、由进程内安装器(dshm-installer.js)完成并同步返回结果:

pnpm add github.com/yinghan-123/dsh-python-only

装完 重启 DSHM 一次才会挂载(profile 的 patchReload 是 startup)。需要手动部署、或要精确控制文件落位时,用下面的方式 —— 三个位置都要就位:

1. 包:把本目录整体复制到 profile 的 node_modules:

<DSH_HOME>/profiles/ondevice/node_modules/dsh-python-only/

(DSH_HOME 本机是 /data/storage/el2/base/haps/entry/files/dsh/home。)

2. bundle 声明:profiles/ondevice/package.json 里

"dependencies": { "dsh-python-only": "1.0.0" },
"dsh": { "profile": { "bundles": [ "...", "dsh-python-only" ] } }

(行由包自带的 cordis.patch.yml 插入,不依赖会被种子重建的 dshm-user-rows 用户区。)

3. 配置覆盖行(让设置页能读到该行):profiles/ondevice/cordis.patch.yml 的用户行区之外加

- id: python-only
name: dsh-python-only
config:
enabled: true
blockedTools:
- bash
- pwsh
- terminal_open
- terminal_send
- terminal_read
- terminal_signal
- terminal_close
- terminal_list

4. 重启 DSHM 一次(profile 的 patchReload 是 startup;客户端 bundle 也只在启动时被 dsh-client-modules 扫描)。

停用 / 回滚

- 临时放行 shell:设置页关掉开关(立即生效)。
- 完全停用:从 package.json 的 bundles 里去掉 dsh-python-only(或给该行加 disabled: true),重启。
- 彻底移除:删掉 node_modules/dsh-python-only/、bundles/dependencies 条目与那行 config,重启。

验证清单

1. 设置侧栏出现「强制 Python」页,开关与列表可编辑,保存后立即生效。
2. Agent 调 bash → 返回 Error: 本环境强制使用 python 工具:\bash\ 已被 python-only 插件禁用…。
3. Agent 用 python 跑代码 → 正常返回。
4. 系统提示里出现「# 强制 Python 工具(python-only)」段。

兼容性

- DSH >=0.2.0-rc.1 <0.3.0-0。运行时校验字段是 package.json 的 engines.dsh (dsh-app-boot 只读这个;dsh.compatibility 仅作元数据)。
- host 半部依赖 @deepseek-ai/schemastery(Config schema);tools.guard()、
systemPrompt.section/context() 为 0.2.x 公开 API。
- 客户端半部声明 dsh.client: { platform: "web", inject: ["@deepseek-ai/dsh-client-ui-settings"] },由 dsh-client-modules 通过 exports["./client"] 加载。

文件结构

dsh-python-only/
├── package.json # bundle patch + client 声明 + engines.dsh ├── cordis.patch.yml # 插入 - id: python-only / name: dsh-python-only ├── lib/index.js # host:提示词 section/reminder + tools.guard + volatile Config ├── lib/client.js # 浏览器:设置 →「强制 Python」页(settings.section) └── README.md

许可

MIT
预览分享卡片长什么样 ↓yinghan-123/dsh-python-only
分享 · DeepSeek Harness Hub
yinghan-123/dsh-python-only

让智能体所有代码执行与数据处理都走 python 工具

回到顶部