Back to home

Badakonpro

dsh-llm-volcengine

为 DeepSeek Harness (DSH) 接入火山方舟 Agent Plan 与 Coding Plan 的插件,思考强度(low/medium/high/xhigh/max)兼容性已实测验证

Stars
1
Language
JavaScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-llm-volcengine

npm version MIT License

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:

GotchaWhat breaksThis bundle
Agent Plan must be reached over openai-responses at /api/plan/v3The Anthropic-style /api/plan path does not expose a thinking-effort controlUses 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 enabledcompat.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'dcompat.supportsStore: false, maxTokensField: "max_tokens"
Per-model maxTokens differs (DeepSeek 384000, GLM 128000, Kimi 32000, …)A single cap breaks some models or underuses othersEach model carries its verified cap
The gateway's OutofContextError wording is not in pi-ai's overflow detectionLong 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:

RouteTried order (default)
volcengine-planARK_AGENT_PLAN_API_KEY, VOLCENGINE_ARK_PLAN_API_KEY, ARK_CODE_API_KEY
volcengine-codingARK_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-responses for most models; openai-completions for Kimi K2.6 / K2.7 Code (mixed-api provider)
  • reasoning.effort maps to the selected thinking level
Model IDContextMax tokensInputThinking tiers
deepseek-v4-pro1.0M384000textlow·medium·high·xhigh·max
deepseek-v4-flash1.0M384000textlow·medium·high·xhigh·max
glm-5.21.0M128000textlow·medium·high·xhigh·max
glm-5.31.0M128000textlow·medium·high·xhigh·max
kimi-k31.0M128000text, imagelow·high·max
minimax-m2.7200k128000textlow·medium·high·xhigh·max
minimax-m3512k128000text, imagelow·medium·high·xhigh·max
doubao-seed-2.0-mini256k128000text, imagelow·medium·high·xhigh·max
doubao-seed-2.0-lite256k128000text, imagelow·medium·high·xhigh·max
doubao-seed-2.0-code256k128000text, imagelow·medium·high·xhigh·max
doubao-seed-2.0-pro256k128000text, imagelow·medium·high·xhigh·max
kimi-k2.6256k32000text, imageoff·high
kimi-k2.7-code256k32000text, imagehigh

volcengine-coding — Volcengine Ark Coding Plan

  • Endpoint: https://ark.cn-beijing.volces.com/api/coding/v3
  • Protocol: openai-completions with supportsDeveloperRole: false, supportsStore: false, supportsStrictMode: false, maxTokensField: "max_tokens"
  • DeepSeek/GLM accept reasoning_effort; Kimi uses the qwen enable_thinking toggle; MiniMax/Doubao-seed-code expose no thinking control (reasoning is auto-captured)
Model IDContextMax tokensInputThinking tiers
deepseek-v4-pro1.0M384000textlow·medium·high·xhigh·max
deepseek-v4-flash1.0M384000textlow·medium·high·xhigh·max
glm-5.21.0M128000textlow·medium·high·xhigh·max
glm-5.31.0M128000textlow·medium·high·xhigh·max
kimi-k2.6256k32000text, imageoff·high
kimi-k2.7-code256k32000text, imagehigh
minimax-m2.7200k128000text
minimax-m3512k128000text, image
doubao-seed-code256k32000text, image
doubao-seed-2.0-code256k65536text, imagelow·medium·high·xhigh·max
doubao-seed-2.0-pro256k128000text, imagelow·medium·high·xhigh·max
doubao-seed-2.0-lite256k128000text, imagelow·medium·high·xhigh·max

How it works

The bundle inserts a single plugin row (id: llm-volcengine). On apply it:

  1. Builds two pi-ai Provider objects directly with createProvider, passing the full compat block on each Model. Because the models are constructed in code (not through dsh-llm-pi-ai settings resolution), the compat fields the Coding Plan gateway requires reach pi-ai regardless of the installed dsh-llm-pi-ai compat schema.
  2. Wraps them in the exported PiAiAdapter from @deepseek-ai/dsh-llm-pi-ai, which already implements the harness LlmAdapter contract (stream/resolveModel/listModels) and thinking-level clamping against each model's thinkingLevelMap.
  3. 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:

This bundle adapts those compat findings to the DeepSeek Harness LLM seam.

License

MIT