跳到主要内容

数据、留存与删除

本页是 Anyy 数据存放位置、运行时高容量记录留存策略,以及哪些命令会创建、导出、 清理或删除本地数据的权威地图。其他页面应链接到这里,而不是重复描述存储布局。

Anyy 是本地优先的:权威状态存放在当前 profile 的一个 Anyy home 目录下。 模型和服务 provider 只会收到你配置的具体操作所需的 prompt、上下文、工具结果、媒体摘要 或凭据。

注意

如果你删除了本地数据,并不存在一个隐藏云账号可以帮你恢复。执行破坏性清理前,请先创建 备份,并确认目标 profile/home。

删除前先做这些

  1. 确认目标 home。

    anyy status --home ~/.anyy
  2. 除非你明确要丢弃数据,否则先创建备份。

    anyy backup create --home ~/.anyy
  3. 如果要删除 profile 或 uninstall 目标 home,先停止该 profile 的 resident gateway。

    anyy gateway stop --home ~/.anyy

/compress/compactgateway stop 和切换 profile 都不是隐私删除操作。它们改变的是上下文 形状、显示方式、runtime state 或 active selection,本身不会删除已存本地数据。

数据存放位置

home 目录的解析顺序是:显式 --home PATH、显式 --profile NAMEANYY_HOME、 当前激活的 profile,然后是默认安装 home。实际布局由 internal/workspace.Paths 表示。

常见路径:

路径用途
config.yamlProfile 配置:providers、models、gateway、channels、toolsets、MCP、media、retention 和 storage policy。
state.dbSQLite 状态数据库,保存 sessions、messages、roles、memory indexes、audit records、cron state、channel bindings、artifacts 和运行时元数据。
secrets/secret: 引用访问的 profile 本地 secret 文件。
memory/文件形式的记忆材料,例如 MEMORY.mdUSER.md、daily notes、topic notes 和 archive。
workspace/用户可见的工作区和导出工件。
logs/本地诊断可读取的运行时日志。
raw/每个 session 的原始 JSONL 记录,用于留存、摘要和恢复流程。
backups/备份归档和恢复前快照。
cache/运行时缓存和临时 staged media。
skills/已安装的 skill 包。
roles/SOUL.mdRole 人设文件。
cron/channels/运行时拥有的渠道和定时工作状态。
anyy.sock本地 gateway 的默认 Unix socket。
runtime.json运行时元数据,包括当前激活的备用 socket 路径。

状态数据库

state.db 是主要的持久化数据库。它保存 sessions、message parts、session summaries、 memory records 和 indexes、role metadata、approvals、ChangePlans、audit events、artifacts metadata、cron jobs、channel bindings、background jobs、MCP/runtime metadata,以及维护相关 账本。

数据库打开期间可能出现 state.db-walstate.db-shm 和 journal 等 SQLite sidecar 文件。 备份会跳过这些 sidecar,并对数据库本体使用 SQLite backup 路径。

Secrets

Secret 可以用四种形式引用:

引用含义
env:NAME从环境变量 NAME 读取值。
file:/absolute/path从任意文件路径读取值。
secret:relative/name从 profile 本地 secrets/relative/name 文件读取值。
literal:value直接使用字面量。适合本地测试或非 secret 值。

secret: 引用被限制在 profile 的 secrets/ 目录下。解析器会拒绝绝对路径和 .. 逃逸。 Secret catalog 只按名称列出 secret;只有 provider、channel、MCP server 或 tool 真正需要 时才会解析值。

Memories

文件形式的 memory 位于 memory/ 下。当前实现的文件目标包括:

文件或目录含义
memory/MEMORY.md核心长期记忆。
memory/USER.md用户 profile 记忆。
memory/daily/YYYY-MM-DD.md每日记忆笔记。
memory/topics/<slug>.md主题记忆笔记。
memory/archive/<slug>.md归档记忆笔记。

Memory 路径会被校验,确保相对路径不能逃出 memory 根目录。

Raw logs

Raw records 存在 raw/YYYY/MM/DD/<session>.jsonl 下。每条记录是一行完整 JSONL。raw log 实现会修复末尾撕裂行,并能按 segment/offset 读取记录,因此数据库可以保存紧凑引用,而 原始细节仍在磁盘上。

Raw storage 由 storageretention policy 管理。当前默认值会保留一段 hot raw window, 在未配置总上限时使用 30 MiB 有效 raw quota,并让高容量 raw 数据的留存时间短于持久化 session summary。

Artifacts

