DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

lyp0709 /

lyp0709/orcaterm-model-proxy

Verified

把 OrcaTerm 网页版的免费模型接入 DeepSeek Harness(DSH),支持一键登录、工具调用与图片识别

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@498b7b13

OrcaTerm Model Proxy

把 OrcaTerm 网页版的免费模型接入 DeepSeek Harness(DSH),支持工具调用与图片识别。

本项目与腾讯云 / OrcaTerm 官方无关,是一个第三方集成插件。使用前请自行确认符合 OrcaTerm 的服务条款。

功能

  • 接入 8 个免费模型:DeepSeek V4.1 Flash / V4 Flash / V4 Pro、Kimi K3、GLM 5.3 Flash / 5.3 / 5.2、Hunyuan 3
  • 凭证自动续期:只需配置一次,之后长期自动续期,不需要反复更新
  • 工具调用:DSH 注册的工具由本机执行,模型可以读取文件、执行命令等
  • 图片识别:可以把图片发给模型(DeepSeek V4.1 Flash、Kimi K3 支持;GLM 5.3 不接受图片)
  • 可视化设置面板:模型选择、推理强度、账号状态、额度查询、调用统计

安装

从 GitHub 安装(推荐)

dsh plugin --profile desktop add github:lyp0709/orcaterm-model-proxy

从本地目录安装

dsh plugin --profile desktop add "D:\path\to\orcaterm-model-proxy"

或者使用 DSH 的插件管理器:设置 → 插件 → 安装本地插件,选择目录。

交给 AI 助手

在 DSH 里直接说:

帮我安装这个插件:github.com/lyp0709/orcaterm-model-proxy

安装完成后重启 DSH。

本插件零运行时依赖,安装时不需要构建步骤。

配置凭证(一键登录)

插件需要 OrcaTerm 的登录凭证。只需登录一次,之后自动续期。

  1. 打开 DSH 设置 → 找到 OrcaTerm 面板(登录区块在最上面)
  2. 点 「一键登录」
  3. 插件自动弹出一个独立的浏览器窗口(与日常浏览器完全隔离,不影响你正在用的)
  4. 在这个窗口里用腾讯云账号登录(支持微信扫码、QQ、GitHub、账号密码等)
  5. 登录成功后无需操作 —— 插件自动检测并读取凭证,然后关闭窗口
  6. 面板显示「登录成功,凭证已生效」即完成

成功后会有明显提示,并显示识别到的账号和凭证有效期。

自动登录的实现

浏览器把 Cookie 加密存储(Chrome 127+ / Edge 新版使用 App-Bound Encryption,密钥与浏览器进程身份绑定),第三方进程无法解密。但浏览器自己可以。

插件的做法:

  1. 用独立 profile 启动 Edge/Chrome,开启 --remote-debugging-port
  2. 导航到 orcaterm.ai/terminal,让用户完成登录
  3. 通过 CDP 的 Network.getCookies 读取 __Secure-ot_session
  4. 拿到后立即关闭浏览器并保存凭证

这个过程只读取 orcaterm.ai 一个域名的 Cookie,不触碰用户日常浏览器数据。

手动方式(自动登录不可用时)

  1. 点「手动输入」展开
  2. 点「打开登录页」,用浏览器登录
  3. 按 F12 → Application 标签 → Cookies → 选中 https://orcaterm.ai
  4. 找到 __Secure-ot_session,双击 Value 列全选复制(约 80 个字符)
  5. 粘贴到输入框,点「保存并校验」

提示:也可以直接复制整条 Cookie 请求头,插件会自动提取需要的部分。

关于账号

  • 需要一个腾讯云账号。首次使用腾讯云可能需要完成实名认证等前置步骤。
  • OrcaTerm 目前提供免费额度(AI 功能为单一额度池,不按模型区分)。

使用

配置完成后,在 DSH 的模型选择器里就能看到 OrcaTerm 提供的模型。

设置面板里还可以调整:

选项 说明
默认模型 未指定时使用的模型
推理强度 low / medium / high
显示思考过程 是否显示模型的推理过程
工具调用 是否允许模型使用 DSH 的工具
图片识别 是否把图片发给模型
失败重试 网络错误、限流时的重试次数
备用模型 主模型失败时自动切换
超长会话裁剪 历史超过阈值时自动丢弃最老对话;可关闭

