dsh-trae-connect:把 Trae 桌面 App 模型接入 DeepSeek Harness

前言

在 DeepSeek Harness(DSH)里做智能体开发时,模型来源通常来自自建 API 或第三方 OpenAI 兼容网关。若你已经在本机安装并登录 Trae 桌面 App(国内版或国际版),账号里其实带着可用的 remote 会话能力与模型目录,但这些接口并非 OpenAI 形态,DSH 也无法直接读取桌面程序的登录态。

下面介绍的 dsh-trae-connect(维护者 marsma-101)做的是:在本机解密 Trae 保存的凭据、把 Trae remote 会话协议翻译成 loopback 上的 OpenAI 兼容 HTTP 小门,并在 DSH 模型选择器里注册 Trae(国内版)与 Trae Intl(国际版)两个分组。装上后尽量零配置,依赖自动发现安装路径与数据目录。项目仅供个人学习与研究,请遵守 Trae 服务条款;协议实现参照 MIT 许可的 Trae2api-cn 公开文档。

这是什么

dsh-trae-connect 是 DSH 社区插件(分类:模型推理),当前版本 0.1.0,许可证 MIT。它不复刻 Trae 账号体系,而是复用你已登录的桌面 App:读 product.json 判断国内版 / 国际版与真实上游镜像,解密 storage.json 中的 Cloud-IDE-JWT,从线上拉取模型列表,经 ctx.llm.registerAdapter 注册 provider id 为 trae 与 trae-intl 的适配器。

核心功能

自动发现 Trae 安装与数据目录

插件按平台扫描候选路径:Windows 读卸载注册表 InstallLocation(非默认盘也能找到);macOS 查 /Applications;Linux 查两个 XDG base,WSL 另试 /mnt/<盘> 映射。命中后读取 resources/app/product.json,用 packageType(TRAE_CN / TRAE_I18N)区分版本,用 bootConfig.remote.trae 取该账号实际上游(国际版按 region 在 normal / SG / US 等镜像间选择,不写死主机名)。

数据目录方面,在 %APPDATA% / %LOCALAPPDATA% 等候选根下先试已知目录名,再叠加目录名含 trae 的宽松扫描,逐个尝试解密 User\globalStorage\storage.json。国内版与国际版各取第一个能解出有效令牌的目录;两个版本都装则两组都出现。显式路径优先:设置卡可填国内版 / 国际版数据目录或 storage.json 全路径,也可用环境变量 TRAE_DATA_DIR_CN / TRAE_DATA_DIR_INTL。

若扫描后没有任何凭据,日志会提示确认 Trae 已启动并登录过(拉模型列表与扫描路径期间需保持 App 运行;首次使用需先在 Trae 内完成登录)。

动态模型目录与展示

模型列表从 Trae 线上实时拉取(/models?functions=<按版本选桶>&show_custom_model=true),每 10 分钟刷新;失败时回落内置兜底列表。国内版桶为 solo_agent_remote;国际版为 solo_agent(全量目录,与 Trae 国际版界面一致)。模型名后可标注积分倍率(如 · x0.8);国际版对付费档未解锁模型标 · 🔒 未解锁,判据为 features 里 access.enable === true。用户在 Trae 自配的自定义模型不会出现在选择器中。

设置卡片还提供:「使用上游声明的最大上下文窗口」开关(默认开,max-mode 用 1M 窗口);思考强度档位(由 reasoning.enable 与 reasoning_effort_config.options 决定);「即用即焚」(每轮对话结束后删除 Trae 侧临时远程会话,默认开)。

凭据、小门与协议翻译

凭据从 iCubeAuthInfo://icube.cloudide 经「tc」信封算法(AES-128-CBC + SHA-512 派生密钥)解密,副本存于 <DSH_HOME>\.trae-connect\credentials.json(国内版)与 credentials-intl.json(国际版),权限 0600。Cloud-IDE-JWT 到期前 30 分钟经 ExchangeToken 自动刷新。

本机 127.0.0.1 随机端口起 OpenAI 兼容服务(/v1/models、/v1/chat/completions),国内版与国际版各持一枚 Bearer 令牌,并做 Host/Origin 回环校验。OpenAI 请求被翻译成 POST /api/remote/v1/chat_sessions 与 SSE 事件流;国内版单头 Authorization: Cloud-IDE-JWT、Origin solo.trae.cn;国际版需同时发送 Cloud-IDE-JWT 与 Authorization: Cloud-IDE-JWT 两个头,Origin 为 work.trae.ai。

国内版与国际版对照

分组 provider id 典型数据路径(Windows) 上游(示例)
Trae(国内版) trae %APPDATA%\Trae CN\User\globalStorage\storage.json https://trae-api-cn.mchost.guru/api/remote/v1(实测可用)
Trae Intl(国际版) trae-intl %APPDATA%\Trae\User\globalStorage\storage.json 从已安装程序 product.json 按 region 选镜像;设置卡「国际版上游地址」可覆盖

国际版模型列表回包形态与国内版不同(data.list[].models),插件解析器两种都支持。选中锁定模型时上游会拒绝建会话,插件报错会注明需升级 Trae 付费档。

安装与启用

已抓取 README 与 SkillHub 目录页 均未给出固定的 dsh plugin add … 安装命令行原文。安装方式请以 DSH 当前版本的插件安装说明,以及目录页「可安装」入口为准;源码与 cordis.patch.yml 见 GitHub 仓库。

启用前请注意:插件以 当前 DSH 进程的用户权限 运行,会读取 Trae 数据目录并写入 <DSH_HOME>\.trae-connect\ 下的凭据副本。安装前应自行审阅源码与 MIT 许可证,确认可接受解密本地登录态、访问 Trae 私有 remote 接口等行为。

典型用法

README 未提供独立 CLI 示例;预期工作流如下:

  1. 在本机安装 Trae 桌面 App(国内版和/或国际版),完成登录并保持 App 可运行。
  2. 在 DSH 中安装并启用 dsh-trae-connect。
  3. 在 DSH 模型选择器中选择 Trae 或 Trae Intl 分组下的模型,按常规模型对话使用。
  4. 若自动发现失败,在插件设置卡填写数据目录或设置 TRAE_DATA_DIR_CN / TRAE_DATA_DIR_INTL;国际版积分查询需自行填写「国际版积分接口根地址」(官方积分域名在资料中标注为未实测)。

适用场景与限制

适合:已用 Trae 桌面 App 且希望在 DSH 智能体流程里复用同一账号模型目录与登录态的个人开发者;需要国内版与国际版分组并存、模型列表随 Trae 线上更新而无需改插件的场景。

限制(README 明确):

  • 工具调用(function calling)未实现,仅支持文本 / 推理对话。
  • 依赖 Trae 客户端私有接口,Trae 大版本更新后插件可能需要调整。
  • 国际版积分接口域名未实测,状态卡积分需自填根地址才启用。

免责声明:项目与 Trae、字节跳动、DeepSeek 无关联;使用后果由使用者自行承担,请勿用于商业用途。

链接

DSH 生态强调「一切皆插件」;SkillHub 为社区独立目录,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