按需加载工具与提示词,压缩模型输入而不减能力
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 20genesis14-sys/dsh-max-compact该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
- 读取本地文件lib/dsh/files.js:20
info = statSync(file.path) - 读取本地文件lib/dsh/files.js:30
const next = readFileSync(file.path, 'utf8') - 读取本地文件lib/dsh/ponytail-skills.js:60
for (const ent of readdirSync(dir, { withFileTypes: true })) { - 读取本地文件lib/dsh/ponytail-skills.js:65
skill = parseSkill(readFileSync(path, 'utf8'))
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 插件:用懒加载工具面(mc_discover)压缩模型输入,带人格影子的部署级提示词层,外加智能体预设编排器。适用于 DSH 0.2.x。
README
由 DeepSeek 最新模型翻译生成dsh-max-compact
为 DeepSeek Harness(DSH >= 0.2)压缩模型输入:缩小模型看到的内容——工具定义、提示词段落、预设组合——但不缩小部署能做的事。
五个机制,一个插件——全部由配置控制(ponytail 自带一个可退出的 lite 默认值;其余机制在配置前都不生效):
1. 懒加载工具面。 大多数工具藏在 mc_discover 后面:模型只看到一小块常驻工具面(fs + shell + messaging),其余工具按需激活——这是 dsh-ops 的发现模式,推广到了每个插件的工具,而不只是一个目录。
2. 可编辑提示词层 + 人格影子。 部署方拥有一个追加在系统提示词末尾的段落——可以是内联文本、外部 prompt.md 风格文件(每步重读,按 mtime 缓存),或命名配置档——外加一个按智能体生效的 deployment:persona-prefix 覆盖项,它会遮蔽预设的人格行所声明的内容,而不改动预设本身。
3. 预设组合器。 agentPresets.list() 列出全部预设——官方的、外来的、托管的。readDocument + register 可以把任意预设克隆到新 id 下,并逐行设置 disabled 开关(这是 dsh-custom-mode 的能力,但适用于所有预设,因为外来声明只读但可克隆)。
展开完整文档(README 剩余 1 节)
dsh-max-compact
为 DeepSeek Harness(DSH >= 0.2)压缩模型输入:缩小模型看到的内容——工具定义、提示词段落、预设组合——但不缩小部署能做的事。
五个机制,一个插件——全部由配置控制(ponytail 自带一个可退出的 lite 默认值;其余机制在配置前都不生效):
1. 懒加载工具面。 大多数工具藏在 mc_discover 后面:模型只看到一小块常驻工具面(fs + shell + messaging),其余工具按需激活——这是 dsh-ops 的发现模式,推广到了每个插件的工具,而不只是一个目录。
2. 可编辑提示词层 + 人格影子。 部署方拥有一个追加在系统提示词末尾的段落——可以是内联文本、外部 prompt.md 风格文件(每步重读,按 mtime 缓存),或命名配置档——外加一个按智能体生效的 deployment:persona-prefix 覆盖项,它会遮蔽预设的人格行所声明的内容,而不改动预设本身。
3. 预设组合器。 agentPresets.list() 列出全部预设——官方的、外来的、托管的。readDocument + register 可以把任意预设克隆到新 id 下,并逐行设置 disabled 开关(这是 dsh-custom-mode 的能力,但适用于所有预设,因为外来声明只读但可克隆)。
4. 托管提示词段落。 /mc section 把隐藏/遮蔽/裁剪规则固定到命名提示词段落上,按智能体限定作用域(all | subagents | 预设 id);assemble 瀑布流每步都会应用这些规则,与懒加载开关无关。
5. Ponytail 极简代码模式。 一个基线冻结的 maxcompact:ponytail 段落按会话渲染,而 /mc pt 的切换以带标签的 <system-reminder> 消息随行——提示词前缀永不重新哈希。内置的 review/audit/debt 技能走宿主的 skills.registerProvider 接缝。
一切都做能力探测:缺少某个接缝时,对应功能会被禁用,并在 /mc status 里如实显示一行,绝不崩溃。
安装
npm install dsh-max-compact
or straight from GitHub:
npm install github:20genesis14-sys/dsh-max-compact
or add the plugin directory to the profile's plugin list
这个包挂载一行全局配置(id: max-compact)——刻意不放在预设里,这样每个机制都能覆盖每个智能体和每个预设,包括外来的。默认配置下只有 ponytail 的 lite 基线生效(其余都不生效);ponytailDefault: off 或 /mc pt default off 也能把它关掉。
命令
/mc # status: seams, lazy stats, layer, persona, presets
/mc lazy on|off # enable/disable the compact surface
/mc lazy keep|hide|default <tool> # adjust the resident/lazy policy
/mc lazy release <tool> | reset # re-mask activated tool(s) on this session
/mc lazy list # hidden vs activated for this session
/mc sections # last assembled system-prompt sections (chars each)
/mc prompt # 显示当前生效的层 /mc prompt set <text...> # 内联层文本 /mc prompt file <path|off> # 外部提示词文件(每步重新读取) /mc prompt clear # 从提示词中移除该层 /mc prompt profile save|use|rm|list # 命名层配置档 /mc persona set <text...> | off # 按智能体设置人格影子 /mc persona scope all|subagents|<id> # 把影子限定到被委派/选中的智能体 /mc prompt scope all|subagents|<id> # 用同样方式限定提示词层 /mc section # 受管区块列表 /mc section diet # 一次性应用整套推荐配置 /mc section hide <name>[,<name>…] [scope] # 移除区块(瀑布式,按作用域) /mc section set <name> <text...> # 影子:在智能体自身作用域内替换文本 /mc section trim <name> <keep…> # 只保留包含指定子串的行 /mc section scope <name> all|subagents|<id>[,<id>…] # 重新指定受管规则的作用域 /mc section off <name>|all [mode] [scope] # 释放规则——原始内容恢复 /mc presets # 名册:外部 + 受管,含损坏项 /mc preset show <id> # 行树,带 [disabled]/[group] 标记 /mc preset clone <src> <newId> [name] # 克隆任意预设 -> 受管 /mc preset toggle <id> <row> [on|off] # 翻转某一行的 disabled 标记,重新注册 /mc preset rm <id> # 卸载并遗忘受管预设 /mc pt # ponytail 状态:基线、生效值、接缝 /mc pt lite|full|ultra|off # 切换当前会话(只提醒,不触发缓存未命中) /mc pt default <mode> # 为新会话持久化基线 /mc pt skills # 提供给模型目录的内置技能
/mc 的输出还会落到展开的对话记录卡片和一个浮动结果面板上(随包提供的 client/ Web 端),所以在全新会话的主界面上依然可见。
内置技能(skills/ 目录,MIT 许可,来自 @wenaixi/dsh-ponytail):ponytail-review(审查 diff 中的过度设计)、ponytail-audit(整个仓库)、ponytail-debt(ponytail: 标记台账)。模型按名称调用 skill 工具,你也可以直接调用某个技能。
把 stop ponytail 或 normal mode 作为整条消息发送,同样会关闭该会话的 ponytail。
会话内模型可以使用 mc_discover:
mc_discover({query: "web"}) -> "Selected web_search, web_fetch. They become
callable on the next model step; nothing was executed."
工作原理
惰性表面(lib/dsh/lazy-tools.js、lib/core/lazy-catalog.js)
- agent.ctx.tools.register 把 mc_discover 放进智能体自己的层——限制永远不覆盖自身层的注册,所以激活路径永远不会把自己屏蔽掉。它的 disposer 放在 ownLifts 里,与 reconcile 每次重算时抬起的限制掩码分开。
- agent.ctx.tools.restrict({deny}) 按智能体屏蔽懒加载集合。对账遵循官方工具隐藏纪律:公开面快照 diff 防止发布反馈循环,重算前先解除全部屏蔽,计划失败则不隐藏任何工具,deny 只对作用域内或未知名称收窄(restrict 抛错并点名违规者——该工具如实报告为不可屏蔽,而不是悄悄保留)。
- 激活项排入 pending,在下一个步骤边界提交(agent/pre-step,session/event 的 step/end 作为兜底)——步骤中途重新发布会令在途请求的工具列表失效。已激活工具在智能体生命周期内保持可见(/mc lazy release <tool> 或 reset 会重新屏蔽它们)。
- 以 exec.agent 为键的全局 ctx.tools.guard(exec => …) 会拒绝隐藏工具的执行,即使来自对话历史;激活会自动解除拒绝。
- 保留优先于隐藏,隐藏优先于默认懒加载;run_code 与自有工具永不隐藏(保留传输层与自有层注册在 restrict 中抛错)。
- 懒加载开启时,maxcompact:lazy-hint 段(顺序 10501)告知模型有多少工具被隐藏,并提示调用 mc_discover;没有工具被屏蔽时该段渲染为空——自动消失。
段落卫生(lib/dsh/lazy-prompt.js)
一个全局 system-prompt/assemble 监听器(context.scope = 正在组装的智能体)丢弃记录当前被屏蔽工具的段落——tools:workflow 及其同类在对应工具懒加载时不再消耗 token。瀑布流无法改写 complete 段(宿主会还原它);这一限制如实记录,不做绕行。/mc sections 可查看最近一次组装结果。
托管段落(lib/core/managed-sections.js、lib/dsh/section-shadow.js)
按命名段落固定三种模式,与懒加载开关无关:
- hide — 瀑布流对匹配的智能体丢弃该段落。这是唯一能作用于智能体作用域贡献的模式(shadow 会在同一层冲突)。
- shadow — 在智能体自身作用域注册同名段落替换原段落(更深层按名称胜出,即宿主自带的 persona 机制)。顺序自愈:瀑布流记录原段落位置,shadow 一旦出现就重新注册到该位置。
- trim — 含保留子串的行存活;这是唯一对动态段落安全的模式(tier-routing 显示实时层级标签——静态 shadow 会冻结过期值,因此 set 拒绝 NO_SHADOW 列表中的名称)。
作用域遵循 matchesScope:all(默认)| subagents | 预设 id。没有 session.meta 的智能体(旧版宿主)只匹配 all。多条规则可指向同一名称——对匹配的智能体 hide 优先于 shadow,因此「对所有智能体 shadow + 对子代理 hide」会压缩父级、对子级丢弃该段落。trim 的模式若匹配不到任何内容,则保留原文——写错的规则必须退化为「不变」,绝不「静默删除」。规则保留在设置文档里,执行 /mc section off 后立即解除。
提示词层(lib/core/prompt-layer.js、lib/dsh/files.js)
maxcompact:layer 段(order 10500,排在 deployment:persona-prefix 和后缀之后)负责解析每次组装:文件 > 活动配置档 > 内联。每一步都通过 mtime/size 缓存重新读取文件——外部改动会在下一次模型调用时生效,无需重新加载。
人格影子(lib/dsh/persona.js)
deployment:persona-prefix(order 0)注册在智能体自身作用域中,会遮蔽预设的人格行——同名段跨层遮蔽(重名只会在同一层内冲突)。默认关闭;/mc persona set/off 会刷新每个活跃智能体。
Ponytail 极简代码模式(lib/core/ponytail.js、lib/dsh/ponytail.js)
一个全局 maxcompact:ponytail 段(order 50)只渲染在 agent/created 时锁定的基线——会话中途执行 /mc pt 切换,绝不会重新哈希提示词前缀。模式变更以一条带标签的 <system-reminder> 用户消息传递,追加在 agent/pre-step 瀑布上(重试会按标签替换它)。整条消息为 stop ponytail / normal mode 时,会关闭该会话。默认解析顺序:PONYTAIL_DEFAULT_MODE 环境变量 → ponytailDefault 字段 → lite。内置的 skills/ 目录通过 skills.registerProvider 注册;maxcompact:ponytail 被列入托管段的拒绝名单(NO_MANAGE)。
预设组装器(lib/core/presets.js、lib/dsh/preset-registry.js)
- agentPresets.list() —— 列出所有已声明的预设,包括 broken 诊断信息。
- readDocument(id) —— 完整的组合 YAML,用 !!js → {__jsExpr} 模式解析,让宿主求值的谓词在克隆后原样保留。
- 克隆会注册到新 id 下(绝不触碰外部声明);保留 group/isolate 结构,让服务行保持各自的领域;相对 ./x.mjs 说明符会变成绝对 file:// URL。
- 开关 = 在该行上设 disabled: true + 销毁/重新注册(重复 id 会抛错——先销毁)。新会话会采用新修订;运行中的会话保留其已持有的代际。 这是平台的修订保留设计,不是本插件的限制。
- 托管规格通过易失的 managedPresets 字段和设置文档(命名空间 max-compact)持久化——克隆在重启后依然存在。
配置
所有字段都是易失的(可在 WebUI 编辑,通过设置文档持久化):
| 字段 | 默认值 | 含义 |
| lazyEnabled | false | 紧凑界面的总开关 |
| lazyKeep | [] | 额外保持常驻的工具名 |
| lazyHide | [] | 强制惰性的工具名(优先于 keep) |
| lazyHideSections | [] | 惰性开启时从组装中过滤掉的段名 |
| customPrompt | '' | 内联层文本 |
| customPromptFile | '' | 外部提示词文件路径 |
| promptProfiles | {} | {name: text} 命名层 |
| activePromptProfile | '' | 选中的配置档 |
| customPersona | '' | 人格影子文本 |
| layerPresets | [] | 层作用域:[] 表示全部,[':subagent'] 表示仅委派,也可填预设 id |
| personaPresets | [] | 人格作用域,取值词汇相同 |
| managedSections | [] | [{name, mode, text?, keep?, scope?}] 隐藏/影子/裁剪规则;多条规则可在不同作用域下指向同一名称(隐藏优先于影子) |
| managedPresets | [] | 克隆出的预设规格 |
| ponytailDefault | 未设置 | 新会话的 Ponytail 基线 —— PONYTAIL_DEFAULT_MODE 环境变量优先;回退到 lite |
已知限制
- 预览 API。 agentPresets、tools.restrict/guard、 system-prompt/assemble 都是预览接口 —— 全部探测过;缺少接缝只会让功能降级,不会崩溃。
- 全局行仍能添加工具。 配置档级全局插件挂载在任何预设之上 —— 没有预设或掩码能拦住它们自己那层的添加,所以 /mc lazy list 报告的是宿主实际展示的内容,不是理想计数。
- 外部预设只读。 readDocument 是「仅供查看」—— 想定制就在新 id 下克隆;原预设永远不会被原地修改。
- complete 段无法被 assemble 瀑布改写 —— 包括 complete 人格。人格影子改用带名称的前缀段,分层机制确实会遮蔽它。
- 影子会冻结静态文本。 每步解析实时状态的段(tier-routing 的层级标签)属于 trim,不属于 set —— NO_SHADOW 拒绝列表会强制这一点。智能体作用域的贡献(由宿主按智能体注册,例如 context:file-reference)会与同一层的影子冲突 —— 这类请用 hide。
- 修订保留。 预设开关只影响新会话;运行中的会话保持它们挂载时的版本。
开发 sh
npm test # 88 tests — pure core + mocked-ctx smoke
npm run check # node --check every lib file
npm run pack:check # npm pack --dry-run
lib/core/ 是纯逻辑(不导入 DSH,不做 I/O);lib/dsh/ 是唯一知道 DSH 存在的地方;lib/index.js 把两者接起来。每个智能体的状态放在以智能体对象为键的 WeakMap 里 —— 绝不用会话 id 字符串。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
20genesis14-sys/dsh-max-compact
按需加载工具与提示词,压缩模型输入而不减能力
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1
这是你的仓库?认领条目