11. 目录结构与磁盘文件

omicos 把数据分两处存:全局(与用户绑定,跨工作区共享)和工作区(与你当前目录绑定)。理解这套布局有助于排查问题、备份数据、迁移环境。

11.1 全局目录 ~/.omicos/

与账户 / 机器绑定,所有工作区共享。可用 OMICOS_LOCAL_HOME 改写其位置。

~/.omicos/
├── cloud_login.json        # 登录凭证的全局副本/回退(`omicos login` 默认写这里;守护进程优先读工作区本地版),权限 0600
├── auth.json               # API key 回退存储(见 Provider 章节)
├── plan_token.jwt          # 订阅分层 JWT,权限 0600,后台自动续期
├── env/                    # omicos 管理的共享 Python kernel 环境(.venv)
├── memory/                 # 跨对话长期记忆(.md 文件)
├── cloud-agents/           # 从 omicos-admin 同步的 agent 缓存
├── cloud-skills/           # skill 缓存
├── cloud-models/           # 模型 catalog 缓存(models.json)
├── cloud-memory/           # memory 同步缓存
├── oauth/                  # 第三方 OAuth 凭证(codex.json / gemini_cli.json)
└── usage/                  # 无工作区时的用量审计回退

11.2 工作区目录 <workspace>/.omicos/

与你启动 omicos 的目录绑定,存放该工作区的会话、轨迹、锁。serve 默认是 .omicos,cli 默认是 .omicos/cli(由 --data-dir 控制)。

下面是一个真实的、已登录工作区的 .omicos/ 内容(serve 默认 .omicos,cli 默认 .omicos/cli,由 --data-dir 控制):

<workspace>/.omicos/
├── workspace_id            # 持久的 32 位十六进制 id,决定云端 process_id(跨目录移动稳定)
├── workspace_id.<user>.bak # 切换账户 / 旋转 workspace_id 时留下的备份
├── serve.pid               # 守护进程锁(两行:第 1 行 pid,第 2 行 port)
├── cloud_login.json        # 工作区本地登录凭证(守护进程优先读这里,权限 0600)
├── cloud_login.json.*.bak  # 凭证 realign / 账户切换时留下的旧备份
├── account.json            # 本地会话记录(authenticated / token / plan / email)
├── settings/               # llm-config.json、llm-providers-state.json
├── conversations/          # 会话内容(每会话含 history.jsonl、meta.json、outputs/、uploads/)
├── conversations.json      # 会话索引
├── conversation_sync.state.json   # 会话同步高水位(云端 stale filter 用)
├── trajectories/           # 每轮分析的审计日志
│   ├── <owner_id>/         # 按登录账户(owner UUID)隔离(2026-05 起),多账户不串
│   │   └── turn_<hex>.jsonl # append-only JSONL,自动 push 到云
│   ├── anonymous/          # 登录前写下的会话落这里
│   └── .sync_state.json    # 轨迹上传同步状态(按 device_id 记录)
├── usage/                  # 按 LLM 调用计的用量审计(<session>.jsonl)
├── tool_outputs/           # 工具结果溢出存储(可达数百条)
├── timeline/               # 时间线(可能为空)
├── sidecar-restart.log     # sidecar 重启日志
├── agents/                 # lab+ 订阅的本地 agent 覆盖(仅在你创建后才存在)
└── skills/                 # lab+ 订阅的本地 skill 覆盖(仅在你创建后才存在)

注意:agents/skills/updater/ 等目录只在被用到时才出现,干净的工作区里不一定有。

11.3 serve 与 cli 的数据目录隔离

模式 默认 data_dir
omicos serve <workspace>/.omicos
omicos cli <workspace>/.omicos/cli

二者的会话、轨迹完全隔离、互不可见。这就是为什么在网页端进程选择器里,带 (cli) 后缀的进程和不带后缀的是两个独立命名空间。

11.4 几个关键文件的作用

文件 作用
workspace_id 持久的 32 位十六进制 id(无连字符,不是带横线的标准 UUID)。它决定云端 process_idlocal-<workspace_id>),即便你把工作区目录改名、搬位置,进程身份也稳定。
serve.pid 工作区锁(两行:pid + port),由 RAII 守护——进程正常退出会自动清除;被 SIGKILL 强杀留下的陈旧锁,会在下次启动时被自动回收。
cloud_login.json 工作区本地登录凭证,守护进程优先读这里(全局 ~/.omicos/cloud_login.json 作回退)。删了它等于该工作区登出。权限 0600,切勿外泄
trajectories/<owner_id>/ 轨迹自 2026-05 起按账户 owner UUID 分目录,保证同一个工作区文件夹里多个账户的记录互不串台;文件名形如 turn_<hex>.jsonl

11.5 用变量改写位置

变量 改写什么
OMICOS_LOCAL_HOME 全局目录(凭证、workspace_id 等)的根位置。
OMICOS_WORKSPACE_ROOT 工作区根(会话 / 轨迹存储位置)。
--data-dir 工作区数据目录(默认 workspace_root/.omicos)。

11.6 备份与迁移建议

  • 要备份的~/.omicos/memory/(长期记忆)、各工作区的 conversations/trajectories/
  • 不必备份的cloud-*/ 缓存(会从云端重新同步)、env/(可用 omicos env setup 重建)、updater/tool_outputs/
  • 绝不外泄的cloud_login.jsonauth.jsonplan_token.jwtoauth/

results matching ""

    No results matching ""