dsh-a2a

DSH PLUGIN视觉与多模态

仓库 zyfgood/dsh-a2a

视觉与多模态 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-a2a 是 zyfgood 维护的 视觉与多模态 类 DSH 可安装插件, 仓库为 zyfgood/dsh-a2a,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-a2a 是视觉与多模态类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类视觉与多模态 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 1 · 未关闭 issue 1
最近更新 2026-10-17 创建于 2026-10-12
README 9.5 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add @zyfgood/dsh-a2a
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

视觉与多模态
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

智能体编排

上游标签

a2aagent2agentdeepseek-harnessdsh-plugininteropjson-rpc

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在视觉与多模态场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-a2a当前 L5 · 运行验证通过 低风险 0 未标注 有
open-design L4 · 沙盒安装通过 低风险 10.0 万 未标注 有
awesome-gpt-image-2 L3 · 安装规范通过 低风险 3.4 万 未标注 无
PicGo L3 · 安装规范通过 低风险 2.7 万 未标注 无
iPolloWork L4 · 沙盒安装通过 低风险 6,775 未标注 有
modlens L5 · 运行验证通过 低风险 4,207 0.2.0-rc.2 等 13 个 有

仓库档案

视觉与多模态
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方zyfgood仓库 dsh-a2a · 默认分支 main
分类视觉与多模态media
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 1 / 1收录时的数值,非实时
创建 / 更新2026-10-12 · 2026-10-17最后推送 2026-10-17
本站收录2026-10-30首次进入本站目录的时间

README 全文

9.5 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-a2a

DSH(DeepSeek Harness)的 A2A(Agent2Agent)协议插件。

DSH 内置的互操作走 ACP + MCP,不包含 A2A;本插件补上这块拼图,双向打通 A2A 生态(Google ADK、a2ajava / a2a-python SDK、各类 agent 网关):

  • 服务器方向(入站):把 DSH agent 暴露为标准 A2A 服务器
  • Agent Card:/.well-known/agent-card.json(0.3.x)与 /.well-known/agent.json(0.2.x 兼容)
  • JSON-RPC 2.0:message/send(同步)、message/stream(SSE 流式)、tasks/get、tasks/cancel、tasks/resubscribe(断线续订)、agent/authenticatedExtendedCard
  • 任务生命周期 submitted → working → completed/failed/canceled,支持 input-required 暂停与 taskId 多轮续答
  • 版本协商(A2A-Version / X-A2A-Version 头)、可选 Bearer 鉴权、CORS、单轮超时、任务 TTL 回收
  • 客户端方向(出站):注册 a2a_* 模型工具,让任意 DSH agent 直接呼叫远端 A2A agent
  • a2a_discover / a2a_send / a2a_task_status / a2a_cancel
  • 地址白名单(clientAllowPatterns)控制 agent 可呼叫的目标
  • 可视化运维面板(Web client 半,v0.2.0):Plugins → @zyfgood/dsh-a2a 的配置卡与设置 Plugins 分区的 A2A 标签页
  • 服务器状态:运行中/模式/地址/协议版本/鉴权 + curl 验证命令一键复制
  • 实时任务板:最近任务的状态徽标/上下文/产物数,非终态任务一键取消(5s 自动刷新)
  • 远端 agent 目录:保存常用远端地址,浏览器直连拉取其 Agent Card(名称/版本/技能)
  • 数据来自 A2A 服务器自带的 /admin/status、/admin/tasks 端点(Bearer 门禁同 JSON-RPC)

零运行时依赖(纯 Node ≥20 stdlib + 全局 fetch),与 dsh-feishu-bot 同一插件体系。

一、安装

# 官方 CLI 一键安装(npm 渠道,推荐;bundle patch 自动挂载)
dsh plugin --profile  add @zyfgood/dsh-a2a

# 或 GitHub
dsh plugin --profile  add github:zyfgood/dsh-a2a

# 或本地路径
dsh plugin --profile  add file:D:/DSHProjects/dsh-a2a

> npm 裸名 dsh-a2a 是另一个无关项目(TtTRz/dsh-a2a),本插件发布在 @zyfgood scope 下,安装时请带 scope。

重启 profile 后生效。默认监听 127.0.0.1:7310。

