DisPatch 3.0:家庭配置文件、设置向导以及会先询问用户意见的代理程序
- 发布日期
- 2026年10月19日
- 作者
- Jacob Lloyd —— 项目完成后,在 AI 协助下撰写
- 阅读时长
- 约 18 分钟阅读
简单来说: DisPatch是一款专为家庭设计的私密聊天应用,它运行在您自己的电脑上,背后还有AI助手提供支持。3.0版本为每位家庭成员都设置了独立的个人资料:成年人可享受完整功能与日常聊天服务;儿童则能看到带有可爱动物形象的简易界面,还能自行设定每日使用时长限制以及静音时段。安装向导会在最初的五分钟内引导您完成设置流程,所有聊天记录也可以加密形式进行备份。
DisPatch 3.0是我启动这个项目以来最大的变革。在此之前,整个访问机制仅依赖一个PIN码:只要拥有该PIN码就能查看所有内容;否则就只能进入安全模式。这种方式对我而言尚可。但对于一个由成年人、青少年以及小孩共用同一个安装实例的家庭来说则行不通。3.0版本引入了真正的用户配置文件,每个配置文件中都有独立的登录方式与权限限制;服务器也会针对每项请求检查其所需的权限。此外还新增了设置向导、加密备份功能以及代理任务模块。
下面的所有截图均来自全新安装的测试环境:其中创建了虚构的人物角色(Ada、Jo、Max、Mia)以及相应的对话内容,所使用的角色也都是DisPatch自带的。如果您尚未接触过DisPatch,可先阅读DisPatch官方介绍页面以了解其基本功能及回复信息如何传送到您的手机上。本页面则着重介绍3.0版本的新特性。
简要总结
- 用户配置文件:可设置一位所有者,以及任意数量的管理员、普通成员与受限用户。儿童账户属于受限类型:只能使用为其专门设定的角色、每日使用时长受限、设有静默时段且无法更改任何设置。
- 设置流程:六步向导程序会创建所有者账号、连接人工智能模块、添加家庭成员并询问谁有权访问该应用。全新安装时,若无所有者账号则网络功能暂时不可用。
- 人工智能模块:每个模型服务器仅允许一个连接;API密钥不会存储在配置文件中;新增了测试按钮;默认角色为Atlas。
- 其他新特性:为儿童提供的“动物好友”入门包以及面向成人的“助手”包;普通成员可使用语音功能;所有设置都集中在一个可搜索的页面中管理;新增加密备份功能;代理任务模块还支持预算设定与审批流程。
- 升级方式:3.0版本启动时会自动迁移2.x版本的数据,事先还会执行备份操作;原有PIN码依然有效,且提供了单命令撤销功能。本人已亲自测试过该升级路径。
- 当前状态:截至2026年10月19日,3.0版本已纳入公开代码库的
main中,目前已在我的家庭中正常使用。目前尚未发布正式版本或安装包;软件采用MIT许可证,完全免费。

对您而言有哪些变化
- 每个人都有自己的个人资料。 在锁屏界面上点击您的名字并输入 PIN 码或密码即可。每个人的使用权限都与其本人绑定,而非与设备或 Wi-Fi 地址相关。
- 儿童拥有应用内的安全空间。 “受限模式”下的用户只能看到您为他们准备的卡通角色,无法进行任何更改;且在您设定的时间之外该模式也会自动失效。
- 初始设置过程有向导指引。 设置向导会依次要求您创建主账户、配置 AI、添加家庭成员以及设置网络信息。
- 连接 AI 需填写表单而非编辑文件。 只需选择服务提供商、粘贴密钥并点击“测试”即可。
- 现成可用的卡通角色包。 只需点击一次,两个入门级角色包便会自动安装完成。
- 全家人都能使用语音功能。 安装了语音插件后,所有成员(包括处于“受限模式”的用户在其专属角色下)都可以用语音代替打字进行交流。
- 可导出到其他地方的备份文件。 点击一个按钮即可生成包含聊天记录、卡通角色、设置信息及密钥的加密存档文件。
- 智能助手会事先征询意见。 您可以在任意聊天窗口中向智能助手分配任务,随后观察其执行过程;必要时还可批准某些高风险操作或设定其最大花费额度。
- 支持 Docker 部署。 在克隆的系统中运行
docker compose up -d即可完成部署——该方式适用于 Linux、树莓派或 Windows 系统。详细的配置指南可参阅 Docker 使用教程。
全家使用的用户配置文件
共有四种角色。简单来说:
| 角色 | 适用对象 | 权限说明 |
|---|---|---|
| 所有者 | 仅限您一人。 | 拥有全部权限,包括主机控制、备份功能以及机器 API 密钥的管理权。 |
| 管理员 | 值得信赖的成年人 | 拥有与所有者相同的权限,但无法修改所有者自身的配置文件或更改安装时设置的 PIN 码,从而确保没有人能将所有者排除在外。需要使用密码登录。 |
| 普通成员 | 成年人或青少年 | 可以聊天、语音交流、发送图片、使用您启用的各类工具、接收通知以及管理自己的对话记录。无法更改设置,除非您另行授权,否则也无法使用任何代理程序。需要使用 PIN 码登录。 |
| 受限用户 | 儿童或访客 | 仅能与为其设定的虚拟角色进行聊天和语音交流。无法使用任何工具、代理程序或设置选项,也不能访问任何文件。还会受到每日使用时长及静音时段的限制。 |

