# @benchrouter/cli 中文文档

规范地址：https://npmcn.com/package/%40benchrouter/cli/

版本：0\.2\.42
npm 元数据更新时间：2026-11-03T19:41:35.080Z
中文译文更新时间：2026-11-07T22:14:24.592Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40benchrouter/cli
原文对照：https://npmcn.com/package/%40benchrouter/cli/?lang=original
项目主页：https://github.com/BenchRouter/cli#readme
源码仓库：https://github.com/BenchRouter/cli

弃用说明：Moved to benchrouter\. Run: npx --yes benchrouter@latest

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：409 kB，24 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=22
- 运行依赖：1 个
- 首次发布：2026-08-05T19:55:34.475Z
- 最新版本发布：2026-10-30T10:14:31.193Z
- 近 30 天下载量：2848（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：35（近 12 个月 35 个）

## 中文简介

Beach-Router 的命令行界面

## 安装

```sh
npm install @benchrouter/cli
```

也可以使用：`pnpm add @benchrouter/cli`、`yarn add @benchrouter/cli`、`bun add @benchrouter/cli`

## README

# 座椅路透号CLI

使用终端的座椅路特。 CLI 初始化一个存储器,检查其 集成,升级生成的工具包,并读取路由证据.

软件包是 `@benchrouter/cli`安装 `benchrouter` 命令.

```bash
npx @benchrouter/cli --help
```

## 连接数据砖

安装 Databricks CLI 并使用 OAuth 工作空间登录 :

```bash
benchrouter login
databricks auth login --host https://<workspace>.cloud.databricks.com
benchrouter databricks connect \
  --host https://<workspace>.cloud.databricks.com \
  --catalog workspace --schema <schema> --warehouse <warehouse-id>
```

一个用户OAuth登录(U2M)和一个服务主OAuth登录(M2M)都是 已支持。 对 M2M , 配置 Databricks CLI 与管理员服务主 客户身份和客户秘密 连接将证书读入内存并获取 工作空间中的访问符。 当登录少于 还有五分钟 客户端的秘密和登录标志 从来没有到达Benach Router.

Connect在Benach Router账户中需要一个所有者或管理者角色. 目录和 计划必须存在。 奥米 `--warehouse` 要使用唯一的无服务器仓库. 拥有多所仓库,在航站楼上选择一座,或者通过身份证. 添加 `--results-group <group>` 财务报告和审定财务报表 `--manage-group <group>` 分享成果和管理 与账户组。 使用 `--json` 为了一个无秘密机器的结果。 现有 `--api-url`, (中文(简体) ), `--account-token`,并应用已保存的登录设置.

Databricks 登录符留在您的机器上 。 座椅路透器 只能收到新的身份证明。 连接写入民意调查密钥 给Databricks的奖学金 重复 Connect 重用记录的 SP 和 job ID . 它重置了ACL的工作。 下 `restrict_workspace_admins`,连接管理员 拥有工作, 代理 SP 获得 `CAN_MANAGE`. 取消该管理员可以停止工作.

退出代码 : `3` 指被拒绝的初始赠款或治愈,并列出所有者的姓名, `4` 表示 `workspace_admin_required`,以及 `5` 表示PAT登录. 使用 OAuth 替换 PAT . 其他错误退出 `1`。连接最多等待三分钟才能成功 运行、 绑定校验, 以及5个要存在的和要完成的设置行: 数量 `<catalog>.<schema>.benchrouter_artifacts` 财务报告和审定财务报表 `<catalog>.<schema>.benchrouter_results`,结果表 `<catalog>.<schema>.benchrouter_eval_results`,实验 `/Shared/benchrouter/<binding_id>`,以及 eval 工作 `benchrouter-eval-<binding_id>`。 。 。 . 目录和计划是连接的 `--catalog` 财务报告和审定财务报表 `--schema` 数值. 数量和成果表目标不考虑具体情况。 实验和工作 目标必须完全匹配. 绑定读取给出了每个对象的当前状态. 老一行可以满足 已完成。 复排行读取待取并保持Connect等待. 在使用终点之前,不会阻碍完成。 任何设置失败的行都会停止命令 并报告其名称、消息和主人。 A 类 `customer` 所有者需要一个工作空间 管理修复它。 缺少或不完整的预期行的超时名称 . JSON结果包括: `setup_items`,与 `kind`, (中文(简体) ), `target`,以及 `state` 每个 页:1 人类产出每件打印一行.