> lib/ 预构建产物随仓库发布,安装即用,无需构建脚本(无 pnpm ≥10 的 allowBuilds 步骤)。

二、快速验证

# 1) Agent Card(0.3 路径)
curl http://127.0.0.1:7310/.well-known/agent-card.json

# 2) 发一条消息(同步)
curl -X POST http://127.0.0.1:7310/ -H "Content-Type: application/json" -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "message/send",
"params": {
"message": {
"kind": "message",
"role": "user",
"parts": [{"kind": "text", "text": "你好,介绍一下你自己"}],
"messageId": "m-1",
"contextId": "ctx-demo"
}
}
}'

返回的 result 是 A2A Task:status.state === "completed",回复文本在 artifacts[0].parts[0].text。同一 contextId 再次调用会复用同一个 DSH agent 会话(多轮记忆)。

流式:

curl -N -X POST http://127.0.0.1:7310/ \
-H "Content-Type: application/json" -H "Accept: text/event-stream" -d '{
"jsonrpc": "2.0", "id": 2, "method": "message/stream",
"params": {"message": {"kind": "message", "role": "user",
"parts": [{"kind": "text", "text": "流式演示"}], "messageId": "m-2", "contextId": "ctx-demo"}}
}'

SSE 依次推送 status-update(working) → artifact-update → status-update(completed, final=true) 后自然收流。

三、配置项

profile 的 cordis.patch.yml(或本包 cordis.patch.yml 默认层):

- id: a2a
name: '@zyfgood/dsh-a2a'
config:
port: 7310
mode: agent
配置 默认 说明
host 127.0.0.1 监听地址;公网暴露改 0.0.0.0 并配合鉴权
port 7310 监听端口(0 = 系统分配)
publicUrl 按监听地址推导 写入 Agent Card 的 url;反代/TLS 部署时必须配置为外部可达地址
bearerToken 无 Bearer 鉴权令牌,支持 env:VAR;配置后卡片宣告 bearerAuth
agentName / agentDescription / agentVersion DSH Agent / … Agent Card 元信息
skills 内置一条 dsh-agent 技能 Agent Card 技能清单
mode agent 入站处理模式:agent / llm / echo(见下)
provider / model — 模型来源:llm 模式直答,agent 模式创建会话时写入;未配置时回退宿主默认模型(GUI 的默认模型,即 profile 的 agent-default-model 分节)
systemPrompt / maxHistory — llm 模式参数(ctx.llm 直答,短期记忆按 maxHistory)
agentId 自动 agent 模式:固定复用 ctx.agents 中某会话;不配置则按 contextId 自动创建
agentPreset GUI 默认预设 自动创建会话的 preset(决定 agent 可用的工具集)
workspace process.cwd() 自动创建会话的工作目录
persistSessions true contextId → 会话映射落盘($DSH_HOME/a2a/),重启后自动恢复上下文
turnTimeoutMs 600000 单轮执行上限,超时任务置 failed
taskTtlMs 3600000 已完结任务内存保留时长(之后 TTL 回收)
tools true 是否注册 a2a_* 出站工具
clientAllowPatterns ['*'] 出站白名单:'*'、https://a2a.example.com/、https://*.example.com/、'*:7310'
clientTimeoutMs 120000 出站调用超时

三种入站模式

  • agent(默认):每个 A2A contextId 对应一个持久 DSH agent 会话(完整工具/技能/工作目录),跨任务续答;映射可落盘跨重启恢复。会话忙时新消息走 steer(下一 step 边界消费)。
  • llm:ctx.llm 直答(自包含轻量模式,不建 agent 会话,短期记忆按 maxHistory)。
  • echo:回显原文,验证链路。

四、出站:agent 调用远端 A2A

插件默认注册 4 个模型工具(tools: false 关闭):

工具 对应协议方法 用途
a2a_discover GET /.well-known/agent-card.json 拉取远端 Agent Card(能力/技能/鉴权)
a2a_send message/stream(自动降级 message/send + 轮询) 发消息并等待远端最终回复
a2a_task_status tasks/get 查询远端任务状态
a2a_cancel tasks/cancel 取消远端任务

对话示例:「用 a2a_send 呼叫 http://其它机器:7310/ 的 agent,问它有哪些技能,把结果汇总给我」。

五、开发

