搭子 Dazi:把一项工作持续做下去

最近在做一个个人项目,叫搭子,英文名 Dazi。它是一个本地优先的桌面 AI 工作伙伴。

我想解决的问题很具体:把一件事交给 AI 之后,背景、进度、决定和产物应该留在同一个地方。下次回来,能够接着推进,不必重新解释一遍。

“搭子”这个名字,也对应着我希望建立的使用关系:有事情时一起做,暂时离开时保留现场,需要决定时再来找人。围绕同一项工作长期协作,是这个项目的出发点。

先把工作放在中心

一次对话结束,事情往往还没结束。写文章需要找资料、确定结构、修改草稿;处理一个工程问题,需要定位原因、尝试方案、验证结果。中途还会发生方向调整,或者等待一个人的决定。

如果这些内容只按聊天时间排列,重新进入工作就要先翻记录:上次做到哪里,哪些结论已经确认,还有什么没做?

所以,搭子的基本单位是一项“工作”。创建时给它目标和工作目录,后续会话、产物、决策与进度都围绕它组织。目录提供文件落点,目标解释为什么要做,档案保留已经达成的约定。

回来以后,先看简报

搭子的首页是一份简报。我希望打开应用时,先知道三件事:什么在等我决定,已经推进了什么,下一步可以做什么。

以整理一份技术方案为例,理想的协作过程是:先交代目标,在工作会话里补充约束;搭子推进可执行的部分,把需要选择的问题留下;回来时先看简报,再进入对应工作处理。

这是产品正在打磨的使用路径。简报要把进展说清楚:已经完成的可以检查结果,正在等待的能找到原因,需要决定的有明确入口。

工作会话保留展开细节的入口。文本、模型公开返回的推理内容、工具调用和结果按顺序呈现;先看结论,需要排查时再展开过程。执行过程中也可以主动停止,保留已经产生的内容,之后再决定如何继续。

工作档案,要能积累,也能纠正

长期协作需要记住的,通常是已经确定的事情:采用哪种方案、遵守什么约定、哪些尝试失败过。

搭子为每项工作设置了工作档案,用原生 Document 保存这些结构化信息。用户可以查看和纠正,后续工作有一个明确的参考。

我把第一版的记忆范围限制在单项工作里。跨项目的个人偏好、复杂的知识检索和独立记忆系统,会引入更多信息来源与一致性问题。先让一份档案准确、可修改、能持久保存,更符合当前阶段。

这也约束了“固定搭档”的含义:它需要逐步积累这项工作的背景,并允许人修正。仅仅保留一长串聊天记录,还不足以支撑这种关系。

界面也属于工作体验

搭子的界面采用原创手绘水彩风格,用纸张质感、柔和色彩和留白组织内容。简报、工作会话和档案共享同一套视觉语言,提供浅色与深色呈现。

这样的设计需要同时接受信息密度的检验。长段中文、代码块、工具输出和错误状态,都要在真实内容下保持清楚。视觉验收只是一个阶段,运行中的信息组织同样重要。

我希望这个界面适合长期打开。状态变化应该能被注意到,执行细节也应该随时可查,而不用让每一次工具调用都占据人的注意力。

技术上,让状态留在内核里

搭子使用 Electron 承载桌面应用,React、Vite 和 TypeScript 实现界面。独立 Host 工作进程运行 Agent 并独占本机 SQLite,界面订阅它的状态。

Agent 内核选择 Pi Durable,当前锁定在 1.3.0。它提供持久化对话、Document、任务恢复和原生视图订阅。前端消费 watch / viewState 对应的状态,通过 Chord 应用更新;Streamdown 2.7 负责流式 Markdown 展示。

这个分工有意保持简单:运行状态以原生内核为准,前端做投影,应用重新连接时读取新的快照。消息展示、任务执行与恢复因此围绕同一份状态组织。

恢复能力还涉及重复请求、工具重试和审批状态。把这些事情交给持久化内核,并用故障恢复测试验证,是为了让离开和回来成为正常使用的一部分。

工作状态和档案保存在本机,模型能力由在线供应商提供。这是搭子当前采用的本地优先方式。

现在做到哪里

目前,水彩界面和 Electron 桌面接入已经合入主分支。桌面模式具备真实 Pi Durable 与 SQLite 支撑的输入、中止、工具审批、工作档案和定时规则持久化;相关测试覆盖了流式展示、进程故障与恢复等路径。

项目仍处于开发阶段。OpenAI 与 Anthropic 适配器已完成受控协议验证,真实 API 在线验收还在待办中;目前通过本机环境变量配置密钥,尚未提供正式安装包。浏览器版用于演示,桌面版负责持久化工作;应用退出后,保存的工作在下次启动时恢复。

接下来,我会围绕“创建工作、推进、处理决定、交付产物、留下档案”继续打磨,让这几个环节衔接得更自然。

对搭子来说,接下来的检验很朴素:隔一段时间重新打开,能否清楚地知道事情到了哪一步,并继续把它做完。

项目介绍:dazi.krli.org

源代码与运行说明:GitHub · Dazi

技术细节:技术选型 · Agent 接入与验证边界

个人项目AI AgentDazi桌面应用产品设计
← 所有文章