在赠款和愈合之后,Connect管理每笔未决的SP-change赠款,然后每笔 等待从服务器撤销 `cleanup_pending`它承认已完成或 一次没有步骤。 一个被拒绝的SP-change步骤仍然悬而未决。 缺少文件夹、清单, 对象和表格的计算方式。 无效的显示、保留的秘密范围或 未经申报的路线在发出警告后保留赠款或撤销。 内容 `pending_steps` 条目包括原因。 修补清单,再运行连接. 通过创造就业、核查和退出继续连接 `0` 当设置成功时. 允许警告步骤及其所有者 。 重新运行 `benchrouter databricks connect` 作为拥有者或 (原始内容存档于2018-10-21). metatore admin. JSON包括被拒绝的步骤 `pending_steps`,与 `kind`, (中文(简体) ), `id`, (中文(简体) ), `action`, (中文(简体) ), `object`, (中文(简体) ), `target`,以及 `owner`复试会恢复步骤,即使 `sp_change` 无效.

读取工作空间状态, 附加 eval, 或断开 :

```bash
benchrouter databricks status --host https://<workspace>.cloud.databricks.com --json
benchrouter databricks add-eval support/triage /Shared/evals/triage --host https://<workspace>.cloud.databricks.com
benchrouter databricks disconnect --host https://<workspace>.cloud.databricks.com
benchrouter databricks disconnect --host https://<workspace>.cloud.databricks.com --force --json
benchrouter databricks disconnect --host https://<workspace>.cloud.databricks.com --reclaim --json
```

所有四个命令支持 `--json`2\. 任何账户成员均可获得状况. 默认情况下, 它列出非空的开放约束和封闭约束 `cleanup_pending`。 。 。 . 过 `--all` 以显示每个匹配绑定,包括存档和断开 捆绑而无所剩有。 文本和JSON使用相同的选择. 每个约束包括: 状态、报到、cadence、SP代理、路线、暴露、电子文件夹、赠款、设置项目、, 失败和服务器的清理 指令和命令。 JSON总是有形状 `{bindings: [<server read>, ...]}`。 。 。 . 每个条目都是清理确认后读取的完整服务器. 没有 匹配绑定, 它返回 `{bindings: []}`文本显示代理和 eval 任务 链接到 Databricks 工作页面,其中管理员可以检查上次运行.

状态不需要 Databricks 登录 。 当 OAuth 登录可用时, 检查状态 待处理的工作空间物体。 它报告到清理结束点的物体 并再次阅读绑定。 如果服务器, 账户成员仍然可以读取状态 拒绝承认 账户控制台 SP 步骤待定; 工作空间 SCIM 读取不能证明账户 SP 被删除 。 状况说明待决 在 " 剩余 " 中提供赠款/撤销指示、行动和指标。 它从来没有运行或承认这些步骤。 状态从不读取秘密值 . 登录后,状态也会读取代理工作ACL. 如果所有者是用户, 状态 在 stderr 上警告删除该用户将停止此工作 `restrict_workspace_admins`。此警告不会改变 JSON 服务器的读取.

添加- eval 和断开需要账户所有者/ 管理员和 Databricks 工作管理员 OAuth 登录 。 有几个工作空间,通过 `--host`。加-eval 附加路线和 文件夹只检查工作空间管理员,读取文件夹,然后导出 并验证YAML清单。 然后它会提供文件夹 `CAN_READ` 与PACH和 授权代理 SP `SELECT` 在案头。 它还提供赠款 `USE_CATALOG` 财务报告和审定财务报表 `USE_SCHEMA` 当这些命名空间不同于绑定时。 它使用跑者验证规则 以那些明亮的田地盟誓, 它印出一个 `databricks secrets put-acl ... READ` 命令并开始记录代理任务。 没有秘密值 已接受。 服务器拒绝带寄存器或主机的路由 .

在请求关闭前,断开运行等待的SP-change赠款并撤销 开放约束,包括 `--force`拒绝警告并留待处理. 断开连接请求关闭并开始录制代理任务 。 最多3个 分钟 `archived` 或者说 `disconnected`,然后检查并删除已关闭绑定的 记录对象。 它每两秒钟投票一次 在删除之前,它 读取开放约束列表一次,相互开放约束一次。 它保存着 他们持有的身份证. `--force` 立即关闭, 只运行装订的服务器清理步骤 管理者。 工作、秘密瞄准镜、服务终点、可管理的服务提供者服务以及 两个工作卷被删除。 成果表和实验仍然存在. 代理 SP 仍然需要账户管理员在账户控制台中删除. 无管理对象保留其清理指令. 成功清理为 承认 `{done: [{kind, id}]}`。重复断开可以恢复清理 用于关闭的绑定,而无需再次断开请求或代理运行.

