入口:网页装配与程序协议
网页由宿主注入客户端启动图,再通过连接与业务控制器驱动会话。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(): WebBootGraphdsh-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 使用同一协议。
dsh-client · 接口摘录,省略上下文 · DeepSeekHarness.run · packages/sdk/client/README.md// 启动命名 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 不等于共享所有展示、权限交互和恢复功能,客户端需要按自己采用的协议处理取消与状态。
相关包与插件
- 宿主 HTTP 路由与升级入口
@deepseek-ai/dsh-host-webserver - 构建前端静态服务
@deepseek-ai/dsh-host-frontend-static - 浏览器应用启动内核
@deepseek-ai/dsh-client-web - 浏览器插件模块装载
@deepseek-ai/dsh-client-modules - 浏览器连接与代际管理
@deepseek-ai/dsh-client-connection - 双端远程调用网关
@deepseek-ai/dsh-api-gateway - 客户端业务远程接口装配
@deepseek-ai/dsh-api-remotes - 会话与历史远程控制
@deepseek-ai/dsh-api-session-controller - 工作区导航远程控制
@deepseek-ai/dsh-api-workspace-controller - 自动化 JSON-RPC 协议类型
@deepseek-ai/dsh-sdk-protocol - TypeScript 会话自动化客户端
@deepseek-ai/dsh-sdk-client - JSON-RPC 自动化服务端
@deepseek-ai/dsh-sdk-jsonrpc-server - ACP 自动化会话桥
@deepseek-ai/dsh-acp
资料来源与核验范围
本章依据固定版本的官方文档整理,设计取舍根据所述机制分析;核验范围为文档,不包含运行实测。