GitHubEnglish
opencode-switchman · v0.2.0
01 / 12
← → / 滑动翻页 · 首尾循环
OPENCODE ORCHESTRATION PLUGIN

opencode-switchman

让主模型成为调度员 · 六档壳矩阵编排 · 确定性拦截 × 加权模型评分

动态壳矩阵 · desktop 可见模型 ↔ TUI favorites 6 档认知分层 6 闸确定性拦截 174 项行为 fixture 全供应商接入 · 三池额度控制
$ curl -fsSL https://raw.githubusercontent.com/mrzturn/opencode-switchman/main/scripts/setup.sh | bash$ npx -y opencode-switchman@latest
CORE VALUE / 核心价值

全自动模型矩阵 + 自主决策

= 让每一个 token 都花在最该花的地方,一个都不浪费

激活矩阵按 desktop 可见模型 / TUI favorites / 会话模型实时重建,六闸拦截与加权评分全自动执行——你只管决策,token 交给矩阵。

动态激活矩阵加权评分引擎配额感知选链探针 / 熔断 / 隔离自愈
PROBLEM / 多订阅并存的真实痛点

一个模型用到天荒地老,
其余订阅在账户里过期

同时持有 Copilot 积分、GLM Coding Plan、DeepSeek 余额,却总在水位盲飞、高峰全价硬扛。

PAIN_01

认知错配

旗舰模型干扫描清点的杂活,token 花在不该花的地方;轻量模型做架构设计,返工反而最贵

PAIN_02

水位盲飞

GLM 5 小时窗耗尽还在硬撞、Copilot 积分月底作废没花完、DeepSeek 余额见底才发现。

PAIN_03

单点视角

复审用同一个模型族自查,盲区相同,审不出问题。

PAIN_04

协议松弛

「让 XX 帮我看看」式委派无结构、无校验,子代理拿到的是含糊任务。

ARCHITECTURE / 三层编排

认知 · 执行 · 确定性,各司其职

LLM 负责认知决策,插件负责一切可以确定性计算的事——智能与规则正交分工

LAYER 01

认知层

COGNITIVE

主模型(调度员)+随包注入的调度员规程,做任务四维画像与委派决策。

  • 认知强度 × 机械度 × 上下文 × 紧急度
  • 自做 or 委派
  • 选档选壳,写 DELEGATION_V1
LAYER 02

执行层

EXECUTION

「模型 × 档位」空壳子代理,只绑模型与思考档位,角色由委派 prompt 动态赋予。

  • programmer / tester / reviewer… 14 角色
  • ro 壳=review 链只读
  • 视觉壳承接 image 任务
LAYER 03

确定性层

DETERMINISTIC

插件本体:零概率、纯规则,把调度员的每一步委派放在硬约束与可解释评分之内。

  • 六闸拦截 · ROUTE_META 硬校验
  • 能力分层加权评分
  • 探针 / 熔断 / 隔离自愈 · 四行横幅注入
THE MATRIX / 壳矩阵

动态空壳,按你实际使用的模型面激活

启动时 config 钩子把「模型 × 档位」壳矩阵注入 agent 注册表。desktop 可见模型与 TUI favorites 通过 mtime 仲裁双向同步;任一配置面变化都会立即触发全量探针重算,平时由 10 分钟周期保持自愈,无需人工维护

N×E
可见模型 × 声明档位
10min
探针周期 · TTL 600s
6×N
六档链 × 全供应商
sync
可见模型 ↔ favorites
壳名 = copilot/glm/ds -mx- 模型短名 -off|low|high|max
已探活 · 可派发未启用 / 降级中
DYNAMIC MATRIX · LIVE PROBE · SELF-HEALING
SIX LANES / 认知六档

Token 经济学第一性:返工是最贵的 token

按认知强度分六档,每档一条由插件按能力层级 / 档位适配 / 健康度 / 水位 / 成本 / 高峰窗口实时计算的最优壳链。

economy LANE_1

扫描清点

clerk / scouter 廉价扫档——上下文保护专用。

轻量模型 · low 档
mechanical LANE_2

回归与脚本

tester / ops 机械执行——高频、可验证。

轻量模型 · high 档
main LANE_3

主力交付

programmer / uiux / data-analyst 日常主力。

主力模型 · 常规档
hard LANE_4

架构核心

planner 承重设计——只给最强模型最高档。

旗舰模型 · max 档
vision LANE_5

视觉理解

observer 看图——image 任务专属视觉壳。

视觉模型 · 按需
review LANE_6 强制异族

审案复审

reviewer / 专家席——先删与产出者同 family 的壳,同族只算自审

review 链 · 只读壳
LIFECYCLE HOOKS / 四个钩子

钩入 opencode 生命周期的每一次心跳

四个钩子覆盖「启动注入 → 派发拦截 → 失败分类记账 → 每轮提示注入」全链路。

config

启动注入

opencode 启动即注入全量壳矩阵到 cfg.agent,同步完成全供应商凭证收集(auth 只读、零另存)。

tool.execute.before

派发拦截

task 工具执行前做六闸确定性校验,deny 时附原因+改派候选,主模型按链无缝改派。

event

失败分类