`--reclaim` 需求 `--host`。它创建了新的仅身份证明并关闭 (b) 具有约束性,而无需在其法官鲁特账户中发挥作用。 没有 持有约束。 它只删除返回的端点和可操作的提供者 服务。 无法使用 `--force` 或者说 `--results-owner`。 。 。 .

`--results-owner <group>` 发送 `results_owner: {type: "group", name: <group>}`。 。 。 . 没有旗帜,就省去字段,结果表和实验会留下 与特工SP. 服务器拒绝字符串主机 `invalid_results_owner`。 。 。 .

这些命令需要H1/H2无头服务器合同. 仅针对本地重放测试, `BENCHROUTER_DATABRICKS_API_BASE` 重定向数据砖 REST呼叫回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回的回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回 保持未设置用于真实的工作空间设置 . 新建 SP 规则集 GET 和 PUT 请求重试权限传播失败 最多6次尝试,共2,4,8,16和30秒的等待时间贯穿两个呼叫(共60秒). 只有403个 `PERMISSION_DENIED` 失败重试, 只针对当前运行中创建的 SP . 记录的 SP 读取不重试 . 只有测试, `BENCHROUTER_DATABRICKS_TEST_RULE_RETRY_MS` (0至100个) 当回放重播激活时. 如果工作空间发现不返回 Databricks 账户 ID, 设置 `DATABRICKS_ACCOUNT_ID` 到那个id和重试.

## 初始化仓库

运行 `init` 从将使用 BenchRouter 的仓库中:

```bash
npx @benchrouter/cli init \
  --setup-key br_setup_... \
  --route-id product/route \
  --name "Route Name" \
  --incumbent-model provider/model
```

过 `--eval-command "pnpm run test:customer"` 仅当已有客户 测试命令用于本地抓取。 没有它,设置出不 `capture_command`。签名的 CI 运行时命令是分开的.

担任直接提供者者,也可通过 `--provider-id <id>` 财务报告和审定财务报表 `--provider-ref <exact-ref>`。通过两个或两个.

