@nelsonlongxiang/dsh-open-a2a-net:把 DSH 部署變成去中心化 Agent 網絡節點

前言

在 DeepSeek Harness(DSH)裏做多會話、多團隊協同時,常見做法是自建網關或中心化註冊表:誰先上線、卡片怎麼籤、對端掛了誰來兜底,都要自己接。社區插件 @nelsonlongxiang/dsh-open-a2a-net 走另一條路——不設中心服務器,讓每臺已裝插件的 DSH 成爲開放 A2A(Agent-to-Agent)網絡上的一個節點,用簽名且會過期的 agent card、種子 URL 與引薦發現對端,再經模型工具直連路由。

下面按「這是什麼 → 能做什麼 → 怎麼裝 → 怎麼用 → 注意點」說明,事實以 GitHub README 與包元數據爲準。

這是什麼

@nelsonlongiang/dsh-open-a2a-net 是面向 DSH 的工作流類插件,維護者爲 NelsonLongiang。一句話定位:把一次 DSH 部署變成去中心化 agent 網絡中的單節點——無中心服務、無統一註冊表。

節點在開啓 announce 時於 /.well-known/agent-card.json 發佈簽名、可過期的 agent card;通過種子 URL 與引薦(每張 card 列出已知 peer)發現鄰居;借 zone 委託(GNUnet GNS 風格)解析名稱;對可達候選做直連路由與故障轉移。主會話還可暴露爲 session node,供其他主機在 Web 側欄發現並加入。

當前 npm 包版本(package.json):0.8.1-preview.3。

核心功能

模型工具(十二項)

插件在共享 tool runtime 上註冊模型工具。默認開啓 teamScopeInfo 時,a2a_teams、a2a_status、a2a_probe 按本機「已加入團隊」範圍回答:[this host] 行加上爲本機已聲明團隊提供服務的 peer;a2a_tasks(本機派發賬本)不受該範圍限制。

README 中的代表性工具如下(完整表格見倉庫 README):

工具 作用概要
a2a_whoami 本機在網絡上的身份
a2a_teams 可見團隊列表(本機行 + 範圍內 peer 團隊)
a2a_route 向團隊發消息;可複用 context_id 續聊;對端不可達時故障轉移
a2a_tasks 三層回執契約對賬:未結清任務保留 pending,過期進死信,結清進有界歸檔
a2a_probe 探測已跟蹤機羣的可達性與 RTT,可區分 unreachable 與 rejected

a2a_route 同步等待:同機會話目標最長約 180s;跨 peer 直連有約 15s 傳輸預算,否則可能返回 -32005(已投遞未結清),應按 task id 對賬而非盲目重發。async: true 可跳過等待。

Web 側欄網絡面板

重啓 dsh web 後,在側欄頁腳打開網絡面板,展示本機近期網絡活動:進行中路由、待結清回執、路由活動環等;同主機會話行可跳進 GUI。入網/離網、畫布團隊與成員編排已移至工作臺,不再在側欄完成。Session 團隊命名爲 <team>/<id8>(Web 會話取 id 去掉 session- 前綴後的前 8 字符;import-<uuid> 會話保留 import- 前綴規則,避免 id 坍縮)。

A2A 工作臺(Nexus)

全頁工作臺路徑:/__dsh_a2a_nexus/(0.6.0 起取代 Three.js 3D 視圖;規劃板爲默認主舞臺)。側邊欄含 Directory、Hosts、Ledger、Activity、Plan 等;規劃板用於建畫布團隊、排成員、加入/離開網絡,佈局可持久化。

狀態路由與 agent card

默認 sessionNodes 開啓時,在共享監聽器上註冊 /__dsh_a2a/* 等狀態與控制路由;僅當 announce: true(默認 false,且組合中需有 web server)時註冊 /.well-known/agent-card.json。對已鏈接調用方暴露更多 peer / session 信息;未加入的 session node 不會對外公佈。

歸檔與會話生命週期

歸檔會話會從節點網絡摘除:卸載 node、撤回 roster、從列表與 card 隱藏且不再喚醒;加入意圖仍保留在 joined.json,避免冷會話無法恢復。

安裝與啓用

在 web profile 下從 npm 安裝(官方 README 命令):

dsh plugin --profile web add @nelsonlongxiang/dsh-open-a2a-net

然後重啓 dsh web,在側欄頁腳打開網絡面板。

說明(摘自 README):

  • 參數會原樣交給 pnpm;可從包名、本地路徑或 Git URL 安裝。
  • 從 registry 安裝時包已帶構建產物,無需本地 build。
  • 若用 Git URL 安裝,需滿足 pnpm >=11.24且 <12,且 pnpm 11 可能阻止 Git 包的 build script;dsh plugin 會打印需在 profile 的 pnpm-workspace.yaml 里加入 allowBuilds 的鍵。
  • 本地路徑安裝前需在該目錄自行執行 pnpm build。
  • 插件與自帶 webserver 行並列組合:共用監聽器與 tool runtime。

典型用法

  1. 安裝並重啓 Web:執行上文安裝命令,重啓後確認側欄出現網絡入口。
  2. 在模型對話中調度:通過 a2a_teams 查看可達團隊,用 a2a_route 向指定團隊發消息;遠程續聊時帶上既有 context_id。
  3. 派發前體檢:用 a2a_probe 對種子或單一 URL 做可達性檢查,根據 unreachable / rejected 決定是否換路。
  4. 對賬與重試:用 a2a_tasks 查看本機 owed 賬本;遇同步 -32005 時按 task id 查詢結清結果,避免重複盲發。
  5. 組網與編排:打開 /__dsh_a2a_nexus/ 規劃板,配置種子 peer、加入網絡、編排畫布團隊;需要被外網發現時再將配置中的 announce 設爲 true(並確認 web 組合可用)。
  6. 暴露可加入會話:在默認 sessionNodes 下,將主會話作爲 session node 供他人在側欄發現並加入(未 join 的 session node 不會出現在對外 card)。

包還提供 CLI 入口 a2a-net(cli/a2a.mjs),以及子路徑導出如 ./client、./card、./a2a-client 等,供集成方按需引用(見 package.json exports)。

適用場景與注意

更適合誰:需要在多臺 DSH 之間做無中心目錄的 agent 互聯、希望用簽名 card + 種子發現 + 直連路由的團隊;已在用 DSH Web 並希望從側欄觀察路由/回執狀態的工作流場景。

務必注意:

  • 插件在當前 dsh 進程權限下運行;安裝前請閱讀源碼與許可證(倉庫含 LICENSE、THIRD_PARTY_NOTICES.md)。
  • 默認不 announce,外網無法通過 well-known 發現你;開啓 announce 即對外發布簽名 card,請結合信任邊界配置種子與鏈接關係。
  • 社區目錄 SkillHub 插件頁 與 GitHub 倉庫由社區維護,並非 DeepSeek / 幻方官方應用商店;DSH 生態理念是「一切皆插件」,選型與審計由部署方自行負責。
  • 構建與安裝方式不同(registry / 本地 / Git)對 pnpm 與 allowBuilds 的要求不同,按 README 報錯提示處理即可。

結尾

@nelsonlongxiang/dsh-open-a2a-net 把 DSH 從單機 harness 擴展爲可互信發現、可直連路由、可側欄觀測的去中心化 A2A 節點,並用十二項模型工具與工作臺把發現、路由、回執對賬落到可操作流程上。

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

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

小夜