AutoJev 使用文档

AutoJev 是一款免费、开源的桌面应用(Tauri 2、React 19、Rust),在本机运行一个本地网关:http://127.0.0.1:9527/v1,供 AI 编程智能体统一调用。你可以在一个地方管理服务商、模型和路由规则,一键接入智能体;每次请求都会按你的设置路由到合适的模型——固定模型、负载均衡,或者智能选择。AutoJev 支持 OpenAI Responses、Chat Completions 与 Anthropic Messages 之间的协议转换,并在本地记录用量和预估费用。

AutoJev 仍处于早期开发阶段。本文基于 0.1.6 版本编写,不同版本的行为可能变化,请以 GitHub 仓库为准。

如果你要找的是托管 Jev 决策 API(REST、MCP 与 Skills)的接入说明,请前往 Jev API 接入文档。

安装

从下载页或 GitHub Releases 获取对应系统的安装包。

平台安装包说明
macOSApple Silicon 与 Intel 的 DMG已签名并经过 Apple 公证
Windowsx64 安装程序安装程序暂未使用 Authenticode 签名,系统可能弹出 SmartScreen 提示
Linuxx64 AppImage 与 .deb

AutoJev 完全免费,没有付费套餐,也不需要注册 AutoJev 账号。你使用自己的服务商密钥,请求从你的电脑直接发往服务商。

首次运行

  1. 打开 AutoJev,本地网关会在 127.0.0.1:9527 启动(开发版使用 9526)。
  2. 在「服务商」中添加至少一个服务商,在「模型」中添加至少一个模型。
  3. 按需在「路由」中创建路由。
  4. 在「智能体」中一键接入,或把连接参数复制到其他客户端。
  5. 在「调试」中发一条测试请求,再到「日志」查看由哪个服务商、哪个模型处理。

在设置中可以切换语言(English、简体中文或跟随系统)和主题(浅色、深色或跟随系统,另有四种强调色)。macOS 使用 ⌘ ,,Windows 与 Linux 使用 Ctrl , 打开设置。

添加服务商

服务商就是一个上游 API 地址加一把密钥。AutoJev 内置以下预设:

预设默认地址
OpenAIhttps://api.openai.com/v1
DeepSeekhttps://api.deepseek.com
OpenRouterhttps://openrouter.ai/api
Ollamahttp://127.0.0.1:11434
OpenAI 兼容自定义地址
Anthropic 兼容自定义地址

任何 OpenAI 兼容或 Anthropic 兼容的接口都可以通过「兼容」预设接入,例如 Kimi(Moonshot)、GLM(智谱)、Qwen(DashScope)、SiliconFlow、vLLM、LM Studio 等。

  • 导入:可以从 CC Switch(~/.cc-switch/cc-switch.db)和 Termany(~/.termany/termany.db)导入已有服务商,按接口地址自动去重。
  • 测试:每个服务商都可以单独测试连通性;只返回推理内容的回复也算通过。
  • 启用 / 停用:停用后配置仍保留,但不参与路由。

更多内容见服务商管理,以及 OpenAI、DeepSeek、OpenRouter、Ollama、OpenAI 兼容、Anthropic 兼容的接入页。

模型与测速

每个模型隶属于一个服务商,包含以下信息:

  • API 类型:上游使用的协议,可选 chat_completions、responses 或 messages,必须与服务商实际提供的接口一致。不要因为要接 Codex 就把它改成 Responses——协议转换由 AutoJev 在入口处完成。
  • 模型 ID:上游的模型名,例如 deepseek-chat。
  • 价格:每百万 token 的输入、输出与缓存价格,用于预估费用和成本优先路由。
  • 等级、工具、视觉、推理标记与上下文窗口:供路由参考的元数据。它们是你配置的估计值,本身不会拒绝请求,是否支持由上游决定。

单个模型对智能体暴露为 <服务商 ID>/<模型 ID>。

测速

测速会测量首字延迟和每秒输出 token 数。每次测试对每个模型依次发送三次流式请求(固定短提示词,输出上限 128 token,总超时 20 秒),会消耗服务商额度。

  • 定时测速默认开启,每 30 分钟一次,可在「设置 → 通用」中调整为 5–120 分钟;应用驻留托盘时也会继续运行。
  • 每个模型最多保留 30 个样本,真实的流式请求也会更新测量结果。
  • 未选择模型时,一次测速会覆盖所有已启用的模型。

