目录

Trae Relay

Windows 原生的 Trae 本地 API 转接工具,支持通过网页登录或读取本地 Trae 登录凭据,将 Trae 账号提供为 OpenAI 兼容接口。单个 EXE 即可运行,无需 Python、Node.js 或 Docker。

目前主要验证 Traecode CN,Trae Work 请自行测试,国际版大概率用不了。

详细接入步骤见 docs/USAGE.md,9router 额度兼容性见 docs/9ROUTER-QUOTA.md。

球球大家点个star吧!球球啦!

功能

  • Chat Completions、Responses、模型列表
  • JSON 和 SSE 流式输出
  • 函数工具、Responses 自定义工具、命名空间工具
  • 多轮会话、思考档位、Max 模式
  • 账号发现、令牌刷新、积分和使用记录
  • 网页登录与本地目录凭据切换
  • 网页登录账号的保存、重命名、启用、删除和积分刷新
  • 多账号独立 API Key,同一端点按 Key 路由
  • 凭据列表显示脱敏 Key,行内复制完整 Key
  • --serve 无窗口后台运行,自动签到
  • 9router 接入说明与额度兼容性分析
  • 排队状态、今日 Token 和今日积分消耗
  • 模型目录启动拉取,成功后每小时刷新,失败后每 5 分钟重试
  • 日志开关与请求失败原因记录
  • 托盘、开机自启动、自动签到、局域网访问

使用环境

  • Windows 10/11 x64
  • 可用的 Trae 账号;网页登录方式无需安装 Trae,默认目录方式需要当前 Windows 用户曾经在 Trae 里登录过(只读本地凭据,运行时不依赖 Trae 进程)
  • 能够连接 Trae 上游服务

快速开始

  1. 下载 Release 中的 TraeRelay.exe,或按“从源码构建”编译。
  2. 双击运行。首次启动会在 EXE 同目录生成 config.json 和 API Key,并监听 8317 端口。
  3. 在“凭据管理”选择“使用网页登录凭据”,按下方说明添加一个或多个账号。多账号接入 9router 时建议全部使用网页登录。
  4. 在“运行总览”确认账号和模型已加载,然后在客户端填写:
配置项 内容
Base URL http://127.0.0.1:8317/v1
API Key 账号 Key(/v1/accounts 获取)或“运行总览”里的全局密钥
模型 /v1/models 返回的 id

登录方式

方式 操作
网页登录 选择“使用网页登录凭据”,点击“网页登录”,在浏览器完成登录。新账号默认启用;如显示未启用,点该行“启用”
本地目录 先在 Trae 客户端登录,再选择“加载默认目录凭据”,读取当前 Windows 用户的本地登录信息

网页登录支持保存多个账号,可在列表中修改名称、刷新积分或删除账号。每个账号有独立的 API Key,服务对外只有一个端点;请求按 Key 定位账号,不在反代内部做轮转或故障转移。账号的“启用/停用”只决定该 Key 是否可用,多账号的调度、重试和故障转移交给上游路由器(例如 9router)。单账号并发数由 service.maxConcurrentPerAccount 控制,账号有请求进行时不能停用或删除。

凭据列表的“API Key”列显示脱敏 Key,行内“复制”按钮可以复制完整 Key。

连接与退出

默认关闭窗口会最小化到托盘;完全退出请在托盘菜单中选择“退出”。

健康检查:GET http://127.0.0.1:8317/health,无需密钥。

API 支持 Authorization: Bearer <key> 和 X-API-Key: <key>。开启“任意 Key”会跳过鉴权,局域网使用时不建议开启。

后台常驻(–serve)

--serve 只启动 API,不创建窗口和托盘,适合挂后台;账号的登录、启用等配置仍在 GUI 里完成一次即可。凭据用 Windows DPAPI 加密,绑定当前 Windows 用户,所以后台任务需要以同一个用户启动(登录时启动最省事)。

.\TraeRelay.exe --serve

