🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

mn288/dsh-vertex-gemini

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
未验证

在 DeepSeek Harnessdsh中,通过 Google Cloud Vertex AI 使用…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/21 · 已提供中文文档

DeepSeek Harness 插件:通过应用默认凭据在 Google Cloud Vertex AI 上使用 Gemini

综合分
29.5
GitHub 分
29.5
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add mn288/dsh-vertex-gemini
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 4 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

数据截至 2026/9/26(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-brand@deepseek-ai/dsh-credentials@deepseek-ai/dsh-launch-environment@deepseek-ai/dsh-timeout@deepseek-ai/dsh-util-values@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-credentials-local@deepseek-ai/dsh-llm@deepseek-ai/dsh-settings
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-vertex-gemini

在 DeepSeek Harness(dsh)中,通过 Google Cloud Vertex AI 使用 Gemini,并使用你自己的 Google 账号登录。不会创建或存储任何 API 密钥:该插件使用你机器上已有的 Google 登录(应用默认凭据),并向你指定的 Google Cloud 项目计费。

它可与官方 npx @deepseek-ai/dsh 配合使用——无需 fork,也无需构建。

你需要准备

- Node.js 22.19+ 或 24+。
- gcloud CLI。
- PATH 中有 pnpm(npm install -g pnpm):dsh plugin 命令会在 profile 内运行它。
- 对此仓库的读取权限,以及已登录的 GitHub CLI(gh auth login),用于下载 release。
- 一个已启用 Vertex AI API 的 Google Cloud 项目,以及调用它的权限(roles/aiplatform.user)。

设置(约两分钟)

1. 登录一次。这会存储一个 Google 登录,插件会自行刷新它:

gcloud auth application-default login

2. 将最新 release 下载到一个你会保留的文件夹中,然后将其安装到 Web profile。profile 会记录 tarball 的绝对路径,因此从 Downloads 中删除文件会导致下次安装 profile 失败;~/.dsh/plugins 是存放它的安全位置:

mkdir -p ~/.dsh/plugins
gh release download --repo mn288/dsh-vertex-gemini --pattern '*.tgz' --dir ~/.dsh/plugins
npx @deepseek-ai/dsh plugin --profile web add ~/.dsh/plugins/dsh-vertex-gemini-0.1.0.tgz

pnpm 最后会输出一段 missing peer @deepseek-ai/... 警告。这是预期情况:这些包位于 profile 树中上一级目录,Node 在运行时会找到它们。要查找的行是 dependencies 下的 + dsh-vertex-gemini。

如果还想从终端使用该插件,请使用 --profile headless 重复执行 add 命令。以后要更新时,将更新的 release 下载到同一文件夹,并使用新文件运行相同的 add 命令。

3. 指定你的 Google Cloud 项目。可以在启动 dsh 的 shell 中导出它:

export GOOGLE_CLOUD_PROJECT=my-gcp-project

或将其保存在 $DSH_HOME/settings.yaml 中(默认是 ~/.dsh/settings.yaml):

llm-vertex:
project: my-gcp-project

4. 启动 Web UI 并选择模型:

npx @deepseek-ai/dsh web

如果 dsh web 已在运行,请停止它并重新启动:插件在启动时加载。然后打开模型选择器,选择 Google Vertex AI → Gemini 3.8 Flash。该选择将成为新会话的默认值。

选择器提供 Low、Medium 和 High 推理级别。如果 settings.yaml 中因其他提供商而残留 xhigh 或 max 的默认值,会导致每个请求都失败并报 UNSUPPORTED_REASONING_EFFORT;请在选择器中选择一个级别,或在 agent-default-model 下设置 reasoningEffort: high。
在设置项目之前,提供程序会列在 Settings → Models 下,但选择器中不会出现任何模型。这是预期行为:在知道要调用哪个项目之前,该路由保持关闭。

要移除插件:npx @deepseek-ai/dsh plugin --profile web remove dsh-vertex-gemini。

设置

每个字段都是可选的,位于 settings.yaml 中的 llm-vertex: 下。更改会在下一次请求时生效;无需重启。

| 字段 | 默认值 | 含义 |
|---|---|---|
| project | $GOOGLE_CLOUD_PROJECT,然后是 $GCLOUD_PROJECT | 被调用并计费的 Google Cloud 项目 |
| location | global | Vertex AI 位置;诸如 europe-west1 之类的区域会使用该区域的端点 |
| reasoningEffort | high | 默认思考级别:low、medium 或 high |
| models | Gemini 3.8 Flash | 选择器中显示的模型;每个条目接受 id,以及可选的 name、description、contextWindow、maxTokens |
| maxTokens | 65536 | 未指定该值的模型的输出上限 |
| defaultContextWindow | 1048576 | 未指定该值的模型的上下文大小 |
| publisher | google | 在传输时添加到裸模型 id 的前缀(gemini-3.8-flash 会作为 google/gemini-3.8-flash 发送) |
| baseURL | 根据项目和位置计算 | 完整的 OpenAI 兼容端点根,用于公司网关 |
| auth | adc | adc 使用 Google 登录;access-token 读取你提供的 bearer |
| accessTokenEnv | GOOGLE_OAUTH_ACCESS_TOKEN | 当 auth: access-token 时 bearer 的来源(用于自行生成令牌的 CI 任务) |
| streamIdleTimeoutMs | 300000 | 响应中一段静默时间可以持续多久,超过后请求失败 |
| retryPolicy | 五次重试 | 失败的模型请求的重试行为 |

添加第二个模型:

llm-vertex:
project: my-gcp-project
models:
- id: gemini-3.8-flash
name: Gemini 3.8 Flash
- id: another-gemini-model-id   # any model id your project can call
name: Shown in the picker

你的项目可以调用的任何 Gemini 模型 id 都可以使用,即使它未被列出;该列表仅用于填充选择器。

当某些东西失败时

| 消息 | 原因和修复 |
|---|---|
| MISSING_CREDENTIAL … run "gcloud auth application-default login" | 此机器上没有 Google 登录,或登录已过期。运行该命令并重试;无需重启。 |
| AUTH | 登录存在,但 Google 拒绝了它(已撤销,或账户缺少访问权限)。重新登录,并检查该账户在项目上具有 roles/aiplatform.user。 |
| NOT_FOUND | 项目无法使用该模型,或模型 id 或位置错误。检查 id,尝试 location: global,并确认 Vertex AI API 已启用。 |
| QUOTA / RATE_LIMIT | 项目的 Gemini 配额已耗尽或受到限制。测试框架会自行重试;如果问题持续存在,请在 Cloud 控制台中提高配额。 |
| 选择器中没有 Vertex 模型 | 未配置项目。参见步骤 3。 |
| UNSUPPORTED_CONTENT | 你附加了图像。此插件仅发送文本。 |
验证状态

已于 2026-09-21 针对真实的 Vertex AI API(项目 common-ai-tooling-prd,位置 global,Gemini 3.8 Flash)完成验证:下面的真实 API 测试(先是一个文本回答,然后是一次带签名回放的工具调用往返)通过,并且从发布 tarball 安装的无头 dsh 会话通过工具读取了一个文件并正确作答。单元测试、Loader 启动测试,以及针对本地 mock 的安装并运行冒烟测试也均通过。

每当适配器或 harness 版本发生变化时,请使用有效的 Google 登录重新运行真实 API 测试:

DSH_VERTEX_E2E=1 DSH_VERTEX_PROJECT=my-gcp-project pnpm exec vitest run tests/adapter.e2e.ts

Gemini 3.8 Flash 会将思考 token 计入输出上限:maxTokens 设置得非常小的请求可能会以 max-tokens 结束且没有文本。请将上限保留为默认值(65536),或至少设为数千。

限制

- 仅支持文本。 图像输入会被拒绝,而不是被静默丢弃。
- 没有设置表单。 Models 页面会列出该提供方,但没有为其提供专门的卡片;请通过环境变量或如上所示的 settings.yaml 进行配置。
- 已针对 @deepseek-ai/dsh 0.1.5-rc.2 测试。 harness API 尚处于预稳定阶段,因此后续版本可能需要更新插件。

工作原理

该插件注册一个提供方路由 vertex-ai,并通过流式方式与 Vertex AI 的 OpenAI 兼容 chat-completions 端点通信。有两个细节对 agent 工作很重要:

- 思考签名。 Gemini 3 会为工具调用附加一个不透明签名,如果后续请求未将其发回,则会拒绝该请求。该插件会将每个签名存储在会话日志中工具调用的旁边,并在后续请求中回传,因此多步骤工具使用在重启和恢复会话后仍能继续。由其他模型或提供方生成的历史记录则会使用 Google 文档中所述的跳过标记发送。
- 凭据。 google-auth-library 会按 Google 的标准顺序查找登录信息(GOOGLE_APPLICATION_CREDENTIALS、gcloud 用户登录,然后是元数据服务器),缓存每小时令牌并刷新它。该库仅在首次请求时加载,因此当你使用其他提供方时,该插件在启动时不会产生任何开销。

开发

pnpm install
pnpm test          # unit tests, no network or Google login needed
pnpm run typecheck
pnpm run smoke     # packs the plugin, installs it with the published dsh CLI, and runs one prompt against a local mock endpoint

tests/adapter.e2e.ts 会调用真实 API。请使用有效的 Google 登录运行它:

DSH_VERTEX_E2E=1 DSH_VERTEX_PROJECT=my-gcp-project pnpm exec vitest run tests/adapter.e2e.ts

分享它

该仓库是私有的,并且 package.json 中带有 "private": true,因此意外的 npm publish 会被拒绝。同事需要先获得读取权限:在仓库的 Settings → Collaborators 下添加他们。要将插件交给他们:
- 作为发布版本(当前设置): 提升 version,运行 npm pack,并使用 gh release create v dsh-vertex-gemini-.tgz 将 .tgz 附加到新版本发布中。拥有仓库读取权限的同事可按设置步骤中所示进行安装。
- 通过内部注册表: 移除 "private": true,将 publishConfig.registry 指向该注册表,然后发布到那里;同事随后可按名称安装。

许可证

MIT。该适配器遵循 DeepSeek Harness LLM 适配器的结构,后者由 DeepSeek 以 MIT 许可证授权;请参阅 LICENSE。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群