@ryubyte/dsh-a2a:DeepSeek Harness 的 Agent2Agent 協議雙端插件

前言

DeepSeek Harness (DSH) 的核心設計理念是“一切皆插件”。當需要讓 DSH 實例與其他遵循 Agent2Agent (A2A) v1.0 協議的智能體進行通信時,需要一種標準化的雙向連接能力。@ryubyte/dsh-a2a 插件解決了這個問題。它爲 DSH 實例提供了完整的 A2A v1.0 實現:既可作爲出站客戶端,通過 AgentCard 發現並調用遠程智能體的 skills;也可作爲入站服務器,提供 JSON-RPC 和 SSE 端點供其他 Agent 訪問。

核心功能

該插件主要包含以下能力:

  1. A2A v1.0 雙端支持:同時實現客戶端(發現與調用)和服務器(暴露服務)兩種模式。
  2. 客戶端模式:通過遠程 Agent 的 AgentCard 發現技能,將其映射爲 DSH 本地工具(命名格式爲 a2a__<name>__<skill>)。
  3. 服務器模式:提供 /.well-known/agent-card.json 端點以及 SendMessage、GetTask、ListTasks、CancelTask 等 JSON-RPC/SSE 接口。
  4. 可視化設置面板:無需手動修改配置文件,通過 Web UI 的“設置 → A2A 連接”即可管理遠程 Agent 連接或配置對外服務。
  5. 鑑權支持:支持 Bearer Token 鑑權(出站按 Agent 配置,入站保護端點)。
  6. 任務生命週期管理:完整支持 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 倉庫。

GitHub 倉庫

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