所有者还可以为某个用户额外授予或撤销某些权限。例如,允许某个普通成员运行代理程序,或者禁止某个配置文件使用语音功能。不过,受限用户永远无法获得任何管理权限;而普通成员也绝无可能获得主机控制权。
针对儿童的限制措施
每个配置文件都可以设定每日可使用的时长、发送消息的数量、新建对话的次数、评分次数以及可上传的数据量,还能设置静音时段。比如,Mia 的静音时段为晚上 20:00 至次日早上 07:00,每天允许使用时长为 45 分钟且最多可发送 100 条消息。实际使用时间才会被计入限额内;即便平板电脑整夜处于开启状态,也不会消耗 Mia 的可用时长。

以下是 Mia 所看到的界面。她的界面上仅显示了“动物之友”系列角色与 Atlas,因为 Atlas 的受众设定为“所有人”(不过该设置可更改)。页面顶部的提示信息会告知 Mia 所有者能够查看的内容:对话次数与上传数据量等统计信息,但绝不会显示具体聊天内容。

锁定屏幕并不能绕过这些限制。当某个受限用户首次在尚未绑定任何配置文件的设备上登录时,该设备便会被自动绑定到这个用户身上。因此即便 Mia 锁定了屏幕或会话超时,设备仍会以她的身份启动,且静音时段与当日已用时长均保持不变。这一功能更新于 2026年10月19日;在此之前,锁定屏幕会让儿童获得全新的访客使用额度。若设备尚未绑定任何配置文件且没有任何用户登录,则会被视为处于默认受限状态的访客设备;而 anonymous_access: none 设置甚至会在登录界面隐藏这一信息。
有一点需要提前了解:在当前版本中,所有对话内容属于整个家庭共享的信息空间。各角色权限仅决定用户能使用哪些虚拟角色与功能,而无法控制谁能查看哪些对话内容。在我的测试中,身为普通成员的 Max 成功加入了由所有者 Ada 发起的晚餐主题聊天群。不过如果两位成年人需要创建私密对话群,3.0版本尚无法满足这一需求。
如果忘记了 PIN 码该怎么办
当所有者设置好 PIN 码后,DisPatch 会自动在数据存储文件夹中生成名为 RECOVERY-CODE.txt 的恢复代码文件。若仅为单人使用环境,只需在锁屏界面输入该代码即可清除原有 PIN 码。一旦其他用户也创建了自己的配置文件,系统会要求创建新的 PIN 码并替换旧值,从而确保整个家庭始终拥有有效的所有者账户。当然,设置了密码的所有者也可直接凭密码登录。
设置向导
初次安装后会启动一个包含六个步骤的向导:创建账户、选择模型、设置语音(可选)、添加家庭成员(可选)、配置网络,最后完成设置。您可以选择“稍后设置”来跳过这些步骤;点击“完成”后,该向导也会彻底消失。

真正关乎安全的关键步骤其实发生在您看到向导之前:新安装的DisPatch在管理员账户创建完成前会禁止网络访问。在运行DisPatch的电脑上,向导不会要求任何额外信息;但在其他设备上则需要输入一次性设置令牌——该令牌由服务器生成并记录在其日志中(在Docker环境下可通过 docker compose logs app 查看)。在2.x版本中,最先完成安装的用户可设置PIN码并成为管理员;现在则无法如此操作了。