上下文与长度限制

重要结论:服务端容量很大,真正的瓶颈是模型注意力。

以下数据全部来自实测,测试方法见文末。

容量:至少 120 万字符

档位(目标 token) 实际字符数 请求体 耗时 结果
256k 300,331 0.86 MB 13–19s ✅ HTTP 200
500k 600,331 1.72 MB 19–23s ✅ HTTP 200
1M 1,200,331 3.43 MB 15–16s ✅ HTTP 200

三档全部正常返回,既不报超限,也不静默截断 —— 验证方式是在文档首部和尾部各埋一个标记,两处都能被模型读到。

可靠性:约 20 万字符是上限

在 600,000 字符的文档里,把标记放在不同位置,看模型能否找到:

位置 1% 2% 5% 10% 20% 30% 50% 70% 90% 95% 99% 100%
能否读到 ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅

首尾能读到,中间全部丢失。 长度递增测试进一步确认边界:

文档长度 首部 1% 中部 50% 尾部 99%
20,000 ✅ ✅ ✅
50,000 ✅ ✅ ✅
100,000 ✅ ✅ ✅
200,000 ✅ ✅ ✅
400,000 ✅ ❌ ❌
600,000 ✅ ❌ ✅

这是大模型的 lost-in-the-middle 现象,与 OrcaTerm 无关 —— 上游完整地把内容传给了模型,但模型注意力只覆盖首尾。

对照实验确认模型没有编造:不放标记时它如实回答「未找到」。

其他硬限制

项目 限制
单次输出 max_tokens 硬上限 8,096,超出被服务端拒绝
超限表现 服务端报错,特征为 context_length_exceeded / too many tokens / prompt is too long

插件的处理

  1. max_tokens 夹紧 —— 传入值超过 8,096 时自动下调,避免请求被拒。
  2. 主动历史裁剪 —— 默认阈值 200,000 字符(用满可靠区间)。超出时丢弃最老对话,保留:
    • system 消息(永不丢弃)
    • 最近 8 条对话(保证连贯)
    • 成对的工具调用与结果(不会从中间切断)
  3. 超限提示 —— 万一服务端仍报超限,翻译成「输入超出上下文上限,建议新建会话或精简需求」。

裁剪阈值可在设置面板调整,范围 40,000 ~ 1,000,000,或关闭。

调高阈值能容纳更多历史,但模型可能漏读中间部分 —— 超出 20 万字符后,多保留的内容不一定被模型真正用到。关闭裁剪(始终全量发送)同理。

测试方法

  1. 容量:构造 30 万 / 60 万 / 120 万字符的文档,在首尾各埋标记,用自然提问让模型回答标记内容。
  2. 可靠性:固定 600k 字符文档,在 12 个不同百分位依次埋标记,逐个验证。
  3. 边界:在 20k ~ 600k 六个长度下,分别测首部 / 中部 / 尾部三个位置。
  4. 防伪:不放标记时观察模型是否编造。

早期用过「暗号 + 只回答暗号」的测法,但模型会把它识别为提示注入而拒答,导致「没看到」和「不肯说」无法区分。改用编号章节 + 中性提问后才得到可靠结论。

工作原理

插件实现了 DSH 的 LlmAdapter 接口,把 DSH 的请求翻译成 OrcaTerm 的 ACP 协议:

  1. 认证:用 __Secure-ot_session 换取 JWT access token(有效期 2 小时,自动续期)
  2. 对话:调用 OrcaTerm 的 SSE 流式接口,把事件映射成 DSH 的 chunk
  3. 工具调用:把 DSH 的工具清单写进系统提示位,模型返回工具请求后由 DSH 在本机执行,结果回传
  4. 图片:把 DSH 的图片附件转成 base64 放进 input.files
  5. 长度管理:max_tokens 夹紧 + 历史裁剪,见上节

工具始终在本机运行,OrcaTerm 服务器只负责转发调用描述与执行结果。

已知限制

  • 仅支持腾讯云账号登录,不支持 OrcaTerm 独立账号。
  • OrcaTerm 不提供 token 用量数据,因此 DSH 的 token 统计面板不会显示本插件的用量。插件自带的调用统计(次数、耗时、首字延迟)是准确的。
  • 图片识别的模型支持不一致:GLM 5.3 收到图片会报错(插件会自动跳过),Hunyuan 3 识图不准确。
  • 模型列表是内置的。OrcaTerm 调整模型时需要更新插件版本。
  • 单次输出上限固定为 8,096 token,这是上游限制,插件无法提高。
  • 超过约 20 万字符后,模型会漏读中间内容(lost-in-the-middle)。这是大模型的通病,不是本插件或 OrcaTerm 的问题。调高裁剪阈值或关闭裁剪都不会改变这一点。
  • 裁剪会丢失早期对话细节。如果任务依赖很早期的上下文,建议关闭裁剪或新建会话。

隐私说明

插件会做什么:

  • 一键登录时启动一个独立的浏览器窗口,用户数据目录为 ~/.dsh/orcaterm-login-profile,与你日常使用的浏览器完全隔离
  • 通过 Chrome DevTools Protocol 读取 orcaterm.ai 这一个域名的 __Secure-ot_session Cookie
  • 读到凭证后立即关闭该浏览器窗口

插件不会做什么:

  • ❌ 不读取你日常浏览器的任何数据
  • ❌ 不读取其他网站的任何 Cookie
  • ❌ 不把凭证发送到除 OrcaTerm 官方接口以外的任何地方
  • ❌ 不在后台常驻浏览器进程

本地存储的文件:

文件 内容
~/.dsh/orcaterm-cookie.txt 仅 __Secure-ot_session 一个值
~/.dsh/orcaterm-token.json 短期 JWT 缓存(2 小时)
~/.dsh/orcaterm-usage.json 本地调用统计
~/.dsh/orcaterm-login-profile/ 登录专用浏览器数据,可在面板「清除登录缓存」删除

故障排查

设置面板的「诊断」可查看最近一次调用的详情。也可以直接访问:

http://127.0.0.1:<DSH端口>/api/orcaterm/diag

常见问题:

现象 原因与处理
一键登录没弹出浏览器 确认安装了 Edge 或 Chrome;关闭同名浏览器窗口后重试
一键登录提示端口占用 可能有残留浏览器进程,重启或改用手动输入
登录后未检测到凭证 登录完成后让窗口保持打开几秒;仍失败则用手动输入
提示凭证无效 登录状态过期,点「重新登录」
模型不返回内容 检查是否触发限流(上游限制约 2 秒 1 次)
图片识别失效 确认用的是 DeepSeek 或 Kimi 模型,且设置里「图片识别」已开启
工具调用失败 确认「工具调用」已开启;GLM 5.3 对图片会 400

项目结构

├── index.js              插件入口:LlmAdapter 实现 + /api/orcaterm/* 端点
├── service.js            Host 数据层:凭证、续期、额度、模型列表、调用统计
├── client.js             设置面板(浏览器侧 React 组件)
├── cordis.patch.yml      DSH 插件装配清单(配置项默认值)
│
├── auto-login.js         一键登录:CDP 启动浏览器并读取 Cookie
├── cookie-normalize.js   凭证归一化:整条 Cookie → 只留 __Secure-otSession
├── open-external.js      打开系统浏览器(仅允许 http/https)
│
├── tool-stream.js        信封解析:区分工具 / 正文 / ask 三类信封
├── tool-prompt.js        工具清单注入 emphasisPrompt
├── tool-loop.js          工具结果回传(reportToolResult)
├── answer-stream.js      JSON 信封的增量正文提取
│
├── image-files.js        DSH ImageBlock → input.files(base64)
├── session-map.js        DSH 会话 → OrcaTerm conversationId 映射
└── usage.js              本地调用统计

代码改动后需要重启 DSH 才能生效(Node 模块缓存)。

调试可以用设置面板的「诊断」,或直接读接口:

# 最近一次调用的完整画像
curl http://127.0.0.1:<DSH端口>/api/orcaterm/diag

关键诊断字段:imageCount / imageSkipped(图片是否送达)、toolReported(工具结果是否回传)、roleBreakdown(消息结构)、isToolFollowUp(是否工具回灌轮)。

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 498b7b13003e

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