Plugin directory / Developer / dsh-llm-volcengine
dsh-llm-volcengine
Unverified Badakonpro
What it does
为 DeepSeek Harness (DSH) 接入火山方舟 Agent Plan 与 Coding Plan 的插件,思考强度(low/medium/high/xhigh/max)兼容性已实测验证
Unverified — not yet verified
为 DeepSeek Harness (DSH) 接入火山方舟 Agent Plan 与 Coding Plan 的插件,思考强度(low/medium/high/xhigh/max)兼容性已实测验证 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-llm-volcengine
Volcengine Ark Agent Plan and Coding Plan providers for DeepSeek Harness (DSH), with verified thinking-effort compatibility.
A DSH profile bundle that registers two LLM provider routes through a self-contained pi-ai-backed LlmAdapter, so model catalogs and compatibility switches reach pi-ai without depending on the dsh-llm-pi-ai settings compat schema. Thinking levels low / medium / high / xhigh / max are exposed where the endpoint honors them.
Why
A hand-declared Volcengine Ark route in settings.yaml runs into several gotchas that this bundle resolves once and for all:
| Gotcha | What breaks | This bundle |
|---|---|---|
Agent Plan must be reached over openai-responses at /api/plan/v3 |
The Anthropic-style /api/plan path does not expose a thinking-effort control |
Uses the community-verified Responses path; reasoning.effort maps natively |
Coding Plan gateway rejects the OpenAI developer role (HTTP 400) |
Every request with a system prompt fails once reasoning is enabled | compat.supportsDeveloperRole: false on every Coding Plan model |
Coding Plan gateway rejects store and needs max_tokens (not max_completion_tokens) |
Mis-shaped requests are 400'd | compat.supportsStore: false, maxTokensField: "max_tokens" |
Per-model maxTokens differs (DeepSeek 384000, GLM 128000, Kimi 32000, …) |
A single cap breaks some models or underuses others | Each model carries its verified cap |
The gateway's OutofContextError wording is not in pi-ai's overflow detection |
Long conversations crash instead of auto-compacting | (downstream — see release notes) |
Install
From the root of a DSH profile (e.g. ~/.dsh/profiles/web):
dsh plugin --profile web add dsh-llm-volcengine
Then restart DSH (or reload the profile) so the new bundle layer is composed. The two providers appear in the model selectors as:
volcengine-plan/<model>volcengine-coding/<model>
Credentials
The bundle resolves an API key by trying each candidate credential reference (left to right) through the DSH credential service, then Ambient environment:
| Route | Tried order (default) |
|---|---|
volcengine-plan |
ARK_AGENT_PLAN_API_KEY, VOLCENGINE_ARK_PLAN_API_KEY, ARK_CODE_API_KEY |
volcengine-coding |
ARK_CODING_PLAN_API_KEY, VOLCENGINE_CODING_API_KEY, HUOSHAN_API_KEY |
Store a key through the web Models page (it writes the DSH credential store) or export the env var. If you already have ARK_CODE_API_KEY / HUOSHAN_API_KEY configured, the bundles pick them up as fallbacks.
Override the first tried reference per route through the bundle config in cordis.patch.yml:
- id: llm-volcengine
name: dsh-llm-volcengine
config:
agentPlanApiKeyEnv: ARK_AGENT_PLAN_API_KEY
codingPlanApiKeyEnv: ARK_CODING_PLAN_API_KEY
defaultReasoning: high
defaultReasoning is one of off | minimal | low | medium | high | xhigh | max (default: high).
Provider routes
volcengine-plan — Volcengine Ark Agent Plan
- Endpoint:
https://ark.cn-beijing.volces.com/api/plan/v3 - Protocol:
openai-responsesfor most models;openai-completionsfor Kimi K2.6 / K2.7 Code (mixed-api provider) reasoning.effortmaps to the selected thinking level
| Model ID | Context | Max tokens | Input | Thinking tiers |
|---|---|---|---|---|
deepseek-v4-pro |
1.0M | 384000 | text | low·medium·high·xhigh·max |
deepseek-v4-flash |
1.0M | 384000 | text | low·medium·high·xhigh·max |
glm-5.2 |
1.0M | 128000 | text | low·medium·high·xhigh·max |
glm-5.3 |
1.0M | 128000 | text | low·medium·high·xhigh·max |
kimi-k3 |
1.0M | 128000 | text, image | low·high·max |
minimax-m2.7 |
200k | 128000 | text | low·medium·high·xhigh·max |
minimax-m3 |
512k | 128000 | text, image | low·medium·high·xhigh·max |
doubao-seed-2.0-mini |
256k | 128000 | text, image | low·medium·high·xhigh·max |
doubao-seed-2.0-lite |
256k | 128000 | text, image | low·medium·high·xhigh·max |
doubao-seed-2.0-code |
256k | 128000 | text, image | low·medium·high·xhigh·max |
doubao-seed-2.0-pro |
256k | 128000 | text, image | low·medium·high·xhigh·max |
kimi-k2.6 |
256k | 32000 | text, image | off·high |
kimi-k2.7-code |
256k | 32000 | text, image | high |
volcengine-coding — Volcengine Ark Coding Plan
- Endpoint:
https://ark.cn-beijing.volces.com/api/coding/v3 - Protocol:
openai-completionswithsupportsDeveloperRole: false,supportsStore: false,supportsStrictMode: false,maxTokensField: "max_tokens" - DeepSeek/GLM accept
reasoning_effort; Kimi uses theqwenenable_thinkingtoggle; MiniMax/Doubao-seed-code expose no thinking control (reasoning is auto-captured)
| Model ID | Context | Max tokens | Input | Thinking tiers |
|---|---|---|---|---|
deepseek-v4-pro |
1.0M | 384000 | text | low·medium·high·xhigh·max |
deepseek-v4-flash |
1.0M | 384000 | text | low·medium·high·xhigh·max |
glm-5.2 |
1.0M | 128000 | text | low·medium·high·xhigh·max |
glm-5.3 |
1.0M | 128000 | text | low·medium·high·xhigh·max |
kimi-k2.6 |
256k | 32000 | text, image | off·high |
kimi-k2.7-code |
256k | 32000 | text, image | high |
minimax-m2.7 |
200k | 128000 | text | — |
minimax-m3 |
512k | 128000 | text, image | — |
doubao-seed-code |
256k | 32000 | text, image | — |
doubao-seed-2.0-code |
256k | 65536 | text, image | low·medium·high·xhigh·max |
doubao-seed-2.0-pro |
256k | 128000 | text, image | low·medium·high·xhigh·max |
doubao-seed-2.0-lite |
256k | 128000 | text, image | low·medium·high·xhigh·max |
How it works
The bundle inserts a single plugin row (id: llm-volcengine). On apply it:
- Builds two pi-ai
Providerobjects directly withcreateProvider, passing the fullcompatblock on eachModel. Because the models are constructed in code (not throughdsh-llm-pi-aisettings resolution), the compat fields the Coding Plan gateway requires reach pi-ai regardless of the installeddsh-llm-pi-aicompat schema. - Wraps them in the exported
PiAiAdapterfrom@deepseek-ai/dsh-llm-pi-ai, which already implements the harnessLlmAdaptercontract (stream/resolveModel/listModels) and thinking-level clamping against each model'sthinkingLevelMap. - Registers the adapter for both routes with
ctx.llm.registerAdapter, so the providers join the model selectors and request routing like any built-in route.
Agent Plan models share a mixed-api provider (one createProvider with an api map) so Kimi K2.6/K2.7 Code dispatch to openai-completions while the rest use openai-responses.
Acknowledgements
Model catalogs, max output tokens, and compatibility switches are sourced from the community-verified Volcengine Ark provider extensions for pi:
pi-provider-volcengine-agent-plan— the Agent Plan Responses path, tier gating, and Kimi routing decisions.pi-provider-volcengine-codingplan— the Coding Plan compat switches and model caps.pi-provider-volcengine-ark— per-model thinking formats for the coding endpoint.
This bundle adapts those compat findings to the DeepSeek Harness LLM seam.
License
MIT
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-llm-volcengine 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:Badakonpro/dsh-llm-volcengine Headless (CLI) profile:
dsh plugin --profile headless add github:Badakonpro/dsh-llm-volcengine Test report
Not yet L3-verified — see failure note below if we already ran it.