설명
체크포인팅의 작동 방식: 이벤트, 스토리지, 상속.
튜토리얼
5분 가이드: 실행, 중단, 재개.
사용 방법
일반적인 워크플로우를 위한 작업 중심 레시피.
레퍼런스
CheckpointConfig, 이벤트, 프로바이더, CLI.설명
체크포인트란
체크포인트는 실행 중인 작업을 재현하기 위해 CrewAI가 필요한 모든 것을 캡처합니다: 크루, 플로우 또는 에이전트의 전체 상태 — 구성, 에이전트의 메모리 및 지식 소스, 태스크 진행 상황, 중간 출력값, 내부 상태 및 속성 — 그리고 kickoff 입력, 해당 시점까지의 이벤트 기록, 그리고 체크포인트를 원본 실행에 연결하는 lineage ID를 포함합니다. 복원하면 해당 상태를 재구성하고 계속 진행합니다. 완료된 태스크는 건너뛰고, 메모리와 지식은 재수화되며, 다운스트림 작업은 원본 실행이 생성한 동일한 출력을 기반으로 실행됩니다. 포크하면 새 lineage 아래에서 동일한 복원을 수행하여 새 브랜치와 원본 실행이 서로 덮어쓰지 않고 나란히 체크포인트를 기록할 수 있습니다.체크포인트가 기록되는 시점
체크포인팅은 이벤트 기반입니다. 런타임은on_events로 선택한 이벤트를 구독하고, 이벤트가 발생할 때마다 체크포인트를 기록합니다. 기본값 task_completed는 완료된 태스크당 하나의 체크포인트를 생성합니다 — 세분화와 디스크 사용의 합리적인 균형입니다. llm_call_completed와 같은 고빈도 이벤트는 더 세밀한 복구를 위해 사용 가능하지만 훨씬 많은 파일을 기록합니다.
스토리지
CrewAI에는 두 가지 프로바이더가 포함되어 있습니다:JsonProvider는 체크포인트당 하나의 파일을 기록합니다. 사람이 읽기 쉽고 검사하기 편리합니다.SqliteProvider는 단일 SQLite 데이터베이스에 기록합니다. 고빈도 체크포인팅에 적합합니다.
max_checkpoints가 설정되면 두 프로바이더 모두 가장 오래된 체크포인트를 자동으로 제거합니다.
체크포인트 기록은 best-effort 방식입니다. 실패한 체크포인트는 로그에 기록되지만 실행을 중단시키지 않습니다.
상속 모델
Crew, Flow, Agent 모두 checkpoint 인수를 받습니다. 자식은 자체 값을 설정하거나 False를 전달하여 옵트아웃하지 않는 한 부모로부터 상속합니다. 크루에서 체크포인팅을 한 번 활성화하면 모든 에이전트가 참여하거나, 특정 에이전트만 선택적으로 제외할 수 있습니다.
튜토리얼: 실패한 크루 재개하기
이 가이드는 약 5분이 소요됩니다. 두 개의 태스크가 있는 크루를 실행하고 중간에 종료한 다음, 저장된 체크포인트에서 재개합니다.1
체크포인팅이 활성화된 크루를 생성합니다
2
실행하고 첫 번째 태스크 후에 중단합니다
Ctrl+C를 누릅니다. ./.checkpoints/ 디렉토리에서 <timestamp>_<uuid>.json 형식의 파일이 체크포인트입니다.3
체크포인트에서 재개합니다
사용 방법
기본값으로 체크포인팅 활성화
기본값으로 체크포인팅 활성화
task_completed 이벤트마다 ./.checkpoints/에 기록합니다.스토리지와 빈도 사용자 정의
스토리지와 빈도 사용자 정의
스토리지 프로바이더 선택
스토리지 프로바이더 선택
특정 에이전트 옵트아웃
특정 에이전트 옵트아웃
새 브랜치로 포크
새 브랜치로 포크
fork()는 새 lineage 아래에 체크포인트를 복원하여 새 실행이 원본과 충돌하지 않도록 합니다.branch 레이블은 선택 사항이며, 생략하면 자동 생성됩니다.Crew, Flow, Agent 체크포인트
Crew, Flow, Agent 체크포인트
- Crew
- Flow
- Agent
task_completed.수동으로 체크포인트 기록
수동으로 체크포인트 기록
모든 이벤트에 핸들러를 등록하고 핸들러가 세 개의 매개변수를 받을 때
state.checkpoint()를 호출합니다.state 인수가 자동으로 제공됩니다. 전체 이벤트 카탈로그는 Event Listeners 문서를 참조하세요.CLI에서 탐색, 재개, 포크
CLI에서 탐색, 재개, 포크


-
Inputs — 원래 kickoff의 입력으로, 미리 채워져 있으며 편집 가능합니다.

-
태스크 출력 — 완료된 태스크의 출력. 출력을 편집하고 Fork를 누르면 다운스트림 태스크가 무효화되어 수정된 컨텍스트로 다시 실행됩니다.


TUI 없이 체크포인트 검사
TUI 없이 체크포인트 검사
레퍼런스
CheckpointConfig
스토리지 대상.
JsonProvider는 디렉토리, SqliteProvider는 데이터베이스 파일 경로.체크포인트를 트리거하는 이벤트 타입.
CheckpointEventType은 Literal이므로 타입 체커가 자동 완성하고 지원되지 않는 값을 거부합니다. 전체 목록은 이벤트 타입 참조.스토리지 백엔드.
JsonProvider 또는 SqliteProvider.보관할 최대 체크포인트 수. 각 기록 후 가장 오래된 것이 제거됩니다.
from_checkpoint를 통해 전달될 때 복원할 체크포인트.checkpoint 필드 값
Crew, Flow, Agent에서 사용 가능.
부모에서 상속.
기본값으로 활성화.
명시적 옵트아웃. 상속을 중단합니다.
사용자 정의 설정.
이벤트 타입
on_events는 CheckpointEventType 값의 임의 조합을 받습니다. 기본값 ["task_completed"]는 완료된 태스크당 하나의 체크포인트를 기록하며, ["*"]는 모든 이벤트와 일치합니다.
스토리지 프로바이더
체크포인트당 하나의 파일,
location 내부에 <timestamp>_<uuid>.json 형식으로 명명.WAL 저널링이 있는
location의 단일 데이터베이스 파일.