dsh-univer-office:DeepSeek Harness的Office套件
Lv.2潜力创作者
此前,我曾【建议】呼吁 WPS 官方尽快开发 DeepSeek Harness插件,抢占 AI 办公生态先机。但现在不需要了,因为已经有了更好的选择。
一、项目简介
dsh-univer-office是dream-num团队开发并开源的一款DeepSeek Harness(简称 DSH)插件,为 DSH Agent 赋予创建、编辑、审核和交付电子表格、文档、演示文稿、轻量级数据库及画布的能力。该插件基于Univer办公套件构建,Univer 是一个前后端同构的全栈开源办公框架,采用Apache-2.0许可证,支持电子表格、文档和演示文稿的创建与编辑。
Univer 官方网站:https://univer.ai
Univer 官方文档:https://docs.univer.ai
Univer GitHub 仓库:https://github.com/dream-num/univer
安装插件后,用户只需通过自然语言描述需求,Agent即可自动完成文档的创建、编辑与验证,最终交付标准的.xlsx、.docx、.pptx等格式文件。整个过程中,每一次变更都在隔离的工作树中执行,用户可实时预览、确认合并或随时丢弃。
二、功能概述
dsh-univer-office支持六种内容类型,覆盖日常办公的主要场景。
2.1 电子表格
支持单元格读写、公式计算、样式设置、数据排序与筛选、表格创建、图表生成、数据透视表、条件格式、迷你图、数据验证、浮动图片等功能。可导入 .xlsx、.csv、.tsv 格式文件,导出为 .xlsx、.csv、.tsv。
2.2 文档
支持段落排版、富文本编辑、有序与无序列表、任务列表、表格插入、图片嵌入、图表展示、页眉页脚设置、分页控制与页面布局调整。可导入 .docx 格式文件,导出为.docx。
2.3 演示文稿
支持从大纲一键生成幻灯片、页面内容编辑、文本与形状调整、图片与表格插入、图表嵌入、过渡动画设置,并内置布局检测功能,可自动检查文本是否超出边界、重叠或溢出。可导入 .pptx 格式文件,导出为 .pptx。
2.4 轻量级数据库
支持创建数据表、定义字段类型、录入记录、设置视图(含公式字段、筛选、排序、分组),以及基于 Sheet 的引用关系。
2.5 可编辑画布
支持创建形状、文本、连线、图片、原生图表与示意图,具备连线与布局分析能力。
2.6 复合文件
一个 .univer 文件可同时包含 Sheet、Doc、Slide、Base、Board 多种内容单元,各单元之间可通过公式与嵌入内容相互引用,实现跨类型数据的联动与整合。
内容类型 | 创建与编辑 | 验证与审查 | 导入格式 | 导出格式 |
Sheet | 单元格、公式、样式、图表、透视表、筛选、验证、图片等 | 结构化范围检查、重算、实时预览 | .xlsx .csv .tsv | .xlsx .csv .tsv |
Doc | 段落、富文本、列表、表格、图片、图表、页眉页脚、分页 | 文档回读、实时预览 | .docx | .docx |
Slide | 页面、文本、形状、图片、表格、图表、SVG 布局、过渡动画 | 结构检查、文本边界/溢出/重叠检测、实时预览 | .pptx | .pptx |
Base | 数据表、字段、记录、视图、公式、筛选、排序、分组 | Facade 回读、实时预览 | .xlsx .csv .tsv | .xlsx .csv .tsv |
Board | 形状、文本、连线、图片、原生图表、路径分析 | 元素与连线分析、实时预览 | mermaid | .png .jpeg .pptx |
三、安装与使用
3.1 环境要求
DeepSeek Harness已安装并成功运行
Node.js 版本 >= 22.19.0
幻灯片布局检测功能需要本地 Chrome/Chromium 浏览器,可通过环境变量 UNIVER_RENDER_BROWSER 指定浏览器路径
3.2 安装步骤
第一步:停止 DSH 进程
若 DSH 正在运行,在终端中按 Ctrl+C 停止当前进程。安装命令可在 DSH 运行时执行,但当前 DSH 进程不会自动加载新插件。
第二步:执行安装命令
dsh plugin --profile web add dsh-univer-office
第三步:启动或重启 DSH
dsh web
第四步:刷新浏览器页面
DSH 启动成功后,在浏览器中按 Cmd+R(macOS)或 Ctrl+R(Windows)刷新页面,插件即可生效。
3.3 工作流程
dsh-univer-office 的工作流程遵循以下步骤:
用户下达自然语言请求
Agent加载对应的 Univer 技能
在隔离的工作树中创建、导入或编辑文档
系统执行回读检查、重算和幻灯片布局检测
用户通过实时预览窗口审查结果
用户决定修订、合并或丢弃
3.4 使用示例
用户可通过自然语言描述需求,驱动Agent完成各类办公任务。以下是几个典型的使用示例。
示例一:创建工资表
创建一个包含员工姓名、基本工资、奖金、扣款、应发工资和实发工资的工资表,并自动计算合计。Agent将自动创建表格、写入数据、设置公式,并应用条件格式和图表。
示例二:生成教学幻灯片
生成一份六页的冒泡排序教学幻灯片,包含概念说明、每轮比较过程、伪代码和复杂度分析,并自动检查每页的布局问题,确保没有文本超出边界或重叠。
示例三:撰写项目报告
创建一份正式的周项目报告,包含执行摘要、本周进展、风险表、下周计划,设置页眉页脚,导出为 .docx格式文件。
3.5 其他常用命令
操作 | 命令 |
卸载插件 | dsh plugin --profile web remove dsh-univer-office |
查看已安装插件 | dsh plugin list |
四、技术原理
4.1 基于Univer的底层架构
dsh-univer-office的底层依赖Univer办公套件,Univer采用微内核加插件架构,其核心技术特性包括以下四个方面。
4.1.1 Canvas 渲染引擎
Univer使用自研的Canvas 2D渲染引擎,而非传统的 DOM 渲染方式。在百万级单元格数据场景下,滚动操作仍可保持50-60 FPS的流畅度,有效避免了 DOM 节点过多导致的性能瓶颈。渲染引擎采用分层渲染策略,将内容层、格式层和交互层分配到独立图层,各层独立更新,避免整体重绘。
4.1.2 公式引擎
Univer内置500余个函数,涵盖数学、统计、逻辑、文本、日期时间、查找引用、工程、金融等类别,兼容 Excel 函数语法,支持自定义函数、数组公式和命名范围。公式计算可运行于Web Worker中,避免阻塞主线程的UI操作。计算引擎采用增量计算策略,仅重新计算被修改单元格关联的公式,而非全表重算。
4.1.3 同构架构
同一套TypeScript代码可在浏览器和Node.js环境中运行,API 完全一致。这意味着企业可以在服务端批量生成报表,在前端让用户实时编辑,数据处理逻辑无需重复开发,大幅降低了全栈开发的复杂度。
4.1.4 OT 协同算法
支持多人实时协作编辑,采用操作转换(Operational Transformation)算法解决编辑冲突,支持200以上的并发用户,确保多人编辑的一致性和实时性。
4.2 插件工作机制
dsh-univer-office作为DSH的一个标准Bundle插件,其 Host 组件组合了四个核心消费者:
Univer Service Provider:提供Univer实例的创建与生命周期管理
Tools Consumer:向DSH Agent注册univer_* 系列工具
webServer Consumer:启动内置的Gateway和Viewer服务
Skill Provider:加载8个版本匹配的懒加载技能
插件向 DSH Agent 暴露的工具集包含以下 11 个工具:
工具名 | 用途 |
univer_new | 创建空的 .univer 文件 |
univer_status | 列出工作区中的 Units 和工作树 |
univer_worktree | 创建、提交、重新打开、合并或丢弃工作树 |
univer_unit | 创建或移除 Sheet、Doc、Slide、Base、Board 单元 |
univer_import | 导入 Office 文件作为新单元 |
univer_inspect | 读取文档结构或指定 Sheet 范围 |
univer_execute | 使用 Univer Facade API 读写或修改内容 |
univer_export | 导出 Sheet、Doc、Slide 或 Base 单元 |
univer_lint | 检测幻灯片文本的越界、溢出和重叠问题 |
univer_compile_svg | 将 SVG 编译为带真实字体度量的显式幻灯片页面 |
univer_api | 搜索插件内置的 Univer Facade API |
4.3 隔离工作树机制
每次Agent执行写入操作时,都会在一个独立的工作树(worktree)中进行,而非直接修改当前文件。完整的操作流程如下:
用户下达自然语言请求
Agent 加载对应的Univer技能
在隔离的工作树中创建、导入或编辑文档
系统执行回读检查、重算和幻灯片布局检测
用户通过实时预览窗口审查结果
用户决定修订、合并或丢弃
只有合并和丢弃操作会结束一个工作树,且两者都需要用户明确请求并经过 DSH 确认。提交(submit)仅将工作树提交审查,不会改变主分支。
4.4 默认配置与端口
插件内置的 Gateway 默认监听 9080 端口(若被占用则依次递增),关键超时配置如下:
配置项 | 默认值 | 说明 |
gatewayPort | 9080 | Gateway 回环端口,被占用后自动递增 |
autoStartGateway | true | 首次使用时自动启动 Gateway |
gatewayStartupTimeoutMs | 10000 | Gateway 启动超时时间 |
gatewayRequestTimeoutMs | 3000 | 状态读取超时时间 |
gatewayMutationTimeoutMs | 60000 | 变更操作超时时间 |
unitContentOperationTimeoutMs | 120000 | 导入、导出、检查、执行超时时间 |
4.5 代码示例:嵌入Univer表格
在自有项目中嵌入 Univer 表格功能:
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
import sheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'
import '@univerjs/preset-sheets-core/lib/index.css'
const { univerAPI } = createUniver({
locale: LocaleType.EN_US,
locales: {
[LocaleType.EN_US]: mergeLocales([sheetsCoreEnUS]),
},
presets: [
UniverSheetsCorePreset({ container: 'app' }),
],
})
const workbook = univerAPI.createWorkbook(data)五、结语
dsh-univer-office 为 DeepSeek Harness 注入了完整的 Office 文档处理能力,使 AI Agent 不再局限于文本对话,而是能够真正创建、编辑和交付办公文档。其基于 Univer 的底层架构提供了高性能的 Canvas 渲染引擎、500 余个内置函数的公式引擎、前后端同构的运行能力,以及插件化的扩展机制。隔离工作树机制则为用户提供了安全的审查与确认流程,每一次变更都可在预览后决定合并或丢弃。
对于希望将 AI 能力与办公自动化深度结合的开发者和团队而言,dsh-univer-office 是一个开源、可扩展、性能优异的工具选择。