Sabi
按轮次为编码智能体选择模型、推理强度与供应商,把强模型留给真正需要的回合。
- 源仓库
- vizuh/sabi
- Star 数
- ★ 17
- 最近更新
- 26 天前
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 77/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配OpenAI API · Claude APICodex · Claude Code(部分支持)
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 使用 Claude Code 或 Codex 订阅、希望在探索和验证回合自动降档、只在失败或恢复时才用强模型的个人开发者。
- 不适合
- 需要在不支持的主机或自研 harness 中零改造接入的团队
- 期望拿到通用省钱或质量提升承诺的团队
- 需要完全离线、不调用任何托管模型的环境
- 源码审查
- 77/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
Sabi 是位于编码 harness 与模型之间的路由层,自身不是智能体框架,也不接管 harness 的循环、工具、权限、历史和审批。它通过适配器读取工具调用、工具结果、失败、上下文压力、能力声明和供应商状态等轨迹证据,在每一轮推理或任务切换处决定使用 cheap、mid 还是 strong 档位。产品分为两族:推理适配器(Command Code 进程内 mod、本地 OpenAI 兼容代理)和控制器适配器(通过 hooks 在 Claude Code、Codex、OpenCode、Orca 等宿主间执行 continue/delegate/spawn)。安装通过 npm 全局包 @vizuh/sabi-controller 完成,sabi serve 在本地 http://127.0.0.1:8787/v1 起代理,sabi setup 以用户级作用域安装 hooks 与守护进程。每轮记录路由回执,说明计划的档位、实际服务的模型以及差异原因,并在 /dashboard 上展示免费通道命中率、成本、延迟和按模型健康度。项目采用 MIT 许可,Node.js 版本要求 ≥22。
Sabi 接受宿主事件或 HTTP 请求(POST /v1/chat/completions、POST /v1/messages、POST /v1/responses),先用确定性策略对当前轮次分类(exploration、implementation、verification、failure、stuck/context-pressure、transport、capability、output-capacity),再施加能力与传输层面的硬性约束,选出 cheap/mid/strong 档位;仅在代理路径遇到模糊轮次时,才调用可选的 Jev 判官在合法候选中做语义判断,超时或无效回答回退到确定性策略。它支持 auth: passthrough 借用宿主凭据,只重写请求的 model 字段并按帧转发流式响应;遇到 401、402/403、429 或缺 key 时按类型处理(跳过、记住 6 小时、本轮换档或返回 502 并指明变量名)。代理会在 /dashboard 展示最近 24h/48h/7 天的免费通道命中率、往返恢复数、成本与延迟,并支持 sabi surplus review 在只读影子通道上用零成本固定车道做 QA,回执只保存哈希与计数。守护进程每天最多检查一次 registry 更新并缓存结果,sabi updates 和 sabi upgrade 负责预检与升级。
- 使用 Claude Code 或 Codex 订阅、希望在探索和验证回合自动降档、只在失败或恢复时才用强模型的个人开发者。
- 需要把 OpenRouter、Ollama 等自有凭据接入任意支持 baseURL 的 OpenAI 兼容客户端的团队。
- 在 Command Code 中希望按轮切换模型和原生推理强度、且不引入额外供应商密钥的用户。
- 想用本地仪表盘观察每轮成本、延迟、免费通道命中率和回退次数,以便做预算评估的工程负责人。
- 在 Claude Code、Codex、OpenCode、Orca 之间通过 hooks 继续、委派或派生有界任务的维护者。
- 希望在不改动主工作内容的前提下,用零成本车道对已跟踪 diff 做只读影子 QA 的团队。
如何安装或部署这个 Agent?
Sabi 以用户级作用域安装,无需按 worktree 安装。需要 Node.js ≥22 与 npm。
npm install --global @vizuh/sabi-controller
sabi setup
sabi doctor
sabi servesabi serve 启动本地代理 http://127.0.0.1:8787/v1。只想安装守护进程而不改宿主配置时使用:
sabi setup --no-hooks需要 Command Code 原生按轮切换模型与推理强度时,单独安装 mod(无需 Sabi 供应商密钥):
cmd mods add -g npm:@vizuh/sabi-commandcode
cmd mods list若要让宿主 AI 代为安装,可先挂载技能:
npx skills add vizuh/sabi --skill sabi如何使用这个 Agent?
代理路径需要你在配置中声明上游与档位模型,并自行提供 OpenRouter、Ollama 等凭据。启用零价质量车道可设置 OPENROUTER_API_KEY 后执行:
sabi setup --free-quality借用宿主自有凭据时,把 harness 的 baseURL 指向 Sabi 即可,Sabi 不读取也不落盘任何凭据:
ANTHROPIC_BASE_URL=http://127.0.0.1:8787 claude{
"upstreams": { "anthropic": { "baseURL": "https://api.anthropic.com", "auth": "passthrough" } },
"models": { "cheap": { "upstream": "anthropic", "model": "claude-haiku-4-5" },
"mid": { "upstream": "anthropic", "model": "claude-sonnet-4-5" },
"strong": { "upstream": "anthropic", "model": "claude-opus-4-1" } },
"passthrough": { "alias": "sabi-code" }
}打开 http://127.0.0.1:8787/dashboard 查看路由回执与成本;影子 QA 与升级检查:
sabi surplus inventory
sabi surplus review --intent=bug-hunt
sabi updates --check
sabi upgrade这个 Agent 有哪些优点和局限?
- 以轮为粒度而非以请求为粒度决策:README 给出失败→强档、恢复→强档、验证通过→中档的逐轮示例表。
- 明确区分两类边界(推理路由与控制器交接),并声明不用 hook 安装冒充原生模型切换、不用目录条目冒充套餐权益。
- 借用认证路径下 Sabi 不持有、不写盘任何凭据,出站目标仅为宿主本会调用的厂商。
- 按拒绝类型分派回退策略:缺 key 返回命名变量的 502 且不外泄值,402/403 记忆 6 小时,429 跳过同配额池。
- 本地 /dashboard 与路由回执把计划档位、实际服务模型和差异原因都摊开,成本与延迟可核对。
- MIT 许可,提供 CLI、本地 OpenAI 兼容代理、Command Code mod 与多宿主 hooks 多种接入形态。
- README 明确表示尚未给出通用省钱承诺,示例中的 71.7% 降幅只是基于固定费率的分配估算,不是质量或成本结论。
- 原生推理强度切换只在 Command Code 的 mod 路径可用;代理路径仅做模型与供应商路由。
- hooks 安装不等于在既有原生会话内切换模型,Claude Code 与 Codex 的控制器能力限于 continue/delegate/spawn。
- 代理路径需要自行准备 OpenRouter、Ollama 等供应商凭据并按配置声明档位,接入成本高于一键安装。
- README 标注部分费率为 2026-09-18 核对,使用前需重新核对,且示例忽略缓存折扣、最低消费与重试。
- 证据分层(源码测试、协议测试、live smoke、完成任务评测)表明多数适配器的最高层证据仍需自行核实。
这个 Agent 与同类方案有什么区别?
README 将 Sabi 与“固定路由器”对比:固定路由器依据单次请求一次性决定整轮任务的模型,而 Sabi 依据已发生的轨迹逐轮决策。README 也指出,固定使用单一 mid 模型的成本约 $0.0242,低于其示例中的自适应组合 $0.0605,说明 Sabi 的目标是把强档容量留给有证据支撑的回合,而非在每类任务上都更便宜。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Sabi 当前 | 77 · 表现良好 | 命令行工具免费 + 模型费 | ★ 17 | 26 天前 | TypeScript | OpenAI API · Claude API |
| Pilotfish 多模型編排層 | 81 · 表现良好 | Agent 插件 / 技能免费 + 模型费 | ★ 710 | 17 天前 | Python | Claude Code |
| Klaat Code | 61 · 存在缺口 | 命令行工具免费版 + 付费版 | ★ 353 | 1 个月前 | TypeScript | — |
| Pi Dynamic Workflows | 88 · 表现良好 | Agent 插件 / 技能免费 + 模型费 | ★ 556 | 20 天前 | TypeScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示项目对安全边界有罕见的坦诚:docs/security.md 明确承认推理代理无凭证认证、仅做 origin 检查,控制器守护进程使用 256 位 bearer token 与 timingSafeEqual,日志采用 allowlist 与 0600/0700 权限,安装流程要求先说明将改动的文件并取得确认,connect 脚本对付费上游默认拒绝(非交互默认 free)。扣分点:least_privilege 上代理仍可被同机任意进程调用并消耗付费额度,且 SABI_HOST 可绑定非 loopback;external_effects 上存在真实第三方出网(OpenRouter、TypeSafe Jev 判定器)与终端 dispatch 路径,虽有修复但影响面依赖外部宿主未确认;sensitive_data_handling 上密钥仅靠文件权限、无静态加密,saveOpenRouterKey 存在 TOCTOU 窗口;dependency_security 上根 package.json 零运行时依赖、CI 只读权限,但未见锁文件审计或依赖扫描证据;rollback 有备份与卸载说明但缺少统一回滚脚本;source_attribution 有 MIT 与作者署名,但发布者身份未经 FollowAgents 验证。
self_consistency 上文档与代码大体一致,安全审查还记录了自身修复被后续合并推翻并更正的过程,但 README 与 install 文档在 controller 包是否含代理服务器上表述略有出入(README 称 sabi serve 可用,install 称 controller 包不含代理服务器),属轻微不一致;dependency_availability 上要求 Node 22.6+、npm 全局包与多个可选宿主,外部依赖(OpenRouter、TypeSafe、Hermes、Command Code)可用性不在仓库控制内;failure_messages 上表现突出,文档给出 ECONNREFUSED、403 MODEL_NOT_IN_PLAN、400 模态不支持、配置缺失列出全部搜索路径等具体错误与修复建议,故给 3。
audience_and_scenarios 覆盖 Command Code、OpenCode、Hermes、Claude Code、Codex、Orca 等多宿主并区分原生与代理路径,给 3;capability_boundaries 明确区分 Class A/B、hook 不等于模型切换、目录上架不等于套餐权限,给 3;trigger_precision 上路由规则表清晰(exploration→cheap、failure→strong 等),但 Jev 判定器触发条件与歧义判定细节分散在多处文档,且部分行为依赖宿主信号,给 2;environment_fit 上默认 loopback、支持 WSL/容器但明确警告非 loopback 绑定风险,Windows 上 POSIX 权限位不适用,给 2。
information_architecture 有清晰仓库地图、多语言 README、llms.txt 与分层文档,给 3;install_notes 区分用户级安装、维护者 checkout、各宿主命令与完成检查,给 3;naming_stability 上别名 sabi-code/sabi-cheap 等稳定,但包名 @vizuh/sabi 与 @vizuh/sabi-controller 双线并存、版本标签 controller-v* 与 v* 分离,易混淆,给 2;examples_and_faq 有 60 秒心智模型、轮次表、成本估算示例与故障排查表,给 3;known_limitations 极为充分,专设 decisions 与 security 文档列出非主张与开放缺口,给 3;license 为 MIT 全文,给 3;versioning_changelog 有 controller-v0.1.8 等版本提及与发布工作流,但未见独立 CHANGELOG 文件,给 2;maintenance_responsibility 有 SECURITY.md 报告渠道与维护者契约,但发布者身份未验证、0.x 预稳定,给 2。
output_usability 上代理返回 OpenAI 兼容响应并把 model 字段改写回别名,决策日志与 report/dashboard 可读,给 2(未见完整输出样例的端到端证据);marginal_value 上自适应分层路由相对固定 mid 的收益作者自己承认不保证,成本估算示例显示相对 all-strong 节省但相对 all-mid 更贵,价值主张有条件,给 2;cost_benefit 上有透明费率示例与 judge 开销单列,但明确不声称普遍节省、未提供完成任务的成本/质量测量,给 2。
claim_traceability 上 README 的每条主张多能对应到 docs/security.md、docs/install.md、安全审查记录与测试文件,且标注验证日期,给 3;cross_source_corroboration 上安全审查与 security.md 相互印证,但审查本身由项目方执行、部分结论(如 Orca 宿主可达性)明确未独立确认,外部独立佐证缺失,给 2;fact_inference_separation 上文档反复区分事实层(源码/测试/协议测试/实机冒烟/完成任务评估)与推断,并明确 mock 成功不等于节省,给 3。
- 推理代理默认无凭证认证,仅做 Host/Origin 回环检查;同机任意进程可消耗已配置的付费额度,切勿将 SABI_HOST 绑定到非 loopback 地址。
- Jev 判定器会把 last_instruction 与工具结果摘录发送到 api.typesafe.ai;若不需要第三方出网,请显式设置 judge.enabled: false。
- 发布者身份未经 FollowAgents 验证,且项目处于 0.x 预稳定阶段,升级前应核对版本与变更。
- 安全审查由项目方自行执行,部分结论(如 Orca dispatch 的宿主可达性)明确未独立确认,不应视为第三方审计。
- 密钥仅靠文件权限保护、无静态加密,saveOpenRouterKey 存在 TOCTOU 窗口;共享主机上需谨慎。