前言¶
在 DeepSeek Harness(DSH)里跑智能体时,模型通常通过各家的 provider 插件注册到内核。若上游是 LightVela 这类 OpenAI 兼容网关,自己写 HTTP 转发、处理 SSE、对齐 StreamChunk 格式,还要在 401、429、402 时换 key,工作量不小。社区插件 dsh-lightvela(维护者 bob868335-rgb)走 Magpie 式接入:自包含注册 provider、自动发现模型、流式转发,并支持多 API key 失败自动切换。分类为「模型推理」,适合已在 DSH 生态里、希望把 LightVela 当统一模型入口的开发者。
这是什么¶
dsh-lightvela 把 LightVela 的 OpenAI 兼容 API 接到 DSH 的 ctx.llm.registerAdapter 契约上,不直接依赖 @deepseek-ai/* 包,内核换版时由结构化契约承接。安装并重载后,模型选择器会出现独立的 LightVela 分组(provider 名固定为 lightvela,不混进 Magpie 组)。当前 package 版本为 0.2.0,许可证 MIT。
核心功能¶
下面按 README 已写明的能力归纳,不超出资料范围。
多 key 账号池与切换¶
配置 accounts 时可指定 failover(默认)或 round-robin。仅在响应码阶段换号(尚未输出 chunk),避免半截流重复。常见上游响应与处理如下:
| 上游响应 | 处理 |
|---|---|
| 402 / quota / 额度类 | 该号冷却后换下一个 |
| 429 | 按 retry-after 或 rateLimitCooldownMs 冷却后换号 |
| 401 / 403 | 熔断后换号 |
| 网络错误 / 5xx | 短暂冷却后换号 |
| 400 等请求错误 | 不换号,直接报错 |
全部不可用时报 NO_ACCOUNT。
模型发现与流式转发¶
对 GET {baseURL}/models 拉目录,支持白名单与 fallbackModels;发现失败可沿用上一次有效目录。对话走 POST {baseURL}/chat/completions,SSE 转为 DSH StreamChunk,包含 reasoning_content、tool_calls、usage。maxTokens 同时约束单次 max_tokens 与默认输出上限(积分感知)。
用量工具¶
注册工具 lightvela_usage,读取上游 billing 路由汇报已用额度与账号状态。资料注明:上游只提供「已用」,剩余积分需在 LightVela 控制台「套餐与费用」查看。
安装与启用¶
插件以当前 dsh 进程权限运行;安装前建议浏览仓库源码与 LICENSE。官方安装方式有三种(均需指定 profile):
# 方式一:直接从本仓库
dsh plugin --profile <你的profile> add github:bob868335-rgb/dsh-lightvela
# 方式二:下载 Release 里的 tarball
# https://github.com/bob868335-rgb/dsh-lightvela/releases
dsh plugin --profile <你的profile> add file:/绝对路径/dsh-lightvela-0.2.0.tgz
# 方式三:本地目录
dsh plugin --profile <你的profile> add link:/绝对路径/dsh-lightvela
装完后重载一次或重启 dsh,即可在模型选择器中看到 LightVela 分组。
典型配置¶
配置写在 cordis.patch.yml 的 config 块,或用 dsh 配置编辑器修改。
单账号¶
config:
baseURL: https://token.lightvela.com/v1
apiKeyRef: LIGHTVELA_API_KEY # 或直接 apiKey: 'sk-...'
maxTokens: 8192
models: [auto]
多账号自动切换¶
config:
baseURL: https://token.lightvela.com/v1
accounts:
- label: 主账号
apiKey: 'sk-aaaa'
- label: 备用账号
apiKey: 'sk-bbbb'
- label: 环境变量里的号
apiKeyRef: LIGHTVELA_BACKUP_KEY
strategy: failover # failover(默认)| round-robin
rateLimitCooldownMs: 60000
quotaCooldownMs: 1800000
配置了非空 accounts 后,顶层 apiKey / apiKeyRef 会被忽略。
API key 优先级(高到低):config.apiKey 或 accounts[].apiKey → credentials 里 apiKeyRef → 环境变量 apiKeyRef(如 LIGHTVELA_API_KEY)。仓库不含真实 key,patch 里仅为占位引用。
模型选择与子代理¶
/v1/models 常见项包括 auto、deepseek-v4-pro-202606 等。auto 为路由器,由网关决定实际模型,资料说明其没有触发模型级 60 RPM 限制;deepseek-v4-pro-202606 有模型级 60 RPM,密集调用可能 429。
子代理若要使用 LightVela,需在 profile 的 subagent-model-selection-settings.allowedModels 中增加例如:
- provider: lightvela
model: auto
推理模型可按需配置 reasoningEfforts、defaultReasoningEffort。
适用场景与注意¶
适合:已在 DSH 中开发智能体,希望通过 LightVela 统一对接 OpenAI 兼容模型,且需要多 key 容灾、自动模型目录与标准流式语义的场景。
注意:
- DSH 插件生态以「一切皆插件」为理念;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。
- 流空闲上限等可调字段见 README 配置表(如
streamIdleTimeoutMs默认300000)。
结尾¶
dsh-lightvela 把 LightVela 网关以零内核耦合方式纳入 DSH,补齐多账号切换、模型发现、SSE 转 StreamChunk 与用量查询工具,减少自研 provider 的重复劳动。