前言¶
在 DSH 里让智能体改代码,常见卡点不在「能不能生成 diff」,而在改完之后的核对:堆栈贴上来却逐帧 read_file、回归要拼 git bisect、YAML 一个 tab 就起不来、Windows 上 shell 引号转错、MyBatis Plus 的 N+1 静默拖慢库。这些步骤往往要占多个 tool slot,还要分别装插件、分别过审。
下面介绍社区插件 dsh-ai-armor(维护者 AAAlenwow):把五类「写完即可能爆雷」的能力打成 一个 bundle、8 个 tool slot,一次安装即可在 agent 侧调用。目录页:skillhub.cn/plugins/AAAlenwow/dsh-ai-armor;源码与说明:github.com/AAAlenwow/dsh-ai-armor。
这是什么¶
dsh-ai-armor 是 DeepSeek Harness 上的插件包(package.json 版本 0.1.0,许可证 MIT)。它聚合五个子插件,面向「AI 写完代码那一刻」的本地辅助:不执行业务代码、不发起网络请求、不自动改仓库,只返回 findings 与建议,由人或 agent 继续改。
DSH 生态是「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。安装前请自行查看仓库源码与许可证;插件以当前 dsh 进程权限 运行(会读文件、可能调用 child_process 跑 git 等本地命令)。
兼容性(来自 package.json):dsh >=0.1.7-alpha.1,profile web。
核心功能:五个子插件、八个工具¶
| 子插件 | 工具 | 针对的问题 |
|---|---|---|
| dsh-when-broke | when_broke_find_introducer、when_broke_recent_changes、when_broke_bisect_with_repro、when_broke_blame_age |
代码从哪个 commit 来、最近谁改过文件、哪个 commit 引入 bug、某行是否新写 |
| dsh-stackdecoder | decode_stack |
堆栈文本一次解析为每帧 file:line 与上下文片段 |
| dsh-config-guard | validate_config |
改完 application.yml / .env / .properties 后查重复键、tab 缩进、键名错误、缺必需字段 |
| dsh-cmd-shield | build_shell_invocation |
按 POSIX / PowerShell / cmd 规则生成转义后的 shell 调用,减轻引号、$、CJK、路径空格问题 |
| dsh-mp-auditor | audit_mp_code |
扫描 MyBatis Plus 项目中的 N+1、漏 @Transactional、LIKE '%xxx%'、SELECT *、缺 WHERE 的 UPDATE/DELETE 等 |
实现上,各工具为纯本地:仅用 Node.js 内置 fs / path / child_process / crypto,README 标明无第三方 npm 依赖。README 中的典型延迟供参考(例如 decode_stack 约 <1ms/帧,when_broke_bisect_with_repro 约 1–60s,取决于 repro)。
不在范围内(README 原文):不替代 IDE 静态分析;不替你自动 fix;bundle 与同名 standalone 子仓库不要同时安装(tool id 会冲突)。
安装与启用¶
整包安装(官方命令):
dsh plugin add AAAlenwow/dsh-ai-armor
若只需要某一类能力,可单独安装对应子插件(各 1 或 4 个工具):
dsh plugin add AAAlenwow/dsh-when-broke
dsh plugin add AAAlenwow/dsh-stackdecoder
dsh plugin add AAAlenwow/dsh-config-guard
dsh plugin add AAAlenwow/dsh-cmd-shield
dsh plugin add AAAlenwow/dsh-mp-auditor
README 还提到可通过 git clone 后 pnpm link --global(或 npm link)做本地 link;与 dsh plugin add 二选一即可,按你的发布流程选。
安装后,在 DSH 对话中由 agent 按场景调用上表工具名;无需额外配置字段(资料未列出独立配置文件)。
典型用法(按场景)¶
资料未给出完整对话示例,用法与 README 中的问题—工具对应关系一致,可按下面顺序在 agent 工作流里挂载:
- 线上异常 / 测试失败:先
decode_stack把堆栈落到本地行号;再用when_broke_recent_changes或when_broke_find_introducer查变更来源;需要回归时用when_broke_bisect_with_repro(需可复现步骤);单行新旧可用when_broke_blame_age。 - 改配置后启动失败:在提交或重启前调用
validate_config做 YAML/ENV/properties 自检。 - agent 要跑 shell:在真正执行前用
build_shell_invocation生成当前平台安全的调用串。 - Java + MyBatis Plus 改动:合并前用
audit_mp_code扫一轮 SQL/事务类风险。
验证 bundle 是否加载成功,可在仓库根目录执行 README 中的 smoke test:
cd tests && node run.mjs
期望输出:✅ All 8 expected tools registered. Bundle is loadable.
各子插件另有 cd plugins/<name>/tests && node run.mjs 的测试 harness。
适用场景与注意¶
适合:在 DSH web profile 下做 agent 开发、希望少占审核轮次、又要在「写完代码」环节补上 git / 堆栈 / 配置 / shell / MP 审计的团队或个人。内网环境也可考虑——工具侧无外部网络依赖。
注意:
- 权限与信任:插件会读项目文件;
when_broke_*与 bisect 会涉及 git 操作,权限等同于运行 dsh 的用户。 - 安装范围:bundle 与 standalone 同名插件勿重复安装。
- 能力边界:只报告问题与建议,不自动修复;深度静态分析仍以 IDE 与 CI 为主。
结尾¶
dsh-ai-armor 把五类高频「AI 改完后的最后一公里」收进一个 MIT 插件包,官方一条 dsh plugin add AAAlenwow/dsh-ai-armor 即可注册 8 个 tool。需要逐项了解时,可打开各子目录 README 或 standalone 仓库。
- 目录页:https://www.skillhub.cn/plugins/AAAlenwow/dsh-ai-armor
- GitHub:https://github.com/AAAlenwow/dsh-ai-armor