# datawork (desktop app, windows)
## 简介
datawork 是一个本地优先的个人 AI Agent 系统,把资料、对话、任务、代码和工具放在同一个本地工作区,让 AI 能围绕长期上下文持续协助工作。
它不是单纯的聊天工具,也不是单纯的笔记工具,而是一个围绕个人长期工作过程搭建的本地工作区。
目前 datawork 主要面向 Windows 桌面端。项目基于 Python 与 Tkinter 构建,同时包含 Web Studio、Code Agent、记忆、Todo、插件、MCP、模型管理等多套能力。
- GitHub:<https://github.com/jkjoker/datawork>
- 最新消息与下载:[[datawork:about]]
- 更新日志:[[datawork:changelog]]
## 设计理念
datawork 的核心是把 **AI、编码、记录** 三种能力放在同一个工作区中。
- AI 扩展思考与协作能力;
- 编码扩展行动与自动化能力;
- 记录保存原始数据、思考痕迹、任务过程和复盘结论。
datawork 的初心,是希望每个人在日常生活和工作中都能得到 AI、编码和记录三种力量的联合助力,以便更好地关注自己的想法和思考、所面对的真实业务,并在每一次行动中有效积累。
这三种能力如果分散在不同工具里,很多过程会被打断,很多上下文也会丢失。datawork 希望把它们放到一个可长期积累、可搜索、可复用、可继续调用的本地系统中。
它更像是 ChatGPT、Cursor、Claude Code、Obsidian、Notion、浏览器、脚本和本地文件系统之间的一个本地上下文中心与行动层:把围绕这些工具产生的上下文、任务、笔记、脚本和工具能力沉淀下来,并在后续工作中继续使用。
## 30 秒理解 datawork
> datawork 是一个本地优先的个人 AI Agent 系统:以 Code Agent 为核心内核,向上承载多种 Agent 形态,向下统一模型协议族、工具、记忆与 Todo,把 AI 从聊天框带入长期工作流。
```text
┌──────────────────────────────────────────────────────────────────┐
│ 入口层 主界面 AI(Code 模式)· Coder 区 · Web Studio │
│ 命令行终端 · Mini 全局窗口 · 手机浏览器 │
├──────────────────────────────────────────────────────────────────┤
│ 形态层 内置 Code │ ACP 外部 Agent │ ACP Sub-Agent │
│ DSH(可选内核)│ Workflow(垂直 Agent 运行环境) │
├──────────────────────────────────────────────────────────────────┤
│ 能力层 三层工具(内置 / 插件 / 标准 MCP)· 记忆 · Todo │
│ 输入队列 · 跨模块引用 · 内置教程 · 权限与审批 │
├──────────────────────────────────────────────────────────────────┤
│ 模型层 协议族(OpenAI 兼容 / Responses / Anthropic / Gemini …) │
│ 可视化模型管理 · 自行注册模型与供应商 · 推理深度 │
├──────────────────────────────────────────────────────────────────┤
│ 数据层 SQLite + 本地文件(工作区自包含)· AI 调用账本 │
└──────────────────────────────────────────────────────────────────┘
```
## 核心能力概览
| 模块 | 说明 |
|---|---|
| Code 模式与多形态内核 | 主界面 AI 统一为 Code 模式,可在内置 Code、ACP 外部 Agent、DSH、Workflow 等形态之间按任务切换。 |
| 通用 Agent 与 Code Agent | 通用 Agent 面向日常对话、信息整理与写作;Code Agent 面向编码、调试、代码理解和长任务执行。 |
| ACP 外部 Agent | 可接入 Claude Code、Codex、Kimi、OpenCode、CodeBuddy 等外部 Agent,并通过 datawork 统一权限、模型和工具配置。 |
| ACP Sub-Agent | 将外部 Agent 的专项能力,如搜索、研究、代码分析等,作为工具供内置 Agent 调用。 |
| Workflow | 面向专业领域的 Agent 运行环境,把领域内的 skill、提示词、工具和判断标准沉淀为可编辑、可维护的运行资产。 |
| 工具与扩展 | 三层工具体系:内置工具、datawork 插件、标准 MCP。 |
| 模型、协议与供应商 | 支持多种协议族、可视化模型管理、自定义模型与供应商、推理深度配置。 |
| 记忆与 Todo | 多记忆库、全文搜索、三层 Todo(清单 / Todo / Task),支持人和 Agent 围绕同一套任务记录协作。 |
| AI 调用账本 | 记录模型用量、费用、耗时和来源入口,便于长期观察与复盘。 |
| Web Studio | 通过浏览器访问本地工作区,可在手机、平板或其他电脑上使用 datawork。 |
| 权限与安全 | 文件白名单、工具权限审批、会话级权限模式等机制。 |
| 内置教程 | 教程随程序内置,Agent 可读取教程内容并回答当前版本的功能使用问题。 |
## Code 模式与多种内核形态
主界面 AI 已统一为 Code 模式。这个入口不是普通聊天框,而是面向任务执行的 Agent 工作入口。它可以按任务切换不同的内核形态。
| 形态 | 说明 |
|---|---|
| 内置 Code | 默认形态,包含文件读写、检索、命令执行、代码搜索、Todo 工具、协作工具和上下文管理。 |
| ACP 外部 Agent | 以 ACP(Agent Client Protocol)接入外部 Agent,支持模型配置、权限审批和 MCP 工具接入。 |
| ACP Sub-Agent | 将外部 Agent 的专项能力作为工具供内置 Agent 调用。 |
| DSH | 声明式 Agent 内核,作为可选内核保留在 Code Agent 设置中。 |
| Workflow | 垂直 Agent 运行环境,可针对不同领域配置独立的提示词、工具、skill 和工作区。 |
会话不绑定产生它的模式。历史列表不按来源过滤,旧会话可以在当前内核中继续推进。
## Workflow
Workflow 是面向专业领域的 Agent 运行环境,用于集中管理该领域的提示词、判断标准、工具和 skill。
它的核心思路是:把领域内的 skill、提示词、工具和判断标准沉淀为可编辑、可维护的运行资产。随着领域理解变化,这些资产也可以持续调整。
- **可编辑、可维护**:提示词、判断标准、工具与 skill 可直接调整,修改后立即生效。
- **可自建、可切换**:支持定义多个 workflow,在选择器里按需显示或隐藏;每个 workflow 可独立配置项目工作区与 Git 上下文。
- **内置业务核心「职位筛选」**:包含领域化提示词、专属工具、筛选标准与浏览器采集工具,也可作为自建 workflow 的参考模板。
## 工具体系
datawork 的工具体系分三层:
```text
L1 内置工具 ← datawork 自带
L2 datawork 插件 ← 通过 Python 文件补充能力
L3 标准 MCP ← 接入外部 server,与 Cursor / Claude Desktop 等共享
```
- **内置工具**:覆盖文件读写与检索、命令与脚本执行、代码语义搜索、记忆操作、网页解析、Todo 操作、主动提问与主动等待、代码研读笔记等。
- **datawork 插件**:通过 Python 文件扩展能力;支持常驻和按需查阅两种可见性;通用 Agent 与 Code Agent 共享同一套插件。
- **标准 MCP**:支持接入外部 MCP server;通用 Agent 与 Code Agent 共享 MCP 配置;datawork 的记忆库与 Todo 系统也可开放为 MCP server。
## 模型、协议与供应商
datawork 支持多模型、多供应商和多协议族。
- 内置 OpenAI 兼容、Responses、Anthropic、Gemini 等主流协议形态;
- 支持自定义供应商和协议模板;
- 模型管理入口统一,主界面、Coder、Code Agent 设置中的行为保持一致;
- 可注册未内置的模型,补充能力、上下文长度、价格与显示名;
- 支持中转和第三方网关;
- 可视化管理模型的思考、视觉、工具等能力;
- 支持推理深度配置;
- 已适配 DeepSeek、Kimi、小米 MiMo、Qwen、GLM 等模型。
## 记忆、Todo 与数据
### 记忆系统
记忆系统支持多记忆库、全文搜索、类型标记、右键添加、复制记忆路径等操作。Agent 可通过内置工具对记忆进行查询、新增、更新与整理。
记忆不是单独的笔记区,而是 Agent 可调用的长期上下文。项目经验、阶段性判断、代码片段、研究结论、反复使用的方法,都可以沉淀到记忆库中。
### Todo 系统
Todo 是三层结构:
```text
清单 → Todo → Task
```
它既面向人,也面向 Agent:
- 人可以用它记录、拆分、排序、固定和推进任务;
- Agent 可以围绕任务记录行动;
- 在授权下,Agent 可以维护待办事项、更新进度、补充子任务;
- Todo 与记忆、文件、会话、队列和 MCP 能力可以互相连接。
这套 Todo 把零散想法、任务管理和 Agent 行动连接了起来。
### 数据
记忆、Todo、会话、研读笔记和配置保存在本地工作区中。工作区可整体备份,也适合长期沉淀个人工作数据。
## AI 调用账本
datawork 内置 AI 调用账本,用于记录模型调用情况。
账本主要记录:
- 模型用量;
- 费用;
- 耗时;
- 来源入口;
- 会话归属;
- 模型与供应商维度的统计。
它的意义不是单纯记账,而是让长期 AI 使用变得可观察:哪些入口在调用模型,哪些任务消耗较多,哪些会话值得复盘,都可以留下线索。
## 权限与安全
datawork 是本地优先系统,工作区数据默认保存在本地。当前桌面版不需要 datawork 账号,不需要注册,也不需要登录。
主要安全机制包括:
- 文件白名单;
- 工具风险分级;
- 工具权限审批;
- 会话级权限模式;
- Web 端审批独立处理;
- Web 端审批独立处理。
AI 需要访问本地文件、执行命令或写入内容时,权限边界会影响它实际能做的事。datawork 的原则是:让 Agent 有能力行动,但重要操作仍留在可控范围内。
## 输入队列与跨模块引用
输入队列用于把 Todo、Task、记忆条目推送到指定队列上下文,例如 Coder、Mini Chat、主界面 Code。它适合把一组任务排队交给 Agent,或把某些材料集中送入后续工作流。
跨模块引用支持在输入框用 `@` 引用 Todo、文件、文件夹、记忆和 Skill。它让不同模块中的对象可以被明确指向,而不是只靠自然语言描述。
## Web Studio 与多端
Web Studio 支持通过手机、平板或浏览器访问本地工作区,用于对话、读写文件、操作工作区和推进任务。程序仍在本地运行,数据保留在本地机器上。
- **局域网访问**:手机、平板、其他电脑连接同一网络后,可通过浏览器访问。
- **外网访问**:配置中转服务后,可在外网访问本地工作区。
- **Web Studio**:包含对话、工作区管理、会话管理、用量统计、上下文展示等功能;支持刷新恢复与多任务并行运行。
- **Web Coder 编辑器**:接入真实工作区与 Git;提供 Diff 查看、图片查看、Markdown / HTML / SVG 预览与全工作区搜索替换。
- **其他页面**:chat、PPT 工作台、多媒体播放器、Vlog 录制、文件传输助手、PDF 阅读器。
## 内置教程体系
教程随程序内置,并接入 Agent 工具。
目前教程覆盖:
- 入门理解;
- 数据与知识;
- 开发流程;
- 会话与文件;
- 系统维护;
- Workflow;
- ACP Agent;
- 模型管理;
- Todo 系统;
- 命令行终端等。
Agent 可通过工具读取教程内容。教程内容可作为 Agent 回答功能使用问题时的依据。
## 典型工作流
一个典型工作流可以是:
1. 把项目资料、笔记和代码放入本地工作区;
2. 用通用 Agent 讨论需求、收集信息、生成 Todo;
3. 在主界面 AI 的 Code 模式里读取项目、编辑文件、运行脚本、调试或审核代码;
4. 将关键结论沉淀到记忆库,将任务进度保存在 Todo 系统中;
5. 将 datawork 的记忆库和 Todo 系统开放为 MCP server,让外部工具继续连接使用。
## 具体案例
### 1. 在 datawork 中开发 datawork
datawork 的 Code Agent 已长期用于 datawork 自身开发,覆盖需求讨论、代码阅读、文件编辑、脚本运行、调试排查和提交管理等环节。
开发过程中积累的 Todo、变更记录、记忆片段、Skills 和插件,会沉淀在 datawork 的本地工作区中,便于后续检索、复盘和复用。
### 2. 把临时需求沉淀为可复用工具
使用或开发过程中出现新的具体需求时,可以通过本地 datawork 插件补充能力。插件开发完成后,通用 Agent 与 Code Agent 都可以调用同一份能力。
一次性的任务处理可以进一步沉淀为长期可复用的工具。Agent 在确认和权限控制下,也能参与开发新工具,让系统逐步积累可复用能力。
### 3. 复用已有 Skills
已有的 skills、提示词、流程文档、脚本或工作方法,可以通过配置路径的方式纳入 datawork 工作流。
过去分散在不同工具里的能力资产,可以被通用 Agent 和 Code Agent 继续读取、理解和复用;已经验证有效的方法也可以逐步迁移到本地系统中。
### 4. Todo 系统
datawork 内置三层 Todo 系统和可视化界面,用于记录、拆分和推进日常事项、开发判断与项目动作。
这套 Todo 同时面向人和 Agent:Agent 可以围绕任务记录行动,并在授权下维护待办事项、更新进度、补充子任务。
### 5. Workflow
部分任务需要领域化的提示词、专用工具、成体系的判断标准,以及只在该领域中出现的上下文。
Workflow 的核心思路是把 skill、提示词、工具和判断标准沉淀为可编辑、可维护的运行资产。随着领域理解变化,这些资产也可以持续调整。
### 6. Code Agent 协作能力
Code Agent 具备协作定位与读取能力:可以定位当前会话、读取对话历史、生成并读取协作文档路径。长任务中的上下文可以被整理、交接和重新接续。
协作文档通过通用文件编辑工具维护,并纳入正常写入审批流程。重新打开长期任务时,Agent 可以依据当时的记录理解背景、决策和进展。
### 7. 代码研读
开发过程中的 Git 提交可以在 datawork 的 Git 界面中被后续阅读、审核和讨论。围绕提交追加的笔记、备注和研读记录,会沉淀到对应提交的 notes 中。
提交研读线索也可以交给外部 Agent 工具继续分析,使代码审查、项目演化理解和学习过程沉淀为可复用资产。
### 8. 文件传输助手
datawork 包含文件传输助手这类高频小工具,用于在手机和电脑之间传输、暂存和捕获文件或资料,把临时信息接入本地工作区。
截图、文件、临时资料和移动端捕获内容,可以继续进入后续的搜索、整理、Todo、记忆和 Agent 工作流。
## 适合的使用场景
datawork 更偏向长期使用场景,尤其适合:
- 重度 AI 用户;
- 重度记录者、知识工作者、研究者、独立开发者和长期项目型用户;
- 需要持续管理笔记、文件、链接、项目过程和经验的人;
- 希望 AI 能读文件、改文件、写脚本、调用工具、更新 Todo、沉淀记忆的人;
- 正在使用 Cursor、Claude Desktop、Claude Code 或其他 AI 工具,并希望通过 MCP 复用个人上下文的人;
- 重视本地优先,同时希望通过 Python 插件或 MCP 将小型自动化逐步沉淀为可复用能力的人。
如果只是偶尔进行一次性 AI 问答,极简聊天工具通常已经足够。
## 性能与工程化
近期版本持续优化了启动速度、长会话稳定性、上下文管理、Web 端体验、日志隐私、网络稳定性和云同步目录下的数据稳定性。
## 数据安全
- 无 datawork 账号;
- 无注册、无登录;
- 工作区数据默认保存在本地;
- 支持文件白名单与工具权限审批;
- 仅在调用第三方模型 API、访问网页或使用外部服务时需要网络;
- 使用第三方模型服务时,数据处理遵循对应供应商的服务规则。
## 安装与使用
最新下载链接以 [[datawork:about]] 页面为准。
当前桌面版主要面向 Windows 10 及以上系统构建和测试。
安装版基本流程:
1. 下载安装包;
2. 运行安装程序;
3. 启动 datawork;
4. 设置全局基础路径与笔记保存路径;
5. 在「模型管理」中添加模型;
6. 发送一条消息确认 AI 联通状态。
## 软件许可与免责声明
- MIT LICENSE 不对 datawork app 起作用;
- datawork 当前为专有软件,源码未对外开放;
- Windows 桌面应用是目前唯一对外开放的产品形态;
- 该程序主要供个人用户以学习、教育、研究以及兴趣探索为目的使用;
- 保留一切权利;
- 未经许可,任何第三方不能以任何形式直接或间接传播本仓库所提供的软件包;
- 用户应注意个人数据备份,使用过程中产生的后果自行承担。
## 致谢与联系
感谢 Cursor、Claude、DeepSeek、Devin 在 datawork 开发过程中的帮助。
如果有建议、想法或问题,可以通过 GitHub issue 或邮件联系。
- 作者:jk.zhou
- Email:
[email protected]
- GitHub:<https://github.com/jkjoker/datawork>
## 软件内页截图(非最新页面)
![[Pasted image 20241126141531.png|600]]
![[Pasted image 20241126141626.png|600]]
![[Pasted image 20241126141723.png|600]]
![[Pasted image 20241126142339.png|600]]
![[Pasted image 20241126141747.png|600]]
![[Pasted image 20241126141904.png|600]]