# Graphiti Saga：把有顺序的项目事件连成一组，更新持续摘要并保留事件回查

已构造真实Graphiti SagaNode首尾episode字段并审计作者事件链；未执行Saga入库、追加或持续摘要模型。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 把项目事件写成有序链

S1到S4分别表示选A、确认预算、撤回改B、B待核验。previous字段保留明确先后，而不是只按文件名猜顺序。

## 2. 检测断链反例

audit.py要求每个previous都已出现，S-missing必须失败。当前作者状态是B待核验，不是模型生成的持续摘要。

## 3. 在Graphiti建立同一Saga

使用同一saga名称并给后续episode设置saga_previous_episode_uuid，保存真实episode UUID。不要把用户可读S1标签误当系统UUID。

## 4. 生成第一版持续摘要

在授权模型环境调用summarize_saga，并保存摘要版本及所覆盖事件。摘要是派生产物，不应替换原episode。

## 5. 追加撤回与待核事件

真实追加S3/S4后刷新摘要，检查A是否被写成历史撤回而非当前有效决策；B仍待成本核验。

## 6. 从摘要逐句回查事件

每一项状态都应能回到对应episode，模型遗漏撤回或把“待核”说成已确认都应列为错误。

## 7. 交付事件链和摘要版本

保留原事件、previous关系、真实摘要及人工差异。包内只验证有序链和缺前驱反例，尚未运行Saga摘要模型。

## 官方依据

- Graphiti 官方文档或源码：https://raw.githubusercontent.com/getzep/graphiti/main/mcp_server/src/graphiti_mcp_server.py