pnpm verify   # 本地 typecheck(shims/ 提供 @deepseek-ai 结构类型)
pnpm test     # 构建 DSH 无关核心 + 35 项端到端冒烟测试
pnpm build:local  # 本地全量构建 lib/(shims 类型校验,产物与宿主构建一致)
pnpm build    # 完整构建(需要宿主环境提供 @deepseek-ai/* peer 依赖)

代码结构:

src/
├── index.ts       插件入口:Config schema + apply()
├── protocol.ts    A2A 类型 / JSON-RPC / Agent Card(纯函数,零依赖)
├── store.ts       任务存储 + SSE 事件中枢(事件缓冲、订阅、TTL)
├── server.ts      HTTP 服务器:card / message/send / message/stream(SSE) / tasks/* / admin/*
├── bridge.ts      DSH 桥接:echo / llm / agent 三种 TaskRunner
├── client.ts      出站 A2A 客户端(fetch + SSE 解析)
├── tools.ts       a2a_* 模型工具注册
└── persistence.ts contextId → 会话映射落盘
client/
└── client.js      浏览器半:A2A 运维面板(免构建 ModuleLoader 工厂,react 为宿主 external)

设计说明:

  • protocol / store / server / client 不依赖任何 DSH 包,可独立构建与测试;DSH 桥接收敛在 bridge.ts / tools.ts / index.ts。
  • agent 模式必须有模型:agent-loop 不自动兜底 provider/model,缺失时提示词组装里的 {{model}} 无值,每轮立即报错(表现为「无文本输出」)。插件因此按「配置 provider/model → 回退 ctx.agentDefaultModel.currentSelection()」解析,两者都拿不到时直接返回明确的失败说明;本轮若以 turn/end reason=error 结束,错误原因会被回给客户端而不是笼统占位符。改 profile 的默认模型后,新建的 A2A 会话即生效(已存在的会话沿用原模型,删 $DSH_HOME/a2a/context-sessions.json 条目可重建)。
  • 任务 id 参数:规范写法 params.id 与本插件旧约定 params.taskId 都接受(tasks/get / tasks/cancel / tasks/resubscribe)。
  • input-required 事件带 final=true 关闭当轮 SSE,但任务保持非终态,客户端可凭 taskId 续答(续答复用同一任务与 history)。
  • tasks/cancel 立即广播 canceled(final=true);agent 模式下正在运行的一轮会在 500ms 轮询粒度感知退出并尽力 interrupt,不会阻塞后续轮次。
  • 与 A2A 0.2.x 客户端的兼容:旧 card 路径照常服务;0.2 客户端不发送版本头时按同版本处理。
  • 不支持的协议面按规范返回明确错误码:push notification -32003、批量 JSON-RPC -32600。

六、与 DSH 内置能力的关系

需求 用什么
程序化驱动 DSH agent(进程外) 内置 ACP(dsh-acp,pnpm dsh --profile acp)
挂载外部工具/资源 内置 MCP 客户端
跨 agent 生态互操作(Google ADK / A2A SDK) 本插件

License

MIT

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-a2a 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add @zyfgood/dsh-a2a` 即可。

dsh-a2a 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-a2a 安全吗?

低风险。

dsh-a2a 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-a2a 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

4 条
不同作者的仓库分开列,请确认你要装的是哪一个
视觉与多模态
按星标排序,可作替代方案

open-design

open-design

L4 · 沙盒安装通过 10.0 万 星

awesome-gpt-image-2

awesome-gpt-image-2

GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+ 套工业级模板与可复用 Skills,新增 2.5 同提示词对比

L3 · 安装规范通过 3.4 万 星

PicGo

PicGo

L3 · 安装规范通过 2.7 万 星

iPolloWork

iPolloWork

L4 · 沙盒安装通过 6,775 星

modlens

modlens

ModLens 是 DeepSeek Harness 的视觉插件,为纯文本模型外挂视觉能力,粘贴图片即得结构化 JSON 证据(OCR、版面

L5 · 运行验证通过 4,207 星

OpenBiliClaw

OpenBiliClaw

本地私有、开源的自进化跨平台 AI 内容发现 Agent:先理解你,再主动从 B站、小红书、抖音、YouTube、X、知乎、Reddit、微

L4 · 沙盒安装通过 3,398 星

zyfgood 的其它插件

4 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。