feat(providers): add Volcengine Ark (火山引擎) / BytePlus as built-in provider - #66266
feat(providers): add Volcengine Ark (火山引擎) / BytePlus as built-in provider#66266fuleinist wants to merge 1 commit into
Conversation
tonydwb
left a comment
There was a problem hiding this comment.
Code Review Summary
Verdict: Approved (LGTM)
Overview
Adds Volcengine Ark (火山引擎) / BytePlus as a built-in provider. +199/0, 4 files.
Security
- No hardcoded secrets or credentials
Code Quality
- Clean provider integration
- Proper API key/credential handling for the new provider
Looks Good
- Well-scoped provider addition
- Consistent with existing provider patterns
Reviewed by Hermes Agent
|
Glad to see continued interest in getting Ark support landed — and the BytePlus/International endpoint is a genuinely useful addition. That said, this PR needs an attribution fix before it goes further: This diff is my patch from #52836, opened 2026-06-26 and closed 2026-07-15 by the automated sweeper (appeal pending in that thread). Apart from the BytePlus layer — the @fuleinist you commented "+1 on this" on #52836, so you know the provenance — but this PR's single commit carries only your authorship, with no
I have no objection to this PR carrying the work forward with that fixed — shipping the feature matters more than who opens the PR, and the BytePlus extension is a real improvement. One heads-up for maintainers: #52836 was closed under the |
…vider
Adds Volcengine Ark (火山引擎) — ByteDance's unified AI model platform —
as a first-class built-in provider. Users can discover and configure it
directly from Settings → Providers.
What's included:
plugins/model-providers/volcengine-ark/__init__.py:
- ProviderProfile subclass with hardcoded model list (11 models)
- Anthropic-compatible /api/coding endpoint via api_mode="anthropic_messages"
- Overrides fetch_models() to return the maintained text-model list
- Aliases: ark, volcengine, volcano, bytedance, byteplus
- Supports both China mainland (volces.com) and International/BytePlus
(bytepluses.com) endpoints
- default_aux_model=doubao-seed-2.0-lite (cheapest caching model)
agent/agent_runtime_helpers.py:
- Anthropic prompt-caching enablement for Ark's /api/coding endpoint
- Matches on provider id (volcengine-ark, ark, volcengine, byteplus)
or host (ark.cn-beijing.volces.com, ark.ap-southeast.bytepluses.com)
- Same class and fix as MiniMax's allowlist — native Anthropic layout
tests/run_agent/test_anthropic_prompt_cache_policy.py:
- TestVolcengineArkAnthropicWire: 6 test cases covering provider id,
short alias, BytePlus alias, custom provider host match (both regions),
and OpenAI-wire exclusion
Co-authored-by: david-bowiegxw <834563048@qq.com>
Closes NousResearch#29331, NousResearch#40195, NousResearch#51319
3a30fff to
82f1e3c
Compare
|
@david-bowiegxw — thank you for the call-out, I've fixed both issues:
The diff now shows the correct author email (noreply.github.com) and the Co-authored-by trailer. Apologies for the oversight — the BytePlus extension was the delta I should have highlighted from the start, and I should have carried the attribution forward when branching from your work. |
|
Thanks for carrying forward the Ark work, adding the BytePlus endpoint, and preserving the prior contributor attribution. This automated hermes-sweeper review is closing this under the standing
Please consider publishing the provider as a standalone plugin repository and sharing it in Closed as not-planned per standing maintainer policy ( |
Summary
Adds Volcengine Ark (火山引擎) / BytePlus — ByteDance's unified AI model platform — as a first-class built-in provider. Users can discover and configure it directly from Settings → Providers.
What's included
plugins/model-providers/volcengine-ark/__init__.py— ProviderProfile subclass + plugin.yaml manifest/api/codingendpoint viaapi_mode="anthropic_messages"fetch_models()to return the maintained text-model list (11 models) — Ark's/modelsendpoint returns 124+ stale model IDsark,volcengine,volcano,bytedance,byteplusark.cn-beijing.volces.com) and International/BytePlus (ark.ap-southeast.bytepluses.com) endpointsdefault_aux_model="doubao-seed-2.0-lite"— cheapest model that caches at the lowest prefix threshold (~4k)agent/agent_runtime_helpers.py— Prompt-caching enablementArk serves non-Claude model families (deepseek-v4, glm-5.2, doubao-seed, kimi-k2, minimax-m3), so the blanket
is_claudegate excluded them → 0% cache hits, re-billing the full prefix every turn. This adds an explicit Ark allowlist branch (provider id / host) returning native Anthropic layout — same class and fix as MiniMax's allowlist.tests/run_agent/test_anthropic_prompt_cache_policy.py— Test coverageTestVolcengineArkAnthropicWire: 6 test cases covering provider id, short alias, BytePlus alias, custom provider host match (both regions), and OpenAI-wire exclusionRelated issues
Closes #29331 — feat: add Volcengine (火山引擎) as built-in provider
Closes #40195 — Feature Request: Add official ByteDance / BytePlus ModelArk provider
Closes #51319 — Feature Request: 新增豆包 (Doubao/Volcano Engine) 作为原生 Provider
Provenance
This PR builds on #52836 (feat: add Volcengine Ark (火山引擎) as built-in provider by @david-bowiegxw), with the BytePlus (international) endpoint support added on top. The commit carries
Co-authored-by: david-bowiegxw <834563048@qq.com>.Notes