Models & Providers

dsh-llm-agy

flg1217/dsh-llm-agy · ★ 6

flg1217

AGY (Antigravity CLI) integration for DeepSeek Harness: LLM adapter subagents, deep web search, connectivity diagnostics panel

License
MIT
Added
2026-08-17
Maintenance
active
Install kind
github
Manifest details
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:flg1217/dsh-llm-agy

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. 1. What it is
  2. 2. Core features
  3. 2.1 Independent reasoning subagents (provider route agy)
  4. 2.2 Image input for text-only models (global, zero config)
  5. 2.3 Deep web search (search provider agy)
  6. 2.4 Connectivity diagnostics panel (Settings → Plugins → AntiGravity)
  7. 3. Quick start
  8. Requirements
  9. Install the plugin
  10. Install AGY (Antigravity CLI)
  11. Configuration
  12. 4. Typical usage
  13. Web search via AGY deep research
  14. Reading images with a text-only model
  15. Subagent delegation to AGY
  16. CLI diagnostics
  17. 5. How it works
  18. 6. Development
  19. 7. License

AGY (Antigravity CLI) — the agent-boosting engine for DeepSeek Harness Seamlessly integrate Google's AI coding agent Antigravity (powered by Gemini) into dsh: independent reasoning subagents, deep web search, image input for text-only models, and one-click connectivity diagnostics. Plug-and-play, zero source changes.


1. What it is

dsh-llm-agy is an open-source plugin for DeepSeek Harness(dsh) that connects Google's AI coding agent Antigravity CLI(AGY, based on Gemini) to the dsh ecosystem, adding these enhancement channels to your workflow:

Capability Description
Independent reasoning subagents Delegate frontend/UI and other tasks to AGY-driven subagents (Gemini 3.7 Flash High), running alongside your main agent; long-lived sessions are reusable
Deep web search The web_search tool performs complete deep research through AGY's Google search channel — search, open sources, read full content, synthesize an answer — not just a link list
Image input for text-only models Paste images in the composer with a pure-text main model (e.g. DeepSeek V4 Flash): the backend reads the image in-place via AGY and injects a text description into the message. Fully transparent — no new provider routes, no model switching, no workspace writes
Connectivity diagnostics panel An AntiGravity card inside dsh Settings → Plugins: check local install & login status, run a real connectivity test, copy install commands for every platform with one click

The plugin strictly follows dsh's official extension mechanisms (profile bundle patch / registerModelDiscovery / registerSearchProvider / llm/stream waterfall / client slots). No dsh source code is modified, so it keeps working across dsh upgrades.

2. Core features

2.1 Independent reasoning subagents (provider route agy)

Your main agent can delegate tasks to AGY — a second brain with its own reasoning chain and tool surface:

  • Switch any subagent to AGY reasoning via agentOptions.provider: 'agy'
  • Built-in tool: subagent_agy_ui (frontend/UI design, styling research, visual implementation, screenshot verification; continuable long-lived sessions)
  • Split complex tasks into independent sub-tasks, schedule subagents in parallel, then merge the results

2.2 Image input for text-only models (global, zero config)

Text-only main models (e.g. DeepSeek V4 Flash) cannot natively accept images, but this plugin makes pasting images work out of the box:

  • Paste and go: paste an image in any composer — it flows as a native ImageBlock; the backend materializes it to .dsh-llm-agy/tmp/pasted-images/ under the workspace and replaces it with a path-text before handing the request to the original model route
  • Fully transparent: no new provider routes, no model switching, no frontend changes — the user never notices
  • Tool-use policy: the plugin injects a global system-prompt section guiding the agent ("image content is already in the message, never delegate image reading to a subagent, don't poll background subagents"); toggleable in the settings panel

2.3 Deep web search (search provider agy)

Upgrade dsh's web_search tool from "return a link list" to "complete deep research":

  • Searches via AGY's search_web (Google)
  • AGY autonomously: searches → opens each source and reads the full content → writes an accurate, complete, cited answer
  • The reply language follows the query language; nothing is written to the session
  • One-line switch: web.searchProvider = 'agy'

2.4 Connectivity diagnostics panel (Settings → Plugins → AntiGravity)

Full AGY environment check without touching a terminal:

  • Install / login check: one click confirms whether AGY is installed and signed in
  • Connectivity test: sends a real prompt and shows AGY's actual reply
  • Install commands: Windows (winget) / macOS (Homebrew) / Linux (curl) / npm — one-click copy
  • Tool reference: quick reference for the bundled tools (subagent_agy_ui / web_search)
  • Toggle: "注入工具使用提示词" — controls the global tool-use-policy prompt (on by default)
  • The panel interacts through the official model-discovery channel (api.llm.discoverModels); no session is consumed