详见模型测速。

路由

路由是一组候选模型加一个调度策略,对智能体暴露为 autojev/<路由 ID>,例如 autojev/fast、autojev/quality、autojev/cheap。

调度策略

策略选模方式
固定模型始终使用同一个模型
负载均衡新会话在最高优先级组内按权重分配;优先级数值越大越优先,权重范围 1–10000
智能选择根据决策偏好选择候选模型(见下文)

每条路由可以使用「全部已启用模型」或「指定模型」,并为每个模型单独设置优先级和权重。

决策偏好(智能选择)

偏好决策方式
均衡兼顾质量、成本与速度,调用 Jev 决策模型
质量优先调用 Jev 决策模型
成本优先在本地选出满足能力要求、预估费用最低的候选
速度优先在本地根据近期测速数据选择,不调用 Jev

附加选项:

  • 优先使用本地模型:符合条件时优先选择 Ollama 模型(速度优先模式下隐藏,由实测数据决定)。
  • 成本基准:作为参照的模型,用于在用量统计中估算节省的费用。

Jev 决策模型

均衡与质量优先的路由会调用决策模型,默认是 OpenRouter Jev(https://openrouter.ai/api/alpha/decisions,模型 ~typesafe/jev-latest),使用你自己的 OpenRouter 密钥。在「设置 → 网关与路由 → 决策模型」中配置,点击「测试 Jev」后保存。

  • 发给 Jev 的只有路由元数据(从任务中提取的特征与候选模型信息),不包含对话内容。
  • Jev 返回的置信度低于 0.5、返回未知候选、出错或 8 秒内无响应时,AutoJev 会回退到加权负载均衡,并在请求日志中记录原因。
  • 只有一个候选模型的路由不会调用 Jev。

详见智能路由。

会话保持

同一会话中的请求会保持之前选定的模型(只要它仍然可用),避免智能体在对话中途换模型;新会话使用最新的排序结果。

接入智能体

打开「智能体」页面,AutoJev 会检测本机已安装的智能体,显示配置路径和连接状态。为每个智能体选择一个或多个模型 / 路由,点击「连接」即可。仅检测不会修改任何文件。

智能体写入的配置协议
Codex~/.codex/config.toml,以及模型目录 ~/.codex/autojev-models.jsonResponses
Claude Code~/.claude/settings.json(环境变量 ANTHROPIC_BASE_URL、ANTHROPIC_MODEL)Anthropic Messages
Gemini CLI~/.gemini/settings.json 与 ~/.gemini/.envGemini 桥接
Grok Build~/.grok/config.tomlChat 或 Messages
OpenClaw~/.openclaw/openclaw.jsonChat 或 Messages
Hermes~/.hermes/config.yamlChat
OpenCode~/.config/opencode/opencode.json 或 opencode.jsoncChat 或 Messages
Kimi Code CLI~/.kimi-code/config.toml(也识别已有的 ~/.kimi/config.toml)Chat 或 Messages
OMP(oh-my-pi)~/.omp/agent/models.yml 与 config.ymlChat 或 Messages
Cursor CLI仅检测Cursor CLI 没有公开文档化的自定义模型接口设置

连接机制:

  • 连接前备份:首次修改前先备份原始文件。
  • 断开即恢复:断开时恢复原始配置,同时保留你之后做的、与 AutoJev 字段不冲突的修改;如果原本没有该文件,恢复时会将其删除。
  • 批量更新:可以一次性修改多个已连接智能体的模型选择。
  • 模型列表:客户端支持时,AutoJev 会把所有选中的模型和路由写入智能体的模型列表(例如 Codex 的模型目录、Claude Code 的 modelPicker)。
  • 如果智能体把配置缓存在内存中,请重启它。

自定义智能体

可以添加任意可执行文件,填写启动参数、可选的配置路径和图标。AutoJev 能识别 Kilo、OpenCode、OpenClaw、Hermes、Grok、Kimi 的配置模板。自定义智能体以第一个选中的模型或路由作为默认值;「命令测试」会用智能体当前的配置运行它。详见自定义智能体。

想在连接前先看看具体配置片段?可以使用智能体配置生成器。

其他客户端的连接参数

任何支持自带密钥(BYOK)的客户端都能使用 AutoJev。打开「连接参数」即可复制:

字段OpenAI 协议Anthropic 协议
Base URLhttp://127.0.0.1:9527/v1http://127.0.0.1:9527
API Key占位密钥 autojev-local-<客户端名>同左
模型路由 ID(如 autojev/fast)或 <服务商 ID>/<模型 ID>同左

本地网关不校验这把密钥。填写客户端名称后,它会成为密钥后缀(例如 autojev-local-my-script),方便在「日志」中区分请求来源。片段支持 env、JSON、cURL 三种格式:

bash
OPENAI_BASE_URL=http://127.0.0.1:9527/v1
OPENAI_API_KEY=autojev-local-my-script
bash
curl http://127.0.0.1:9527/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer autojev-local-my-script' \
  -d '{"model":"autojev/fast","messages":[{"role":"user","content":"Hello"}]}'
bash
curl http://127.0.0.1:9527/v1/messages \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: autojev-local-my-script' \
  -H 'anthropic-version: 2023-06-01' \
  -d '{"model":"autojev/fast","max_tokens":1024,"messages":[{"role":"user","content":"Hello"}]}'

网关接口

方法与路径用途
GET /health健康检查
GET /v1/models列出客户端可用的模型与路由 ID
POST /v1/chat/completionsOpenAI Chat Completions
POST /v1/responsesOpenAI Responses
POST /v1/messagesAnthropic Messages
POST /v1beta/models/...供 Gemini CLI 使用的 Gemini 桥接

网关只监听本机地址。

协议转换与限制

AutoJev 把「智能体使用的协议」和「上游模型的 API 类型」分开处理,支持 Chat Completions、Responses、Anthropic Messages 三者之间全部六个方向的转换。

智能体调用的接口Chat 上游Responses 上游Messages 上游
/v1/chat/completions原生转换转换
/v1/responses转换原生转换
/v1/messages转换转换原生

可转换的内容:系统指令、文本、图片(URL 与 base64)、函数工具与工具调用、Responses 自定义工具、流式文本与工具参数、用量和错误。结构化输出仅在 Chat Completions 与 Responses 之间转换。

限制:

  • 协议转换无法让模型凭空获得视觉、工具调用、推理能力或更大的上下文。
  • 跨协议时,previous_response_id、conversation、联网搜索等托管工具、音频和文件内容会被拒绝,需要这些功能请使用原生协议的上游。
  • 各家专有的 thinking 块、加密推理内容和签名会在转换时丢弃。
  • Gemini 桥接支持文本、内联图片和函数调用;流式输出会先缓冲上游结果再一次性发出,token 数为估算值。

详见协议转换。

故障转移设置

命名的负载均衡路由和智能选择路由,在开始向客户端输出之前遇到连接错误或 HTTP 401、402、403、408、429、5xx 时,会自动切换到下一个候选,每个候选最多尝试一次。HTTP 400 和 422 不会重试;已经开始流式输出的响应不会重放。

在「设置 → 网关与路由 → 故障转移与超时」中调整:

设置项默认值
单次请求最多尝试次数4
触发冷却的连续失败次数3
冷却时间30 秒(1–3600 秒)
连接超时10 秒
响应等待超时60 秒
流式空闲超时120 秒

遇到 401、402、403、429 时渠道会立即进入冷却,并遵循上游返回的 Retry-After。冷却结束后只放行一个探测请求,成功后才恢复为正常。「渠道健康」会显示当前状态,并支持手动重置。

出站代理:可选直接连接、系统代理或自定义代理。修改代理或连接超时前需要先停止网关。详见故障转移与负载均衡。

调试台

「调试」页面会通过网关发送真实请求,支持对话模式和 cURL 模式。可以切换 API 类型、添加最多 4 个附件(每个不超过 4 MB)、加入自定义参数,并查看实际选中的模型、耗时、token、预估费用和原始 JSON。真实测试可能产生上游费用。详见调试台。

日志与用量

  • 日志:按日期范围、智能体、服务商和状态筛选,或直接搜索。列表包含时间与智能体、模型与服务商、路由 ID、输入 / 输出 / 缓存 token、首字节与总耗时、预估费用、状态;详情页列出每一次上游尝试。列表每 5 秒刷新。
  • 用量:请求数、输入与输出 token、缓存读写、缓存命中率、预估费用、成功率、平均耗时,附每日 token 图表,并可按智能体、模型、服务商拆分。

费用是根据你配置的价格和服务商返回的用量估算的。详见用量与日志,也可以用 LLM 费用计算器做估算。

隐私与数据

  • 配置和服务商密钥保存在本地 ~/.autojev/autojev.db(SQLite),开发版使用 autojev-dev.db。密钥目前以明文形式存储,请像对待其他凭据文件一样保护它。
  • 请求日志只保存元数据:模型、状态、耗时、用量和预估费用。完整的提示词、回复和 API 密钥不会写入请求日志。
  • 没有 AutoJev 账号,也没有 AutoJev 云端中转。模型请求从你的电脑直接发往你选择的服务商,AutoJev 不加价。
  • 只有在路由使用智能选择且偏好为均衡或质量优先时,才会把路由元数据发送给 Jev 决策模型。
  • 接入智能体会修改它的配置文件并创建备份。请不要把真实配置、数据库、密钥或备份提交到代码仓库。

生命周期:暂停、停止与托盘

  • 关闭窗口后,AutoJev 和网关继续在托盘 / 菜单栏中运行;macOS 上窗口隐藏时 Dock 图标也会隐藏。
  • 暂停服务:保留智能体配置,新请求返回 HTTP 404 和错误码 gateway_paused,正在进行的请求可以继续完成。
  • 停止并恢复配置:先恢复所有已接入智能体的配置,再关闭网关。
  • 托盘菜单提供「Open AutoJev」(打开窗口)和「Quit AutoJev (restore agents)」(恢复智能体配置后退出)。
  • 下次启动时,AutoJev 会按保存的偏好重新接入智能体;你手动断开的智能体保持断开。

更新

正式版在启动时以及之后每 4 小时检查一次更新。更新包安装前会校验签名,安装成功后提示重启。可以在「设置 → 通用」关闭自动检查,或在「设置 → 关于」手动检查。安装更新前,请先等智能体正在进行的请求完成。

从源码构建

需要 Node.js 22+、pnpm 10+、稳定版 Rust,以及对应平台的 Tauri 依赖。

bash
git clone https://github.com/thinkany-ai/autojev.git
cd autojev
pnpm install --frozen-lockfile
pnpm dev

开发版使用独立的应用标识、数据库和端口(9526),不会检查正式版更新。运行测试:

bash
pnpm test
pnpm build
cargo test --locked --manifest-path src-tauri/Cargo.toml --lib

AutoJev 基于 MIT 协议开源,© ThinkAny, LLC。你可以自由使用、修改和再分发(包括商业用途),只需保留版权和许可声明。

常见问题与排错

智能体还在请求原来的服务商。 先在「智能体」页面确认连接状态,然后重启智能体——很多智能体只在启动时读取配置。

请求返回 gateway_paused。 服务处于暂停状态,在 AutoJev 中恢复即可。

Codex 请求提示某个功能不受支持。 Codex 使用 Responses API,previous_response_id、托管联网搜索等功能无法转换到 Chat Completions 或 Messages 上游。因此接入 Codex 时 AutoJev 会写入 web_search = "disabled"。如果确实需要这些功能,请使用 API 类型为 responses 的模型。

使用转换后的模型时,思考过程不见了。 各家专有的 thinking 块无法跨协议迁移,转换时会被丢弃。如果工作流依赖它们,请使用该模型的原生协议。

智能选择总是回退到负载均衡。 到「设置 → 网关与路由 → 决策模型」点击「测试 Jev」。请求日志会记录回退原因(未配置密钥、超时、置信度过低或返回未知候选)。

速度优先没有选中我预期的模型。 速度路由只使用最近 30 分钟内最多 5 个样本。请手动测速或开启定时测速;缺少可比较的数据时会按权重负载均衡。

怎样一键撤销所有改动? 使用「停止并恢复配置」,或从托盘选择「Quit AutoJev (restore agents)」,各智能体的原始配置都会被恢复。

支持 Cursor 吗? AutoJev 能检测到 Cursor CLI,但它没有公开文档化的自定义模型接口,因此无法路由它的请求。

AutoJev 能管理 MCP 或 Skills 吗? 不能。AutoJev 管理的是服务商、模型、路由以及智能体的模型连接。

在哪里反馈问题? 请在 GitHub 提交 issue。