Artifacts 由 state.db 中的 metadata record 加上 profile home 下由 Anyy 持有的文件 组成。生成输出和 channel attachments 使用类似 private/blobs/<artifact_id>/<filename> 的 scoped private blob 路径。可信本地文件和 skill 辅助文件也可以注册为 artifact,而不一定把所有 bytes 复制进 private blob store。

Artifact 文件使用私有权限写入;artifact record 会携带 source、storage class、content type、 size、checksum、status 和 scope metadata。

Backups

anyy backup create 会写出一个带 manifest.jsontar.gz 归档。备份包含 Anyy home 下的常规文件,跳过 SQLite sidecar,并默认排除 secrets/

anyy backup create --home ~/.anyy --output ./anyy-backup.tar.gz
anyy backup create --home ~/.anyy --include-secrets --output ./full-backup.tar.gz
anyy backup list --home ~/.anyy

只有在归档会像密码库一样被保护时才使用 --include-secrets。备份文件会以私有权限创建。

留存与清理

留存是明确配置,不是云端策略。主要开关位于 storageretention

字段默认值 / 行为
storage.hot_window_hours默认 72;影响最近 raw 数据保持活跃的窗口。
storage.preview_bytes默认 1024;作为 message preview/search text 大小,除非 legacy retention 字段覆盖。
storage.blob_threshold_bytes默认 4096;更大的 payload 可移动到 blob storage。
storage.raw_ttl_days默认 30;raw storage 生命周期策略。
storage.raw_quota_bytes0 会解析为计算出的 quota;默认有效 quota 为 30 MiB。
storage.state_db_soft_target_bytes数据库维护默认目标 8 MiB。
retention.enabled默认启用。
retention.short_term.raw_days默认从 storage.hot_window_hours 推导,除非显式设置。
retention.state_db.journal_size_limit_bytes默认来自 storage.state_db.journal_size_limit_bytes

维护命令作用于这些本地状态:

anyy maintenance checkpoint-state --home ~/.anyy
anyy maintenance compact-state --home ~/.anyy --output ./state-compact.db
anyy maintenance prune-inactive-sessions --home ~/.anyy --raw-days 14 --execute
anyy maintenance cache-token-estimates --home ~/.anyy --execute
anyy maintenance migrate-lifecycle --home ~/.anyy --raw-days 14 --execute

支持预览的命令应先不带 --execute 运行,确认将要执行的工作。

导出数据

整个 profile 的导出使用备份归档。默认会导出 config、state、memory、skills、logs、 artifacts、channel state 和其他常规文件,同时排除 secrets:

anyy backup create --home ~/.anyy --output ./anyy-backup.tar.gz

如果需要包含 secrets 的敏感完整导出:

anyy backup create --home ~/.anyy --include-secrets --output ./anyy-full.tar.gz

对于单个交互式会话,使用 TUI 的 /save 命令。它会把当前 session transcript 导出到 profile workspace 下配置的 export directory。

删除数据

选择与你意图最匹配的最窄删除路径:

目标命令或操作
停用一个非默认 profileanyy profile delete NAME --force
删除一个包含 secrets 的非默认 profileanyy profile delete NAME --force --purge-secrets
移除代码但保留 profile 数据anyy uninstall --keep-data --yes
移除代码和目标 profile 数据anyy uninstall --full --yes
清理 inactive session raw dataanyy maintenance prune-inactive-sessions --execute

profile delete 会拒绝删除当前激活 profile、默认 profile,以及 gateway 仍在运行的 profile。 请先切换 profile,并停止该 profile 的 gateway。

注意

anyy uninstall --full --yes 是范围最广的本地删除命令。运行前确认有效 --home 路径, 尤其是在有多个 profile 或 service install 的主机上。

哪些数据会离开机器

Anyy 只通过你配置的 backend 和 integration 对外发送数据。常见出站路径包括:

  • 模型 provider 请求:prompt、选中的 session context、tool results、media summaries,以及 当前 turn 所需的 system/developer instructions。
  • Provider 或 channel 认证:API keys、OAuth credentials、bot tokens,或 config 引用的平台凭据。
  • Messaging channels:入站和出站消息文本、附件、typing indicators,以及对应平台的 delivery metadata。
  • MCP servers:你显式配置和暴露的 servers 会收到 prompts、resources、tool arguments 和 tool outputs。
  • Browser/computer-use integrations:这些可选能力所需的本地自动化状态。

Anyy 在每个 surface 中都仍然是 Anyy。Provider 名称和 channel 名称描述的是已配置 backend;它们不会变成助理的身份。