网络设置步骤用于确定DisPatch是仅允许本机访问(默认设置)还是可让整个家庭网络访问。向导还会提示如何配置服务器以满足相应需求。监听端口仍由启动方式决定,若设置不一致则会有警告提示。手机端要实现安装、推送通知及麦克风功能则需使用HTTPS协议。关于反向代理或Tailscale Serve的设置方法,可参考仓库中的 docs/remote-access.md 文档。
连接 AI
向导的第二步会在同一台计算机上搜索 StudioForge、LM Studio 和 Ollama。如果未找到任何服务,则需手动输入类型、地址、密钥以及模型名称:支持 OpenAI 兼容格式、StudioForge、LM Studio、Ollama、OpenAI、Anthropic、DeepSeek 或 OpenRouter。测试并保存功能会验证连接是否成功,将其设为默认服务,并让 Atlas 使用它。在“设置 → 连接”界面中共有十三种服务类型可供选择,其中包括 MiniMax 和 xAI。我正是在此处添加了 MiniMax 连接,以便 Atlas 在这些截图中使用。

现在每个服务器仅对应一条记录,无需再为每个角色重复设置。密钥会被存储在操作系统的密钥环中,或是只有当前用户能访问的文件中,此后任何界面或 API 都不会再显示该密钥。连接服务也可从用户自定义的环境变量中读取密钥。查找服务器功能会扫描常见的端口以寻找 StudioForge、LM Studio、Ollama 以及类似 OpenAI 架构的服务器。该功能不会扫描云元数据或本地链路地址,因此即便输入了错误的地址也无法访问内部服务。
若您运行的是 StudioForge 2.x 版本,当 DisPatch 从其他机器或容器中访问该服务时就需要提供 API 密钥。请在 StudioForge 的“用户与密钥”页面创建一个推理用密钥并填入连接设置中。查找服务器功能能识别受密钥保护的 StudioForge 实例,并提示需要输入相应密钥。
入门套件

动物伙伴是一组专为受限版配置文件设计的六个温和型角色。它们从不索要个人信息,会引导焦虑的孩子去找大人求助;这些角色自带语音功能且无需额外查询,还具备快捷动作与反应机制。助手则是为会员版配置文件准备的四个帮手:负责解释说明、写作、编程及规划任务。每个角色都设有适用人群限制(所有人/会员/受限用户),还可自定义允许查看该角色的配置文件列表。服务器会将该规则应用于所有列表及实时更新内容,而不仅限于侧边栏显示。
会员专属语音功能
语音聊天功能仍需通过独立插件来实现,即 DisPatch Voice。目前的最新版本为 1.5.0,可与 3.0 版本兼容;这些截图正是使用该版本所拍摄的。测试时,语音模型是在同一台机器的 CPU 上运行的,并未使用 GPU 服务器。2026年10月19日,DisPatch 做出了更新:现在会员可以打开通话界面,进入“设置”→“语音”选项,浏览可用的语音列表及示例音频。至于语音克隆功能、GPU 语音服务器以及开关控制权限则仍仅限拥有者和管理员使用。

受限模式的账号同样可以使用语音功能,并有其专属的语音选项。语音连接的规则与文本消息一致:通话开始时及进行过程中都会检查静默时段设置,通话时长也会计入孩子的每日使用限额。版本 1.6 则将所有语音设置整合到同一个页面中;该版本目前位于插件的开发主分支上,尚未正式发布。
所有设置都集中在一处

现在,每个设置项都只有一份描述信息:包括其类型、默认值、取值范围、是否需要重启服务,以及可用来覆盖该设置的环境变量。‘全部设置’页面正是基于这些描述生成的,而代码库中的 docs/settings.md 文件也是由同一数据源生成的。对于尚未迁移过来的设置项,旧版选项卡依然可用。在升级过程中,那些 DisPatch 无法识别的设置项会被保留并列出,而不会被删除。
加密备份

