PRODUCT DOCS
DWork:面向 AI Agent 的桌面工作流与工具编排平台
DWork 把 Agent 对话、工具调用、插件/Skill/MCP、会话渲染、模型 Provider、工作流看板、知识库、定时任务、PPT/文档/网页生产力、收藏渲染和画板输入放到统一桌面工作台中。它适合展示 Agent Harness 研发能力:从任务拆解、工具执行到人工复核和产物交付。
产品截图
本页只收录已提供的产品截图。未提供截图的能力在后文以文字说明和源码锚点呈现。








插件系统
插件中心用于安装和管理第三方操作能力。截图中可以看到分类、已安装数量、可用状态、配置路径、标签能力和依赖提示。源码显示它不是静态清单,而是“远程注册表 + 本地 manifest + 依赖适配器”的运行时系统。
插件目录与分类
- 远程目录来自
https://gunworker-plugin-registry.pages.dev/latest.json,本地有缓存和离线 fallback。 - 支持分类:开发工具、云服务、Agent 工具、办公协作、设计创作、数据科研、文档出版、工程制造等。
- 截图中统计为全部 29、已安装 12,并按分类展示 Android Studio、GitHub、WeChat Mini Program、Aliyun 等插件。
安装与可用性判断
- 安装源支持
cloudflare-package和local-installed。 - 安装时校验平台、版本、sha256、归档路径,并通过 Tauri 调用
install_openai_plugin。 - 插件声明 CLI/MCP 等 requirement 后,系统会执行本地命令检测、MCP upsert、OAuth/auth 检测,并给出“可用/需配置/缺失”状态。
能力注入方式
- 插件可暴露 Skills,安装后通过
@插件名或@Skill在会话中注入。 - 可声明 Read / Write / Interactive / DevTools / CLI fallback 等能力标签。
- 插件 manifest 与安装目录可被本地扫描并与 Cloudflare registry 清单合并。
工程价值
- 把外部工具、CLI、MCP 服务统一映射为 Agent 可发现、可配置、可调用的能力。
- 降低 Agent Harness 的扩展成本:新增工具不需要硬编码进主工程。
- 通过状态检查避免“装了但不可用”的问题,适合真实桌面端交付。
会话渲染输出与可编辑产物
DWork 的会话不只是 Markdown 聊天。模型输出指定 fenced code block 后,前端会识别渲染类型并直接转成可交互产物;产物可以收藏为资源,也可以在会话中打开“修改”进入块编辑器,让 AI 读取临时文件并用 edit_file 做局部修改。


