前言¶
DeepSeek Harness (DSH) 的核心設計理念是“一切皆插件”。當需要讓 DSH 實例與其他遵循 Agent2Agent (A2A) v1.0 協議的智能體進行通信時,需要一種標準化的雙向連接能力。@ryubyte/dsh-a2a 插件解決了這個問題。它爲 DSH 實例提供了完整的 A2A v1.0 實現:既可作爲出站客戶端,通過 AgentCard 發現並調用遠程智能體的 skills;也可作爲入站服務器,提供 JSON-RPC 和 SSE 端點供其他 Agent 訪問。
核心功能¶
該插件主要包含以下能力:
- A2A v1.0 雙端支持:同時實現客戶端(發現與調用)和服務器(暴露服務)兩種模式。
- 客戶端模式:通過遠程 Agent 的 AgentCard 發現技能,將其映射爲 DSH 本地工具(命名格式爲
a2a__<name>__<skill>)。 - 服務器模式:提供
/.well-known/agent-card.json端點以及SendMessage、GetTask、ListTasks、CancelTask等 JSON-RPC/SSE 接口。 - 可視化設置面板:無需手動修改配置文件,通過 Web UI 的“設置 → A2A 連接”即可管理遠程 Agent 連接或配置對外服務。
- 鑑權支持:支持 Bearer Token 鑑權(出站按 Agent 配置,入站保護端點)。
- 任務生命週期管理:完整支持 SUBMITTED → WORKING → COMPLETED/FAILED/CANCELED 的任務狀態流轉。
安裝與啓用¶
安裝插件只需一條命令,將其加入指定 profile 後重啓 DSH 即可生效。
dsh plugin --profile web add @ryubyte/dsh-a2a
dsh --profile web
典型用法¶
1. 配置遠程 Agent(出站)¶
在 profile 目錄下的 a2a.json 中聲明要連接的 Agent。
{
"agents": [
{
"name": "research",
"agentCardUrl": "https://research.example.com/.well-known/agent-card.json",
"bearerToken": "...",
"timeoutMs": 8000
}
]
}
連接成功後,遠程 Agent 的 skills 會在模型工具中註冊。同一本地會話對同一遠程 Agent 的多次工具調用會複用同一個 A2A contextId,從而實現跨輪記憶。
2. 對外提供 A2A 服務(入站)¶
通過配置啓用 server 模式。
{
"mode": "server",
"server": {
"enabled": true,
"agentName": "My DSH Agent",
"skills": [
{ "id": "coding", "name": "Coding", "description": "Execute coding tasks." }
]
}
}
或者直接在 Web UI 的“設置 → A2A 連接 → ‘對外服務’”中,通過可視化表單創建並上線服務,系統會自動生成對應的配置。
注意事項¶
- 安全性:入站服務默認無鑑權。生產環境建議配置
authToken或使用 TLS 反向代理進行保護。 - 面板 API:
/a2a/api僅監聽 loopback/same-origin,不承載機密信息。 - 權限運行:插件以當前 DSH 進程的權限運行,安裝前請檢查源碼與許可證。
- 許可證:MIT 許可證。
結尾¶
該插件爲 DSH 提供了標準化的 Agent2Agent 協議接入能力,適合需要構建多智能體協作系統的開發者。更多細節可查看插件目錄頁或 GitHub 倉庫。