[错误] 为长时间运行的代理任务添加检查点/恢复机制 — 在进程崩溃时, run_stream() 状态丢失
作者: liuns-yang创建于 2026年9月17日更新于 2026年9月17日
class CheckpointManager: """Atomic checkpoint persistence for Agent run_stream() execution."""
def __init__(self, checkpoint_dir: str):
self.dir = Path(checkpoint_dir)
self.dir.mkdir(parents=True, exist_ok=True)
def save(self, session_id: str, messages: list, turn: int):
"""Serialize state to JSON using atomic write (temp + rename)."""
data = {
"version": 1,
"turn": turn,
"saved_at": datetime.now(timezone.utc).isoformat(),
"messages": messages,
}
path = self.dir / f"{session_id}.json"
tmp = path.with_suffix(".tmp")
tmp.write_text(json.dumps(data, ensure_ascii=False, default=str),
encoding="utf-8")
tmp.rename(path) # Atomic on POSIX and Windows
内容来源: zhayujie/CowAgent