OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:shenzhantu/dsh-subagent-model
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DSH (DeepSeek Harness) 子代理模型插件。
DSH 官方默认情况下,主 agent 调用的 subagent 继承主 agent 的同一个模型:你用旗舰模型当主 agent,委派出去的检索、整理、审计等杂活也全走旗舰模型——既慢又贵,纯属资源浪费。
本插件把两件事拆开:
/model 命令),本插件完全不碰。provider / model / 推理强度(全局生效)。一句话:主模型干主活,子代理走你指定的(更便宜/更专用的)模型。
modelDirectories),厂商/模型/推理强度列表与官方菜单完全同步,只加载一次。$DSH_HOME/.agent-presets/),因此它们同时出现在本插件菜单与 DSH 设置页的「自定义」分组里,改名 / 编辑 / 删除任一处都会同步到另一处。delegate_subagent 工具:主 agent 用它委派任务时,子代理真正运行在配置的模型与档位上,并在子代理树中以 [provider/model·强度|档位] 标签显示实际配置。支持前台等待、后台启动(run_in_background)与 fork 继承上下文(fork)。delegate_subagent 委派独立任务,并在结束后汇报所用模型与档位。官方机制里子代理强制"认父"继承主 agent 的预设;本插件通过官方公开的 per-child 组合缝(request.persona 人格影子段 + request.toolFilter 工具裁剪)近似实现"给子代理换预设":
菜单里的档位列表与「设置 → Agent 预设」同源同序(都来自 ctx.agentPresets.list()):
插件首次启动时(幂等,只写一次),把两个手调档位以真实用户预设形式写入 $DSH_HOME/.agent-presets/quick/ 与 $DSH_HOME/.agent-presets/research/(preset.yml + agent.cordis.yml),之后它们就是普通用户预设:
agentPresets.list() 名单,所以任何一处的改名 / 编辑 / 删除都会同步反映到另一处;$DSH_HOME/data/dsh-subagent-model/seeded-presets.json 删掉再重启即可(会重新写入缺失的预置档位)。预设档位的人格文本取自该预设自身(agent.cordis.yml 的 persona 行),所以你在设置里编辑人格后,委派出去的子代理也会用新人格。已知工具面的预设(如 极简模式 → bash + str_replace_editor、轻量执行、只读研究)还会裁剪工具。工具名与实际注册不符时委派不会失败:插件自动降级为仅人格并在结果中提示修正。
composer 工具栏(输入框底部):
[+] ──────────── ... ── [子代理 kimi-for-coding off ▾] [deepseek-chat ▾] [➤发送]
↑ 本插件 ↑ 官方模型菜单
本插件菜单
├─ 子代理模型 kimi-for-coding › (厂商分组的二级列表)
├─ 推理强度 关闭 › (所选模型公布的强度)
└─ 子代理档位 极简 › (内置 / Agent 预设 / 自定义 三组)
DSH 插件以 npm 包形式挂载到 web profile:
# 1. 放置本包(任意路径,例如)
git clone <this-repo> /root/DSH_exe/dsh-subagent-model
# 2. 在 web profile 的 package.json 中声明依赖与 bundle
# /root/.dsh/profiles/web/package.json
{
"dependencies": {
"dsh-subagent-model": "link:/root/DSH_exe/dsh-subagent-model"
},
"dsh": {
"profile": {
"bundles": [
"...",
"dsh-subagent-model"
]
}
}
}
# 3. 建立 link(或用 pnpm 安装)
ln -s /root/DSH_exe/dsh-subagent-model /root/.dsh/profiles/web/node_modules/dsh-subagent-model
# 4. 重启 dsh-web 并硬刷新浏览器(Ctrl+Shift+R)
systemctl restart dsh-web
delegate_subagent 委派的子代理都运行在该模型与档位上;子代理树标签 [provider/model·强度|档位] 可直接核对。$DSH_HOME/data/dsh-subagent-model/config.json(默认 ~/.dsh/data/dsh-subagent-model/config.json):{
"sub": {
"provider": "kimi-coding",
"model": "kimi-for-coding",
"reasoningEffort": "off",
"profile": "minimal"
}
}
reasoningEffort 可省略 = 使用该模型的适配器默认推理强度。profile 可省略或 inherit = 与主 agent 相同的人格与工具面;取值为 preset:<预设id>(与 Agent 预设同源,含插件预置的 preset:quick / preset:research)。dsh-model-manager 的配置会在首次启动时自动迁移;旧版存储的 quick / research 档位 id 也会自动迁移为 preset:quick / preset:research。| 部件 | 说明 |
|---|---|
浏览器端 client.js |
在 conversation.input.right(官方模型席位左侧)注册「子代理模型」席位;UI 移植自官方 dsh-client-ui-model-selection(同一套 CSS token 与图标);模型目录复用 modelDirectories 共享存储;选择写入宿主路由而非 session.selectModel,因此绝不会改动当前会话主模型。 |
宿主端 index.js |
提供 GET /dsh-subagent-model/state(档位清单直接来自 agentPresets.list(),与设置页同源;首次启动把 轻量执行/只读研究 种子化为用户预设)、POST /dsh-subagent-model/sub 配置路由;注册 delegate_subagent 工具(ctx.subagents.start + agentOptions.{provider,model,reasoningEffort} + request.{persona,toolFilter} 档位组合,未知工具名自动降级);注入委派策略 prompt 段。 |
| 互斥逻辑 | 两个菜单都用「document 级 mousedown 外点关闭」,天然形成"或"关系,无合成事件。 |
subagents / tools / systemPrompt / webServer 服务。dsh-client-ui-model-selection(官方 web app 默认包含)。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: subagent、subagents。