DSH Hub

darkings/dsh-agy-provider

dsh-agy-provider

BundleWorkflow1 GitHub stars· updated 2026-08-24

Expose the locally authenticated AGY CLI as a DSH model provider.

Install

npx @deepseek-ai/dsh plugin --profile web add [email protected]

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-agy-provider DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-agy-provider.svg)](https://dshhub.dev/plugins/dsh-agy-provider)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from darkings/dsh-agy-provider, cleaned of badges and images.

dsh-agy-provider

简体中文 · English

把本机已经登录的 AGY CLI 暴露为 DSH 的模型 Provider。

它的核心用途是:让 DSH 继续使用 AGY 账号中的模型和额度,同时保留 DSH 的对话、Session、Web/headless 运行方式。Provider 不直接调用 Google Gemini API,也不保存 OAuth 凭据;认证和模型选择由本机 agy 负责,0.6.x legacy 工具由 AGY 执行,0.7.0 DSH-owned bridge 的实际工具执行由 DSH ToolRuntime 负责。

项目状态

0.10.0 已发布到 npm,latest=0.10.0 0.10.0 在 0.9.0 的设置面板、工作区无感化和模型/推理强度分离基础上,加入 optimized full 上下文预算、确定性工具结果淘汰、脱敏诊断和 Windows 无控制台 launcher;默认仍为 sessionMode: full

0.7.0 / 0.8.0 已合并v0.7.0 → b94fa32latest=0.7.0 已发布)、v0.8.0 → b7c9a45 已合入主线。0.7.0 起 dsh-owned 为 bundle 默认(DSH Session/ToolRuntime/sandbox/approval 接管项目与权限)。

0.10.0 的公开能力重点是:

  • 上下文与工具安全:DSH-owned structured prompt 固定 56 KiB fail-closed 上限,超限返回 AGY_INPUT_TOO_LARGE;压缩后可恢复,工具结果按整段淘汰,避免历史前缀漂移。

  • 性能与观测:稳定前缀、canonical tool schema、step usage 口径和 fingerprint 诊断提升缓存资格与可观测性;不把后端 cacheRead 命中率当作保证。

  • DSH 设置面板:Config 全量 zh-CN/en i18n(schemastery .i18n),registerConfigurableProviders(settingsNs dsh-agy-provider) + registerModelDiscovery,模型为多选勾选列表,推理强度为独立下拉。

  • 工作区无感:dsh-owned 下废弃 workspaceRoot.deprecated(),面板隐藏,resolveAgyAgentRuntime 强制 undefined),工具请求走 DSH Session header.cwd + workspaceRegistry + sandboxPolicy 自动校验;纯文本无需 workspace,工具无 workspace 时返回 DSH_WORKSPACE_MISMATCH 可操作错误。

  • 模型与推理强度分离:gemini-3.7-flash 为 base,reasoningEffort: low|medium|high 独立选择;listModels 仅返回 base 并带 reasoning.efforts,旧 -high/-medium/-low 后缀自动兼容并 DEPRECATED_MODEL_EFFORT_SUFFIX 警告。

  • 模型可见性:visibleModels: string[] 空=全部,非空仅显示勾选的 base,未勾选显式请求仍兼容。

  • 保持 0.7.0 的 DSH-owned 工具桥、Agent presets、doctor v5(profileSchemaVersion: 4)、零重试、quota-free 诊断与跨平台门禁;imageInput: experimental 已打通受限多模态闭环。

图片输入为受限 experimental bridge:开启后公开 inputModalities: ['text', 'image'],通过独立 dsh-agy-image-view Agent 读取临时暂存图片。已在 DSH Desktop 完成真实像素回答、同会话追问、失败格式和清理验证;它仍不是无条件的生产级图片能力。

工作方式

用户 / DSH Web / DSH headless
              │
              ▼
      dsh-agy-provider
      ├─ DSH LlmAdapter
      ├─ Prompt / Stream 映射
      ├─ Session / Conversation 映射
      ├─ Model discovery / retry / telemetry
      └─ Agent 与 workspace 安全边界
              │
              ▼
      agy --output-format stream-json
              │
              ▼
      AGY 账号额度、模型和 Agent 工具

Provider 使用 spawn(executable, args) 启动 AGY,不经过 shell 拼接命令。AGY 输出按行增量解析,再转换为 DSH 的文本、usage、finish 和稳定错误事件。

0.6.0 已实现

1. 文本 Provider 与进程边界

  • 将 DSH system prompt/messages 确定性序列化为 AGY Prompt。
  • 将 step_update.text_delta 和 result.response 映射为 DSH 文本流。
  • 支持超时、取消、退出码、解析错误、输出上限和进程树清理。
  • 日志只保留 request/session/usage/事件计数等白名单字段;失败时可追加启动阶段、稳定错误码、输出行号/长度和短哈希,不记录 Prompt、响应正文、stderr 原文、凭据或完整本机路径。

2. Session、模型和 reasoning effort

  • 默认 sessionMode: full:每轮发送完整 DSH 历史,行为最容易审计。
  • 可选 sessionMode: resume:使用 AGY conversation_id 发送增量消息;恢复失败会降级为完整历史。
  • 同一 DSH Session 串行,不同 Session 可以并发。
  • 默认通过 agy models 做 quota-free 动态发现,支持 TTL、single-flight、缓存和静态 fallback。
  • 请求级 reasoningEffort 支持 low、medium、high,以独立 --effort 参数传给 AGY;未指定时不设置隐式值。

3. 工具所有权与权限边界

项目明确只允许一个工具执行者:

  • 程序化 Provider 默认 toolPolicy: reject,收到 DSH tool schema 时返回 UNSUPPORTED_TOOLS。
  • 已发布的 0.6.1 DSH bundle 默认使用 toolPolicy: agy-owned;0.7.0 开发分支已切换为 toolPolicy: dsh-owned,DSH schema 经过 bounded contract 交给 AGY 生成调用,实际执行仍由 DSH ToolRuntime 完成。
  • 发生权限请求时返回 PERMISSION_REQUIRED 并终止请求,不自动批准,不使用 --dangerously-skip-permissions。

4. Agent capability presets 与读写能力

随包提供三档 Agent 模板:

Related plugins