设置
入口:http://<主机>:8787/console/#/settings/sticky。左边分组只改顺序,不改能打开的页。改完大多数页要点保存,或按 Ctrl/Cmd+S。草稿没保存就离开,浏览器那一层不会替你存。
SOCKS5、遥测、备份、关于自带按钮,没有那条全局保存条。
粘性
#/settings/sticky
回头设备尽量留在原来的槽。三个旋钮:
- 绑定:用哪个请求头当「同一设备」。调用方应传
x-session-id,或x-conversation-id,或x-claude-code-session-id。 - TTL:这根绑定多久还算数。过期之后,下一次请求按新设备重新选槽。
- 出站:选中槽之后,出站身份怎么跟这根绑定走。
死凭证会拆掉粘性。槽被你手动标成不可调度,也不会再接这根绑定上的新轮次。保存前按钮上会标「待保存」。
账号池
#/settings/pool
新请求选哪一台还有余量的槽。
- 平衡:新设备去占用比例最低的槽,把负载摊开。
- 填充:新设备去占用比例最高、但还没满的槽,先用满少数几台,其它保持空闲。
回头设备先尝试原来的槽,回不去才进全局排队。可以打开 手动开关优先,这样你在虚拟机页关掉的「可用」不会被池策略重新打开。每台 VM 的席位上限在这里设全局值,单槽钉死的并发在虚拟机详情里,钉死优先。
页面上的「实时席位」看的是当前运行,不是你还没保存的草稿。
配额
#/settings/quota
Claude 和 OpenAI 分两个标签,互不覆盖。
Claude 按账号层级:
| 层级 | 用在 |
|---|---|
| 默认 | 未知套餐,或还没有凭证 |
| Pro | 普通 Claude 账号 |
| Max | 能用 Fable 的账号 |
每一档可以设并发、RPM,以及 5 小时 / 7 天怎么闸。5h 闸生效、7d 闸生效关掉之后,窗口用满仍可能继续送请求,上游会自己拒绝。
周仓拆分是实验开关,只对 Claude。打开后,7 天余量里按固定比例留给 Max/Fable。
OpenAI 用 codex.quota:limit_5h、limit_7d、max_concurrency、max_rpm、max_sessions。保存 Claude 分档不会改这些数。
单槽上把并发或 RPM 设成数字,是钉死该槽;设成空是取消钉死,立刻回到这一页的平台值。
日志
#/settings/logs
记录模式:
| 值 | 结果 |
|---|---|
| 关闭 | 请求日志不再增加。统计、计费、提示词缓存的新小时都会空 |
| 普通 | 日常使用的粒度 |
| Debug | 排障用。更吵,不要长期开 |
这是开关。查看和导出在 日志。
协议
#/settings/protocol
人设布局、overlay、缓存 TTL、被中转的官方流量怎么认。保存时推理引擎写成 rust,并且关掉落到 Go 的回退。公开包的推理路只有 rust cli-hop。
缓存 TTL:1h 按 2 倍计费,5m 按 1.25 倍。调用方可以用 x-kin-cache-ttl: 5m 把单次请求降到 5 分钟。
缓存断点里,system 尾、tools 尾是关的,messages 走 cli-hop。不要在这里找一个「改成 HTTP 模拟」的选项。
把协议继承到已有 Claude 槽时,只清掉槽上单独写过的 persona_preset,让槽跟随这一页。GPT 槽不参与这次继承。
白名单
#/settings/whitelist
覆写规则:命中最后一轮 user 时,把覆写文本填进 overlay 的 。匹配或覆写为空的行,保存时丢掉。
overlay 关着的时候,规则全部不生效。先回协议页把 overlay 打开。prompt-leak 没有第二个入口,就用这一格。
初装
#/settings/init
官方 Claude Code 初装的全局默认。保存时推理方式固定为 cli-hop。
- hello 提示词:初装时那一轮对话说什么,最长 200 字。
- 单轮超时:hello 那一轮多久算失败。
- 初装内存:跑初装的那一下给多少内存。这不是槽容器的长期上限,长期上限是
KIN_VM_MEMORY或docker update。
同一槽再次换票会重新排队初装,不因为上次已经成功就跳过。单槽上的初装卡片在 虚拟机 详情里,可以单独再跑 hello 或写入登录文件。
探测
#/settings/health
定时用真实槽打一轮对话,把结果缓存起来。new-api 的渠道测试、sub2api 的账号测试这种 hi / ping,直接回放缓存,不再打上游。
这和「代理池里探测 SOCKS 通不通」不是一件事。代理探测可以是绿的,而这里的缓存是空的,调用仍然 502。
同一页还有 签名修复:历史 thinking 块的签名对不上时,按这里的开关决定修不修。修的是出站前的历史块,不是去改账号凭证。
通知
#/settings/notify
可选事件:
| 事件 | 什么时候响 |
|---|---|
| 账号池清空 | 可用账号变成 0 |
| 账号池偏低 | 低于你设的最小可用数 |
| 账号池恢复 | 从低水位回来 |
| 定时汇报 | 按间隔发摘要 |
| 凭证吊销 | 新发现被吊销的账号 |
| 凭证失效 | 新发现失效凭证 |
| 账号离线 | 单个账号变成不可用 |
| 账号上线 | 单个账号恢复可用 |
通知通道是 Telegram Bot。先保存启用开关和事件,再在 Bot 那一卡里发测试。没配 Bot 时,策略开着也不会有人收到。
遥测
#/settings/telemetry
官方客户端要不要按一台正常开发机上报遥测。这一页自己保存,不走全局保存条。关掉遥测不会关掉推理。对齐官方形态时再打开,并确认槽的硬件身份是完整的,否则你只是在一台看起来不像开发机的 VPS 上多发了遥测。
SOCKS5
#/settings/socks5
出口策略的全局项,例如槽是不是必须有代理。生产环境没有「允许不绑出口」的持久开关。具体的主机、端口、密码在 代理池,不在这一页填一整份清单。
备份
#/settings/backup
创建一条备份,列表里按时间和 ID 下载或删除。这是你能拿走的恢复副本。数据库页只看运行态,不产生文件。
备份包含把网关恢复到这一刻需要的数据。把它放到另一台机器之前,确认那台机器的 VM2API_DB_SECRET 就是创建备份时的那一把。密钥不同,备份打不开。
关于
#/settings/about
当前 tag、GitHub 最新、有没有更新、Changelog。检查失败通常是 GitHub API 限额,配 GITHUB_TOKEN 或 VM2API_GITHUB_TOKEN 后重启控制面再查。
一键更新 的完整步骤、它什么时候只是把宿主机命令复制出来、以及 wrap-cli/sync 之后还要去内核页,写在置顶的 更新。不要只看这一小节就在生产上点按钮。