dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Seat-based multi-agent orchestration for DeepSeek Harness - a port of oh-my-opencode-slim (omo-slim) onto DSH native seams.
A seat-based multi-agent orchestration bundle for DeepSeek Harness (DSH).
It ports the agent design of oh-my-opencode-slim — the "omo-slim" pantheon of specialised agents — onto DSH's own seams: sessions, session projections, the tool runtime, and the subagent seam. Everything ships inside this bundle; no official package is modified.
Derived from: this project is an adaptation of oh-my-opencode-slim (by Boring Dystopia Development, MIT licensed). The seat roster, personas, routing model and skill set are ported from that project; the DSH-side integration is original. See Credits & License.
oh-my-opencode-slim's idea is simple: instead of forcing one model to do everything, route each part of the job to the agent best suited for it, balancing quality, speed and cost. This bundle implements that idea on DeepSeek Harness:
omo_dispatch tool, or applied to a session by the seat runtime. The official preset picker keeps showing only its own four modes.provider/model; when it does not, the seat's configured default applies; with neither, the lane inherits the parent session's current route.| Seat | Role | Tool policy |
|---|---|---|
orchestrator | Plans, delegates, reconciles and verifies | full (fs, search, shell, delegation) |
explorer | Read-only codebase recon + external research | read-only (no write/edit/shell) |
fixer | Bounded implementation of well-specified changes | fs + search + shell |
oracle | Architecture, risk, debugging strategy, review | read-only |
designer | UI/UX implementation and visual polish | fs + search + shell |
council | Multi-model consensus synthesis | zero tools (allow-list []) |
councillor | One independent, read-only council vote | read-only, no delegation |
observer | Visual analysis of images / PDFs / diagrams | read-only |
Tool policies are enforced at the execution layer, not just in the prompt: inherited tools are masked with tools.restrict(), and tools the session registered into its own scope are refused per call by a tools.guard() that reads the execution's tool name and re-checks the resolved definition. A tool registered after the seat landed is refused too.
The Orchestrator delegates through the omo_dispatch tool: one call = one isolated lane with the seat's persona, tool policy and model route. Independent lanes run in parallel, a lineage event records the relationship, and the parent receives the lane's final answer in a completion notice. The multi-model Council works the same way: councillor seats answer the same question on different models, then the zero-tool council seat synthesises the verdict.
Each seat can carry a dispatch-default model — the model a lane uses when the dispatch does not name one. Configuration is layered and explicit:
provider + model pair) — highest priority;<DSH_HOME>/omo/seat-models.json) with three states per seat: use the seat default, force inherit the parent route, or this exact route;<DSH_HOME>/omo/presets.json for user seats);The override file is re-read on every dispatch (saving applies to the next dispatch, not to running lanes), written atomically under a cross-process lock with per-entry compare-and-swap, and never silently flattened when corrupt. The Agent chip's Model button edits it through a small typed Remote (omoSeatModels) — no JSON editing required.
Twelve skills are ported from omo-slim (deepwork, codemap, verification-planning, reflect, ai-estimates, deanchor, step-back, simplify, worktrees, clonedeps, loop-engineering, and the oh-my-dsh meta-skill). Seats mount skill-filesystem + tool-skill, so every omo seat sees them in its skill catalog and loads them on demand.
omo_dispatch (tool) — dispatch one seat as a lane./preset [<seat-id>] — list the omo seats and official modes, or switch this session's seat.0.2.1-rc.2 or newer (CLI 0.2.0-rc.2 also works for the host side).@deepseek-ai/cordis, @deepseek-ai/dsh-llm, @deepseek-ai/dsh-tools, @deepseek-ai/dsh-subagent, @deepseek-ai/dsh-atomic-write, @deepseek-ai/dsh-typert-protocol, zod.plugin_manager → action: install_bundle → target: <absolute path to this directory>
or use the desktop GUI's Plugins page. The bundle's patch adds three rows:
command-preset — the /preset command;omo-dispatch — the seat table, the omo_dispatch tool, the omoSeats session projection and the seat runtime;omo-model-settings — the omoSeatModels Remote that backs the model editor.The patch also overrides the host's subagent-model-selection-settings row so the official subagent tool exposes routing parameters.
After installing, start a new session, open the Agent chip in the composer row, and pick a seat.
<DSH_HOME>/omo/presets.json and share the same /preset and chip surface.presets.json (user seats), while seat model preferences apply from the next dispatch without a restart.MIT. This project is a derivative work adapted from oh-my-opencode-slim, an OpenCode agent-orchestration plugin by Boring Dystopia Development (author: alvinunreal), released under the MIT License. The seat personas, routing philosophy and the twelve skills originate there. The DeepSeek Harness integration — seat runtime, tool-policy enforcement, session projections, the omoSeatModels Remote and the Agent chip — is written for this bundle.
The original MIT license notice is preserved in LICENSE.
oh-my-opencode-slim(omo-slim)的核心想法很简单:不要逼一个模型干所有事,而是把工作拆给最适合的 agent,在质量、速度与成本之间取平衡。本 bundle 把这一设计移植到 DeepSeek Harness(DSH):
omo_dispatch 工具派成隔离 lane,或由席位运行时叠加到当前会话。官方模式选择器始终只显示它自己的四个模式。provider/model;不传则用席位配置的默认模型;两者都没有时,lane 继承父会话当前的路由。| 席位 | 职责 | 工具策略 |
|---|---|---|
orchestrator | 规划、派发、整合、验证 | 全套(文件、搜索、shell、派发) |
explorer | 只读侦察代码库 + 外部调研 | 只读(无 write/edit/shell) |
fixer | 有界实现、规格明确的改动 | 文件 + 搜索 + shell |
oracle | 架构、风险、调试策略、审查 | 只读 |
designer | UI/UX 实现与视觉打磨 | 文件 + 搜索 + shell |
council | 多模型共识综合 | 零工具(allow-list []) |
councillor | 议会独立一票,只读 | 只读,禁派生 |
observer | 图像 / PDF / 图表视觉分析 | 只读 |
工具策略在执行层落实,不只是写在 prompt 里:继承来的工具被 tools.restrict() 掩掉;会话自身作用域注册的工具由 tools.guard() 在执行时按工具名拒绝,并重新检查实际会执行的定义——席位装好之后才注册的工具同样拦得住。
总管通过 omo_dispatch 工具派活:一次调用 = 一条隔离 lane,带席位人格、工具策略与模型路由。独立的 lane 并行跑,血缘事件记录归属,父会话会在 lane 结束时收到带正文的完成通知。多模型议会同理:议员席位用不同模型回答同一个问题,零工具的议会席位负责综合裁决。
每个席位可以配置一个派工默认模型——派发时没指定模型就用它。优先级明确分层:
provider + model 对)——最高;<DSH_HOME>/omo/seat-models.json),每席位三态:用席位默认 / 强制跟随父会话 / 指定具体路由;<DSH_HOME>/omo/presets.json 里的配置);覆盖文件每次派发都重读(保存后对下一次派发生效,不影响正在跑的 lane),写入走跨进程锁 + 原子替换 + 按条目 CAS,文件损坏时绝不悄悄抹空。Agent 芯片的「模型」按钮通过一个类型化 Remote(omoSeatModels)读写它——不需要手改 JSON。
从 omo-slim 移植了十二个技能(deepwork、codemap、verification-planning、reflect、ai-estimates、deanchor、step-back、simplify、worktrees、clonedeps、loop-engineering,以及改名后的 oh-my-dsh 元技能)。席位挂载 skill-filesystem + tool-skill,所以每个 omo 席位都能在技能目录里看到并按需加载。
omo_dispatch(工具)——把一个席位派成 lane。/preset [<席位 id>]——列出 omo 席位与官方模式,或切换当前会话的席位。0.2.1-rc.2 或更新(宿主半边在 CLI 0.2.0-rc.2 上也可用)。@deepseek-ai/cordis、@deepseek-ai/dsh-llm、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-subagent、@deepseek-ai/dsh-atomic-write、@deepseek-ai/dsh-typert-protocol、zod。plugin_manager → action: install_bundle → target: <本目录的绝对路径>
或使用桌面 GUI 的 Plugins 页面。bundle 的 patch 会加入三行:
command-preset——/preset 命令;omo-dispatch——席位表、omo_dispatch 工具、omoSeats 会话投影与席位运行时;omo-model-settings——为模型编辑器提供数据的 omoSeatModels Remote。patch 还会覆盖宿主的 subagent-model-selection-settings 行,让官方 subagent 工具暴露路由参数。
安装后新建会话,点输入框行的 Agent 芯片,选一个席位即可。
<DSH_HOME>/omo/presets.json,与出厂席位共用 /preset 和芯片入口。presets.json)改动需要重启宿主才生效;席位默认模型则在保存后的下一次派发生效,无需重启。MIT。 本项目是 oh-my-opencode-slim 的衍生改编——那是一个由 Boring Dystopia Development(作者 alvinunreal)以 MIT 协议发布的 OpenCode agent 编排插件。席位人格、路由理念与十二个技能源自该项目;DeepSeek Harness 侧的集成(席位运行时、工具策略执行、会话投影、omoSeatModels Remote 与 Agent 芯片)为本 bundle 原创。
原始 MIT 许可声明保留在 LICENSE 中。