点击“立即备份”后,系统会生成一个加密文件,其中包含在新电脑上恢复所需的一切内容:数据库、角色与设置、头像信息及连接密钥;若勾选相应复选框,图片和文件也会被一并包含在内。该文件采用AES-256-GCM算法加密,密钥则由您输入的密码生成。若未提供密码,DisPatch会生成一个恢复密钥并仅显示一次。我在测试环境中创建了备份档案并执行了验证操作,结果一切正常。
需要注意的是:密码会被保存在系统中,以便定时备份功能无需人工干预即可运行。这意味着加密机制仅能保护您从电脑上导出的备份文件,而无法保护电脑本身的安全。任何能够访问数据文件夹及密钥环的人均可轻松获取解密所需的密钥。因此,务必将恢复密钥或密码妥善保存至其他安全之处,比如密码管理器或纸质记录中。否则,即便将备份文件复制到别处也无济于事。默认情况下,定时备份功能处于关闭状态(开启后每24小时自动生成一次备份,最多保留最近7次)。执行恢复操作时,系统会先验证备份文件的完整性,随后在下次启动时将当前数据备份起来并恢复所需内容。
新功能还包括:用于提交错误报告的“支持信息包”——它会移除密钥、令牌、PIN码及密码信息,但不会删除聊天记录;此外还支持单独导出或清除某个用户的个人资料数据。
代理与任务
代理即经过配置的工作单元:它包含后端服务、所使用的模型、操作指令、可调用的工具、预算限制以及审批策略。而任务则是您分配给代理的具体工作——可通过“任务”页面、任意聊天窗口中的“分配任务”按钮,或借助 @agent 标记来创建。每个任务都会显示实时时间线、由此生成的子代理、相关文件、预估成本及其当前状态。拥有者和管理员可查看所有任务;普通成员仅能看到分配给自己的代理以及自己创建的任务,前提是您已授予相应权限;受限权限的用户则完全无法访问这些信息。

