Preface

DeepSeek Harness (DSH) adopts a plugin-based architecture, and agents typically run locally or within a specific environment. To allow external systems or other A2A (Agent2Agent) protocol agents to discover and invoke these agents, a standard access mechanism is required. The dsh-a2a-server plugin provides this capability. It operates as an inbound server and, through the standard Agent Card and JSON-RPC bindings, allows DSH agents to be discovered and to receive task submissions from any compatible client.

Plugin Positioning

dsh-a2a-server is a community plugin (not an official DeepSeek product) maintained by huangjuhua-aigc under the MIT license. It is a DeepSeek Harness plugin whose core role is to expose local agent proxies to the A2A protocol. By serving an Agent Card at a well-known URI (.well-known/agent-card) and implementing the v1.0 JSON-RPC binding, it allows any compliant peer that knows the deployment address to discover the agent and submit tasks to it.

Core Features

The plugin provides the following core capabilities:

  1. Inbound A2A server: It operates only as a server and does not actively connect to another agent.
  2. Agent Card service: It serves an Agent Card on the standard URI for service discovery.
  3. JSON-RPC binding: It implements the v1.0 JSON-RPC protocol and supports the following methods:
    • SendMessage
    • SendStreamingMessage
    • GetTask
    • ListTasks
    • CancelTask
    • SubscribeToTask
    • GetExtendedAgentCard
  4. Multi-peer support: It supports configuring multiple peers via environment variables (A2A_PEERS), with or without tokens.

Installation and Enabling

Installing this plugin requires a Web profile.

1、Run the installation command in the terminal:

dsh plugin --profile web add dsh-a2a-server

2、After installation, the plugin remains in the PENDING state until its dependent services are ready. This plugin requires the following context services:
* ctx.agents
* ctx.credentials
* ctx.webServer (provided by dsh-web-app)
* ctx.sessionProjections (optional, used to fetch tasks after settlement)

Typical Usage

After installation, you can start the service and test interactions using the following steps.

1、In the plugin directory, install dependencies and start the server. The following command starts the service, listens on port 9922, and configures a peer named alice with the token demo123:

pnpm install
A2A_PEERS="alice:demo123" A2A_PORT=9922 pnpm serve

2、Fetch the Agent Card to verify that the service is running correctly:

curl -s http://127.0.0.1:9922/.well-known/agent-card.json

3、Submit a task. Use the SendMessage method to send a text message:

curl -s http://127.0.0.1:9922/a2a \
  -H "authorization: Bearer demo123" \
  -H 'content-type: application/json' \
  -H 'a2a-version: 1.0' \
  -d '{"jsonrpc":"2.0","id":1,"method":"SendMessage","params":{"message":{"messageId":"m1","role":"ROLE_USER","parts":[{"text":"hello"}]}}}'

4、Use the official probe script to validate interface compliance:

node example/probe.mjs http://127.0.0.1:9922 demo123

Notes and Limitations

  1. Inbound mode only: This plugin does not actively connect to other agents and has no client or peer directory functionality.
  2. Version compatibility: This plugin supports only the A2A v1.0 protocol. The method names, type definitions, and other aspects of the v0.3 protocol are not compatible, and v0.3 is not supported. If A2A-Version is not specified in a request, 1.0 is assumed by default.
  3. Runtime environment dependency: For a headless profile, you must mount @deepseek-ai/dsh-host-webserver to provide ctx.webServer.
  4. Credential resolution: Model credentials are resolved through ctx.credentials, for example by reading them from the environment variable DEEPSEEK_API_KEY.

Conclusion

dsh-a2a-server provides DeepSeek Harness with the infrastructure needed to connect to the Agent2Agent ecosystem. For developers who need to run agents in DSH and want them to be invoked by external systems, this plugin provides a standardized interface and discovery mechanism. The related code and documentation are available on GitHub.