dsh-go-rotator
by echo-xianyu
OpenCode Go 订阅 key 轮换器 —— 为 DeepSeek Harness(dsh)提供多 key 负载均衡、自动轮换与配额管理。
A plugin for DSH to swich opencode Go subscription
安装
dsh plugin --profile web add github:echo-xianyu/dsh-go-rotatorGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
OpenCode Go 订阅 key 轮换器 —— 为 DeepSeek Harness(dsh)提供多 key 负载均衡、自动轮换与配额管理。
✨ 特性
- 按请求路由 —— provider 通过
apiKeyEnv每请求解析活跃 key,多 key 自动分摊负载; - 自动轮换 —— 流以
RATE_LIMIT/QUOTA_EXCEEDED/AUTH/INVALID_CREDENTIAL错误终止时冷却当前 key 并切换(env 即时生效,错误原样上抛,内置 llm-retry 用新 key 无感重试); - 成本记账 —— 正常完成的流按 token 估算成本:滚动窗口(5h/周/月)入状态文件,长期账本(日/月/年)入统计文件;
- 配额看门狗 —— 定时抓取各 key 的 dashboard 真实配额(workspaceId + authCookie),越过阈值自动禁用该 key;
- Web 设置界面 —— dsh web 客户端设置页 + 独立 HTTP API(默认
http://localhost:7777),供外部工具读写同一状态; - 自包含 —— 全部数据落在插件安装目录的
data/下,配置永远不需要绝对路径。
📦 安装
# 1. 配置 provider 路由($DSH_HOME/settings.yaml)
# llm-pi-ai:
# providers:
# opencode-go:
# displayName: OpenCode Go
# api: openai-completions
# baseURL: https://opencode.ai/zen/go/v1
# apiKeyEnv: GO_ROTATOR_ACTIVE_KEY
# models: [ ...opencode-go 模型... ]
# 2. 安装插件(tarball / 本地目录均可)
dsh plugin --profile <profile> add ./dsh-go-rotator-0.2.0.tgz
# 或开发期直接引用源码目录:
# dsh plugin --profile <profile> add file:/path/to/dsh-go-rotator
# 3.(可选)把默认模型路由到 opencode-go
# $DSH_HOME/cordis.patch.yml:
# - id: agent-default-model
# config:
# provider: opencode-go
# model: deepseek-v4-flash
# 4. 运行 —— 活跃 key 由插件启动时自动同步到 env,无需手动导出
dsh --profile <profile> "hello"
需要 dsh ≥ 0.1.0-rc.6。Release 资产(tgz / 源码 zip / 校验和)见页面右侧 Releases。
⚙️ 配置
profile cordis.patch.yml 或 --patch 覆盖行 go-rotator:
| 键 | 默认 | 说明 |
|---|---|---|
stateFile |
<插件目录>/data/opencode-go-rotator.json |
状态文件(keys、冷却、轮换日志、用量窗口;支持 ~/ 与相对路径) |
statsFile |
状态文件中的 statsFile(默认 <插件目录>/data/opencode-go-rotator-stats.json) |
长期账本 |
apiKeyEnv |
GO_ROTATOR_ACTIVE_KEY |
provider 每请求解析的 env 引用 |
cooldownMinutes |
60 | 出错 key 的冷却分钟数 |
disableThresholdPercent |
97 | 配额使用率阈值,越过即禁用该 key |
rotateOnCodes |
RATE_LIMIT, QUOTA_EXCEEDED, AUTH, INVALID_CREDENTIAL |
触发轮换的 LlmError 码 |
rotateDebounceMs |
3000 | 并发失败时的轮换防抖 |
scrapeIntervalMs |
300000 | dashboard 配额抓取间隔;0 关闭 |
guiPort |
7777 | GUI/API 端口;0 关闭(被占用时自动 +1 回退) |
🔧 工作原理
| 环节 | 实现 |
|---|---|
| 路由 | llm-pi-ai: 段声明 opencode-go provider,apiKeyEnv 每请求经 credentials 解析活跃 key |
| 轮换 | 包装 llm/stream waterfall:错误终止 → 冷却当前 key → 轮换 → llm-retry 用新 key 自动重试 |
| 记账 | 滚动窗口(5h/周/月)入状态文件;长期账本(日/月/年)入统计文件;本地价格表按 token 估算 |
| 配额 | 定时抓取 dashboard 真实配额,越过 disableThresholdPercent 自动禁用 |
数据位置(首次运行全新初始化,不含任何旧路径探测或迁移逻辑):
| 文件 | 默认位置 |
|---|---|
| 状态文件 | <插件安装目录>/data/opencode-go-rotator.json |
| 长期账本 | <插件安装目录>/data/opencode-go-rotator-stats.json |
📝 注意事项
- 密钥只存于状态文件,插件不打印、不入日志;
data/目录不随 npm 包发布(已在.gitignore中排除)。 - 状态文件写入为原子操作(tmp + rename),多进程并发安全。
- GUI 由 dsh web 客户端的设置页提供;独立 HTTP API 默认监听
http://localhost:7777,供外部工具读写同一状态。
🤖 AIGC 声明
本项目部分代码与文档由 AI 辅助生成,并经过人工审查与测试。项目按 MIT 许可证开源,仅供学习与参考;使用者请自行评估代码的安全性与合规性。
🔗 相关插件
- dsh-chat-archive —— 聊天记录管理面板
- dsh-better-chat-history —— 会话 I/O 优化
📄 许可证
MIT © 2026 dsh-go-rotator contributors
原始 README: https://github.com/echo-xianyu/dsh-go-rotator/blob/main/README.md ↗
同类插件
查看全部 →
agent-vision-toolkit
为纯文本模型"看图“设计更好的视觉工具箱和技能,支持多图理解,图片问答,前端UI还原、GUI 自动化等,并可选无缝接入多个主流agent,直接识别粘贴图片| A vision toolkit and skill designed for text-only llms — image Q&A, long-screenshot OCR, frontend UI restoration, and GUI automation, with optional seamless integration for Codex, Claude Code, Pi, Oh My Pi, and OpenCode

api-relay-audit
从 DeepSeek Harness 对 AI API 中转站和 LLM 代理运行本地安全审计,生成 Markdown 报告,覆盖提示词注入、模型替换信号、工具调用改写、错误泄漏、流完整性和按 profile 启用的 Web3 风险。

OpenStory
✨ OpenStory 现已支持 DeepSeek Harness 插件! 现在可以通过 dsh-openstory 将 OpenStory 多智能体推演接入 DeepSeek Harness,让 agent 直接启动模拟、查看角色、下达指令并逐回合推进故事。查看 DSH 插件配置与使用指南。

phi
pi的编码代理 ∞ 提供者、子代理、hashline编辑和权限门

anysearch-dsh
DeepSeek Harness(DSH)的 AnySearch 网络搜索提供方与高级搜索工具。

codex-switch
Codex Switch 是一个 macOS 工具,一键配置 Codex 的自定义 API,同时保留官方 OpenAI 登录。保存后 Codex 的模型选择器里只会出现你选的那个 provider 的模型。也支持 Claude Code 的官方 / 自定义 API 切换。Codex Switch is a lightweight helper for configuring multiple coding-agent API routes. For Codex, it keeps Official OpenAI and a custom API provider configured in parallel, registers the custom model in Codex's mod