使用指南
信任与边界
你的数据经过谁、谁能看到什么;ta 在设备上能做什么、碰不到什么;更新有多快、你的记忆怎么保住。
把一个会自己做事的 AI 放进手机之前,你该知道三件事:数据经过谁,ta 能碰到什么,这个项目变得有多快。这一页把它们一次讲清楚。
#谁能看到什么
| 谁 | 拿到什么 | 看不到什么 |
|---|---|---|
| 你的设备 | 一切:对话、设置、加密的模型 Key、保密库、ta 的灵魂目录 | — |
| 模型供应商(你选的那家) | 每次对话和每次醒来思考的内容 | 保密库里的密码、你的其他 Key |
| GitHub(你的私有灵魂仓库) | ta 的人格、记忆、日记、笔记、工具说明书 | 对话记录、设置、模型 Key |
| 同步服务(作者个人运营,默认使用) | 你的 GitHub 用户名与显示名;agent 的名字、id 和灵魂仓库名;每台设备的名字、类型、版本、公钥、最近在线时间 | 对话、记忆、人格、模型 Key、IP 地址 |
| 飞书(可选) | 经飞书收发的消息 | 其他一切 |
几台设备之间直接加密连接。连不上时经同步服务中转,中转的内容也是加密的,服务器解不开。
#GitHub 应用能做什么
第一次用 GitHub 登录时,GitHub 会请你安装 Quetzal 应用,并让你选它能管理哪些仓库。
- 它的权限:你选中的仓库的「管理」(Administration)写权限。按 GitHub 的规定,这项权限可以建仓库、加部署密钥、改仓库设置,也包括删除这些仓库。它读不到仓库里的文件。
- Quetzal 用它做两件事:新用户没有仓库时建一个私有仓库;每台新设备加一把只属于它的部署密钥。
- 平时谁也用不了它:同步服务不保存这个应用的私钥,也不保存 GitHub 的令牌。只有你在网页上批准一台设备时,GitHub 当场给一个短时令牌;同步服务用它建仓库或加这把公钥,做完立即作废。
- 随时收回:在 GitHub 的 Settings → Applications → Installed GitHub Apps 里卸载 Quetzal。已经加好的部署密钥照常工作,ta 的记忆同步不受影响。想让某台设备再也碰不到仓库,删掉它的部署密钥(仓库的 Settings → Deploy keys)。
#灵魂仓库的内容不做检查
ta 写进记忆的东西,Quetzal 原样提交,不做过滤。保护靠两件事:仓库是私有的;每台设备只有一把只能访问这一个仓库的钥匙。
所以不要让 ta 把密码写进笔记。要交给 ta 密码时,ta 会发起保密输入,你填的内容直接进本机保密库,不进对话、不进模型、不进仓库,见 保密传递。
#不想经过官方同步服务
- 只用一台设备:不登录也能用。跳过向导里的登录,ta 的人格与记忆先存在本机。以后想要私有仓库,在 控制 → 高级 → 同步 手动填一个你自己建的仓库地址,把显示的公钥加到仓库的部署密钥里。
- 几台设备,自己部署同步服务:仓库里的
sync/在一台有公网地址的 Linux 服务器上一行命令启动,再在 控制 → 高级 → 同步 填上地址,见 sync/README。 - 同步服务被攻破会怎样:它冒充不了你的设备。设备之间只认灵魂仓库里登记的公钥,同步服务能做的最坏的事是让设备连不上;记忆仍经灵魂仓库同步。
#ta 能碰到什么
ta 会运行命令,这是 ta 能自己做事的前提:查资料、整理文件、造工具都靠它。「执行命令」默认是允许。这意味着:
- ta 和运行基座是同一个系统用户。命令能做的事,ta 都能做:读写你主目录里的文件、联网、调用设备上的程序。
- 命令在隔离环境里运行。电脑上依次用 bubblewrap、Landlock、proot,安卓上用 proot。隔离环境里看不到密钥目录和控制台的登录信息;电脑上也看不到浏览器的登录状态,改不了自启动项与 ssh 配置。每种隔离第一次使用前都会实测一次,确认密钥真的看不见;一种都用不了时,ta 的命令一律不执行。
- 这层隔离挡不住所有情况。安卓上的 proot 是尽力而为的;电脑上如果本机开着 sshd 并信任 ta 能读到的私钥,或者 tmux、screen 开着,命令可以绕出去。
发生过的事:2026 年 10 月 5 日,一个 agent 同步记忆失败后,自己运行 git,把灵魂仓库的地址改成了 Quetzal 的公开源代码仓库,一条日记因此被推进了公开仓库。之后的版本加了这些防线:
- 运行基座推送前把仓库地址改回配置里的那一个,远端不是灵魂仓库就拒绝合并,出现陌生的历史就停止同步并提醒你;
- 灵魂目录的
.git在隔离环境里只读,ta 的命令改不了它; - 命令进入隔离环境,看不到密钥;没有隔离环境就不执行;
- 系统提示里写明红线:不在灵魂目录里运行 git、同步出错不自己修、不可逆或对外的操作先问人。
前三条由代码执行,第四条靠 ta 遵守。完整的记录在 Project.Honor9 的实验记录 里。
#我们建议
- 给 ta 一部专门的手机或电脑。 设备上不登录你的主力账号,不放你在意的文件。设备本身就是最可靠的边界。
- 想收紧,先改「执行命令」。 在 控制 → 权限 把它设为「询问」,ta 每次运行命令都要等你批准。其他类别挡不住命令,所以先改它。
- 看记录。 控制 → 高级 → 操作记录 里有 ta 调用过的每一个工具。不放心时按急停,所有工具调用立即拒绝。
#更新有多快
Quetzal 2026 年 10 月 3 日发布第一版,到 10 月 7 日已经发了 30 多个版本,其中 1.0.2、1.1.0、1.1.1 因为构建没通过没有发布。它由一个人维护,还在快速变化。
你的记忆这样保住:
- 记忆是普通的文字文件。 人格、记忆、日记、笔记都是 Markdown,放在你自己的 git 仓库里。哪天不用 Quetzal 了,它们照样在,照样能读;工具说明书用 Agent Skills 开放格式,Hermes、OpenClaw 也读得懂。
- 格式改过 12 次,旧仓库都不用转换。 每一版灵魂仓库规范都写明旧仓库能直接用。
- 每次改动都是一次提交。 哪次改错了,在 控制 → 高级 → 记忆历史 撤销。
- 更新由你确认。 App 发现新版本会提示你,你点了才下载;装之前核对发布签名、SHA-256 和 APK 的签名证书,任何一项对不上就不装。电脑上新版本 40 秒内不健康就自动退回上一版;手机上没有自动退回。
要注意的:
- 几台设备要升到同一个版本才能互连。 1.0.3 改了设备之间的连接协议,旧版本连不上新版本,时间线里会提示「两边都升级到同一版本才能连接」。连不上的这段时间,每台设备照常运行,记忆仍经灵魂仓库同步。
- 对话记录只在设备上。 对话、时间线存在设备的数据库里,不进灵魂仓库,卸载 App 会一起删掉。
- App 里的运行环境(Node.js、git、ssh、proot)按仓库里公开、锁定的配方从源码编译。现在用的这一份由维护者在自己的电脑上编译、在实机上验证、签名后上传;配方一变,发布流水线会在 GitHub 上重新从源码编译。