Plugin directory / Developer / dsh-codex-reasoning-router
dsh-codex-reasoning-router
Unverified chenmzh
What it does
DeepSeek Harness preset: Luna executes, tool-less Sol advises
Unverified — not yet verified
DeepSeek Harness preset: Luna executes, tool-less Sol advises Not yet verified — install and test it yourself.
“Unverified” means our automated CI has not yet installed this plugin. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
dsh-codex-reasoning-router
简体中文 | English | AI / LLM context
A composable multi-model Agent Team plugin for DeepSeek Harness (DSH). Version 0.2 no longer requires a dedicated preset: it layers onto Standard, Code, or a user-defined preset.
Default roles:
brain: tool-less deep reasoning, usingopenai-codex/gpt-5.6-solatmax.coordinator: tool-less decomposition and integration advice, using Sol athigh.worker: a real tool-capable DSH subagent, usinggpt-5.6-lunaatmax, with absolutemaxDepth: 2.agent_team_catalog: reads the current user's registered providers, models, and model-specific reasoning efforts.agent_team_run: runs any configured advisory or subagent role.
The legacy luna-sol-reasoning-router preset and durable sol_consult state machine remain available, but route locking is disabled by default.
Install
Install and authenticate the model provider first, then add this plugin:
pnpm dsh plugin --profile web add dsh-codex
pnpm dsh plugin --profile web add link:/absolute/path/to/dsh-codex-reasoning-router
Or install from GitHub:
pnpm dsh plugin --profile web add github:chenmzh/dsh-codex-reasoning-router
Restart DSH and create a new session. Since 0.2, no preset copy or preset switch is needed. Copy preset/luna-sol-reasoning-router only when enabling the legacy route-guard workflow.
Configuration
See cordis.patch.yml for the complete default:
teamEnabled: true
presetIds: [] # empty = all presets
roles:
- id: brain
kind: advisory # tool-less one-shot reasoning
description: Deep reasoning
provider: openai-codex
model: gpt-5.6-sol
reasoningEffort: max
maxTokens: 3000
- id: coordinator
kind: advisory
description: Coordinate work
provider: openai-codex
model: gpt-5.6-sol
reasoningEffort: high
- id: worker
kind: subagent # real DSH child inheriting the current preset
description: Implement and verify
provider: openai-codex
model: gpt-5.6-luna
reasoningEffort: max
subagentProvider: spawn
maxDepth: 2 # absolute: root=0, descendants=1,2,...
toolDeny: [web_search] # optional; toolAllow is also supported
Roles may be added, removed, or renamed. Role ids must begin with a lowercase letter and contain lowercase letters, digits, _, or -.
| Field | Meaning |
|---|---|
kind |
advisory is tool-less; subagent starts a real delegated agent |
provider / model |
Omit both to inherit the caller; explicit values must exist in the live user catalog |
reasoningEffort |
Omit for model/provider default; explicit values must be offered by that exact model |
systemPrompt |
Optional role persona |
subagentProvider |
spawn, fork, or another provider registered by the host |
maxDepth |
Absolute delegation-tree cap, not a relative remaining-depth count |
toolAllow / toolDeny |
Native DSH child tool visibility filters for subagent roles |
The plugin does not guess model capabilities. It reads ctx.llm.listProviders(), listModels(), and resolveModelInfo() at runtime. Invalid model/effort combinations fail before provider dispatch. agent_team_catalog exposes the same live directory to the agent.
Preset composition
With the default presetIds: [], select whichever preset you already want:
Standard preset + agent team
Code preset + agent team
custom preset + agent team
In-process children inherit their parent's preset composition, workspace, delegated policy, and tools. The role then applies its own route, effort, persona, optional tool filter, and depth cap.
To limit the plugin to selected presets:
presetIds: [standard, code, my-review-preset]
Legacy Luna + Sol router
Restore the 0.1 behavior with:
requiredPresetId: luna-sol-reasoning-router
lunaProvider: openai-codex
lunaModel: gpt-5.6-luna
solProvider: openai-codex
solModel: gpt-5.6-sol
initialSolReasoning: medium
escalatedSolReasoning: high
initialConsultEnabled: true
failOpen: true
Copy and select the shipped preset. The old mode still provides a tool-less Sol advisor, validates the Luna root route, limits one blocker to two successful consultations, and restores escalation from durable session events. The 0.2 default requiredPresetId: '' disables only the legacy guard, not Agent Team.
Safety and runtime boundaries
- Advisory requests have no tools. A returned tool call is rejected and never dispatched.
- Workers use the native DSH subagent runtime; the provider enforces
maxDepthon every start. - Tool filters are composition visibility, not a new security sandbox. DSH sandbox and approval policy remain authoritative.
- Explicit model and effort selections are validated exactly; there is no silent fallback or model rewrite.
- Child reasoning effort is installed with agent-scoped
installModelSelectionbefore the child request.
Development
pnpm install --offline
pnpm run check
pnpm pack --dry-run
The test suite covers both the legacy router invariants and the new live catalog, effort validation, tool-less advisory, worker route/effort, tool filter, and absolute-depth behavior.
License
Apache-2.0. See LICENSE.
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-codex-reasoning-router for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:chenmzh/dsh-codex-reasoning-router Headless (CLI) profile:
dsh plugin --profile headless add github:chenmzh/dsh-codex-reasoning-router Test report
Not yet L3-verified — see failure note below if we already ran it.
Note: No failure note yet — queued or not yet run. Browse all pending failures →