在会话中渲染智能体生成的界面并回传用户操作
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add sunxiuguo/dsh-a2ui该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent-loop@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-app-boot@deepseek-ai/dsh-client-modules@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-chat@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-session-persistence-jsonl给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 的 A2UI:官方 schema 与渲染器、有界动作、不执行的重放。原生 Web 宿主合成工作流与重启已验证;真实模型与完整协议覆盖仍未验证。
README
由 DeepSeek 最新模型翻译生成DSH A2UI
用于 DeepSeek Harness 会话的 A2UI
DSH A2UI 是一个独立插件,用来在 DeepSeek Harness 会话里渲染智能体生成的标准界面。智能体呈现界面,用户与之交互,这次操作就成为智能体的下一轮输入。
它使用官方 A2UI schema 和渲染器,带显式校验、流式预览、会话级操作,以及回放时不执行历史交互。
在 DSH 中查看 · 本地试用 · 兼容性 · 路线图 · 报告问题
开发预览版:0.1.0-alpha.13。 Alpha.13 让组合 DateTimeInput 的任一半被清空时清空整个绑定值,因此提交 Button 上的显式必填校验会拦下空提交,而不是接受残缺的日期/时间片段。Alpha.12 把运行时表达式失败显示为按 surface 区分、可关闭的提示,不暴露求值器载荷,也不改变操作语义。Alpha.11 在提交和回放过程中保留字面量形式的 model/event 元数据,同时在真正的函数边界上强制禁用导航。Alpha.10 通过标准 catalog 扩展 API 新增原生 Slider 命名和键盘到操作/回放覆盖,并配套可访问的 TextField 视图。
展开完整文档(README 剩余 1 节)
DSH A2UI
用于 DeepSeek Harness 会话的 A2UI
DSH A2UI 是一个独立插件,用来在 DeepSeek Harness 会话里渲染智能体生成的标准界面。智能体呈现界面,用户与之交互,这次操作就成为智能体的下一轮输入。
它使用官方 A2UI schema 和渲染器,带显式校验、流式预览、会话级操作,以及回放时不执行历史交互。
在 DSH 中查看 · 本地试用 · 兼容性 · 路线图 · 报告问题
开发预览版:0.1.0-alpha.13。 Alpha.13 让组合 DateTimeInput 的任一半被清空时清空整个绑定值,因此提交 Button 上的显式必填校验会拦下空提交,而不是接受残缺的日期/时间片段。Alpha.12 把运行时表达式失败显示为按 surface 区分、可关闭的提示,不暴露求值器载荷,也不改变操作语义。Alpha.11 在提交和回放过程中保留字面量形式的 model/event 元数据,同时在真正的函数边界上强制禁用导航。Alpha.10 通过标准 catalog 扩展 API 新增原生 Slider 命名和键盘到操作/回放覆盖,并配套可访问的 TextField 视图。当前 alpha.13 的有界合成工作流已在官方 DSH Web 宿主中通过,包括原生插件安装、HTTP RPC/WebSocket 传输、双会话交互、取消,以及重启后恢复已生成的历史。服务商为脚本模拟;未认证真实模型和完整 A2UI 一致性。这是附加项目,不替代 DSH GenUI。
在 DeepSeek Harness 中查看
Actual DeepSeek Harness Web shell showing two synthetic A2UI forms, an interaction and its next-turn preview. The model provider is scripted.
这是真实的 DSH Web 会话,不是独立渲染器页面:两个 A2UI surface、一次用户操作,以及智能体下一轮的预览。模型服务商和 workshop 数据均为合成。 未使用真实模型、真实账号、预订、支付或客户数据。
全宿主验收运行 40204726938 于 2026-10-25 在当前 alpha.13 源码 a8744445 上通过。它通过真实 HTTP RPC 和 WebSocket 传输跑通了官方命令行和 Web shell:两个隔离会话、一次受控的准入前操作失败与有意重试、原生 Stop 与恢复,随后优雅重启进程并重新打开,不重发历史。
恢复后的会话 B 截图和完整验收边界与保留的 alpha.8 证据记录下了那次运行。两张截图都经过隐私与可读性审查。作者撰写的消息和已提交操作的预览会持久保存;未发送的字段草稿不会。这些证据只覆盖确切的源码与场景,不覆盖所有模型、组件或失败模式。
独立验证与回放演示
早先的23 秒录屏单独演示了渲染器:非法输入被拦截,合法操作在本地记录,显式导出的录屏在重新加载后恢复编辑过的值,且不会重发历史操作。它还展示了拒绝不支持的运行时属性。
这段视频是一个独立的合成页面,不是上面展示的 DSH 宿主。它来自 a8d1170 和它通过的捕获运行。参见社区展示,或复现捕获过程。
这个项目在构建什么
- 参与对话的界面。 一次 render_a2ui 工具调用会创建专属的对话节点。表单操作以明确标注的数据形式返回给所属的 DSH 会话,下一轮智能体就能据此响应。
- 标准载荷,官方渲染。 桥接层使用 A2UI 消息信封和官方基础目录,配合 @a2ui/react 与 @a2ui/web_core。它不会把专有的组件词汇改个名字就叫 A2UI。
- 可见的兼容边界。 非法 schema、不支持的目录、损坏的 surface 生命周期、无效的最终组件引用都会显式失败。不支持的功能不会被悄悄删除或改写。
- 回放不会误重发。 可移植录屏把编辑过的字段值与模型撰写的消息分开保存。历史操作只作为证据保留;导入录屏绝不会再次发送它们。
目前的示例是一个工作坊申请表单和一个校验表单。它们规模很小、可检查,是为更大的对话体验准备的验收夹具。
快速开始
使用 Node 24.19.0,这是验证基线。两个本地示例都不需要模型密钥或账号。
git clone https://github.com/sunxiuguo/dsh-a2ui.git
cd dsh-a2ui
npm ci --ignore-scripts
顶层依赖版本精确,传递依赖已锁定。安装命令禁用了生命周期脚本。
1. 在浏览器里试用渲染、校验与回放
npm run dev
打开 Vite 打印的 loopback URL。
1. 点击 Stream synthetic example,编辑 Workshop topic,然后点击 Preview request。标准操作信封会出现在页面的本地日志里。
2. 点击 Stream validation example。输入 bad,会看到字段报错、按钮禁用;输入 CD34,再点击 Preview valid code,会记录一条有效操作。
3. 点击 Export recording,从录制编辑器里复制 JSON。刷新页面,把保存的 JSON 粘贴回编辑器,再点击 Restore recording。编辑过的值会恢复,但历史操作不会再次发送。
页面不会在刷新后自动保存表单或录制编辑器。它的操作接收端是本地日志,不是 DSH 会话。显式 checks 和 Button 门控的说明见校验演练。
2. 跟踪一条操作进入下一个 DSH 智能体回合
在同一份源码检出中执行:
npm run build:plugin
npm run demo:loop -- "Wheel-thrown pottery"
这个可执行演练使用真实的 DSH AgentLoop、ToolRuntime、对话组装器、官方渲染器和发送控制器。脚本化的本地模型生成一个表单,示例在 jsdom 中编辑并点击它,下一个真实智能体回合收到该操作并渲染预览。
预期结果:
PASS: 2 completed agent turns, 4 provider calls, 2 real tool results, 1 UI action.
模型和进程内传输都是模拟的。这是终端演练,不是交互式浏览器、实时模型或完整 DSH shell。它需要源码检出和开发依赖;插件 tarball 不包含它。阅读完整演练与边界。
如何融入 DSH
Agent tool call: render_a2ui({ messages })
→ schema, compatibility and document validation
→ DSH tool-result presentation metadata
→ A2UI conversation node
→ official A2UI runtime + focused accessible TextField and Slider views
→ user interaction
→ validated action, sent as labelled data to the owning conversation
→ next agent turn
工具调用流式输出期间,部分参数可以生成预览。在最终工具校验成功之前,预览里的控件不能发送操作。SDK 测试夹具覆盖失败/取消结果的撤回;原生宿主运行还会验证:Stop 会在工具成功完成前让进行中的预览退役,并且之后的操作仍然可用。
服务端和客户端是独立的插件入口。没有浏览器插件时,工具返回的文本回执只能确认校验通过,不能证明界面已经出现。客户端通过 DSH 的对话发送控制器提交操作数据;客户端校验不是授权,也不能替代服务端校验。
messages 参数可以先看 demo/fixture.ts 或 demo/validation-fixture.json。实现位于 src/dsh,共享模块包括校验、渲染和录制。
兼容性与支持
这张矩阵说明 alpha 版实现的范围与证据,不代表完整协议,也不代表生产认证。
| 领域 | 当前实现与证据 | 剩余边界 |
| A2UI 协议 | v0.9 与 v0.9.1 信封;锁定 v0.9.1 的官方 schema,未做改动 | 不支持 A2UI v1.0。 |
| 官方运行时 | @a2ui/react 与 @a2ui/web_core 0.14.0 | 其他渲染器版本、跨渲染器一致性均未认证。 |
| 基础目录 | 15 个允许组件、13 个允许函数的契约夹具;函数结果另有独立测试 | 完整变体、交互、语言区域、无障碍与语义一致性仍未覆盖。见覆盖情况。 |
| TextField 无障碍 | Alpha.9 插件自有视图,使用官方 schema/binder;四种变体均关联原生标签,支持动态名称与显式校验描述 | 其他组件的无障碍与读屏器认证仍未覆盖。见范围与证据。 |
| Slider 无障碍 | 插件自有原生 range 视图,关联标签、响应式描述,数值 binder 未改动 | 仅支持 v0.9/v0.9.1 默认步长 1;继承的作者值清洗逻辑仍在。见范围与证据。 |
| 字面量元数据与执行策略 | 模型数据与已解析事件数据保留字面量组件字段和调用字段;渲染器在执行阶段拒绝 openUrl,作者语法阶段同样拒绝 | 内联作者定义仍偏保守;运行时错误只产生固定的单 surface 提示,不会让动作原子性失败。关闭提示只表示确认了一次观察,不代表恢复。见边界与工作流与运行时提示生命周期。 |
| DateTimeInput 清空 | 组合选择中任一半被清空,都会变成空的绑定值;显式检查、动作与可移植回放都会保留该状态 | 只做原子清空,不保存部分草稿,也不做完整的日期/时间解析。见工作流与限制。 |
| 校验 | 显式 checks 配 regex,Button 可独立门控 | TextField.validationRegexp 是合法的 A2UI,但锁定运行时忽略它,所以 alpha.8 以 COMPATIBILITY 拒绝,即使为空或与 checks 组合也一样。不会自动改写。 |
| 流式 | 增量 JSONL 与 DSH 工具参数预览;原生 Web 宿主经 HTTP RPC/WebSocket 流式传输,预览为惰性,支持 Stop 取消 | 服务商是脚本化的。工具执行中或执行后的取消、更广的网络恢复行为均未认证。 |
| Actions | 两个原生会话,surface ID 有重叠;动作会在下一轮到达所属会话。受控的准入前 HTTP 拒绝会保留编辑;在测试场景中,刻意重试只被准入一次。 | 在限定测试中未观察到自动重试。这不等于 exactly-once 保证;未确认的投递仍可能含糊。 |
| Replay and state | 导出/导入保留字段快照,不发送历史;相同文档重新同步时,状态保留在同一挂载节点 | 文档、节点、预览/错误状态或 teardown 发生变化,都会重置该内存状态。未发送的编辑在 DSH 重载后不会保留。 |
| Durable history | 宿主优雅重启后,以及全新浏览器上下文中,两个原生会话都能重新打开,作者元数据精确,已提交动作的预览也在;恢复过程不会发送新的模型调用或动作。 | 未发送的草稿不持久。崩溃恢复、宿主管理的导出/导入,以及每种交互状态的恢复,仍未完成。 |
| DSH integration | 官方 0.2.0-rc.2 CLI and Web shell、Cordis 4.0.5;打包的 alpha.13 安装和限定原生宿主场景均通过。 | 其他版本、实时模型工作流、Code Mode 和生产部署未获认证。见完整宿主证据。 |
上游认定 A2UI v0.9.1 为当前版本,v1.0 为候选版本。本桥接的支持范围比标准更窄。精确测试边界和 alpha 回归历史见打包验收台账。
DSH 包安装
构建并检查本地插件产物:
npm run build:plugin
npm run test:packed
npm pack --ignore-scripts
包内包含服务端和客户端入口,以及它贡献的 cordis.patch.yml bundle。未发布到 npm。
要用预构建包,下载 alpha.13 release tarball,然后使用下面的本地 tarball 命令。插件目录也可能显示一个通用的 github:sunxiuguo/dsh-a2ui 快捷方式;这个源码安装快捷方式不是本 alpha 支持的安装途径。本仓库不提交 lib/,也没有定义安装时自动构建。只允许生命周期脚本,并不能替代上面明确的构建和打包步骤。
如果你已有兼容的 DSH 0.2.0-rc.2 安装和完整的 Web 配置档,把 YOUR_EXISTING_WEB_PROFILE 换成该配置档的名称,然后用验收运行实际用过的原生命令行语法安装本地 tarball:
dsh plugin --profile YOUR_EXISTING_WEB_PROFILE add ./dsh-a2ui-0.1.0-alpha.13.tgz --ignore-scripts
这条命令作用于已有的配置档;它不会创建完整的 DSH 安装。真实模型及其凭据,请通过 DSH 的常规设置自行配置。真实模型行为仍不在本次验收结果范围内。
在该配置档中更新、回滚或移除
替换或移除包之前,先停掉使用该配置档的 DSH 进程。 更新前,保留之前能用的 tarball 及其源码 commit。固定版本的 DSH 0.2.0-rc.2 插件管理器要求重启进程,才能加载新一代 JavaScript 模块;包命令执行成功,并不代表已在运行的主机或浏览器用上了新代码。
更新时,按上面的步骤构建并测试选定的源码 revision,然后用 add 再次安装,指定确切的本地 tarball 和同一个配置档。回滚时,用同一条命令,换成保留的旧 tarball。这个包尚未发布,不要用 npm registry 更新。把 CHOSEN_TARBALL.tgz 换成实际文件名:
dsh plugin --profile YOUR_EXISTING_WEB_PROFILE add ./CHOSEN_TARBALL.tgz --ignore-scripts
dsh plugin --profile YOUR_EXISTING_WEB_PROFILE list dsh-a2ui
用你现有的 DSH 启动命令重启该配置档,然后刷新它的 Web 页面。检查已安装版本,并做一次全新的合成 render_a2ui 交互;只拿到文本校验回执,不能证明客户端渲染正常。你主动禁用的 bundle 在替换后仍保持禁用——去查配置档的插件选择,别以为更新会自动重新启用它。
如果只想从已停止的配置档中移除这个插件:
dsh plugin --profile YOUR_EXISTING_WEB_PROFILE remove dsh-a2ui --config.ignore-scripts=true
dsh plugin --profile YOUR_EXISTING_WEB_PROFILE list dsh-a2ui
重启同一个配置档,刷新它的 Web 页面。不要删除配置档、会话文件或无关插件。移除不等于导出或迁移 A2UI 历史;没有插件时渲染旧的 A2UI 节点,或重装/回滚后恢复它们,都未经验证。改版本前,先保存需要的录制内容和现有的主机备份。未发送的字段草稿不会持久保存。
移除命令用的是 pnpm 单命令形式 --config.ignore-scripts=true;它不会改动持久或全局设置。
常规打包检查验证的是:合成包放置后,官方依赖规格是否对齐(并非真正替换包版本)——新 bundle 会被选中,替换不会重复安装它,也不会重新启用主动禁用的 bundle,移除会清理它的选择项,无关元数据保持不变。这些检查不执行原生命令行更新/移除、实时主机重启或浏览器恢复。重启要求来自固定版本的官方插件管理器包。这些说明只适用于已发布的 v0.9/v0.9.1 插件;它们不会启用实验性的 A2UI v1 实现。
官方 DSH 0.2.0-rc.2 命令行在 2026-10-24 全宿主验收中,把打包好的 alpha.8 插件安装进一个全新的完整 Web 配置档。随附的 shell 加载了该插件,并完成了有边界的合成交互/重启场景,期间生命周期脚本处于禁用状态。这取代了早先 alpha.3 空配置档仅安装的证据。Code Mode 和其他宿主版本仍未验证。
2026-10-25 alpha.13 验收还在一份已停止的一次性配置档上执行了真实的原生命令行:alpha.8 → alpha.13 → alpha.8、用故意禁用的 bundle 替换、移除、重新安装。安装后的字节与每次精确的源码构建一致,无关的配置档元数据和 bundle 选择都保留了下来。另有一份全新的 alpha.13 原生 Web 配置档通过了交互和优雅重启恢复。这并不证明跨版本变更或移除时既有历史的迁移或恢复。
全宿主测试装置是一份单独授权、隔离的验收实验,不属于常规本地快速开始,也不是自动重复运行的测试。它的临时原生测试凭据会在经验证的清理过程中移除;它不会导入既有用户配置档。
部署边界
初始策略刻意比 A2UI 更窄:
- 只接受固定的官方基础目录。不包含任意远程目录、动态代码、HTML 注入或传输抓取。
- 外部媒体组件和导航被禁用,包括 Markdown 中的外部链接和媒体。这些是部署限制,并不表示 A2UI 禁止它们。
- 文档限制为 256 KiB、512 条消息、8 个活动 surface、每个 surface 256 个组件。
- 每个动作限制为 16 KiB,每个挂载的 A2UI 文档会话最多 128 次尝试,保留/在途预算为 256 KiB。
- 录制分别绑定创作历史、字段快照和动作,因此快照不占用 512 条消息的历史额度。导入只恢复 UI 状态;过去的动作永不执行。
- 插件不暴露任何凭据或支付动作。所有示例都使用合成数据;单独授权的全宿主测试装置只创建临时原生测试认证,并验证其已被移除。
路线图
1. 扩大原生宿主覆盖。 在已通过的合成 Web 宿主场景基础上,加入实时模型工作流、更多取消阶段、网络中断/重连、崩溃恢复和受支持的部署配置。
2. 完成稳定的 A2UI 支持。 覆盖完整的基础目录、主题/校验/函数语义、无障碍和跨渲染器行为。在启用媒体或导航之前,先引入一套刻意由宿主管理的策略。
3. 持久化更多交互状态。 已编写的历史记录在测试过的优雅重启后仍能保留。仅针对已证实的工作流评估可选启用的草稿持久化,并给出明确的隐私与生命周期约定;为已提交状态的恢复增加带版本号的迁移,且不意外重放操作。
4. 通过显式适配器添加协议。 随着 A2UI v1.0 的约定趋于稳定,评估它以及其他主流协议,不把专有载荷伪装成标准。
当某个功能的端到端证据和局限都已记录在案,它才转为受支持状态。原生宿主的结果验证了一个有边界的工作流;完整的协议支持仍是努力方向。
开发与反馈
npm test
npm run typecheck
npm run build
npm run build:plugin
npm run test:packed
npm run test:stream
验证台账说明了测试分层和精确提交的浏览器证据。jsdom 测试无法确立浏览器布局或无障碍表现。现有 CI 使用标准 GitHub 托管运行器、只读仓库权限,不接触真实账号或模型凭据;它的真实浏览器检查保持浏览器沙箱开启。一次成功运行只为其自身提交提供证据。
有用的起点:
- 目录覆盖
- 校验与运行时兼容性
- 原生 Web 宿主验收与截图
- 打包 SDK 夹具验收
- 合成智能体循环演练
- 录制浏览器展示
- 替代方案与项目范围
要报告问题,请附上源提交、DSH/运行时版本、最小合成载荷、复现步骤和预期行为。不要包含凭据或客户数据。
其他 DSH A2UI 集成已经存在。本项目的重点是官方渲染器互操作、显式拒绝而不静默清洗,以及不执行的可移植重放。这些是可测试的设计选择,并非声称首创、更优、已被采用或已可用于生产。
许可证
项目自编代码采用 MIT。官方 A2UI schema 和捆绑依赖保留各自的声明;见 NOTICE.md 和内置 A2UI 许可证。与 DeepSeek、Google 或 A2UI 项目无关联,也未获其背书。
使用 AG-UI 网关?
组合插件前,请先阅读网关互操作边界。提取出的标准 A2UI 操作可以兼容,但工具参数、累积快照、已定结果和操作标识需要显式集成。这个原生 DSH 插件不是可直接替换的 AG-UI 客户端。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
sunxiuguo/dsh-a2ui
在会话中渲染智能体生成的界面并回传用户操作
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。