多 agent 共用
同一主人名下的 agent 把会话都交进这份库,抽取统一在中心跑;大家都能查、都能接着用,换设备也接得上。
中心自己不需要有 agent;每台设备上跑一个本地节点。 备份按复制序号一条条追平,核对无误才允许接班;接班时换一代凭证, 旧中心再送东西过来会被直接拒绝。点下面的方块,看每一格实际落了什么。
细线是数据流;线上跑的小亮点,代表正在路上的一份数据。选中后,检视卡会列出它在磁盘上的实际结构。
中心与节点各自是一个目录。账本不出中心,密钥不进模型,备份不藏私钥明文—— 这三条决定了整个运维的样子。
| ├transcript.db | 原始对话,只增不改;每轮一行,永远不覆盖 |
| ├memory.db | 记忆本体,25 张正式核心表 + 7 张侧表(第 6 版):结论行、实体行、来源与审计 |
| ├core.db | agent 自己的加密小本:每 agent 一份,正文 / 修订 / 随手记三张加密表 |
| ├keys/ | core 每份小本的独立钥匙(32 字节),不通过 agent 工具暴露 |
| ├ledger.db | 账本、配额、进度书签——不出中心 |
| ├backups/ | 原始对话、记忆与清单三件,保留最近 7 组 |
| ├hub.key | 中心私钥,可用 hub key export 加密归档 |
| └secrets.enc | 密钥箱;开它的口令另存,不跟着备份走 |
| ├device.key | 节点私钥:配对和签名的根 |
| ├replica/ | 整份下载下来的只读副本和检索索引;这一半只读,不会被改写 |
| ├pending.db | 断线后本地攒下的东西;断满一天之后的本地整理批次写这里 |
| ├dr/ | 脱离中心(断满五天)之后每小时自备份;没确认的永远不删 |
| └node-state.json | 同步、离线、自己当中心——三种状态记在这里 |
读数没有正文、没有路径——运维面只回答「有没有卡住」,不搬运内容。
模型眼里只有 [e12] 这样的短句柄——句柄就是召回结果前面的编号,拿着它能换回那条记忆; 完整定位符留给程序。七个编号各管一件事:哪个是真身份,哪个只是给人看的序号,哪个只管机器之间怎么同步。
读法:sha256(a | b) 里的竖线是「拼起来再算哈希」;末尾带 ? 的字段可以没有。
一句话:模型只看得到句柄,真正认身份的是哈希;序号给人看,复制序号给机器同步用。
五个写与配对常驻;四个转录读只给已配对设备;下行快照在发布时出现。对外的东西越少,越能说清它答应了什么。
| 端点 | 动作 | 说明 |
|---|---|---|
| /v1/pair | post | 用一次性码完成设备配对 |
| /v1/challenge | post | 让设备签个名,证明它是它 |
| /v1/ingest | post | 带签名写入一批事件,并防重复提交 |
| /v1/rows | post | 把离线攒下的行送回来;中心答 200 才允许继续拉快照 |
| /v1/state | get | 同步进度和中心状态 |
| /v1/snapshot/memory | get | 整份下载记忆快照(发布时) |
| 转录读取 · 只给已配对设备 | ||
| /v1/transcript/sessions | get | 中心全部可见会话的清单 |
| /v1/transcript/session | get | 按会话回放轮正文,支持分页 |
| /v1/transcript/search | get | 在中心全文索引上按词查原话 |
| /v1/transcript/turn | get | 按 turn_uid 取目标轮与前后各 ≤10 轮 |
另外还有备份复制面 /v1/replicate* 和配对时读取的 /v1/identity;它们只在接班或配对时用,不在日常设备路径上。
上面是一段示意调用序列;真实读数以本机 --help 与 index status 为准。
同一台设备、同一个局域网、异地——三种连法用同一套东西,不需要为「远程」再部署一套服务。 默认跑在可信的私有网络里:异地把两台机器用隧道或组网拉进同一个私网,不把端口直接开到公网。
没有远端也能跑:导入、抽取、召回都在本机完成。
设备地址簿里记一条 LAN 地址,节点按顺序试,连上就走。
地址簿里再加一条;上次成功的排最前面,换网不用先等一条死路超时。
默认按「可信 agent 环境」设计:同一局域网里的已配对设备都算自己人。世界记忆共用,core 各归各的。
同一主人名下的 agent 把会话都交进这份库,抽取统一在中心跑;大家都能查、都能接着用,换设备也接得上。
每个 agent 的加密小本各用一把独立钥匙;core_* 只对这一个 agent 身份开放,别的 agent 调不到。
原文只留在 agent 侧和中心;共享记忆里存的是 turn_uid 指针,不是原文。recollect_turn 凭指针取回那一轮(前后各 ≤10 轮),recollect_session 按会话回放;两者走同一把可见性闸。
边缘先向中心的四条转录路由要数据;中心不可达才读本机,并在回执里标 source=local + degraded,不会假装中心零命中。
默认前提:同一局域网里的已配对设备视为可信——能配对进来,就能读中心会话,不再按主人切分。 这条局域网信任只作用于转录读;世界记忆和 core 仍按原来的闸。不要把未受信任的设备配进来,也不要把中心暴露到公网; 异地就用隧道或组网,把机器拉进同一个私网。