# 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]]