Controller Recovery Protocol
状态:Active / Controller 可恢复运行协议 最后更新:2026-05-13 用途:定义 Program Controller、Labs-FinTecAI Admin、个人域 Agent 和团队域 Agent 在会话中断、上下文爆炸或新会话接手时如何恢复职责、任务状态和协作边界
1. 背景
FinTec AI Ecosystem 的推进正在同时依赖多个长期 Controller:
Labs-FinTecAI Admin:治理仓库、知识库、入口、发布和生态层推进;FinClaw Controller;Data Horizon Controller;AI Trading Matrix Controller;- 后续
Reinforcement Learning Engine、Financial Expert Foundation Model; open-cowork Controller。
这些 Controller 经常在长会话中承担连续任务。若上下文压缩失败或会话无法恢复,新会话会丢失角色设定、当前任务、启用协议、工作范围和未完成状态。
本协议的目标是把 Controller 的可恢复状态移出聊天上下文,沉淀到仓库内的轻量外部状态面。
2. 三层状态模型
每个 Controller 采用三层状态:
| 层级 | 路径 | 用途 | 修改权限 |
|---|---|---|---|
| Canonical State | controllers/<controller-id>/state.md | 已接受、已吸收、可用于恢复的主状态 | 对应 Controller 或 Labs-FinTecAI Admin |
| Lane State | controllers/<controller-id>/lanes/<lane-id>.md | 某个人、个人域 Agent、团队域 Agent 或 open-cowork 批次的工作状态 | lane owner |
| Checkpoint | controllers/<controller-id>/checkpoints/<date>-<lane>-<topic>.md | append-only 的完成证据、回写建议或恢复锚点 | lane owner 创建;Controller/Admin 吸收 |
state.md 是恢复入口,不是正式事实源。正式事实仍在 baseline/、registry/、projects/、references/、evaluation/、packets/ 和 governance/ 中。
3. 冲突隔离规则
- 普通 Agent 不直接修改其他 lane;
- 普通 Agent 不直接修改 canonical
state.md,除非本轮任务明确授权; - 每条 lane 只记录自身任务、读取范围、改动文件、验证证据和回写建议;
- 多个 lane 对同一事实或入口提出不同建议时,不在 lane 内互相覆盖,由 Controller/Admin 通过 checkpoint 合并;
- 公共入口、manifest、sidebar、llms 和发布闭环仍由 Labs-FinTecAI Admin 收束;
- 文件范围仍受
governance/document-change-scope-policy.md和DOC_CHANGE_SCOPE校验约束。
4. 新会话恢复流程
任何新会话接手 Controller 职责时,按以下顺序读取:
controllers/README.mdcontrollers/registry.mdcontrollers/<controller-id>/state.md- 当前 lane 文件,如果本会话属于某个个人域、团队成员或 open-cowork 批次;
- 最新未吸收 checkpoint;
state.md中列出的最小 authoritative docs。
不要从全仓库扫描恢复,不要读取全部历史 packet。
5. Controller State 最小结构
每个 state.md 至少包含:
- Controller 身份;
- 负责范围;
- 不负责范围;
- authoritative docs;
- 当前状态;
- 当前任务队列;
- 最近 checkpoint;
- 默认 lane 命名规则;
- 默认验证命令;
- 恢复指令;
- 是否存在未吸收 checkpoint。
6. Lane State 最小结构
lane 文件建议格式:
# Lane: <lane-id>
状态:
owner:
所属 Controller:
创建日期:
最后更新:
## 1. 本 lane 目标
## 2. 允许读取 / 修改范围
## 3. 当前任务状态
## 4. 已读取材料
## 5. 已修改文件
## 6. 验证证据
## 7. 阻塞 / 风险
## 8. 建议回写
## 9. 下一步
7. Checkpoint 最小结构
checkpoint 文件建议格式:
# Checkpoint: <topic>
日期:
Controller:
lane:
状态:Proposed / Absorbed / Superseded
## 1. 完成事项
## 2. 改动文件
## 3. 验证证据
## 4. 需要吸收到 state.md 的内容
## 5. 需要进入 sync / escalation / public entrypoint 的内容
## 6. 下一步
8. 吸收规则
Controller/Admin 吸收 checkpoint 时:
- 判断 checkpoint 是否只是 lane 过程记录,还是应更新 canonical state;
- 若更新 state,只写当前恢复所需的最小状态;
- 若影响正式事实源,转入项目文档、sync、escalation 或 public entrypoint 修正;
- 在 checkpoint 中标记
Absorbed或Superseded; - 不把长过程、完整聊天记录或工程细节搬进
state.md。
9. 完成定义
一个 Controller 恢复面可用,必须满足:
state.md可让新会话恢复角色和下一步;- lane 不互相覆盖;
- checkpoint 可追踪完成批次;
- Controller 状态不替代正式事实源;
- 新会话不需要读取完整历史会话;
- 恢复指令短到可以直接复制给新 Agent。