
DeepSeek Harness 实战Web UI 与多端协同——你的 Agent 不止活在终端里系列导航概念 / 教程 / 架构 / 插件 / 编码实战 / 框架对比 / 会话日志 / Headless·CI / 自定义工具 / 模型适配 /本文Web UI 与多端协同/ 安全沙箱 / 多 Agent / 二次开发前面我们把 Agent 当命令行里的同事用了很久编码、接 CI、写工具、换模型。但 DSH 真正让人眼前一亮的入口其实是它的Web UI——一个开箱即用、浏览器里就能和 Agent 协作的图形界面。很多人有一个误区以为 Agent 框架都是终端里敲命令的极客玩具。DSH 偏不。它把 Web UI 当成一等公民默认启动就开界面、支持文件引用、历史会话引用、多模态输入、任务轨迹面板、子代理任务面板。更关键的是Web UI、Headless 命令行、ACP 远程接入三者共享同一套会话内核——你在浏览器里开的会话换个端也能接着聊。这篇我们就把界面这一层和多端如何协同讲透Web UI 长啥样、怎么用、为什么它刻意只监听本地、怎么和 Headless/ACP 配合、多端之间会话怎么同步。看完你会明白DSH 不是只有一个终端入口而是一个多端可达的 Agent 运行时。一、一句话定位Web UI 是默认入口先说最省事的事实装好 DSH 后启动 Web UI 只需要一条命令npx deepseek-ai/dsh web默认它就把界面服务在http://127.0.0.1:3080。注意端口是3080社区多篇实测都确认了这一点比如 atomicbot 的文档梳理。而且从 2026-08 中旬的提交记录看官方已经改成默认打开就绪的 Web UI——也就是你启动后浏览器界面会自动就绪不用再手动找地址。所以对新手最友好的路径就是装好 →dsh web→ 浏览器开127.0.0.1:3080→ 开聊。模型配置、工具开关、会话管理全在界面里点。这比一上来啃 CLI 参数友好得多。二、为什么端口是 3080又为什么只听本地两个问题分开讲因为第二个关乎安全很重要。为什么 3080没啥玄学就是官方选定的默认端口类似于很多本地开发服务器挑 3000、8080。你不用记它启动日志会告诉你确切地址真要改也走配置别硬记数字。为什么只听 127.0.0.1loopback这是刻意的安全设计。Web UI 背后是一个能执行 Shell、读写文件的 Agent——也就是说这个界面一旦暴露到公网就等于把能在你机器上跑命令的能力直接交给了全网。官方连这个风险都写进设计里CLI 会直接拒绝你绑定全网卡# 这一行会被 CLI 拒绝dsh web--host0.0.0.0为什么拒绝因为0.0.0.0表示监听所有网络接口把本地 Agent 变成了一个网络可达的远程代码执行面RCE surface。官方宁可你报错也不让这个隐患悄悄打开。这条红线请务必尊重——Web UI 只该待在 127.0.0.1。三、Web UI 底下是什么host 与 client 两个包我们讲架构时提过一切皆插件。Web UI 在代码层面对应仓库里的两个包packages/host负责服务端。里面又分host/webserver真正起 HTTP 服务、和前端通信的那层和host/frontend-static打包好的静态前端资源。简单说host是把 Agent 运行时暴露成 Web 服务的那一半。packages/client负责前端与连接。它下面拆得很细client/connection和 host 建立连接底层其实就是 ACP 那套通信、client/ui-conversation对话区组件、client/ui-primitives基础 UI 原子组件、client/ui-sidebar侧边栏、client/ui-workspace工作区视图。这种host 管服务、client 管界面的拆分本身就是一切皆插件的体现界面不是写死在内核里而是一组可替换的前端模块。你甚至可以基于client的连接协议自己做一个完全不同的界面比如终端 TUI、IDE 插件只要它走同样的通信协议。四、界面里能干什么从对话到引用讲完底层回到你每天会用到的界面功能。DSH 的 Web UI 不是一个聊天框那么简单它把 Agent 协作需要的上下文操作都做进了界面1.菜单把文件和会话拽进上下文RC.8 之后菜单新增了文件引用和历史会话引用。你写任务时可以一个本地文件把它作为上下文喂给 Agent也可以一段历史会话让 Agent 基于之前聊过什么继续。这解决了 Agent 协作里一个老大难复杂任务往往依赖大量背景资料手动粘贴又慢又丢信息——引用让带上下文变得点几下就成。2. 多模态输入/goal、/plan支持图文混合RC.8 起DeepSeek 模型适配器支持原生图片请求你可以通过/goal、/plan等核心指令做图文混合输入。也就是说你截一张报错图、贴一张设计稿进去或者直接图文一起发给 Agent它就能看图说话。这背后要求底层 provider 声明了input: [text, image]呼应我们模型适配那篇UI 只是把多模态能力暴露成了好用的入口。3. 任务轨迹面板Trajectory Panel我们在编码实战那篇讲过DSH 把模型看到的一切、做的每一步都记进会话日志。Web UI 把这些日志可视化成了轨迹面板你能逐条回看系统提示词、模型推理过程、工具调用的参数与返回、文件修改、终端命令。调试 Agent 时这个面板就是你的黑匣子回放——哪一步模型想错了、哪个工具返回异常一目了然。4. 子代理任务面板Job PanelRC.7 起子代理比如委派给 Codex、Claude Code 的任务接入了 Job Panel你可以在界面里直接看这些子 Agent 的执行过程、状态、结果。这让多 Agent 协作不再是黑盒而是看得见、管得着的面板操作。五、Settings 页模型与配置的图形入口Web UI 里最重要的后台是 Settings 页尤其是Settings → Models。我们模型适配那篇讲的llm-pi-ai配置在界面里就是在这里操作的点 “Add a custom provider”填 Provider ID、Base URL、API protocol、API Key就能接一家新模型。点 “Fetch available models” 自动从GET /models拉模型列表勾选。界面填的 key 会存到$DSH_HOME/.credentials.yaml界面只保留脱敏引用、不回显明文。所以配模型这件事Web UI 和 yaml 是两条等价路径界面点出来的本质就是写进settings.yaml和.credentials.yaml那几行。喜欢可视化的用界面喜欢版本管理/团队纳管的用 yaml——两者互不冲突因为 ultimately 是同一份配置。六、多端协同的基石会话内核是共享的现在进入本篇的核心命题——多端协同。DSH 最妙的设计之一是Web UI、Headless 命令行、ACP 远程接入三者共享同一套会话内核。具体说会话的状态消息、工具调用、文件修改、Shell 进程都存在session_root指向的持久化目录里我们会话日志那篇讲过是 JSONL SQLite。无论你从哪个端发起只要指向同一个session_root和同一个session_id你看到的就是同一段会话。这意味着什么举几个真实场景早上在浏览器里开了个会话下午想用脚本批量跑同任务用 Headless 指向同一个session_root会话历史还在。你的主 Agent 在本地 Web UI 跑子 Agent 通过 ACP 跑在另一台机器两者通过会话协议对齐子 Agent 的结果回到主会话的轨迹面板。CI 里 Headless 跑完你想在界面里复盘打开 Web UI 指向那个session_root把日志可视化回看。这就是多端可达的 Agent 运行时——入口可以有很多个但会话只有一份真相source of truth。七、Web UI 与 Headless一个用于人一个用于机把两个入口对比着看理解更深维度Web UIHeadless使用者人交互式程序/脚本/CI界面图形可视化轨迹、面板无界面只进退出码和最终文本启动dsh webdsh --profile headless 任务适合探索、调试、复杂协作自动化、批量、门禁会话同一session_root可续同一session_root可续关键认知两者不是替代关系是互补关系。Web UI 让你和 Agent 一起想Headless 让 Agent “替你跑完”。而因为它们共享会话内核你可以在 Web UI 里起头、Headless 里收尾或者反过来。这种人机各取所长的协作流是 DSH 区别于纯 CLI 框架的地方。八、ACP让 DSH 能被远程召唤再上一层是 ACPAgent Client Protocol。我们 Headless 那篇讲过ACP 是一套客户端—服务端通信协议而 Web UI 底层的client/connection走的就是它。ACP 的价值在于它让 DSH 能嵌入别人的系统。比如另一个程序IDE 插件、自有平台、别的 Agent想召唤一个 DSH 会话不用自己实现整套 Agent 逻辑只要按 ACP 和它对话即可。DSH 作为 ACP 服务端暴露工具、注册适配器、启动进程、管理任务、收集结果。所以多端协同的终局是你的 DSH 不只是一个本地 app而是一个可被任意客户端接入的 Agent 服务。Web UI 只是官方给的一个客户端实现你完全可以写自己的客户端——只要它讲 ACP。九、session_id 与 session_root 的协同细节多端协同要玩得转得懂两个参数怎么配合尤其你用 SDK 或 Headless 时session_root会话文件的存放根目录。Web UI 默认有一个Headless/SDK 你可以显式指定。想让多端共享会话就让他们指向同一个session_root。session_id具体某个会话的 ID。同一session_root下不同session_id是不同会话。有个 SDK 层面的细节值得记复用同一个 harness 实例 同一个session_id会保留该会话拥有的 Bash 进程工作目录、已导出变量、shell 函数都还在独立任务要用新的session_id否则会串台。这在多端场景里同样成立——你在 Web UI 用abc-123这个 id 开了会话、跑了命令、导出了变量之后用 Headless 指向同一个session_rootabc-123那些 shell 状态还在。十、为什么 Web UI 刻意不加 TLS、不加登录前面讲只听本地时埋了个伏笔Web 服务本身没有通用的 TLS/认证层。也就是说它生来就是为本机环路设计的不是为暴露在网上的多用户服务设计的。官方文档说得很直白不自带认证因为假设使用者就是本机那个人。如果非要暴露在反向代理后面光套一层反代不足以构成安全边界——除非你同时设计了底层的 API 信任与认证模型。CLI 直接拒绝--host 0.0.0.0就是为了防止有人图省事把 Agent 变成公网 RCE。这给团队部署提了个醒别把 Web UI 当 SaaS 用。多人共用请走每人本机一个 DSH或者DSH 作为后端服务、前端用你自己的鉴权层包一层的架构而不是把官方 Web UI 直接绑公网。尊重它的定位安全边界才清晰。十一、实战浏览器里完成一次带上下文的排错讲个具体用法让你感受 Web UI 的价值。假设线上报了个诡异 bug你手里有报错截图和出问题的源码文件打开127.0.0.1:3080新会话。在输入框出那个源码文件把它的内容作为上下文。直接把报错截图拖进/goalRC.8 多模态支持写“复现这个报错定位根因给出修复。”Agent 读文件、看图、跑测试、改代码每一步在轨迹面板实时可见。你发现它某步推理跑偏直接在审批弹窗拒绝让它换思路——这就是人在回路的协作。换成纯 CLI你要手动贴文件内容、描述截图信息损耗大得多。Web UI 把带上下文协作的成本压到了最低。十二、实战Web UI 起头Headless 收尾再一个常见组合白天在 Web UI 里和 Agent 搭出一个任务框架会话 id 是feature-xsession_root是默认的。晚上你想让它跑完整个测试套件并把结果写进报告但不想一直开着浏览器。用 Headless 指向同一个session_rootfeature-x或新 id 但共享 root让它无人值守跑完。第二天回 Web UI打开那个会话轨迹面板里已经躺好了完整的执行记录。这种人机接力之所以顺全靠共享会话内核。你不必把上下文从一端搬到另一端——它一直在那。十三、前端模块拆解给你看二次开发彩蛋如果你是开发者、想改界面记住packages/client的拆分ui-conversation对话气泡、消息流。想改消息展示样式动这里。ui-sidebar侧边栏会话列表、文件树等。ui-workspace工作区视图文件、终端、面板布局。ui-primitives按钮、输入框等原子组件全站统一用。connection和 host 的通信层封装 ACP 细节。这种细粒度拆分意味着你想换皮肤改ui-primitives想加面板加ui-workspace想换通信协议改connection——彼此不打架。这又是一切皆插件在前端的投影。下一篇二次开发我们会讲怎么自己写插件但你可以先记住界面也是可插拔的。十四、多模态与引用的工程意义表面看引用和多模态是体验优化工程上它解决的是 Agent 协作的上下文带宽问题。传统 CLI 里你给 Agent 的上下文基本是一段文字 prompt。但真实任务里上下文是文件、截图、历史对话、报错日志的混合体。引用让你把这些非文本上下文结构化地喂进去多模态让你直接发图。两者叠加Agent 拿到的信息保真度大幅提升瞎猜的概率下降。对团队尤其有用新人接手项目直接历史会话看前辈怎么处理的类似问题排查线上问题直接日志文件 截图。知识不再散落在聊天记录里而是能被引用地复用。十五、Job Panel 与多 Agent 的界面化前面提了 Job Panel这里补一句它和后续多 Agent篇的衔接。当主 Agent 把任务委派给子 Agent比如 Claude Code、Codex这些子任务不再是黑盒里跑完给个结果而是在 Job Panel 里可见、可管。你能看到哪个子 Agent 在跑、跑到哪、成败如何。RC.8 还加了reportDelivery机制子 Agent 完成任务可实时反馈、自动唤醒父任务。界面化多 Agent 协作的意义在于编排不再只是代码层的事也是可观测、可干预的事。你能在面板里发现某个子 Agent 卡住了及时介入。这把多 Agent从炫技变成了可控的工程实践——这也是下一篇多 Agent要展开的主线。十六、和封闭产品的界面对比横向看Claude Code 主要是终端 TUI 自有界面DSH 的 Web UI 走的是浏览器图形界面 开放通信协议路线。差异背后是哲学封闭产品界面是产品的一部分你用它的界面接受它的形态。DSHWeb UI 只是官方给的一个客户端实现通信协议ACP开放你完全可以替换界面。所以如果你觉得官方界面不够用别忍着——理论上你能基于client/connection的协议写自己的前端。当然对大多数人官方 Web UI 已经足够好用且开箱即用。十七、部署边界的再提醒把安全那条再强调一次因为它和多端协同强相关Web UI 默认只听127.0.0.1别强行--host 0.0.0.0。它没有内置认证不当 SaaS 用。真要远程用正确做法是本机跑 DSH通过你自己的安全通道如 SSH 隧道访问 127.0.0.1:3080而不是把服务绑公网。多人团队优先考虑每人本地一个实例或自建带鉴权的前端层。这些不是限制是把危险面控制在本机的自觉。Agent 能执行命令它的入口就必须被当成一扇门来守。十八、给新手的 Web UI 上手清单如果你是第一次用照这个清单走npx deepseek-ai/dsh web等浏览器自动打开或手动访问127.0.0.1:3080。在 Settings → Models 确认默认 DeepSeek 模型已就位或加自定义 provider。新会话先用纯文字任务试水“读一下 README写个概要”。试一个文件感受带上下文的协作。打开轨迹面板看 Agent 每一步怎么想的、怎么做的。想自动化时切到 Headless参考我们那篇指向同一个session_root。别一上来就追求最牛用法。先把对话、引用、轨迹这三个基础玩顺Web UI 的价值自然就出来了。十九、一句话总结 Web UI 的定位如果只留一句Web UI 是 DSH 给人准备的那个入口——它把会话、上下文、轨迹、子任务都可视化成了点几下就成的事而它和 Headless、ACP 共享同一套会话内核让你能在人交互和机自动化之间自由切换而不丢任何一个字节的上下文。二十、下一篇预告本篇讲了界面与多端。但界面再漂亮Agent 能读写文件、能执行命令安全问题就绕不开。下一篇我们钻进安全与沙箱三档权限read-only / workspace-write / danger-full-access底层怎么用操作系统能力把你 Agent 圈起来审批流怎么失败即拒绝凭据怎么只写不回显web_fetch 为什么默认被禁。那是把 Agent 放心用起来的必修课。二十一、Web UI 与 session 持久化的深入关系我们反复说共享会话内核这里把机制讲透一点。Web UI 启动时背后会有一个session_root默认在$DSH_HOME下某处或你指定的目录。所有会话以追加写入的方式存在那里——消息、工具调用、文件改动、Shell 进程状态逐条落盘成 JSONL元信息进 SQLite。Web UI 只是这些数据的可视化阅读器 写入器。这带来一个反直觉但重要的特性关掉浏览器会话没丢。你第二天打开 Web UI会话列表里还是那些会话轨迹还在。因为真相在磁盘上不在内存里、不在某个进程里。这也是多端协同能成立的根——无论 Web UI、Headless 还是 ACP只要指向同一个session_root读写的就是同一份真相。把会话当文件这个认知立住你对 DSH 的所有多端玩法就通了。二十二、真实团队的多端拓扑长啥样抽象讲完给个具体的团队拓扑让你看到多端协同在团队里怎么落地开发者本机每个人装 DSHdsh web起本地界面日常交互式编码、调试。所有会话在本机session_root。CI 机器流水线里用 Headless指向一个共享存储上的session_root或每次新建临时 root把自动化任务的轨迹留痕。编排层团队自建一个调度服务通过 ACP 召唤 DSH 子 Agent 做特定子任务结果回主会话。复盘端任何人想看某个会话只要能访问对应的session_root用 Web UI 或工具打开即可无需原机器在线。这个拓扑的核心纪律是会话真相集中在session_root入口随意分散。这比会话锁在某个人终端里的协作模式先进太多——知识不再随人走、随进程死。二十三、Web UI 里的审批流体验我们在安全篇下一篇会细讲审批机制这里先从界面视角看它怎么呈现。当 Agent 想做超出当前权限的事比如写工作区外的文件、执行敏感命令Web UI 会弹出一个审批卡片告诉你它想做什么、影响什么路径/命令你点允许或拒绝。这不是后台静默判断而是明晃晃地拦在你和 Agent 的越界动作之间。界面化审批的价值在于决策可见、可追责。你拒绝的那一刻这个决策写进会话日志approval/decided日后审计能看清谁、何时、拒绝了什么。这和无脑点允许的体验天差地别——它逼你做一次有意识的确认。所以请用 Web UI 时认真对待每一个审批弹窗别养成肌肉记忆式点同意。二十四、Web UI 与权限档的配合Web UI 里你能选/看到当前会话的权限档read-only / workspace-write / danger-full-access下篇详讲。界面和权限是联动的选了 read-only界面上 Agent 的写操作会被拦你看到的是只读分析形态。选了 workspace-write日常开发够用越界写被拒并提示。danger-full-access 是危险模式界面通常会让你二次确认才切过去——因为它没有文件系统围栏了。界面在这里的作用是把抽象权限变成可感知的状态。你不用记底层沙箱机制只要看当前档位、看审批弹窗就知道 Agent 现在能碰哪、碰不了哪。这是图形界面的红利把安全边界显示出来。二十五、界面里的工具开关与预设PresetWeb UI 通常和预设Preset配合。预设是能力组合包——同一模型挂不同工具集承担不同岗位标准/代码/极简/创造。在界面里切换预设本质是在cordis.yml这套插件组合上做overlay。对多端协同来说预设保证了一件事无论你从哪个端进来只要预设一致Agent 的能力面就一致。你在 Web UI 用标准模式开的会话Headless 用同一预设跑行为可预期。这避免了界面里能用的工具、脚本里却没挂的割裂。所以团队落地建议把预设也纳入统一配置别让每人自定义一套导致行为漂移。二十六、轨迹面板的高阶调试法轨迹面板不只是好看它是调试 Agent 的主工具。给你几招实战用法看工具返回某步结果不对展开那一行的工具调用看参数和返回值往往能定位是模型传错参还是工具本身返回异常。看推理过程模型为什么走弯路展开 reasoning看它当时的假设常能发现它误以为 X的源头。对比两次跑同一任务跑两遍结果不同把两个会话的轨迹并排看哪一步分叉一目了然。定位卡死任务卡住不动看最后一条事件是什么类型是等审批、等工具返回、还是模型超时。这些用法在 Headless 里也能做因为日志在磁盘但 Web UI 把它们可视化了调试效率高出一截。所以重交互调试用 Web UI重批量自动化用 Headless是效率最优解。二十七、Web UI 与凭据管理界面前面提过 key 存$DSH_HOME/.credentials.yaml、界面只回显脱敏。Web UI 的 Settings 里填 key就是往那个文件写。这里有个安全要点界面从不显示明文 key你看到的是sk-...****这类脱敏串。截图、录屏、别人瞄一眼屏幕都拿不到真实密钥。但反过来你自己要守住一条别把~/.dsh或你的$DSH_HOME同步到云盘、别提交进仓库。那个目录里既有配置也有脱敏前的.credentials.yaml。同步/提交 把私钥一起带走。Web UI 帮你不回显但不泄露的最后一道关在你自己的文件管理习惯上。二十八、Web UI 对大会话的处理当会话很长几百轮、大量文件改动Web UI 怎么不卡这涉及前端的分页/虚拟化以及后端把完整日志和投影缓存分开仓库里有session-projection-cache这个包就是做快速展示用投影的。简单说完整真相在磁盘界面读的是轻量投影所以刷起来不卡。这对你意味着会话再长也别怕界面崩。实在卡多半是投影缓存没跟上清一下或重启 Web UI 即可不影响磁盘上的真实日志。理解投影≠真相这个分层你就不会因为界面卡而怀疑数据丢了。二十九、常见 Web UI 问题与排查整理了几个高频问题打不开 127.0.0.1:3080先看启动日志有没有报错端口被占权限问题确认没手贱加--host 0.0.0.0被拒。界面空白/卡在加载多半是前端资源没加载全检查host/frontend-static是否就位开发者预览偶尔有构建问题可重装或等更新。模型列表拉不出来对方没暴露GET /models去 yaml 手动列modelsID模型适配篇讲过。会话不见了确认session_root指对了Headless 和 Web UI 要用同一个 root 才能互相看到。审批弹窗不出现就执行了检查权限档是不是danger-full-access那个档不拦正常应该是 workspace-write ask。三十、Web UI 在企业里的正确打开方式企业想把 DSH 用起来Web UI 的定位建议是个人工作端开发者本机dsh web自管session_root。不要在公网裸跑官方 Web UI无认证、无 TLS绑定公网 RCE 风险。集中审计靠日志不靠界面把session_root落到团队可访问的存储审计从日志走不从谁开着界面走。前端可自研如果真要多人 Web 访问基于 ACPclient/connection协议自己包一层带登录的前端比裸暴露官方 UI 安全。一句话把 Web UI 当本机交互器把多用户服务当需要你自己加安全层的工程问题——别混淆这两件事。三十一、和 IDE 插件的协同想象虽然官方主推 Web UI但 ACP 开放意味着 IDE 插件也是顺理成章的客户端。想象一下你在 VS Code 里装个 DSH 插件它走 ACP 连你本机的 DSH 运行时对话面板嵌在侧边栏文件引用直接取当前编辑器内容——这体验和 Web UI 殊途同归只是入口在 IDE 里。这说明了 DSH 架构的延展性入口可以是浏览器、可以是 IDE、可以是 CI 脚本、可以是别的 Agent只要讲 ACP、指向同一个session_root。“多端协同的端”边界由你定义。三十二、Web UI 的局限性客观说客观讲开发者预览阶段的 Web UI 也有局限别神话它它是为本机单用户设计的多用户并发不是它的强项。界面功能随版本快速迭代今天有的面板明天可能重构rc.7 到 rc.8 就大改了多模态和 Job Panel。深度定制界面需要懂packages/client的前端栈门槛不低。没有内置的团队共享会话的权限模型共享靠你自己的存储/访问设计。知道局限你才不会在错误场景硬上 Web UI。它是优秀的本机交互器不是现成的多租户 SaaS。三十三、一个关于入口自由的体会用了一阵 DSH 后我最大的体会是入口自由带来的心智变化以前用封闭 Agent 产品我被它的界面形态绑住用 DSH我可以在浏览器里想、在脚本里跑、在别的系统里召唤而上下文始终连贯。这种Agent 不再被困在某个 App 里的感觉才是它最打动人的地方。Web UI 是这自由的第一个、也是最友好的入口。但它只是入口之一——记住这一点你就站在了用 Agent 而非被 Agent 产品绑定的这边。三十四、最后的提醒把安全那条刻进习惯Web UI 再方便也只该在 127.0.0.1。它身后是一个能跑命令的 Agent把门开到公网等于把钥匙插在门上。本机用、SSH 隧道远程用、或自建带鉴权层——这三选一别选裸绑 0.0.0.0。三十五、Web UI 与二次开发的交汇点本篇是界面篇下一篇是安全篇再下一篇是二次开发篇——其实三者在这里交汇。你想给 Web UI 加个自定义面板比如展示你们内部系统的状态本质上就是写一个前端插件挂到packages/client的对应模块下再通过 ACP 和 host 通信。也就是说改界面和写工具/写插件走的是同一套可插拔哲学。这给了团队一个清晰的演进路径先用官方 Web UI 跑通业务发现界面不够用时基于开放协议自己补一块而不是等官方。界面也是可插拔的——这句话值得在二次开发那篇再展开但你可以先建立这个预期DSH 没有不可改的界面只有你还没去改的界面。三十六、给团队的一份多端协同规范草案把前面散落的纪律汇总成一份可落地的团队规范草稿建议按需取用session_root集中存落到团队可访问的存储别散落各人笔记本会话真相集中审计才可行。Web UI 只本机用禁止--host 0.0.0.0远程访问走 SSH 隧道或个人本机。预设统一纳管标准/代码/极简等预设团队对齐别每人一套导致行为漂移。Headless 用于自动化CI、定时任务走 Headless和交互式 Web UI 共享同一 root。凭据不进仓库.credentials.yaml在.gitignore密钥走环境变量注入。审批不无脑同意Web UI 的审批弹窗认真对待拒绝决策也写进日志可追溯。多用户需求自建前端如需多人 Web 访问基于 ACP 自研带鉴权层不裸暴露官方 UI。这份草案不复杂但每条都对应一个我们讲过的坑。团队落地 DSH先立这几条能少踩大半雷。三十七、本篇一句话收尾当你能在浏览器里和 Agent 协作、在脚本里让它跑、在别处召唤它而所有上下文始终连贯——你就体会到了 DSH 多端协同的真正含义Agent 不再是某个 App 里的囚徒而是你随时可达、上下文永不失联的协作者。三十八、从一个细节看设计成熟度默认打开 UI顺带提一个容易被忽略、但很能说明团队取向的细节。早期版本你需要手动确认要不要开界面而 2026-08 中旬的提交把行为改成了默认打开就绪的 Web UI。这看似一个小改动背后的取向是官方把人能用起来放在很高优先级——他们赌你大部分时候就是想要个界面而不是在终端里敲。这种默认对人友好的取向和 DSH 整体开发者预览、快速迭代的节奏是一致的。作为使用者你该享受这种友好但也该保持清醒预览版意味着界面形态会变别把工作流过度绑定某个面板的某个按钮。把会话真相在磁盘这条立住界面怎么变你都不慌。三十九、给本篇的最后一个提醒如果只能给你一条离开本篇的建议那就是先把 Web UI 用熟再谈多端编排。太多人一上来就想搞多 Agent 编排、跨机协同结果连单端会话、轨迹面板、审批弹窗都没摸透复杂玩法自然玩不转。Web UI 是离你最近、反馈最快的那层把它的对话、引用、轨迹、Job Panel 玩顺你对 DSH 的整体心智模型就立起来了——之后无论是接 Headless、玩 ACP、还是编排多 Agent都只是在这个稳固模型上叠加新入口而已。结语Web UI 与多端协同是 DSH 把Agent 运行时从极客终端拉进普通人工作流的关键一跃。它用图形界面降低了协作门槛又用共享会话内核和开放协议ACP保住了可编排、可替换、可远程的灵活性。对团队来说这意味着 Agent 不再是一个人终端里的玩具而是多端可达、上下文连贯的协作者。把入口交还给使用者把真相留在磁盘上这正是一个成熟 Agent 运行时该有的样子。如果这篇帮你把 DSH 的 Web UI 跑起来、并看清了多端协同的门道点个关注。实战系列持续更新概念 / 教程 / 架构 / 插件 / 编码 / 框架对比 / 会话日志 / Headless / 自定义工具 / 模型适配 /Web 协同/ 安全沙箱 / 多 Agent / 二次开发。你的 Agent 平时在哪用、怎么和团队协同评论区聊聊。先把一个端用透再去谈多端这是把 DSH 用稳的最短路。下一篇我们聊最该被认真对待的安全与沙箱。本文基于 deepseek-ai/deepseek-harness 官方仓库结构packages/host、packages/client、官方文档、社区实测atomicbot、jb51、ITBear 等整理截至 2026-08。dsh 处于开发者预览阶段端口/命令以你安装版本为准。