归一 rate_limit / quota / auth / not_found / server / network / unknown,触发 600s 熔断,并对实调失败做 10–30 分钟隔离。

system.transform

每轮注入

每轮 LLM 请求注入调度员规程+四行横幅;每次重建都把评分候选写入 routing-decisions.jsonl。

fail-open 铁律:任何钩子异常只写 stderr 绝不阻塞主流程;配额未知不硬拦,熔断器与探针互为兜底——插件永不成为单点故障。

SIX GATES / 六闸拦截

任一命中即 deny,并附改派候选

主模型派发子代理时,插件在 task 工具执行前做确定性校验——顺序即优先级。

01
注册表闸
壳未启用 / 未探测
deny → 禁派未注册面
02
探针 / 下线闸
组合 down 或模型 retired
deny → 拦不可用或已消失模型
03
熔断 / 隔离闸
600s 熔断或 10–30min 实调隔离
deny → 自动恢复且不污染全池
04
池耗尽闸
配额判定必失败
deny → 附人读原因(GLM 100% / 积分耗尽 / DS 欠费)
05
协议闸
ROUTE_META 缺失 / 非法
deny → 附样例与合法值表,自动纠偏
06
语义闸
同族复审 / rw→ro / 图像→非视觉壳
deny → 复审须异族视角 等语义约束
SCORING ENGINE / 自动化决策

选链不靠拍脑袋,靠显式加权评分

候选链由策展能力分与六个系数实时算出——主模型照链首派发,评分过程留痕可查。

🎯

能力层级不可逆S/A/B/C

策展 base 分按 exact → 前缀 → family → global fallback 命中。低档永远压不过高档,不因水位或成本反超。

📈

六因子系数weighted

分数 = base × effortFit × health × water × costBias × peak。探针 429 仅置 strained 降权,不再整链跳到其他厂商。

🧬

水位、成本、高峰有边界bounded

两类额度窗口取最吃紧者;Copilot 富余临期可反向提权;GLM 高峰仅同档 ×0.93 让位,不跨能力级出局。

🧾

决策可追溯jsonl

每次横幅重建都会把候选与因子分写入 200 行 routing-decisions.jsonl 环形日志;immediate 紧急档仍按探针延迟排序。

PROTOCOL / ROUTE_META 协议

一行协议,六键六值逐字段校验

DELEGATION_V1 · embedded
# 委派 prompt 内嵌单行协议(示例)
ROUTE_META {
  "lane":            "main",      // 六档之一
  "role":           "programmer", // 14 角色之一
  "producer_family": "glm",      // 真实模型族
  "capability":      "rw",         // rw | ro
  "modality":        "text",       // text | image
  "source":          "auto"        // auto | user
}
  • 协议闸逐字段校验——缺失或非法即 deny,报错附正确样例,主模型照抄即修复。
  • producer_family 硬约束——copilot / glm 是池不是族;复审时与壳 family 比对,落实异族审计。
  • 语义联动——lane=review 强制 ro 壳、modality=image 强制视觉壳、source=auto 禁选付费兜底。
  • 结构化委派——DELEGATION_V1 模板随包内置,委派 prompt 自包含、可缓存、可校验。
LIVE BANNER / 四行横幅

调度依据,每轮实时可见

system.transform 钩子每轮注入系统提示——调度员永远在最新事实之上做决策。

[路由]
economy: glm-53f-low→ds-v4fv-off | mechanical: glm-53f-high→ds-v4fv-off | main: ds-v4p-high | hard: ds-v4p-max …
[水位]
GLM 5h窗 23%7% (09-04 10:00刷新) | Copilot 积分不限量 已用3885 | 建议: 攻坚改glm、积分留给关键主力
[限制]
down: | retired: 0 模型已下线 | reviewer 须异族 (producer family ≠ 壳 family) | DeepSeek 仅链尾兜底
[更新]
发现新版本 执行 /switchman-update/switchman-ignore;local 模式只提示手动更新
SELF-HEALING / 自愈数据面

探针 · 熔断 · 隔离 · fail-open

数据面全部自动运行:探活、配额、计价、评分、失败分类与更新提示——无需任何人工干预。

🛰️

探针矩阵

对三大额度池发起真实请求探活。配置面变化立即全量刷新;10 分钟周期让临时故障自动进入降级链并自愈恢复。

model-matrix.json · probe/10min
🔥

分类 + 隔离

失败归一为 rate_limit / quota / auth / not_found / server / network / unknown。实调失败隔离 10–30 分钟;连续 3 次 404 自动下线模型。

routing.json · failures.log
⬆️

自更新路径

启动检查缓存 24h。prod 安装暴露 /switchman-update 静默升级并提示重启;/switchman-ignore 仅本会话有效,重启后恢复提示。

[更新] · commands
GET STARTED

多订阅者的高级玩法:
让每一分 token 都花在刀刃上

174 项行为契约 fixture 全绿兜底 · 全供应商即插即用 · glm / deepseek / copilot 额度控制

六档认知分层加权评分引擎决策可追溯失败隔离自更新命令
$ curl -fsSL https://raw.githubusercontent.com/mrzturn/opencode-switchman/main/scripts/setup.sh | bash$ npx -y opencode-switchman@latest