3. Quick start

Requirements

  • dsh (web profile; npx or source build)
  • Node.js ≥ 20
  • AGY CLI (see install commands below)

Install the plugin

# Install from the Git repository (no build needed — lib/ is committed)
git clone https://github.com/flg1217/dsh-llm-agy.git
cd dsh-llm-agy
pnpm install          # install plugin deps (dsh mounts local dirs via link:; the plugin needs its own node_modules)
dsh plugin --profile web add <dsh-llm-agy directory>

After installation, restart dsh web, open Settings → Plugins — the AntiGravity card should appear; expand it and click "Check install/login" to confirm the environment is ready.

Install AGY (Antigravity CLI)

# Windows
winget install --id Google.Antigravity

# macOS
brew install --cask antigravity

# Linux / macOS (generic)
curl -fsSL https://antigravity.google/install | bash

# Or npm global
npm install -g @antigravity/cli

Official docs: https://antigravity.google/docs/cli/install

Configuration

Option Default Description
command agy AGY executable command
model gemini-3.7-flash-high Reasoning model
effort high Reasoning effort (low / medium / high)
proxy http://127.0.0.1:7890 Traffic proxy (empty string disables)
searchProviderId agy dsh web search provider id (empty string disables search)
delegationGuide true Inject the global tool-use-policy system prompt (toggle in the settings panel)

Editable in the settings panel, or in the profile's cordis.patch.yml.

4. Typical usage

Web search via AGY deep research

# profile patch (~/.dsh/profiles/web/cordis.patch.yml)
- id: web
  config:
    searchProvider: agy

After this, web_search returns AGY's deep-researched answer with cited sources.

Reading images with a text-only model

No configuration needed — paste an image in any composer; the backend reads it in-place via AGY and injects a text description into the message, so the main agent answers directly from the image content (no tool calls):

User: analyze this image (pastes image)
Backend: AGY reads the image → message carries the image description → main agent analyzes directly

Subagent delegation to AGY

No configuration needed — the plugin mounts the official @deepseek-ai/dsh-tool-subagent on startup and registers the tool (globally visible in every session/preset):

  • subagent_agy_ui (continuable, reusable long-lived sessions): frontend/UI design, styling research, visual implementation, screenshot verification

Frontend/UI tasks: delegate to subagent_agy_ui — design, implementation and screenshot verification by an independent Gemini model.

CLI diagnostics

/agy status        # check AGY install & login status
/agy test          # run a real test, show AGY's reply
/agy               # help

5. How it works

The plugin is dual-faced and assembled through dsh's official extension points:

┌─────────────── Host process (node half) ────────────────┐
│ index.ts        plugin entry                            │
│ adapter.ts      AgyLlmAdapter — spawn agy reasoning     │
│ search.ts       ctx.web.registerSearchProvider          │
│ settings.ts     settings + registerModelDiscovery       │
│ image-paste.ts  llm/stream listener + resolveModelInfo  │
│                 wrapper: ImageBlock → workspace path    │
│ read-image.ts   AGY image reading (used by the relay)  │
│ delegate-guide.ts  global tool-use-policy section       │
└─────────────────────────────────────────────────────────┘
┌─────────────── Browser (web half) ──────────────────────┐
│ client/index.js  settings.plugin.item card              │
│                  reuses official components & styles     │
└─────────────────────────────────────────────────────────┘
  • Assembly: cordis.patch.yml (bundle patch) + dsh.bundle/dsh.client manifest in package.json; dsh plugin add does it all
  • Reasoning: the server spawns the AGY CLI (stream-json protocol); live streaming output and token stats are rendered by the dsh harness
  • Image input: wraps llm.resolveModelInfo to declare image capability for text-only models (bypassing dsh's rejection check); an llm/stream waterfall listener materializes ImageBlocks to workspace paths and calls the original adapter — no new providers, no model switching, no frontend changes
  • Image reading: the relay spawns AGY in-place and returns a text description
  • Search: search() calls AGY directly, which autonomously retrieves and synthesizes
  • Panel: status/test probes go through the official api.llm.discoverModels channel; the server executes and the result returns to the panel — no session writes, no dsh source changes

6. Development

git clone https://github.com/flg1217/dsh-llm-agy.git
cd dsh-llm-agy
pnpm install
pnpm build
pnpm typecheck
pnpm test

See docs/CONTRIBUTING.zh.md.

7. License

MIT