dsh-stack
DeepSeek Stack 模式 agent 预设:aicodeking/deepseek-stack 的 29 个 st-* 循环技能、常驻 st-mode 人格,以及轮次收尾时把「改完没验证」「同一修法连错两次」打回继续的守卫。
一句话定位
DeepSeek Stack 模式 agent 预设:aicodeking/deepseek-stack 的 29 个 st-* 循环技能、常驻 st-mode 人格,以及轮次收尾时把「改完没验证」「同一修法连错两次」打回继续的守卫。
安装方式
在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。
$ dsh plugin --profile web add dsh-stack@0.3.3
兼容的 DSH 版本
>=0.2.1-rc.5
作者与热度
58fly · ★ 3 · 更新于 2026-11-07
关于这个插件
dsh-stack
dsh-stack模式(dsh-stack)agent 预设,以可装卸 bundle 的形式分发。
仓库:[58fly/dsh-stack](https://github.com/58fly/dsh-stack) · 技能来源:[aicodeking/deepseek-stack](https://github.com/aicodeking/deepseek-stack)(MIT,见 [NOTICE.md](NOTICE.md))
[aicodeking/deepseek-stack](https://github.com/aicodeking/deepseek-stack) 是一套 SKILL.md 技能包:它不开新框架,只给廉价模型补上四个常见缺口——不先计划、没跑就说修好了、同一思路反复重试、长任务跑偏。这套东西在 DSH 里只缺两样:一个是常驻(技能只有被 skill 工具加载后才生效,而 st-mode 自称 always-on),一个是硬边界(散文规则在长会话里会漂移)。本预设补的就是这两样,其余原样搬过来。
技能包 → 本预设
| 技能包提供 | 本预设里变成 | 位于 |
|---|---|---|
| st-mode(「始终生效」的工作风格) | 常驻人格 persona.prefix(规则压缩,非全文) | preset/agent.cordis.yml |
| 29 个 st-* 技能 | 原样随包分发的技能目录 | preset/skills/ |
| 「改完必须跑验证」 | 轮次收尾检查:改了文件但之后没有成功检查 → 打回继续 | preset/st-loop.mjs |
| 「同一修法错两次就停」 | 轮次收尾检查:连续 2 次失败 → 打回换前提 | preset/st-loop.mjs |
| npx skills add | DSH bundle(cordis.patch.yml + 预设声明) | 本目录 |
除上述三处,工具目录、沙箱、审批、压缩、子代理都与内置 standard 预设逐行一致——本预设不改变 Agent 能做什么,只改变它的工作方式。
组成
cordis.patch.yml— bundle 补丁:插入一条@deepseek-ai/dsh-agent-preset声明(preset-dsh-stack,显示名「dsh-stack模式」,order 6)。preset/agent.cordis.yml— 预设组合本体:人格、技能根、循环守卫、shell/文件/任务/目标/计划/压缩/委派等行。preset/st-loop.mjs— 两个轮次收尾守卫(见下)。preset/skills/— 技能来源的 29 个技能,逐字节保留。
安装
首选 npm 源(版本号可追溯,插件页的更新提示显示 0.1.0 这样的版本号):
plugin_manager({ action: "install_bundle", target: "dsh-stack" })
或用 npm 直接装进 profile:
npm install dsh-stack
再把 dsh-stack 加进 profile package.json 的 dsh.profile.bundles。
备选 Git 源(跟随 main 分支最新提交,适合要试未发布改动时):
plugin_manager({ action: "install_bundle", target: "https://github.com/58fly/dsh-stack" })
差异:宿主对 Git 源安装的更新检查走 git ls-remote -- HEAD,commit 就是它的版本标识,所以插件页的「有新版本」会显示 commit SHA(如 afaa2ac)而不是版本号。要能看出「装的是哪个版本」,用 npm 源。
安装即注册 preset-dsh-stack。预设只在新会话且会话仍为空白时可选;已在跑的会话保留它启动时的组合。
快速上手
三步
1. 装(见上),装完即注册 preset-dsh-stack。
2. 新建一个空会话,选择器里选「dsh-stack模式」。已在跑的会话不会切换。
3. 直接说你要做什么。不需要提技能名——人格会在任务匹配时自己加载。
第一句话给三样东西最省事:目标、约束、怎么算做完。
把 lib/parse.mjs 的 CSV 解析改成分块读,内存不能被文件大小放大。 做完用一个 500MB 的样本跑一遍,看峰值 RSS。
对比一句「帮我优化下解析性能」——后者的下场是模型先猜你的意思,猜错了你还得重来一次。想省那一轮,用 /st-sharpen 或干脆自己把上面三样补齐。
怎么确认它在工作
| 现象 | 说明 |
|---|---|
| 打开会话就能看到 st-stack checkpoint — this turn edited … 这类消息 | 守卫在打回。它是正常行为,不是报错(见下节) |
| 模型先复述任务、再读文件、改完立刻跑命令 | 人格生效 |
| 技能目录出现在首轮上下文里 | 29 条技能的摘要(约 1.7k token 的固定前缀)已注入 |
| 想验证预设版本 | node -p "require('dsh-stack/package.json').version"(在 profile 目录下) |
改了预设文件后必须重启 DSH:主进程在安装时把组合树读进内存,运行中不重读磁盘。
什么时候用哪个技能
技能只在被加载后生效;29 条里大部分你永远不用主动点名——说清楚要干什么,模型会挑。这张表是给你「卡住时该点哪个」用的。
开工前
| 你的处境 | 手势 |
|---|---|
| 需求说不清、怕做错方向 | /st-sharpen |
| 要动多个文件、步骤容易漏 | /st-plan-loop |
| 想先定类型和模块形状再写 | /st-blueprint |
| 拿不准哪种做法好,想看几个版本 | /st-best-of-n |
写的时候
同分类对比
同一分类下 Star 最高的 5 个,便于横向比较。
| 插件 | 作者 | Star | 版本 | 更新 |
|---|---|---|---|---|
| archify | tt-a1i | 95.2K | 0.0.0 | 2026-11-10 |
| nuwa-skill | alchaincyf | 37.9K | 2.0.1 | 2026-11-10 |
| distilly | titanwings | 26.5K | 1.0.0 | 2026-10-13 |
| learn-harness-engineering | walkinglabs | 24.1K | 0.1.0 | 2026-10-22 |
| dsh-Go | ccch1mneyyy | 18.1K | 0.0.0 | 2026-11-10 |