前言¶
DeepSeek Harness (DSH) 採用插件化架構,智能體通常在本地或特定環境中運行。若要讓外部系統或其他 A2A(Agent2Agent)協議的智能體發現並調用這些智能體,需要一套標準的接入機制。dsh-a2a-server 插件提供了這一能力,它作爲入站服務器運行,通過標準的 Agent Card 和 JSON-RPC 綁定,使 DSH 智能體能夠被任何兼容的客戶端發現和提交任務。
插件定位¶
dsh-a2a-server 是一個社區插件(非 DeepSeek 官方產品),由 huangjuhua-aigc 維護,許可證爲 MIT。它是一個 DeepSeek Harness 的插件,核心作用是將本地的智能體代理暴露給 A2A 協議。它通過在已知 URI(.well-known/agent-card)上提供 Agent Card,並實現 v1.0 JSON-RPC 綁定,允許任何知曉部署地址的合規對端發現該智能體並向其提交任務。
核心功能¶
該插件提供以下核心能力:
- 入站 A2A 服務器:僅作爲服務器端運行,不會主動連接到另一個智能體。
- Agent Card 服務:在標準 URI 上提供 Agent Card,用於服務發現。
- JSON-RPC 綁定:實現 v1.0 JSON-RPC 協議,支持以下方法:
SendMessageSendStreamingMessageGetTaskListTasksCancelTaskSubscribeToTaskGetExtendedAgentCard
- 多對端支持:通過環境變量配置多個對端(
A2A_PEERS),支持帶令牌或不帶令牌的訪問。
安裝與啓用¶
安裝該插件需要使用 Web 配置文件。
1、在終端執行安裝命令:
dsh plugin --profile web add dsh-a2a-server
2、安裝後,插件處於 PENDING 狀態,直到依賴的服務就緒。該插件需要以下上下文服務:
* ctx.agents
* ctx.credentials
* ctx.webServer(由 dsh-web-app 提供)
* ctx.sessionProjections(可選,用於在結算後獲取任務)
典型用法¶
安裝完成後,可以通過以下步驟啓動服務並測試交互。
1、在插件目錄下安裝依賴並啓動服務器。以下命令啓動服務,監聽端口 9922,並配置了一個名爲 alice 的對端,令牌爲 demo123:
pnpm install
A2A_PEERS="alice:demo123" A2A_PORT=9922 pnpm serve
2、獲取 Agent Card,驗證服務是否正常:
curl -s http://127.0.0.1:9922/.well-known/agent-card.json
3、提交任務。使用 SendMessage 方法發送一條文本消息:
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、使用官方提供的探測腳本驗證接口合規性:
node example/probe.mjs http://127.0.0.1:9922 demo123
注意事項與限制¶
- 僅限入站模式:該插件不會主動連接到其他智能體,沒有客戶端或對端目錄功能。
- 版本兼容性:該插件僅支持 A2A v1.0 協議。v0.3 協議的方法名、類型定義等均不兼容,且不支持 v0.3。如果請求中未指定
A2A-Version,默認視爲 1.0。 - 運行環境依賴:對於無頭配置文件(headless profile),必須掛載
@deepseek-ai/dsh-host-webserver以提供ctx.webServer。 - 憑證解析:模型的憑證通過
ctx.credentials解析,例如從環境變量DEEPSEEK_API_KEY中讀取。
結語¶
dsh-a2a-server 爲 DeepSeek Harness 提供了接入 Agent2Agent 生態的基礎設施。對於需要在 DSH 中運行智能體並希望其被外部系統調用的開發者,該插件提供了標準化的接口和發現機制。相關代碼與文檔位於 GitHub。