过 `--base-url-env <NAME>` 有环境变量的呼叫网站读取 用于 LLM 基址,以及 `--api-family <family>` 和协议一起呼叫 网站讲话 : `openai_chat_completions`, (中文(简体) ), `anthropic_messages`,或 `openai_responses`。家族选择的不是 变量的名称: 本地的 Anthropic 信件调用站点 `https://api.benchrouter.com`,因为Anthropic SDK添加 `/v1/messages`, (中文(简体) ), 和OpenAI家庭获得 `https://api.benchrouter.com/v1`。 。 。 . `--api-family` 实值 设置路径所需的 `--base-url-env` 或者说 `--eval-pack`复读 选项一次 `--route-id`,在同一顺序上,或者通过一次所有路线. CLI发送 两者作为路线 `call_site`,并把它们记录在 `.benchrouter/benchrouter.yml`。对于已经存在于该文件中的路径,输入 保留本地条目,只写 `--api-family` 你进入它 `call_site.api_family` (并进入可执行的存储器eval's `api_family`) (中文(简体) ).

鲁特法官在布置过程中 保留了所观察到的Tuple 如果犬科动物 现任者不能服务, `init` 仅列出由 目录证据. CLI会打印浏览器批准页面. 一个签名的 GitHub 用户有寄存器写入权限时选择此处的替换。 然后重运行 完全一样 `init` 命令不变。 服务器将浏览器批准绑定到 设置会话、路由、精确观测模型、提供者、提供者参考、, 并提供了选择。 未知身份停止目录审查 。 没有 成为自由形式的模型选择.

### 可执行的仓库保值

如果质量取决于存储器的全管,通过一个经过验证的JSON 每条路线的Eval包。 重复 `--eval-pack` 顺序与 `--route-id`数字 :

```bash
benchrouter init ... --eval-pack .benchrouter/contextual-synopsis-eval.json
```

文件必须使用此合同 :

```json
{
  "mode": "repository_executable",
  "id": "contextual_synopsis_v1",
  "config_path": ".benchrouter/benchrouter.yml",
  "workflow": ".github/workflows/benchrouter-evals.yml",
  "command": "npm run eval:contextual-synopsis",
  "scorer": ".benchrouter/scorer.contextual-synopsis.js",
  "result_schema": "benchrouter.executable_result.v1",
  "case_refs": ["eval/queries.json"],
  "argv": ["node", "eval/contextual-synopsis.mjs"],
  "runtime": "node",
  "runtime_version": "22.18.0",
  "lockfile": "package-lock.json",
  "input_refs": ["eval/contextual-synopsis.mjs", "eval/corpus.json"],
  "acceptance_refs": ["eval/queries.json", "eval/qrels.json"],
  "result_path": ".benchrouter/executable-result.json",
  "primary_metric": "recall_at_5",
  "timeout_minutes": 60,
  "secret_env": ["OPENAI_API_KEY"]
}
```

爱华包没有 `api_family`它继承了路线 `--api-family`这样 通过呼叫站点的家属 评估员练习。 CLI拒绝一个包 宣布它自己的.

CLI 拒绝可变运行时版本, 不安全路径, 缺少引用 文件、 无效或保留的秘密名称、 分数超时以及以上超时 90分钟后,它发出设置请求。 爱华包 宣布不打电话或 支出限制: 法官路透将每个可执行运行的花费限制在5 乘以所测量的路线基线在同一个eval或1美元上的开支,以两者为准 高点 CLI拒绝 `max_model_calls`, (中文(简体) ), `max_cost_usd` 财务报告和审定财务报表 `max_cost_per_call_usd` 作为未知的字段。 生成的工作流程运行 `argv` 没有壳 它只接收 公开的客户秘密 和范围大法官鲁特 eval合同.

设置密钥出自已签名的Router设置页面. 它的范围为: 一个 GitHub 仓库 。 一个成功的设置可以返回一个运行时键 : `BENCHROUTER_API_KEY`。仅在应用程序主机中安装该密钥.

Bench Router Evals 不使用存储的 GitHub 动作键 。 生成的 工作流程使用 GitHub OIDC `id-token: write` 以获得一个短暂的eval标志. 不创建 `BENCHROUTER_EVAL_API_KEY`。 。 。 .

默认, `init` 不保存设置符号。 过 `--save-token`,或核准 交互提示,以保留当前计算机上重新扫描的访问. 非交互式使用, 设置 `BENCHROUTER_TOKEN` 换句话说.

```bash
npx @benchrouter/cli init ... --save-token
```

生成的文件包括 `.benchrouter/SETUP_README.md`。读取该文件 在更改呼叫网站、 eval 案件或计分器之前.

## 已签名的运行时命令

用生成的工具包从仓库中运行这些命令 :

```bash
benchrouter capture
benchrouter calibrate
```

两个命令都执行 `.benchrouter/bootstrap.mjs`靴子可以验证 在开始前签名释放。 抓取开始本地代理 。 运行已存在的 应用测试命令与该代理命令不同。 校准检查 证据。 两个指挥部都没有证明生产准备.

生成的 GitHub 动作使用 `bootstrap.mjs run`编辑 `benchrouter run` 切入点向同一靴子上前进,需要 GitHub Action OIDC. 工作流程使用一个有120分钟上限的节点24工作. 提供评估人员 秘密和客户设置只用于服务器发送的工作. 信任文件包含 当前和下个签名密钥,默认情况下会空出文摘号.

## 图标

```bash
benchrouter init --help
benchrouter upgrade --help
benchrouter doctor
benchrouter models [--filter text] [--json]
benchrouter status [--json]
benchrouter frontier <route-key> [--json]
benchrouter failures <route-key> [model] [--json]
benchrouter explain <model> [--route <route-key>] [--json]
benchrouter login [--name text] [--expires-in-days 90]
benchrouter account show [--json]
benchrouter account token save --account-token br_ctrl_...
benchrouter billing show|activity|statement [--json]
benchrouter billing top-up --amount 25 [--yes]
benchrouter billing auto-reload setup --threshold <usd> --amount <usd> | disable
benchrouter keys list|create|disable|enable|revoke
benchrouter repos list|refresh
benchrouter setup status [--repo owner/repo]
benchrouter setup create --repository-id <id> --installation-id <id> [--intent initial|new_route]
benchrouter setup session show <session-id>
benchrouter setup approve <approval-id|approval-link> [--model <model-id>] [--yes]
benchrouter setup upgrade-token --route-id <id> [--repo owner/repo]
benchrouter routes list|show|catalog|activity|startup-failures|create|pin|archive|unarchive
benchrouter evals list|run
benchrouter evals status <route-key> [--pr <number>]
benchrouter evals results <route-key>
benchrouter evals model <route-key> <model-id> [--pr <number>]
benchrouter evals case-output <route-key> --run <model-run-id> --case <case-id>
benchrouter evals overview
benchrouter evals draft --name <text> --cases <cases.jsonl> --scorer <scorer.json>
benchrouter evals approve <draft-id> --card <card-hash> [--yes]
benchrouter evals run <route-key> --full-refresh
benchrouter evals retry --result-set <id> | --route <route-key>
benchrouter evals harness-retry <route-key> [--model <id>]
benchrouter evals refresh-preview <route-key> <result-set-id> [--model <id>]
benchrouter blocks list [--repo owner/repo]
benchrouter blocks unblock --repo owner/repo [--route <route-key>] | --route <route-key> | --all-blocked
benchrouter public status|frontier [--json]
benchrouter baseline set <route-key> --result-set <id> --model <id> [--yes]
benchrouter proposals list|approve|reject [--admin-token bradm_...]
benchrouter admin providers|catalog|keys|token [--admin-token bradm_...]
benchrouter admin catalog show|activity|model-maps|refresh-report|drain-outbox|rebuild
benchrouter admin catalog observations [add]|mappings [list|resolve|ignore]
benchrouter admin keys list|revoke [--admin-token bradm_...]
```

运行 `benchrouter login` 授权您登录的浏览器中的 CLI 。 国家行动倡议 将核查员留在当地,等待批准,接收新的 `br_ctrl_` 直接符号,将其保存在私人本地配置中,并证明所选 账户。 浏览器 URL 只包含一个不透明的交易ID 。 原始标志 从未出现在 URL,浏览器存储,终端输出,或日志中.

账户命令以 a 认证 `br_ctrl_` 账户代号 (单位:千美元)`--account-token`,则 `BENCHROUTER_ACCOUNT_TOKEN`,然后是当地私人 conf. 建议书/admin命令使用 a `bradm_` 管理符 (单位:千美元)`--admin-token`,则 `BENCHROUTER_ADMIN_TOKEN`,然后是私人的本地配置. Repo-read命令继续使用设置/read sord. 托肯从来就不是 跨范围自动替换。 运行时间 API 密钥从未授权控制平面 命令.

突变打印出精确的动作摘要并迅速,除非 `--yes`JSON 模式 从不提示和要求 `--yes`。账单上加打印出一个取出 URL;它 不打开浏览器. `billing show` 从 `GET /v1/dashboard/summary`。 。 。 .

在新组或没有寄存器的现有组中创建被绑定的路由 :

```bash
benchrouter routes create --name Triage --model anthropic/claude-haiku-4.5 --group Support --group-slug support --route-slug triage --yes
benchrouter routes create --name Triage --model anthropic/claude-haiku-4.5 --group-id <id> --yes
```

正好通过一个 `--group <name>` 或者说 `--group-id <id>`。 。 。 . `--group-slug <slug>` 需求 `--group`. 默认名称。 创建新组需要 账户所有者。 请求发送 `group: {name, slug?}` 或者说 `group_id`。 。 。 . 反应保持内部 `product` 报告 `group_created`。 。 。 . 要为组创建运行时键, 请使用 `benchrouter keys create --product-id <id>`。 。 。 . 这个终点仍然需要 `product_id`。 。 。 .

`status` 显示每个路线,现任者,当前最佳模式,生产线条状态, 和生产结果集ID。 使用 `status --json` 当代理 或脚本必须证明该路线已经收到生产呼叫并识别 生产中使用的确切证据.

`frontier` 显示现任者、最佳模式和排名的替代方案.

`failures` 显示最新模式运行中失败的大小写 。 传递一个型号ID到 选择该模型的最新运行.

`explain` 调用服务器模型解析端点,并声明模型是否 是在任职者、最佳选择、合格选择或合格选择之外 边疆. 过 `--route` 当寄存器有多个路径时.

`keys revoke <key-id>` 电话 `POST /v1/dashboard/api-keys/:keyId/revoke` 财务报告和审定财务报表 打印非密钥元数据。 立即撤销:任何申请仍然有效 使用那个键停止认证.

`setup create` 启动设置会话并打印一次性设置代码加 服务器授权 `init` 命令. `setup upgrade-token` 薄荷单用 `br_upgrade_` 标志并打印一次。 两个秘密都印过一次 从来没有 保存; 传递给 `init --setup-key` 财务报告和审定财务报表 `upgrade --upgrade-token`读取 `repository_id` 财务报告和审定财务报表 `installation_id` 从 `repos list`。 。 。 .

`blocks list` 每个块打印一行,停止评价:其类型、范围、, 时间,是否解锁 清除,如何清除. `blocks unblock` (账户) (d) 清除Router法官本人的断路器`startup_failing`, (中文(简体) ), `snapshot_refresh_failing`, (中文(简体) ), `harness_failing`)和再检查 `workflow_missing` 财务报告和审定财务报表 `installation_revoked` 对抗基特赫布. 重新启动排队评价 普通调度器; 解块不创建评价并重运行任何模型. `evals retry` 重运行一次生产评价的失败模式, 或唤醒它 当它仍然开放。 重试从不清理一个街区,所以被封锁的路由是 拒绝,直到你解开它.

