DeepSeek Harness 插件:接入火山方舟 Agent Plan 与 Coding Plan

前言

DeepSeek Harness(DSH)采用插件化架构,通过组合配置与 UI 注入扩展功能。在智能体开发中,直接对接火山方舟(Volcengine Ark)的 Agent Plan 与 Coding Plan 套餐需要额外的路由配置与额度管理。该插件通过在 llm-pi-ai 适配器中声明 Provider,并提供会话标题栏的额度 Pill 与模型管理页面,解决了原生 DSH 对 Ark 套餐支持不足的问题。

核心功能

该插件主要解决以下问题:
* 模型接入:在 DeepSeek Harness 的模型选择器中增加“火山方舟 Agent Plan”与“Coding Plan”两个 Provider。
* 额度追踪:在会话标题栏显示每条车道的额度用量与刷新时间,避免跑满后才发现。
* 精细控制:在设置页逐条启用或停用模型,隐藏不需要的模型。

安装与启用

安装插件后,需要重启对应的 profile(Web 端不能同时起两个实例)。

dsh plugin --profile web add github:HaydenSmith1121/dsh-ark-plans

重启后,依次完成以下步骤:
1. 打开 设置 → 模型,你会看到新增的两个 Provider 行。
2. 点击对应行的 API Key 输入框,粘贴套餐的 API Key。
3. 回到对话页,在模型选择器中选择方舟模型即可使用。

注意:API Key 会存储在 $DSH_HOME/.credentials.yaml 的顶层 refs: 下,键名为配置中声明的引用名(如 ARK_AGENT_PLAN_API_KEY)。如果启动 harness 的环境变量中存在同名变量,它会覆盖页面填写的值(页面会显示只读)。

额度显示机制

会话标题栏右侧会出现一个 Pill,每条车道一格,显示进度条与已用百分比。

数据来源:
额度数据不在 OpenAI 兼容接口的 /usage 或 /quota 路径中(实测返回 404)。真正的额度由控制面提供,插件通过 arkcli 在本地建立的身份(STS 或 AK-SK 签名)调用控制面接口获取。

状态处理:
插件不会编造数字,当无法获取额度时会显示具体原因:
* expired:arkcli 的 SSO 凭证已过期,需运行 arkcli auth login volc-sso。
* no-identity:未找到 arkcli 身份。
* not-subscribed:该账号下车道没有生效订阅。
* error:控制面签名被拒绝。

在未登录 arkcli 时,插件仍可正常调用模型,只是额度 Pill 显示“不可用”并说明原因。

模型管理(启用/停用)

插件 0.3.0 版本新增了设置页面的模型管理功能。通过 设置 → 模型管理,可以勾选或取消勾选模型。

工作原理:
* 取消勾选会将模型 ID 从 dsh-ark-plans.enabledModelIds 中移除。
* 插件会在 llm-pi-ai.providers 的配置中动态调整模型清单,从而在模型选择器中隐藏这些模型。
* 保存按钮只在有改动时可点;写入失败会原地显示原因,不会回滚勾选状态。

边界情况:
* 空清单代表“全开”(恢复默认),而非“全关”。
* 恢复全选必须列出完整的模型清单,因为 pi-ai 的 models 字段是整表替换,不允许为空。

模型清单与自定义

Agent Plan 车道:
该车道不支持模型发现接口,插件内置了 12 个已验证模型 ID。这些 ID 是通过真实请求探测确认的,包括:
ark-code-latest, doubao-seed-evolving, doubao-seed-2-1-turbo, doubao-seed-2-0-lite, doubao-seed-2-0-mini, glm-5.3, glm-5-3-flash, kimi-k3, kimi-k2.7-code, minimax-m3, deepseek-v4-pro, deepseek-v4-flash。

Coding Plan 车道:
插件仅内置了官方文档中的智能路由模型 ark-code-latest。如果需要添加其他模型,可以使用 arkcli plans model-list --plan coding-plan 获取权威清单,并在 设置 → 模型 中手动编辑该 Provider 的 models 列表。

自定义模型:
你可以在 settings.yaml 中手动追加模型清单,这会整表替换该 Provider 的配置。注意,手动修改后若再点击“保存”,会以页面勾选状态为准。

已知限制

  1. 不支持图片输入:所有模型条目未声明 input: [text, image],输入图片会被 provider 拒绝。
  2. 不提供思考强度调节:虽然模型返回 reasoning_content,但插件未声明 reasoningEfforts,因此选择器中无法调整思考强度,模型按默认强度运行。
  3. Provider 删除限制:由于 pi-ai 的设计,组合层声明的 Provider(如 ark-agent-plan)用户无法通过设置页删除,只能通过卸载插件移除。
  4. 与 arkcli 冲突:arkcli helper configure deepseek-harness 与本插件会各自写入配置,路由名不同(如 arkcli-agent-plan vs ark-agent-plan),需注意不要混淆。

总结

该插件为 DeepSeek Harness 提供了火山方舟 Agent Plan 与 Coding Plan 的完整接入方案。它利用官方 llm-pi-ai 适配器支持流式、工具调用与重试策略,并通过 arkcli 实现了准确的额度监控。对于需要使用火山方舟模型进行智能体开发的用户,这是一个必要的配置补充。

查看插件目录页
查看 GitHub 源码

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye