架构 › 存储架构
存储架构
所有持久状态的物理布局 —— 单 SQLite 库 + BlobStore + 事件表 + Memory(git),跨 BC 不共享物理表。
SQLite 单库agent-center.db · 每个 BC 自己的表
单库进程模型只有 server 进程开库;handlers 不直接开 sqlite。CLI / worker / web 都经 admin transport。
跨 BC 边界跨 BC 经事件 / 引用,不共享物理表——每个 BC 拥有自己的表集合。
↓ 状态变更与事件同事务双写
事件存储events 表 · append-onlyADR-0014
eventsappend-only、单调 seq;与状态变更同事务双写(EventSink.Emit,调用方持事务)。
↓ 文件 / blob 与 trace 归档
BlobStore (文件)ULID 寻址 · 引用计数 GC
blobULID 寻址 blob,FileReference 按 scope 放置。
FileTransferSession上传 / 下载会话(open→completed)。
Trace:AgentTraceEvent → 本地 trace.jsonl → execution 结束归档进 BlobStore(不入 events 表,ADR-0015)。
↓ 记忆不落库
Memory (记忆)不在 DB · git 仓 · GitOps
scoped CLAUDE.md不在 DB——git 仓里的 scoped CLAUDE.md 文件($AGENT_CENTER_MEMORY_DIR),GitOps init/commit。
center 机器资源
一台 center 机上持久状态的三处物理落点
▣Center 机 · 持久状态
⛁
SQLite 单库
agent-center.db
每 BC 自己的表 + events 表(同事务双写)。仅 server 进程开库。
▤
BlobStore 目录
blobs/ (ULID)
文件 blob + trace 归档。引用计数 GC 回收零活引用。
⎇
Memory git 仓
$AGENT_CENTER_MEMORY_DIR
scoped CLAUDE.md 文件,GitOps 提交。不入 DB。