`evals refresh-preview` 重新发送打开的 PR 预览结果集 。 结果 设定必须是 PR 预览; 通过 `--model` 只刷新一个模型.

`admin catalog refresh-report` 实值 `POST`没有 `GET`。只报告: 服务器获取上游状态, 不执行写入 . `admin catalog drain-outbox [--limit 1..25]` 发布限定数量 持久编目工作和报告已完成的工作和所剩积压的工作. 它是一种管理突变,所以它需要 `bradm_` 符号和确认(或 `--yes`A级 `br_ctrl_` 账户符号不能授权它. `admin catalog observations add` 手动记录通知; 通过结构化字段 结束 `--payload-json`,它必须分析 JSON 对象.

`admin keys list` 财务报告和审定财务报表 `admin keys revoke <key-id>` 接受一个 `bradm_` 持有者和 只打印非机密元数据。 嵌入管理员密钥需要浏览器 GitHub admin会话,所以CLI没有薄荷命令. 使用 `admin token save` 编号 : `account token save` 用来表示已经铭记的印记。 保存命令从不打印 暗号 使用 `account token save` 只是作为一条康复之路。 使用 `benchrouter login` 通常的账户授权.

所有读取命令接受 `--json` 对脚本和代理.

## 全权证书和配置

读取命令按此顺序解析证书 :

1.  `--token br_setup_...`
2.  `BENCHROUTER_TOKEN`
3.  用于检测到或指定寄存器的已保存的令牌

保存的证书被寄存器隔离( 账户/ admin 文件为 ) 只拥有模式 `0600`) (中文(简体) ). 设定 `BENCHROUTER_CONFIG_DIR` 移动整个 配置根. 测试和自动化应始终将变量设置为 临时目录.

