Introduction

The following introduces dsh-a2a-agent. It is oriented towards the DeepSeek Harness (DSH) plugin environment, transforming a DSH agent into an A2A-compatible Agent: providing an Agent Card, a JSON-RPC 2.0 endpoint externally, and supporting LLM-driven conversation responses. For systems that need to call this agent outside of DSH, it provides a standardized entry point.

What is it

dsh-a2a-agent is maintained by fangweixuan26-hash, licensed under MIT, and requires Node.js >= 20.

It provides two forms:

  • npm package form: Can be mounted to the host composition.
  • Dynamic plugin form: Can load client-side status cards; the first run of a Package containing Client code requires approval in the UI.

Core Features

The following verified capabilities are listed:

  • Agent Card auto-discovery
  • JSON-RPC 2.0 endpoint
  • LLM-driven conversation responses
  • Real-time status card
  • Falls back to [A2A echo] deterministic echo when the model fails or is unavailable
  • Reuses host webServer, does not steal ports
  • All side effects mounted on Cordis fiber
  • CORS out of the box
  • Supports the following JSON-RPC methods:
    • message/send
    • message/stream
    • tasks/get
    • tasks/cancel

Installation and Enablement

Package installation:

dsh plugin add dsh-a2a-agent

You can also manually mount it using the npm package form:

pnpm add dsh-a2a-agent

Then add it to the host composition:

- id: a2a-agent
  name: dsh-a2a-agent

If streaming needs to be enabled, configure it in the cordis.yml of the npm package form:

config:
  enableStreaming: true

After enabling, message/stream can be used for SSE event stream responses. When enableStreaming is disabled, message/stream returns -32601 Method not found.

Typical Usage

View Agent Card

curl http://127.0.0.1:3080/.well-known/agent.json

This command is used to retrieve the Agent Card.

View Status

curl http://127.0.0.1:3080/a2a/status

This command is used to retrieve endpoint status information.

Invoke JSON-RPC Methods

Submit a JSON-RPC 2.0 request to POST /a2a to invoke methods:

  • message/send: Send message
  • tasks/get: Query task
  • message/stream: Get SSE event stream, requires streaming enabled
  • tasks/cancel: Cancel task

Applicability and Notes

Suitable for scenarios requiring integration of DSH agents into external A2A clients, unified Agent Card discovery, or viewing runtime status.

Notes:

  • Tasks, messages, and artifacts are all stored in process memory; automatically cleared when the plugin stops.
  • Falls back to [A2A echo] deterministic echo when the model fails or is unavailable.
  • The npm package form does not come with a built-in Client card; it uses the /a2a/status HTTP endpoint instead.
  • Currently not implemented: sub-agent scheduling, task persistence, authentication, npm package Client card.
  • The plugin runs with the current dsh process permissions; source code and the MIT license should be checked before installation.

Links

GitHub Repository:

https://github.com/fangweixuan26-hash/dsh-a2a-agent

Verified resources do not provide a directory page URL, so the directory page link is not listed here.