Agent 实践

dsh-antigravity:社区模型适配器的实现与接入边界

文章目录
  1. 这是什么
  2. 为什么值得关注
  3. 它怎么转:四层逻辑
  4. 触发层
  5. 核心层
  6. 输出层
  7. 卡点层
  8. 模型目录:声明不等于可用性
  9. 推理 Effort 路由
  10. 怎么升级:分三档
  11. 入门(先读边界)
  12. 进阶(理解协议)
  13. 高手(设计自己的适配器)
  14. 场景迁移:两个直接可平移的方向

原研究记录:2026-09-03;本次按 2026-10-13 官方代码与服务条款重新核对。 项目:LiZhenNet/dsh-antigravity,社区维护,MIT;不是 Google 或 DeepSeek 官方授权插件。

蓝色像素虾把云端模型能力通过插件连接到 DSH
图 1:插件转换云端模型协议,不是完整 IDE,也不代表上游授权。

这是什么

一个为 DeepSeek Harness 注册 Antigravity 模型适配的社区项目。适合研究 OAuth、模型目录、流式事件和工具调用的协议转换;不适合描述成“免费调用一批顶级模型的推荐捷径”。

先说决定能否采用的边界。 当前 Google Antigravity 附加条款第 6 条明确将第三方软件/工具接入列为违反协议,并可能暂停或终止 Antigravity 和/或 Gemini CLI 账户。这不是仅凭猜测的“理论封号风险”。条款开头也排除了部分 Gemini Enterprise、Workspace/企业 API key 场景,它们适用管理员接受的相关协议,不能把这段规定不加区分套给所有企业服务。

为什么值得关注

我关注的是一个适配器怎样把上游能力接到宿主框架,而不是项目 star/fork、首次插件排名或便宜额度。技术上能获得 OAuth token、拿到模型输出,不等于服务允许这种客户端使用方式。

Google API 用户数据政策还要求准确表示应用身份,禁止未经明确许可使用未公开 API,不能虚假表示客户端凭证或授权来源。源码里的身份设置应据此审查,不应写成可以平移到任意付费 IDE 的“隐藏 API 反向工程套路”。

它怎么转:四层逻辑

触发层

宿主请求某个 provider/model,插件负责认证材料、模型解析和流式请求。没有用户授权、适用条款与公开接口依据时,技术研究不能自动转成部署建议。

核心层

已读取的lib/index.js包含 PKCE 的 S256 challenge、state 校验、loopback 回调、token 交换/刷新,以及写入 DSH home 的凭证文件。

浏览器授权经本机回调完成令牌交换,凭证文件随后用于上游请求
图 2:本机回调和文件权限不等于加密或不外发;令牌仍用于向上游认证。

代码使用 Antigravity 风格的 User-Agent/Client-Metadata,并调用 v1internal 路径;这些是代码行为观察,不是官方身份、API 许可或服务认可的证明。本文不复述可用于伪装客户端的具体值,也不把安装和登录步骤继续列为推荐操作。

输出层

适配器注册模型信息,将上游 SSE 转成 DSH 的文本、reasoning、工具调用及完成事件,保存部分 replay 元数据用于后续请求。它只覆盖模型协议层,不提供 Antigravity IDE 的全部编辑器和工作流能力。

卡点层

模型 ID、上下文窗口、额度与状态可能在代码中有静态声明或推断,但是否真实可用仍由账户、上游服务和当前响应决定。健康检查或返回 HTTP 200 都不证明接入符合条款。

模型目录:声明不等于可用性

删除原文“支持 11 个顶级模型”及固定上下文表。源码确实含预置目录,但目录条目不是厂商发布公告、可用性测试或账户权益证明,也不能据此宣称每个命名模型与对应官方模型完全相同。

要研究路由,应分清:用户选择的公开 ID、effort 参数、实际 runtime ID、账户返回目录与错误状态。动态目录读取失败后的 fallback 也不能创造账户本来没有的权限。

推理 Effort 路由

模型与 effort 经路由表映射,再由实时目录校验并在不可用时降级
图 3:目录与 fallback 是实现分支,不保证模型可用、等价或有权调用。

代码按模型家族和 effort 映射 runtime,并结合目录结果选择候选。这里的档位是适配策略,不是跨模型统一质量、成本或推理强度标准;自动 fallback 后要能说明实际调用了什么,不能白标冒充用户指定模型。

怎么升级:分三档

入门(先读边界)

读 README、适用服务协议和认证源码,确认谁提供插件、谁接收数据、哪些权限被申请;不先登录真实主账号试错。

进阶(理解协议)

在获准的接口或本地模拟响应上研究目录、错误分类与 SSE 转换,检查不同模型的消息与工具语义。

高手(设计自己的适配器)

使用自己获得授权的应用身份和公开接口,明确模型来源、费用、数据去向和 fallback 行为;不把借用客户端身份或未公开端点当成通用接入方法。

场景迁移:两个直接可平移的方向

方向 1:获准模型 API 的协议适配

可借鉴宿主接口与上游消息之间的映射方式,前提是供应商允许该应用、接口和账户用途。

方向 2:DSH 插件开发的样板

研究注册、生命周期、异常与可观测性。但社区示例不等于安全样板,也不能代替对第三方依赖和数据处理的审计。

部署风险与收益

收益

技术研究价值在于协议转换和状态管理,而不是“把 IDE 额度变成免费 API”。软件 MIT不授予上游服务使用权。

风险

凭证存为 JSON,源码使用文件 mode 0600;这不等于加密存储或所有平台都已有完整保护。token 会用于向上游认证,提示词、代码与工具结果会进入远端请求,不能写“凭证留在本地,所以数据不外发”。

Google 的适用条款说明会记录交互,部分数据使用受设置控制;具体使用前应按账户协议核对。不要把项目界面的额度池、重置时间或剩余额度当成官方定价合同,也不要承诺 fallback 能绕过配额。

关键技术亮点

云端 SSE 流中的文本思考与工具调用转成 DSH 事件,签名保留用于后续会话
图 4:签名是上游 replay 元数据,不等于公开完整思维链或会话永不丢失。

SSE 的文本/思考/工具块转换,以及 reasoning/tool-call 的 thoughtSignature 保留,是可读的实现细节。签名应按上游契约传回,不应解释为能恢复任意隐藏推理或保证上下文连续性。

项目元数据

身份以仓库 owner 和源码为准。旧 v0.0.4、14 stars/6 forks 只属于原笔记观察,不作为当前版本、质量或授权证据。

一句话总结

看适配,不看“蹭额度”:协议转换值得学,客户端身份、上游条款和模型透明度不能靠技术可用来替代。

资料核对:2026-10-13,读取项目 README、实际适配源码、许可证及 Google 官方条款/数据政策;未安装登录、调用模型或验证额度,不作完整安全审计。

记录到这里,判断留给实践。