CLI 不将运行时间密钥写入磁盘 。 它从不保存一个设置符 除非 用户批准写入.

## 医生

`doctor` 检查生成的文件、 软件包标记线条和 GitHub OIDC 工作流程。 激活模式还检查选定的运行时间呼叫站点. 对于孤立的回放,它也会检查 可运行的大小写数组和记分器语法. 对于 `repository_executable`检查 已宣布的锁文件、大小写、输入和接受参考文件。 没有 将孤立的重放JSON形状或计分器执行应用于寄存器文件.

运行时间核对表使用路由 `call_site.base_url_env` 财务报告和审定财务报表 `call_site.api_family`打印 `https://api.benchrouter.com/v1` 用于 OpenAI 的 家庭状况 `https://api.benchrouter.com` 页:1 `anthropic_messages`,因为 Anthropic SDK 添加它自己的 `/v1/messages` 路径。 没有路径 `call_site.api_family` 获得无值; 核对表列出缺失的字段.

`doctor` 默认为评价检查。 它不需要生产接线或跑时键,也从来不隐含地给供应商打电话。 使用 `--phase activation --route-id product/route` 来检查一个选定的呼叫站点.

添加 `--live-chat-completions` 只能选择使用可计费的合成聊天完成诊断. 继承的 `BENCHROUTER_API_KEY` 单靠自己不能选择加入。 这种诊断不核实申请申请合同;为此使用经批准的申请烟雾。 原生Anthropic和Resolution的呼声需要他们自己的应用烟雾. 它将每个外部检查标记为通过、失败或跳过。 医生只通过 意味着每张支票都通过 它不核证评价质量 或生产准备。 本地校正不提供该证书.

