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/sendmessage/streamtasks/gettasks/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 messagetasks/get: Query taskmessage/stream: Get SSE event stream, requires streaming enabledtasks/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/statusHTTP 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.