DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

A2a — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
A

@dpskh/a2a

A2a

DeepSeek Harness 的 Agent2Agent 互操作功能,集成于一个软件包中——实时网格中心(项目注册表、不可变消息历史记录、WebSocket 在线状态)和网格客户端(每个代理的连接、串行注入),面向模型的 a2a_peers / a2a_message / a2a_history 工具,以及 /a2a 命令界面

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:dpskh/dsh-a2a#1618e5519681d11cd159e396c2defbd203ab60be
README兼容性版本

兼容性与来源证明

A2a 以 @dpskh/a2a 发布,当前版本为 0.3.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/8/21

版本

0.3.0stable
2026/8/21

相关插件

正在加载相关插件…

最新版
0.3.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 10
周下载
0
最近提交
2026/8/21
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 agents-orchestration 分类下经过校验的插件。

Headless@deepseek-ai/dsh-headlessdsh one-shot bundle:基于 dsh-base 的直接核心 Agent/Session 运行器,不包含 Host、HTTP 或浏览器层Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序Subagent Claude Code@deepseek-ai/dsh-subagent-claude-code基于官方 Agent SDK 的一次性 Claude Code 子代理提供方

README

@dpskh/a2a — Agent2Agent realtime mesh for the DeepSeek Harness

English | 中文

dshfind

One package, one entry plugin. Mounting @dpskh/a2a 0.3 provides the realtime A2A mesh: the hub host (ctx.a2aHub: project registry + immutable message history over the storage domain, with an optional listening hub server that also serves the realtime WebSocket), the mesh client (ctx.a2aMesh: one WebSocket presence per joined agent with serial injection), the a2a_peers / a2a_message / a2a_history tools, and the /a2a command surface. Presence is a live socket; messages are the durable record — realtime chat on a trusted private network.

Configuration

- id: a2a
  name: '@dpskh/a2a'
  config:
    hub:                      # optional: run the mesh hub server
      host: 127.0.0.1
      port: 43123             # base bind port
      maxPort: 43223          # optional: walk up on EADDRINUSE
    mesh:                     # optional: mesh client
      project: main           # project to connect to (defaults to main)
      agentId: main           # local agent this presence belongs to
      name: main              # roster name; defaults to the agent id
      autoConnect: true       # connect when the configured agent registers
      persistConnections: false # remember each session's last connection and rejoin it
      reconnectMs: 500        # initial reconnect delay (doubles to 10 s)

The hub needs a routed storage backend: mount @deepseek-ai/dsh-storage, a backend (storage-json or storage-sqlite), and @deepseek-ai/dsh-storage-domain with the backend routed to the a2a domain. The entry plugin composes the hub host service (ctx.a2aHub), the mesh client (ctx.a2aMesh), and — when a mesh is configured — the tool and command plugins (cordis activates them by their inject dependencies). Removed 0.2 mesh fields (persistBindings, autoRejoin, pollIntervalMs, heartbeatMs, caps) are ignored for compatibility with copied 0.2 configs.

The mesh

  • Hub (ctx.a2aHub): authoritative project registry and the append-only message history (per-project monotonic sequences, project-scoped messageRefs like demo:42). The optional hub server serves the project/history routes over HTTP and the realtime WebSocket at /v1/connect (protocol version 3).
  • Presence: a presence exists if and only if one WebSocket is alive. Claimed roster names are unique per project; a same-named later connection is a new presence and inherits nothing. Hub restart clears every presence while the message history survives.
  • Messages: immutable, idempotent by messageId (retrying the same body returns the original message; reusing the id for different content fails with MessageIdConflictError). Direct sends resolve the recipient's current presence at accept time and fail immediately when absent; project broadcasts freeze the current presence snapshot (excluding the sender) and never backfill later joiners. replyTo provides causality inside the same project history. Text and attachments share a 4 MiB decoded-content budget; up to eight attachments per message travel as base64 (gzip when it shrinks).
  • Delivery: in-memory outcomes reported to the sender — delivered proves the receiving client injected the message, failed a materialization/injection error, disconnected a socket that closed before acknowledging.
  • Mesh client (ctx.a2aMesh): each joined agent owns one connection (project + roster name). Inbound messages are pushed serially in hub-assigned sequence and injected into the owning agent's session (follow-up turn when idle, plain context when busy), with attachments materialized under the system temp dir. Unexpected drops auto-reconnect with backoff while the connection is desired; a rejected claim (name in use, unknown project, protocol mismatch) stops wanting the connection. a2a/presence-changed events announce local connect/disconnect; a2a/delivery events announce delivery outcomes. Disposed agents drop their presence automatically. With persistConnections, each successful connect records agentId → (project, name) in the a2a-connections settings namespace, and an agent registering with a stored record rejoins it — the GUI path, where session ids are dynamic and no static agentId is configured; an explicit disconnect forgets the record. Each membership also tracks a local conversation-activity view (idle / conversing / working, inferred from sends, deliveries, and inbound messages — no activity state crosses the hub wire) and exposes it in for the connection-graph animations; activity transitions emit so the browser refreshes live.

Tools and commands

  • a2a_peers — list the exact roster names currently present in this project.
  • a2a_message — send to one current peer (target: {type: 'agent', name}) or broadcast to all current peers (target: {type: 'project'}), with optional replyTo, attachment file paths, and an idempotency messageId. The reply arrives passively — never wait or poll after send.
  • a2a_history — review earlier project messages using before, after, limit, or from (past context only).
  • /a2a hub, /a2a project create|list|delete, /a2a connect <project> [--as <name>], /a2a disconnect, /a2a status, /a2a peers, /a2a history [--before <ref>] [--after <ref>] [--limit <n>] [--from <name>], /a2a help.

Web collaboration controls

@dpskh/ui-a2a consumes one Host a2a.snapshot per session: connection identity, the live roster, and projects. Local and remote roster changes emit host/a2a-changed; the browser refetches the snapshot so its Overview page, Projects page, badge, and quick panel stay on one state source. The roster is primary; the auxiliary topology uses an orbit for up to six peers and a grid above that threshold, and hides on narrow layouts. The browser never connects to the Hub WebSocket.

Trust model

The mesh assumes a fully trusted private network: hub endpoints do not authenticate callers, and caller-supplied project and member identities are trusted claims. Do not expose a hub to the public Internet or an untrusted network.

Model Experience

Indirectly, through the a2a_* tools, the /a2a command, and injected inbound envelopes: project member ids, message refs, join outcomes, and delivered messages can enter the conversation.

KV Cache effect

Prefix-stable while the plugin config and tool definitions are unchanged; project, roster, or history changes do not alter the schemas.

Known Limitations and Deferred Work

  • Live recipients only — direct sends fail immediately when the recipient is not currently present; there is no offline delivery or durable roster.
  • Single hub per client — a mesh client connects to one hub at a time; multi-hub fan-out is deferred.
  • In-memory delivery outcomes — delivered/failed/disconnected are not persisted; rich delivery metadata is deferred.
  • Temp-dir attachment materialization — inbound attachments land under the system temp directory; a configurable session-scoped location is deferred.
status()
a2a/change