我领悟到了 DSH 的正确打开方式:用 DSH UI 把 Skill 产品化,改造成小说短剧创作工具
把 DSH UI 和 DSH Harness 当作宿主,由官方进行维护,然后进行插件边界设置。更准确的说法:基于 DSH 原生 Agent,提供类似 Cursor 的流式编辑器工作台,面向长文本创作领域。
插件边界(最关键)
| 模块 | 运行位置 | 核心职责 |
|---|---|---|
| Host | DSH Node 宿主进程内(后端) | 注册 Skill、Hook、Role 工具、挂载后端 /oh-story 路由,对接 Agent 执行、沙箱 FS |
| Browser | 用户浏览器(前端 UI) | 扩展 DSH Web 界面:文件树、编辑器、role 调用视图,数据请求转发给 Host 同源接口 |
更准确说法:基于 DSH 原生 Agent,提供类似 Cursor 的流式编辑器工作台,面向长文本创作领域。

1. 核心主旨
传统自研 Agent 应用:必须全套造轮子——Agent 主循环、会话管理、SSE 流式、模型对接、权限沙箱、前后端通信、事件分发,最后再做业务 UI 和业务能力。
基于 DSH 开发:全套 Agent 底层基础设施交给 DSH,开发者只聚焦两件事:定制前端工作台 UI、开发行业专属 Skills(小说 / 短剧创作能力)。
2. 几个关键机制含义
session events(会话事件)
DSH 会向外抛出会话生命周期事件:Agent 开始执行、开始写文件、工具调用完成、子 Agent 启动、流式输出变更等;插件可以订阅这些事件,不需要自己搭建消息推送。对应你们场景:订阅 Agent 写入文件事件,实现编辑器流式修改、自动定位。
projection(投影)
把 Agent 内部完整会话原始数据(timeline、runningCalls、文件内容),做轻量化筛选映射,输出给前端 UI 使用;不用把完整庞大的会话原始数据全量推给浏览器,按需投影出编辑器、文件树需要的数据,减少前端负担。enter(入口钩子)
插件在 Agent 执行进入某个阶段 / 某个工具调用前,可以注入自定义逻辑(类似你们的 pre-execute 写作门禁)。waterfall(流水线 / 瀑布钩子)
串联式的执行管道:多个插件钩子按顺序串行执行(pre → 工具执行 → post),可以拦截、修改入参、校验输出(你们用来做大纲校验、写作规范拦截)。
3. UI 与 Agent 联动轻量是什么意思?
如果自己从零搭建 Agent:要维护 SSE、长连接、消息序列化、会话同步、断连重连、状态一致性,前后端联动代码很重。
DSH 已经封装好上面这套事件、投影、钩子标准契约:
- Host 后端:注册钩子、Skill、路由,订阅会话事件
- Browser 前端:通过官方插槽注入 UI,订阅投影后的轻量化会话数据
插件不用处理底层流式通信和会话同步,只写业务逻辑,联动代码更薄,也就是轻量。
核心模式:DSH 提供底座外壳,插件通过官方插槽注入业务 UI
本质是插槽式增量开发:既不是 DSH 自动生成整套创作界面,也不是从零搭建一套独立 Agent 前端;而是在 DSH 官方 Web 壳的基础上,把自研的业务 UI 插进预留插槽里,底层通信、会话同步、流式能力全部复用 DSH 原生基础设施。
一、DSH 官方负责提供:通用外壳 + 底层能力
相当于自带的应用框架与运行时底座,插件直接复用,不用重复造轮子:
- Web 界面壳:整体页面布局、会话框架、原生界面组件
- 通用功能模块:Chat 聊天区、流式输出、工具调用轨迹、Todo、审批、Composer 输入区、会话布局插槽
- 底层基础设施:Agent 执行引擎、会话管理、事件推送、状态同步、前后端长连接(对应 session events、projection 等机制)
二、插件自研负责:仅业务场景 UI
代码集中在 packages/dsh-plugin/src/client/ 目录,只做和小说 / 短剧创作强相关的界面与逻辑:
- 文件树导航
- Markdown / JSONL 编辑器 + 预览
- 小说 / 短剧专属功能 Tab
oh_story_role工具的定制化视图- 编辑器与文件的联动逻辑
三、关键实现:往官方插槽里塞 UI
不是另起一套前端工程,而是通过 DSH 预留的扩展插槽,把自研 UI 注入到官方界面中:
shell.overlay插槽:挂载三栏式创作工作台的整体布局,扩展主界面区域tool.call.toolview插槽:注入 Role 工具调用时的专属小视图,定制工具呈现形式portal注入conversation.session:嵌入到会话流程里,右侧第三栏仍保留 DSH 官方原生 Chat
四、最终形态与核心优势
- 界面上:官方壳 + 业务插件 UI 共生,原生 Chat 和创作工作台并存
- 开发上:插件只写业务 React 代码,不用管 SSE 长连接、会话同步、断连重连、状态一致性这些底层逻辑,全部吃 DSH 现成能力
- 定位上:介于纯配置零开发和完全自研整套系统之间,是一种轻量、高复用的业务扩展方式
依托 DSH 开发无需自建 Agent 底层运行框架,开发者仅需实现业务 UI 与行业专业 Skills;DSH 提供会话事件、数据投影、执行入口、执行流水线等原生机制,大幅简化前端 UI 和 Agent 执行流程之间的联动开发成本。