支持的渲染类型
| 标签 | 用途 | 输入/运行方式 |
|---|---|---|
report | 结构化 Markdown 报告 | 报告 fence,可包含嵌套图表与代码块 |
mermaid | 流程图、时序图、状态图等 | Mermaid DSL 文本,前端队列化渲染 SVG |
html | 网页/交互页面预览 | HTML 代码块沙箱渲染 |
canvas-video | Canvas 视频动画 | JS 返回 draw、duration、fps,后端流式渲染 |
graph | 力导向关系图 | JSON:{nodes[], links[]} |
threejs | 3D 场景 | JS 使用 THREE、OrbitControls、WebGL/WebGPU fallback |
dashboard | 交互仪表盘 | JSON:{title, layout[]},支持多 widget 布局 |
p5js | 生成艺术与交互绘制 | JS 实例模式,包含 p.setup、p.draw |
map | Leaflet 地图 | JSON:{center, zoom, markers, polylines} |
markmap | 思维导图 | Markdown 标题/列表嵌套 |
mathplot | 数学函数图 | JSON 数据与函数配置 |
octave | 科学图表 | Octave/Plotly 风格数据或脚本 |
ag-grid | 数据表格 | JSON:{columnDefs[], rowData[], options?} |
pptx | PPT 幻灯片预览与下载 | JS 返回 PptxGenJS 实例,前端拦截 slide 生成预览 |
interactive-animation | 原生 Canvas 2D 交互动画 | JS 返回 draw/update/event handlers |
chem3d | 3D 分子结构 | 使用 $3Dmol,支持 pdb/sdf/mol2/xyz/json |
geo-3d-globe | 3D 地球点线可视化 | JSON:{points[], lines[]} |
geo-3d-globe-js | 可编程 3D 地球运行时 | JS 定义 init/onTick/onData 等运行时钩子 |
excalidraw | 手绘风格图 | JSON:{elements[], appState} |
drawio | Draw.io 精确架构图 | mxGraph XML;drawio-renderer 是同类 alias |
可编辑链路
- 每个渲染块通过稳定 hash 生成块 ID,点击“修改”打开
BlockEditModal。 - 原始代码被保存为
block-edit-<id>.txt,AI 先读文件,再用edit_file局部替换。 - 应用后写入本地 override,保留原始 assistant message,避免重排时间线。
收藏与复用
- 渲染产物可收藏,收藏项记录 type、code、title、summary。
- 输入框支持
@渲染-*或@Render-*选择渲染类型,也能引用已收藏产物作为模板。 - 收藏渲染可进入资源上下文,作为后续生成/修改的参考材料。
模型 Provider 支持
模型配置支持多 profile:每个 profile 保存 id、name、model、provider、baseUrl、apiKey,可设为默认,也可绑定到会话、定时任务、工作流步骤。运行时会把 profile 转成对应 provider 的环境变量,并按模型名优先路由。
opus、sonnet、haiku;环境变量 ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_BASE_URL;默认 context window 200K。deepseek、deepseek-v4-flash、deepseek-v4-pro、deepseek-chat、deepseek-reasoner;环境变量 DEEPSEEK_API_KEY、DEEPSEEK_BASE_URL;兼容 reasoning/thinking 字段。MiniMax,通过 OpenAI-compatible client 发送;环境变量 MINIMAX_API_KEY、MINIMAX_BASE_URL;兼容 reasoning details。OPENAI_API_KEY、OPENAI_BASE_URL;默认 fallback context window 128K。grok、grok-3、grok-mini、grok-3-mini、grok-2;环境变量 XAI_API_KEY、XAI_BASE_URL;context window 131072。会话与工作流模型选择
/api/models返回配置好的模型列表和默认 profile。- 单会话模型写入
session-models.json,任务、待办、工作流创建表单都能选择模型。 - 工作流支持 step_models,复杂任务可以为不同步骤绑定不同模型。
图像模型 Provider
- 图像生成 profile 另存为
imageProfiles,支持默认图像模型。 - 源码中支持
openai、google、minimax、recraft、stability、bfl、volcengine、alibaba。 - 生成结果统一落地为本地
/generated-images/*URL,供会话展示。
Agent 工作台
左侧功能区把知识库、定时任务、网页设计、PPT、文档编写、Excel、我的应用、插件、服务器集中到一个入口;右侧会话区支持 WebSearch、资源引用、模型选择、浏览器开关和深度研究开关。

AI 工作流看板
工作流看板支持任务创建、AI 拆解、运行、审批、拒绝、重试、继续、停止、移动状态、会话关联和 Git worktree 隔离。状态列覆盖待办、执行中、人工复核、合并中、已完成、失败。

生产力模块
PPT / 文档 / 网页 / Excel
- PPT 设计器有模板、页面元素、主题 token、下载 PPT、AI 修改/重做/演示等入口。
- 文档、网页、Excel 模块作为专业生产力工作台,复用会话、模型、资源和渲染能力。
- 用户应用与网页设计模块可以把生成产物落成可运行项目。
画板与收藏
- 手绘画板使用 Excalidraw 作为输入面板,可把笔画数据发送给 AI 并在聊天中引用为
@画板。 - 收藏保存 Mermaid、Three.js、p5.js、Draw.io 等渲染产物,后续可作为模板或资源引用。
- 渲染收藏与资源选择器打通,支持在会话里复用过去生成的可视化结果。


自动化与资源能力
浏览器 / 手机自动化
- 后端提供 browser open/navigate/click/run-js/get-dom/close 等 API。
- 手机模块支持 discover、repair-adb、connect、disconnect、screenshot 等操作。
- 适合把外部 UI 自动化纳入 Tool Use。
知识库 / Memory
- 知识库支持 tree/content/files/folders/import/export。
- Runtime 有 session memory、workspace memory、agent memory、CLAUDE.md 加载。
- 会话输入可引用 KB、设计资源、服务器、收藏资源。
MCP / Skill / 多 Agent
- MCP 支持 settings 配置、check、auth 和 stdio 管理。
- 工具注册包含 Skill、Agent、ToolSearch、WorkerCreate、TeamCreate。
- 可把子代理、团队、定时任务组合成长期自动化能力。
源码锚点
文档内容基于项目源码阅读整理,重点锚点如下。
cli/crates/runtime/src/conversation.rs:流式会话、ToolUse/ToolResult、权限、自动 compact、事件流。cli/crates/tools/src/lib.rs:read/write/edit/grep/web、Agent、ToolSearch、WorkerCreate、TeamCreate、MCP、Skill、browser、phone、TodoWrite。cli/crates/api/src/providers/mod.rs、openai_compat.rs:Anthropic、DeepSeek、MiniMax、OpenAI、xAI 路由与兼容层。cli/crates/web-server/src/main.rs:/api/settings/models、/api/settings/image-models、profile 环境变量注入。front/src/pluginCatalog.js、pluginRuntime.js、PluginCenterModal.jsx:Cloudflare registry、本地 manifest、安装与依赖检查。front/src/App.jsx:RENDER_BLOCK_LABELS、渲染组件、收藏、@渲染 mention、Draw.io/Three/p5/PPT 等块。front/src/BlockEditModal.jsx、/api/block-edit/:id:临时文件、编辑会话、edit_file 局部修改、override 持久化。front/src/TaskBoard.jsx、cli/crates/web-server/src/main.rs:任务拆解、状态流转、审批、Git worktree、会话绑定。技术架构
前端层
- React + Vite + Tauri WebView,承担会话、看板、插件中心、PPT、渲染块、资源选择等复杂交互。
- 渲染块按 fenced code / marker 自动识别,并通过 ErrorBoundary、流式稳定 key、缓存队列保障体验。
- 前端本地存储收藏渲染、会话资源、块编辑 override、插件中心状态。
后端层
- Rust Axum sidecar 提供会话、工作流、设置、插件、MCP、浏览器、手机、PPT、知识库、Git worktree API。
- Runtime 负责模型调用、工具执行、权限、内存、日志、token usage 和事件合并。
- 模型兼容层把 Anthropic Message API 和 OpenAI-compatible Chat Completions 统一成内部事件。
简历引用
独立设计并实现面向 AI Agent 的桌面工作流平台,覆盖会话运行时、工具调用、插件中心、MCP/Skill 扩展、会话渲染产物与可编辑块、模型 Provider 路由、知识库、浏览器与手机自动化、AI 工作流看板、Git worktree 隔离执行、人工复核、PPT/文档/网页生产力模块等能力。项目体现 Agent Loop、Tool Use、Memory、MCP、Skills、Provider Integration、Renderable Artifacts、工作流编排和本地自动化工程能力。