会话契约:Agent 如何加载与写回案件状态
版本: 1.0(2026-08-14,随 schema v4.0) 适用对象:SuitAgent 主 Agent 与全部 subagent、
/progress命令执行者(工作流收尾的状态同步由主 Agent 直执行,不派 subagent——决策 #047)。 生效条件:自 case-progress M2(case_store CLI 就绪)起强制生效;M2 之前的过渡期遵守同样纪律,但写回暂以手工编辑 +validate自检替代。
1. 会话开始:加载
python3 <case_store 路径>/case_store.py show <案件短码> # 结构化状态(任务/期限/阶段/时间线/证据索引)- 叙事情节按
上下文.叙事文档指针读<案件ID>案件信息.md(当事人详情、事实、争议焦点论述、策略); - 深度任务再按需读
上下文.关键报告(02/10 目录代表产出); - 禁止直接 grep/yaml 解析 case.yaml 代替
show——show 会按"锁定 > 手填 > 推断"解析程序阶段并过滤已抵消期限。
2. 会话结束:写回
一切状态变更(任务完成、新任务、新期限、阶段推进、时间线事件、证据状态)一律经 case_store CLI:
| 变更 | 命令 |
|---|---|
| 新增任务 | add-task <案件> <标题> [--priority] [--deadline] |
| 推进任务 | set-status <案件> <task_id> <todo|in_progress|done> |
| 登记期限 | add-deadline <案件> <名称> --end <日期> [--start] [--days] |
| 更新阶段 | set-stage <案件> <阶段> [--lock] |
| 其余(时间线/证据/校验/迁移) | validate / migrate 等,见 SKILL.md |
禁止手改 case.yaml。手改是 5 套格式漂移的根因,validate 检测到漂移会拒绝后续写入。
叙事情节的更新(事实补充、争议焦点论述、策略调整)不进 yaml——直接编辑 <案件ID>案件信息.md,且仅在重大节点(立案/开庭/判决/调解等)触发,不每会话必写。
3. 变更分流表(什么写在哪)
| 内容 | 去处 | 方式 |
|---|---|---|
| 任务/期限/阶段/时间线/证据状态/费用数字 | case.yaml | 仅经 case_store CLI |
| 案情事实、当事人叙事、争议焦点论述、策略 | 案件信息.md | Agent 直接编辑(重大节点) |
| 分析报告、研究备忘、文书草稿 | 02–11 目录 | 各工作流产出,不动 |
| 工时明细 | 工时记录.md | 过程记录;聚合值由 CLI 更新到 yaml |
4. 人工覆盖保护(引擎强制,Agent 亦须知)
source: user的行:AI 永不覆写——发现需变更时在回复中提示律师,或新增自己的行;生命周期状态=已结案:仅律师手工标记,任何 Agent 不得设置或清除;程序阶段锁定=true:不得改写程序阶段(可以提示律师解锁);- AI 新增/修改的行一律
source: ai,由 CLI 自动落。
5. 工作流收尾(M3b 起)
Workflow 七个场景在 Reporter 之后追加"案件状态同步"步:主 Agent 直接执行 case-progress skill 的状态同步流程(加载状态 → 盘点本次产出文件与 git diff → 判断任务/阶段/期限语义变更 → 经 case_store CLI 写回;不派 subagent,决策 #047)。工作流中的专业 Agent 不必各自写状态,统一由收尾步回流。
6. 异常处理
| 情形 | 处置 |
|---|---|
| case.yaml 校验失败(漂移/格式错) | 先修复再续用;skill 排障流程见 case-progress SKILL.md |
show 找不到案件 |
检查目录名前缀(6 位数字);确实无档案时提示走 new-case 建档 |
| 写回与律师手改冲突 | 以 source 判定:user 行胜;AI 行可被律师覆盖 |
| 叙事文档缺失 | none 类案件 M4 前允许缺省;迁移时统一补建 |
变更记录
| 日期 | 版本 | 变更 |
|---|---|---|
| 2026-08-14 | 1.0 | 初版:加载/写回流程、变更分流表、人工覆盖保护、工作流收尾、异常处理 |