DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

yembors64632 /

yembors64632/dsh-trae-connect

Verified

把 Trae (SOLO CN) 桌面 App 的订阅模型接入 DeepSeek Harness(个人自用方案)

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@efb857eb

dsh-trae-connect

把 Trae(SOLO CN) 订阅里的模型接入 DeepSeek Harness。

⚠️ 只对我自己的机器有效。 本插件读取的是宿主侧导出的明文凭据快照, 里面的 token 是我自己账号的。别人 clone 下来直接用会连不上——需要自己导出凭据, 并按自己的环境改常量。改法见下方自用改法。


它做什么

在 DSH 里以 OpenAI 兼容端点暴露 Trae 的 preset 模型,让模型选择器里出现 Trae 分组, 可直接对话。

DSH ──OpenAI──▶ 本插件的回环 shim ──Trae SSE──▶ trae-api-cn.mchost.guru

shim 只绑 127.0.0.1 随机端口 + 32 字节随机 bearer(timingSafeEqual 比对), 只服务 /healthz、/v1/models、/v1/chat/completions,无写接口。区别在于上游不是 OpenAI 形状,所以要把 Trae 的 SSE 逐事件翻译成 OpenAI 的 chat.completion.chunk。


为什么是这条入口(本项目最花时间的部分)

Trae 的推理入口不是 /api/ide/v2/llm_raw_chat。那条路属于 BYOK / 自定义模型通道 (dylib 里叫 llm_raw_chat_custom_model),要服务端按 (user, env, function) 预置一份 app config,外部调用只会拿到:

2001 failed to do chat: failed to get app config: record not found
入口 结果
/api/ide/v2/llm_raw_chat ✗ BYOK / 自定义模型专用,外部调用恒 2001
/api/ide/v1/llm_raw_chat ✗ 4001 param is invalid,请求 schema 与 v2 不同
/api/agent/v3/llm_utils_chat ✓ 可用(Go 服务,内部名 llm_raw_chat_v2)

真正能用的是 agent 服务。它只要求三样东西:

  1. app_id + app_version_code(int64) —— 来自 product.json 的 bootConfig,是 产品级常量,不是账号级;同一串也被硬编码在 libai_agent.dylib 里。
  2. function —— 必须是服务端为该 appId 注册过的名字(见 TRAE_FUNCTIONS)。 给错名字会回 no function config found for appId=..., function=...。
  3. messages[].content 必须是对象数组 [{type:"text",text:"..."}],不是字符串。 给字符串会回 cannot unmarshal string into Go struct field LLMRawMessage.messages.content。

拿到一个有效 function 之后,任意 preset 模型都可用(实测 9×19=171 组合全过)。


凭据

容器看不到宿主 macOS 的 ~/Library/Application Support/TRAE SOLO CN/。因此由宿主侧 脚本解密 byteCrypto 信封后,写明文快照到:

$DSH_HOME/trae/credential.json   # appId / appVersionCode / 会话 token
$DSH_HOME/trae/models.json       # 模型目录

(~/.dsh 已 bind mount 成容器里的 /root/.dsh。)

本插件只读这两份快照,绝不碰桌面 App 自己的目录。


安装

前置:已安装并登录 Trae(SOLO CN)桌面版,且已导出上述快照。

dsh plugin --profile web add github:yembors64632/dsh-trae-connect

Desktop / TUI 把 --profile 换成 desktop / tui。

cordis.patch.yml 会注册 llm-trae 这个 provider id,不改动 profile 当前的默认模型。


自用改法:把这段提示词丢给你的 AI

插件是照着我自己的机器写死的。你在自己环境改的时候,把下面这段连同插件目录交给 AI:

我在用 DeepSeek Harness(DSH),装了你写的 dsh-trae-connect 插件。
这个插件是照着原作者的环境硬编码的,我要改成适配我自己的环境。

请你:
1. 先通读插件目录下的 lib/index.js,找出所有硬编码的路径、端点、常量;
2. 对照我下面的实际环境,逐项告诉我每一处需要改成什么,并给出修改后的完整代码;
3. 改完给我一条自检命令,用来验证凭据能读到、上游能连通。

我的实际环境:
- 我用的是(Linux / macOS / Windows WSL),DSH 数据目录 $DSH_HOME 是:<填你的路径>
- Trae 桌面版装在:<填 App 的安装/数据目录>
- 我的账号情况:<个人号 / 企业号>
- 插件报的错是:<贴报错>

注意:只改凭据读取路径和上游端点,不要动 SSE 翻译、OpenAI 兼容层这些
协议实现——那部分是验证过能用的。

你大概率要改什么

差异点 位置
快照路径 lib/index.js 里凭据解析段(默认读 $DSH_HOME/trae/)
网关域名 顶部 DEFAULT_GATEWAY(默认 https://trae-api-cn.mchost.guru)
账号/计费网关 DEFAULT_ACCOUNT_BASE(默认 https://api.trae.cn)
appId / appVersionCode 随 Trae App 版本变化,需从你的 product.json 取
默认 function FUNCTION_FIELD,可选值见 TRAE_FUNCTIONS

不要动 SSE 翻译层与 OpenAI 兼容层——那部分已验证可用。


适配版本

项 版本
插件 0.1.0
DSH 核心 0.1.5 / 0.1.6 / 0.1.7 alpha 线
上游 Trae(SOLO CN)桌面版
Node.js ^22.19.0 || >=24.0.0
界面 Web / Desktop / TUI

DSH 核心版本不匹配会导致 DSH 启动失败,不是静默降级。装之前先对表。

依赖 @deepseek-ai/* 系列包(cordis、dsh-llm、dsh-llm-pi-ai、dsh-home-paths、 dsh-host-webserver、schemastery)与 @earendil-works/pi-ai。


如果 star 多了:作者会考虑做全版本适配

现在是单点适配——我验证通过的那一套环境能跑,换个版本就可能挂。这是有意的取舍: 在没确认有多少人用之前,为每个 DSH 版本做兼容矩阵的性价比不高。

如果这个仓库 star 多了(说明确实有人在用),作者会考虑做以下工作:

  • 跨版本适配矩阵:把 0.1.5-rc.x / 0.1.6-alpha.x / 0.1.6 / 0.1.7 各代的 peer range 与配置入口差异整理成表,插件加载时按宿主实际能力自适应。
  • 凭据导出的跨平台化:目前宿主导出脚本是 macOS 取向(读 App 的 Application Support)。 补 Windows / Linux 的路径探测与 safeStorage 变体。
  • 上游变更的降级策略:上游接口是私有实现,随时可能变。计划做「实时 → 上次成功 → 内置兜底」三级降级,并在卡片上显示当前来源与失败原因。
  • 安装体验:一条命令探测环境 + 拉取对应版本,替代现在的手工对照。

想要哪个,开 issue 说一声——用的人多就先做哪个。


风险

上游是私有实现,没有稳定契约。Trae 服务端一改,插件就可能失效。 app_id / function 这类产品级常量随 App 版本变化,升级 App 后可能需要同步更新。 这不是 bug,是这类方案的固有风险。

免责声明

本项目仅供个人学习与研究,驱动你自己账号在你自己的机器上使用。 使用者需自行遵守 Trae 的服务条款。因使用本项目产生的任何后果 (包括但不限于账号受限、积分消耗、服务中断),由使用者自行承担。 仓库不含任何真实账号、凭据或密钥。

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit efb857ebf7ab

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout