skystar567
dsh-openai-plugins
用于在dsh和openai账户之间建立连接
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
dsh-openai-plugins
用户自有的 DeepSeek Harness 插件:通过 ChatGPT 账号 OAuth 接入 OpenAI 模型与联网搜索。一个插件同时挂载两个能力 seam(ctx.llm 与 ctx.web),共享同一个 OPENAI_ACCOUNT_OAUTH 凭证(经 ctx.credentials seam 按引用解析)。
packages/
└── dsh-openai-account/ LLM 适配器(openai-account 路由 + /openai-login)+ 联网搜索提供方(openai-account)
构建与测试
前置:同级目录存在 harness 检出 /root/deepseek-plugins/deepseek-harness,且其 lib/types 已构建。npm 发布的 @deepseek-ai/*@0.0.1-rc.1 不完整(dsh-agent 引用了从未发布的 dsh-type-meta peer),因此类型与测试都解析到检出产物:
# 一次性:在 harness 检出内构建本仓库用到的类型产物
cd ../deepseek-harness
pnpm exec tsc -b packages/interaction/commands packages/credentials/credentials-local \
packages/llm/llm packages/util/timeout vendor/loader packages/util/atomic-write \
packages/util/home-paths packages/core/scope packages/typert/protocol
# 回到本仓库
cd ../dsh-openai-plugins
pnpm install # autoInstallPeers: false — peers 由宿主 profile 在运行时满足
pnpm build # tsc 构建 → packages/dsh-openai-account/lib/
pnpm test # vitest
pnpm pack:all # 产出可安装 tgz
- 构建:
tsconfig.base.json的paths指向 harness 的lib/types/*.d.ts(声明文件)。 - 测试:
vitest.config.ts的别名指向 harness 的 src(源平面)。
安装到 Web profile
dsh plugin --profile web add packages/dsh-openai-account/dsh-openai-account-0.1.0.tgz
重启 Web 应用后在命令框执行 /openai-login 完成账号登录(若尚未登录)。tgz 自带的 cordis.patch.yml 会插入插件行(LLM 适配器 + 搜索提供方)。
联网搜索:默认 DeepSeek,ChatGPT 搜索是 opt-in
插件会注册一个 openai-account 搜索提供方,但不会覆盖 web.searchProvider:默认仍走 base 里的 DeepSeek 官方搜索(deepseek-official,更便宜)。想用 ChatGPT 账号搜索,在 profile 的 cordis.patch.yml(用户层)加一行:
- id: web
config:
searchProvider: openai-account
重启后 web_search 就走 ChatGPT 账号(模型 searchModel,默认 gpt-5.6-luna)。
依赖链
联网搜索可用 ⟺ OPENAI_ACCOUNT_OAUTH 凭证存在。登录命令 /openai-login 由本插件提供;LLM 适配器与搜索提供方每次解析同一凭证(过期自动经 issuer 的 refresh_token 授权刷新并回写),共享一套凭证刷新逻辑。