用任务计划程序注册开机登录自启(不需要额外装 NSSM / WinSW):

$exe = "D:\Desktop\OpenSourse\Trae-Relay\dist\TraeRelay.exe"
$action = New-ScheduledTaskAction -Execute $exe -Argument "--serve"
$trigger = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
$settings = New-ScheduledTaskSettingsSet -RestartCount 999 `
  -RestartInterval (New-TimeSpan -Minutes 1) `
  -ExecutionTimeLimit ([TimeSpan]::Zero)
Register-ScheduledTask -TaskName "TraeRelay" -Action $action -Trigger $trigger `
  -Settings $settings -Description "Trae Relay headless API" -Force

--serve 模式会按 accounts.checkin 配置自动签到;额度查询走 /v1/credits,模型目录由后台每小时刷新。

需要新增账号或重新登录时,先停任务再开 GUI(服务运行时 GUI 会因单实例互斥直接退出):

Stop-ScheduledTask -TaskName "TraeRelay"
.\TraeRelay.exe          # 在 GUI 里配置账号,完成后关闭
Start-ScheduledTask -TaskName "TraeRelay"

桌面快捷方式 TraeRelay 后台启停.lnk 可以一键切换:后台运行中就停止,未运行就启动。GUI 还开着时,启动分支会提示先退出 GUI,避免单实例冲突。

API

同一端点,按 API Key 定位账号:

方法 路径 说明
GET /health 健康检查,无需鉴权
GET /v1/models 当前 Key 对应账号的可用模型
POST /v1/chat/completions Chat Completions,发到当前 Key 对应账号
POST /v1/responses Responses,发到当前 Key 对应账号
GET /v1/status 当前 Key 对应账号的状态;accounts 列出全部启用账号
GET /v1/credits 当前账号额度(缓存值);加 ?refresh=1 主动查询上游
POST /v1/checkin 当前账号立即签到
GET /v1/accounts 列出当前来源全部账号及各自 API Key,仅全局 Key 可访问
OPTIONS /v1/* 浏览器跨域预检

账号独立 Key 与全局 Key 的区别:

  • 账号 Key(sk-trae-...,每个账号一把):用于 /v1/chat/completions、/v1/responses、/v1/models、/v1/status、/v1/credits、/v1/checkin,只会命中该 Key 绑定的账号。
  • 全局 Key(运行总览里的密钥):保留的兼容入口,推理请求会落到第一个启用账号;同时是 /v1/accounts 的管理 Key。多账号接入时建议只把账号 Key 交给路由器。

接入 9router

  1. 在“凭据管理”登录并启用需要使用的账号(每个账号都有独立 Key)。
  2. 在“运行总览”复制全局 Key,调用一次账号列表:
    curl -H "Authorization: Bearer <全局Key>" http://127.0.0.1:8317/v1/accounts
  3. 在 9router 里添加多个 OpenAI 兼容提供商,Base URL 全部填 http://127.0.0.1:8317/v1,每个提供商填一个账号的 api_key。
  4. 把轮询、重试、故障转移都放在 9router;反代只负责把请求送到 Key 对应的账号。需要额度或签到时,分别调用 /v1/credits、/v1/checkin(用对应账号 Key)。

多账号接入时保持“任意 Key”关闭:开启后未匹配的 Key 会落到第一个启用账号,等于绕过按 Key 路由。9router 如果跑在 Docker/WSL 里,需要把 service.allowLan 设为 true 并用宿主机 IP 访问。

9router 0.5.99 的额度页不会读取自定义 OpenAI 兼容源的额度。Trae Relay 已经提供按账号的 /v1/credits,但要在 9router 里显示,需要给它加一个通用 /credits 适配。改动点和升级策略见 docs/9ROUTER-QUOTA.md。

兼容范围

  • 支持文本、多轮对话、图片输入(能力取决于上游模型)、工具调用和 SSE。
  • Chat Completions 支持 reasoning_content;Responses 支持 reasoning summary 和 previous_response_id。
  • stop 由本地截断正文,最多 4 条;上游仍可能继续消耗额度。
  • previous_response_id 默认只保留最近 64 个响应,重启或淘汰后会返回 previous_response_not_found。
  • 可通过 responses.sessionCachePersist 持久化文本和工具历史,图片不会保存。

以下功能当前不提供或不保证语义一致:

  • 严格 JSON Schema 结构化输出
  • temperature、top_p、seed、n、max_tokens、max_completion_tokens、max_output_tokens 控制
  • background 后台任务及响应查询、取消接口
  • OpenAI 托管的 web search、file search、code interpreter
  • input_file/PDF、音频、Files、Embeddings、Images、Realtime、Batch 等接口

部分未知字段会被忽略;依赖严格参数语义的客户端请先验证。

配置

配置文件:EXE 同目录的 config.json。首次运行自动生成,也可以使用 --config 指定路径。

字段 默认值 说明
service.port 8317 HTTP 端口
service.allowLan false 开启后监听 0.0.0.0
service.allowAnyApiKey false 跳过 API Key 校验
service.maxConcurrentPerAccount 2 每账号并发数,范围 1~8;多账号各用各的并发槽
responses.sessionCacheSize 64 Responses 会话缓存数量
responses.sessionCachePersist false 是否保存会话到磁盘
logging.level info 日志级别
logging.enabled true 开启日志,可在偏好设置中即时切换

开启局域网访问后,其他设备使用 http://电脑IP:8317/v1,并放行 Windows 防火墙端口。服务只提供 HTTP,请在可信网络中使用。

命令行

.\TraeRelay.exe                 # 启动图形界面和 API
.\TraeRelay.exe --tray         # 启动后常驻托盘
.\TraeRelay.exe --serve        # 无图形界面运行 API
.\TraeRelay.exe --config path  # 指定配置文件
.\TraeRelay.exe --version      # 查看版本

--serve 不是 Windows 系统服务;默认启用单实例。

从源码构建

需要 Visual Studio 2022(桌面 C++)、Windows SDK 和 CMake 3.20+。

cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release --parallel 4

产物:dist/TraeRelay.exe。全量重建:

Remove-Item -LiteralPath .\build -Recurse
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release --parallel 4

仓库内容

src/                    C++ 源码、资源和版本模板
include/                头文件
docs/USAGE.md           网页登录 + 9router 使用说明
docs/9ROUTER-QUOTA.md   9router 额度兼容性分析
scripts/                后台任务、启停快捷方式脚本
CMakeLists.txt          CMake 构建配置
README.md               项目说明

常见问题

现象 处理方式
没有发现账号 在“凭据管理”检查来源;默认目录方式需先登录 Trae,网页登录方式需完成登录并启用账号
网页登录成功后仍无可用账号 返回“凭据管理”,确认当前来源是网页登录,并点击该账号的“启用”
模型不可用 确认 Trae 账号权限和模型 ID,并查看 logs/
401 检查账号 Key 是否属于当前凭据来源、账号是否启用;默认目录账号切到网页登录来源后会失效
403 用账号 Key 调了 /v1/accounts;这个接口只接受全局 Key
503 检查是否已启用可用账号、并发数是否已满;9router 会按配置重试或切换连接
端口启动失败 更换端口或关闭占用端口的程序
关闭窗口后仍在运行 程序默认最小化到托盘,在托盘菜单选择“退出”

本地数据

路径 内容
config.json 配置和 API Key
auth/ 账号列表、凭据来源和加密保存的登录凭据
logs/ 日志
usage/ 使用记录
responses_sessions.json 开启持久化后的会话缓存

登录凭据使用 Windows DPAPI 加密,绑定保存时的 Windows 用户。更换电脑或 Windows 用户后,请重新登录。

关于

Trae 多账号 OpenAI 兼容转接:同端点按 Key 路由,支持网页登录与 9router

253.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号