系统提供两种后端服务:OpenClaw 运行在同一台机器上并拥有独立的工具策略;而 Claude Agent 则需借助 Anthropic API 密钥,或 Amazon Bedrock、Google Cloud、Microsoft Foundry 的凭证方可运行。目前尚不支持通过 Claude 订阅账号登录,且必须安装可选的扩展包(uv sync --extra agents-claude)。在 Claude Agent 中,任何具有破坏性的操作都会触发确认提示,且仅提供“仅允许一次”的选项——比如执行 shell 命令、写入文件或任何涉及发送、删除、创建数据的操作。系统会通过推送通知告知用户此类操作的发生,同时在聊天界面显示相关记录并出现相应徽章提示。预算设置则能按金额、对话轮次、运行时间或令牌数量来限制任务执行,还能为各个代理及每位用户设定每日使用上限。
这些限制均为实际生效的规则,具体说明见下文“已知限制”章节。简而言之:由于开发阶段缺乏相应的 API 密钥,目前仅在预设脚本流中测试过 Claude Agent。另外,经批准的 shell 命令并未经过沙盒化处理。默认情况下,普通 OpenClaw 聊天请求并不会经由任务模型路由(agents.unified_dispatch);因此只要您不打开“任务”页面,聊天功能仍会像以往一样正常运行。
安装 3.0 版本
如果想走最简单的路线,请使用 Docker。这篇关于 Docker 的文章配有截图进行详细说明;该项目的 README 文件中也提供了适用于 Windows、Linux 以及 Raspberry Pi 4/5 的安装说明。如果不使用 Docker,它就是一个普通的 uv 项目:
git clone https://github.com/LaserLloyd/DisPatch_Chat.git
cd DisPatch_Chat/backend
uv sync
uv run uvicorn app.main:app --port 8765
在同一台机器上打开 http://localhost:8765,向导运行时无需输入任何令牌。只有当您希望其他设备也能访问时,才需要添加 --host 0.0.0.0 参数;此时可以从终端中获取所需的设置令牌。根据 README 所述,Docker 镜像的大小约为 840 MB;若包含语音功能,则大小约为 1.7 GB。后端程序也能直接在 Windows 上运行,但完整的测试套件仅在 Linux 环境下可用,因此建议将 Windows 上的运行视为实验性质的操作。
从 2.x 升级到 3.0
启动 3.0 的方式与启动 2.x 时相同。在提供任何服务之前,系统会先迁移您的数据文件夹:
- 建议您先预览一下。 在
backend/目录下执行:uv run python -m app.migrate --dry-run --data-dir <your data folder>,该命令会列出每一步操作但不会实际写入任何内容。 - 启动 3.0。 若有需要迁移的内容,系统会先将
chats.db、config.yaml、security.yaml以及trusted-devices.yaml复制到<data>/backups/3.0.0-<time>/目录下,并仅保留最新的五个备份文件。 - 您的 PIN 码将变为“所有者”身份。 PIN 码保持不变且仍可照常使用;已信任的设备也依然被认可。此时“所有者”尚未设置密码。当您需要执行某些必须输入密码的操作时(比如创建管理员),DisPatch 会提示您设置密码。
- 您的机器人会变成“角色”。 每个机器人的权限是根据原有的标志位计算得出的:
safe与hide_unlocked同时存在时,该角色为“受限访问”;仅有safe时则为“所有人可访问”;其余情况则属于“普通成员”。API 密钥原先位于config.yaml中,现在已转移至安全存储区;DisPatch 会在删除原配置前先读取并保存这些密钥。 - 如需回滚: 停止服务器后执行
uv run python -m app.migrate --restore <data>/backups/3.0.0-<time>,随后重新启动 2.x 版本即可。
我在一个测试用文件夹上完整执行了上述流程。先以 DisPatch 2.2.0 在空文件夹中运行,设置了 PIN 码并发送了一条消息;之后在同一文件夹内启动了 3.0 版本。系统生成了备份文件并执行了迁移操作;原先的 PIN 码成功登录为“所有者”身份,随后系统提示设置密码。之后我又执行了回滚操作,结果 2.2.0 版本顺利在恢复后的文件夹中运行。
升级后可能出现以下三个问题:
- 反向代理必须保留
Host请求头。 现在 Cookie 的SameSite=Strict属性设为 “Strict”,任何会修改数据的请求都必须源自 DisPatch 自身的域名。Caddy 与 Tailscale Serve 默认都会保留Host值;若代理修改了该值,请求将会被拒绝。 - 只要
machine_loopback_trust为 true,同一台机器上的脚本仍无需 API 密钥即可运行。 升级后该选项默认开启。您只需为定时任务配置好 API 密钥,之后再将此选项关闭即可。 - 密钥转移后若想回退到 2.x 版本,则必须恢复备份。 因为 2.x 版本无法从安全存储区读取这些密钥。
3.0合并后已修复的问题
我在家里运行的是3.0版本。经过一天的实际使用,我发现了一些测试套件未能检测出的问题。这些问题都出现在 main 分支上:
- OpenClaw 2026.10流媒体功能恢复正常。该版本只会发送第一个数据块之后的新增文本内容。而之前的 DisPatch会每次都读取整条消息,导致回复先显示部分内容、随后卡住,最后才全部显示出来。
- 高负载情况下消息发送不再失败。当多个设备同时发送数据且后台进程也在向数据库写入时,原先会出现“数据库被锁定”的错误。在我的测试中,修复前24次发送中有7次失败;修复后48次发送则无一失败。
- 能够连续数天保持连接的平板电脑现在也能正确应用新设置。您设定的静音时段或禁用的配置文件,现在都能在设备下次操作时生效。
- 管理员获得了完整权限,普通成员也有了发言权;同时锁定操作也不再重置子账户的限制设置(以上问题均已解决)。
- 在家庭环境中使用恢复代码时,系统会要求设置新的PIN码,而不会直接删除唯一的“所有者”凭证。
已知限制
- 所有家庭成员共享同一对话环境。角色设定仅用于限制可使用的角色与动作,而非单独控制每个对话线程。
- 由于存在一个会重写
Host字段的 TLS 代理,任何更改请求都会被拒绝。请修复该代理。 - Claude 智能体目前仅在预先录制好的脚本化数据流上运行过,因此它的首次实际运行可能会遇到模拟数据中未涵盖的情况。目前尚未开发基于 Claude 的托管会话功能及通用命令行接口智能体;任务也无法按预定时间表重复执行。此外,经批准的 Shell 命令并未受到沙盒机制的限制。
- 目前尚未发布带有 3.0.0 标签的版本或对应的下载包。请从
main分支进行安装。 - 原生 Windows 支持仍处于实验阶段,建议在该平台上使用 Docker Desktop。
相关链接:DisPatch:一款用于本地 AI 智能体的自托管聊天应用 · 所有模块均可通过 Docker 运行 · StudioForge · 我在 OpenClaw 平台上搭建的本地 AI 智能体套件