Skip to content

入口:网页装配与程序协议 ​

网页由宿主注入客户端启动图,再通过连接与业务控制器驱动会话。SDK 与 ACP 是独立程序入口,共用运行时能力,各自拥有协议与会话交互规则。

网页连接链与独立程序入口

箭头表示标注的调用或依赖关系;点击组件定位正文。完整关系见下方文字说明。

文字关系说明与章节链接

客户端模块图 →(当前启动图)→ Web 宿主与静态资源;Web 宿主与静态资源 →(页面与插件资源)→ 浏览器壳与插件;浏览器壳与插件 →(Remote 调用)→ 连接与 Remote 网关;连接与 Remote 网关 →(路由业务操作)→ 会话与工作区控制器;会话与工作区控制器 →(驱动会话命令)→ Harness 会话运行时;TS / Python SDK →(SDK 协议入口)→ Harness 会话运行时;ACP 程序入口 →(ACP 协议入口)→ Harness 会话运行时。

客户端模块图 · Web 宿主与静态资源 · 浏览器壳与插件 · 连接与 Remote 网关 · 会话与工作区控制器 · Harness 会话运行时 · TS / Python SDK · ACP 程序入口

宿主启动图装配浏览器插件 ​

dsh-webserver 提供 HTTP 承载,frontend-static 提供页面静态内容;dsh-modules 扫描 Loader 中声明 dsh.client 的包,将客户端条目与依赖组织成 window.__DSH_BOOT__ 启动图,并提供版本化脚本。

// 注册具名 HTTP 路由并返回撤销函数,由功能插件拥有响应处理。
register(route: WebRoute): () => void
// 返回当前客户端依赖启动图,供 Host 注入浏览器引导信息。
graph(): WebBootGraph

dsh-web 引导浏览器外壳,模块加载器再实例化客户端插件。没有合法清单的独立页面不能按完整 DSH GUI 启动;界面组件存在于源码中,也不代表它已进入当前宿主的插件表。

连接把请求交给业务控制器 ​

dsh-connection 维护浏览器与 Host 的连接,dsh-gateway 在其上承载类型化调用、流和上行消息,dsh-remotes 决定公开哪些能力。

session-controller 负责会话命令、历史流、实时控制状态以及 Agent/Session 身份策略;workspace-controller 负责工作区修改和投影。浏览器发送提示时需要经过这些业务层,而不是直接持有 Node 中的 Agent 对象。会话数据流也不能简单等同于普通 Remote 方法返回值。

声明与构建产物共同约束启动 ​

客户端模块声明提供构建产物和注入依赖,Host 生成的启动图是两端共同依据。固定版本启动时遇到畸形声明或缺失 bundle 会聚合报错,让启动失败明确可见;稳定运行期间单包异常记警告,避免污染其他包。

重复活动来源解析到同一包名也不能随意选一个。开发时 HMR 更新的是对应客户端产物与注册,不意味着任意 Host 或页面外壳改动都能无需构建、刷新就自动出现。

SDK 与 ACP 提供独立入口 ​

dsh-protocol、client、server 通过 stdio 上逐行 JSON-RPC 支持会话、提示和通知,TypeScript 客户端按命名 profile 与 patch 启动,Python 使用同一协议。

// 启动命名 profile 的运行时并收集提示接纳至整体空闲的结果。
import { DeepSeekHarness } from '@deepseek-ai/dsh-sdk-client'
await using harness = new DeepSeekHarness({ profile: 'sdk' })
const result = await harness.run('say hi')

dsh-acp 提供标准 ACP 自动化入口,一个连接可有多个独立会话,每个会话只允许一个在途 prompt。ACP 支持持久会话列举、恢复与关闭,但不提供 DSH 的计划卡、终端视图等完整交互界面,也不支持删除、分叉和历史重放等所有专有能力。

dsh-acp · 接口摘录,省略上下文 · session/prompt · packages/acp/acp/README.md
// ACP 为已有会话提交提示,同一会话只允许一个在途请求。
session/prompt
辅助示例

网页用户看到文件读取进度,是客户端会话视图消费 Host 传来的记录和实时状态;Python 脚本发送同样任务,则消费 SDK 通知并自行决定如何展示。另一个 harness 使用 ACP 委托任务时获得标准语义更新,不能假设也能收到网页专用的交付卡或完整聊天重放。

设计取舍 ​

业务控制器与多种入口协议共享执行能力,让交互界面和自动化各取所需;代价是协议能力必须逐项确认。跨入口共享 Agent 不等于共享所有展示、权限交互和恢复功能,客户端需要按自己采用的协议处理取消与状态。

相关包与插件
资料来源与核验范围

本章依据固定版本的官方文档整理,设计取舍根据所述机制分析;核验范围为文档,不包含运行实测。

图示
100%双指缩放 · 滑动查看