使用 `benchrouter setup status --repo owner/repo` 要读取的帐号 服务器的独立的路由注册,评价,生产资格, 和观察的事实。 评价的完成不是产出 资格门。 被观察的服役是历史交付的证据,而不是 目前的健康检查.

```bash
benchrouter doctor --repo owner/repo --skip-github-workflow
benchrouter doctor --phase activation --route-id product/route --repo owner/repo --check-default-branch
```

使用 `--skip-github-workflow` 何时 `gh` 不可用或工作流程不可用 已存在默认分支 .

## 多条路线

重复 `--route-id`, (中文(简体) ), `--name`,以及 `--incumbent-model` 顺序相同:

```bash
benchrouter init --setup-key br_setup_... \
  --route-id product/route-a --name "Route A" --incumbent-model provider/model-a \
  --eval-pack eval/route-a-pack.json \
  --route-id product/route-b --name "Route B" --incumbent-model provider/model-b \
  --eval-pack eval/route-b-pack.json
```

每个运行时调用站点使用其稳定的路由ID作为OpenAI兼容器 `model` 数值。 不要为多个存储器创建一个全局模型变量 路线。 如果使用任何路线 `--eval-pack`,输入命令中的每一个路径必须 有一个位置匹配的文件.

## 升级

`upgrade` 预览靴子陷阱、信任文件、工作流程和 README 请求 确认,然后应用它们。 它保存着 `.benchrouter/benchrouter.yml` 字节取出. 那个YAML是单一路线声明. 升级验证 每个文件散列在它写出任何文件之前。 它保存客户设置步骤 在Setup Node.js和Run Bench路透之间. 每个客户步骤必须使用 `if: github.event_name == 'workflow_dispatch'`保留了Eval的工作 `runs-on`因此,一个工作转移到 自我托管的跑者 留在那里; `doctor` 接受 任意 `runs-on` 标签、标签列表,或 `group`编号 :`labels` 对象。 它永远不会取代案件, 计分器,校正固定装置,设置向导,或应用文件. 旧生成引擎 设施必须拆除并重新上船;它们没有相容路径.

```bash
benchrouter upgrade \
  --upgrade-token br_upgrade_... \
  --repo owner/repo \
  --route-id product/route
```

使用 `--dry-run` 预览单用途升级令牌而不应用它。 使用 `--yes` 仅当无法交互确认时.

## 型号标识

`models` 打印当前 EnglishRouter 目录。 一条路可以是一个 准确的 OpenRouter 模型,不是自动候选人。 如果法官鲁特不能 解决当前身份,停止目录审查。 不替换 a 建模或删除可观察到的提供者元数据。 如果有决心的在职者不能 服务,打开服务器提供的浏览器批准页。 然后重新运行完全一样 `init` 命令不变.

`init` 编写评价文件并刷新生成的 Bench Router 工作流程,从而添加的路由接收其宣布的触发器和可执行的秘密映射。 它保留了生产呼叫站点和已存在的巢穴实例. 在后期活化补丁中添加运行时键和端点配置.

## 常见问题

### @benchrouter/cli 是什么？

Beach-Router 的命令行界面注意：该包已被作者标记为弃用——Moved to benchrouter\. Run: npx --yes benchrouter@latest

### 如何安装 @benchrouter/cli？

在项目目录运行 npm install @benchrouter/cli，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 benchrouter，可以用 npx benchrouter 直接运行。

### @benchrouter/cli 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/benchrouter\_\_cli 是否存在。

### @benchrouter/cli 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @benchrouter/cli 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @benchrouter/cli 可以商用吗？

@benchrouter/cli 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @benchrouter/cli 的下载量有多少？

根据 npm 官方下载统计，@benchrouter/cli 在 2026/10/08 – 2026/11/06 这 30 天内被下载 2,848 次，日均约 95 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @benchrouter/cli 还在维护吗？

最新版本 0\.2\.42 发布于 2026/10/30（9 天前）；至今共发布 35 个版本，其中过去 12 个月发布了 35 个；首次发布于 2026/08/06。作者已将其标记为弃用，新项目建议寻找替代方案。

