Automatically save execution state so crews, flows, and agents can resume after failures.
Checkpointing saves a snapshot of execution state during a run so a crew, flow, or agent can resume after a failure or be forked into an alternate branch.
Explanation
How checkpointing works: events, storage, and inheritance.
Tutorial
A 5-minute walkthrough: run, interrupt, resume.
How-to guides
Task-focused recipes for common workflows.
Reference
CheckpointConfig, events, providers, and CLI.
Explanation
What a checkpoint is
A checkpoint captures everything CrewAI needs to recreate a run mid-flight: the full state of the crew, flow, or agent — configuration, agent memory and knowledge sources, task progress, intermediate outputs, internal state and attributes — alongside the kickoff inputs, the event history up to that point, and a lineage ID that ties the checkpoint to the run it came from.Restoring rebuilds that state and continues. Completed tasks are skipped, memory and knowledge are rehydrated, and downstream work runs against the same outputs the original run produced. Forking does the same restore under a new lineage, so the new branch and the original run can write checkpoints side by side without overwriting each other.
When checkpoints are written
Checkpointing is event-driven. The runtime subscribes to events you select via on_events and writes a checkpoint each time one fires. The default task_completed produces one checkpoint per finished task — a sensible tradeoff between granularity and disk use. Higher-frequency events like llm_call_completed are available for fine-grained recovery but write far more files.
Storage
Two providers ship with CrewAI:
JsonProvider writes one file per checkpoint. Human-readable and easy to inspect.
SqliteProvider writes to a single SQLite database. Better for high-frequency checkpointing.
Both prune oldest checkpoints when max_checkpoints is set.
Auto-checkpoint writes (event-driven) are best-effort: a failed write is logged and the run continues. Manual state.checkpoint() and state.acheckpoint() calls re-raise on failure.
Inheritance model
Crew, Flow, and Agent all accept a checkpoint argument. Children inherit from their parent unless they set their own value or pass False to opt out. Enable checkpointing once on the crew and every agent participates, or selectively exclude one agent.
Tutorial: Resume a failing crew
This walkthrough takes ~5 minutes. You will run a two-task crew, kill it midway, and resume from the saved checkpoint.
Checkpoint tree — branches and forks nest under their parent.
The left panel groups checkpoints by branch; forks nest under their parent. Selecting a checkpoint opens the detail panel with metadata, entity state, and task progress. Resume continues the run; Fork starts a new branch.
Overview tab — metadata, entity state, and run summary.
The detail panel exposes two editable areas:
Inputs — original kickoff inputs, pre-filled and editable.
Task outputs — outputs of completed tasks. Editing an output and hitting Fork invalidates downstream tasks so they re-run against the modified context.
Fork view — confirm a new branch from the selected checkpoint.
Useful for “what if” exploration: fork, tweak, observe.
Inspect checkpoints without the TUI
crewai checkpoint list ./my_checkpointscrewai checkpoint info ./my_checkpoints/<file>.jsoncrewai checkpoint info ./.checkpoints.db
Reference
CheckpointConfig
str
default:"\"./.checkpoints\""
Storage destination. A directory for JsonProvider, a database file path for SqliteProvider.
list[CheckpointEventType | Literal["*"]]
default:"[\"task_completed\"]"
Event types that trigger a checkpoint. CheckpointEventType is a Literal — your type checker will autocomplete and reject unsupported values. See event types for the full list.
BaseProvider
default:"JsonProvider()"
Storage backend. Either JsonProvider or SqliteProvider.
int | None
default:"None"
Maximum checkpoints to retain. Oldest are pruned after each write.
Path | str | None
default:"None"
Checkpoint to restore from when passed via from_checkpoint.
checkpoint field values
Accepted by Crew, Flow, and Agent.
default
Inherit from parent.
bool
Enable with defaults.
bool
Explicit opt-out. Stops inheritance.
CheckpointConfig
Custom configuration.
Event types
on_events accepts any combination of CheckpointEventType values. The default ["task_completed"] writes one checkpoint per finished task; ["*"] matches every event.
["*"] and high-frequency events like llm_call_completed write many checkpoints and can degrade performance. Pair them with max_checkpoints.
System signals — SIGTERM, SIGINT, SIGHUP, SIGTSTP, SIGCONT
Wildcard — "*" matches every event.
Storage providers
provider
One file per checkpoint, named <timestamp>_<uuid>.json inside location.
provider
Single database file at location with WAL journaling.
CLI
Command
Purpose
crewai checkpoint
Launch the TUI; auto-detect storage.
crewai checkpoint --location <path>
Launch the TUI against a specific location.
crewai checkpoint list <path>
List checkpoints.
crewai checkpoint info <path>
Inspect a checkpoint file or the latest entry in a SQLite database.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"CrewAI","colors":{"primary":"#EB6658","light":"#F3A78B","dark":"#C94C3C"},"logo":{"light":"https://mintcdn.com/crewai/5SZbe87tsCWZY09V/images/crew_only_logo.png?fit=max\u0026auto=format\u0026n=5SZbe87tsCWZY09V\u0026q=85\u0026s=439ca5dc63a1768cad7196005ff5636f","dark":"https://mintcdn.com/crewai/5SZbe87tsCWZY09V/images/crew_only_logo.png?fit=max\u0026auto=format\u0026n=5SZbe87tsCWZY09V\u0026q=85\u0026s=439ca5dc63a1768cad7196005ff5636f"},"favicon":"https://mintcdn.com/crewai/sz5CkjPWxVjBAZE7/images/favicon.svg?fit=max\u0026auto=format\u0026n=sz5CkjPWxVjBAZE7\u0026q=85\u0026s=16c03dad58d05417a2e442ff942d2ce7","api":{"playground":{}},"appearance":{"default":"system","strict":false},"background":{"decoration":"grid"},"navbar":{"links":[{"icon":"arrow-up-right-from-square","href":"https://app.crewai.com","label":"Start Cloud Trial"}],"primary":{"type":"github","href":"https://github.com/crewAIInc/crewAI"}},"footer":{"socials":{"website":"https://crewai.com","x":"https://x.com/crewAIInc","github":"https://github.com/crewAIInc/crewAI","linkedin":"https://www.linkedin.com/company/crewai-inc","youtube":"https://youtube.com/@crewAIInc","reddit":"https://www.reddit.com/r/crewAIInc"}},"seo":{"metatags":{"og:type":"website","og:site_name":"CrewAI Documentation","og:image":"https://docs.crewai.com/images/crew_only_logo.png","twitter:card":"summary_large_image","twitter:site":"@crewAIInc","keywords":"AI agents, multi-agent systems, CrewAI, artificial intelligence, automation, Python framework, agent collaboration, AI workflows"}},"fonts":{"family":"Inter"},"errors":{"404":{"redirect":true}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode",{"title":"Request a feature","description":"Join the discussion on GitHub to request a new feature","icon":"plus","href":"https://github.com/crewAIInc/crewAI/issues/new/choose"}],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":""},{"language":"pt-BR","href":"edge/pt-BR"},{"language":"ko","href":"edge/ko"},{"language":"ar","href":"edge/ar"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"crewai","hasAudioNarration":false,"actualSubdomain":"crewai","customDomains":["docs.crewai.com"],"gitSource":{"type":"github","owner":"crewaiinc","repo":"crewai","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af60f19885b18cc5269d1f7","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"en","tag":"Documentation","count":10526},{"language":"ko","tag":"기술 문서","count":9583},{"language":"ar","tag":"التقنية التوثيق","count":8988},{"language":"pt-BR","tag":"Documentação","count":8889},{"language":"en","tag":"Tools","count":4785},{"language":"ko","tag":"도구 (Tools)","count":4401},{"language":"ar","tag":"الأدوات","count":4174},{"language":"pt-BR","tag":"Ferramentas","count":3763},{"language":"en","tag":"Learn","count":1675},{"language":"ko","tag":"학습","count":1485},{"language":"pt-BR","tag":"Aprenda","count":1485},{"language":"ar","tag":"التعلّم","count":1389},{"language":"en","tag":"Core Concepts","count":1261},{"language":"ko","tag":"핵심 개념","count":1220},{"language":"pt-BR","tag":"Conceitos-Chave","count":1220},{"language":"ar","tag":"المفاهيم الأساسية","count":1148},{"language":"en","tag":"Guides","count":1100},{"language":"en","tag":"Observability","count":1062},{"language":"en","tag":"Search \u0026 Research","count":1038},{"language":"ko","tag":"Observability","count":1003},{"language":"pt-BR","tag":"Observabilidade","count":1003},{"language":"ko","tag":"검색 및 연구","count":991},{"language":"ar","tag":"Observability","count":935},{"language":"ar","tag":"البحث والاستكشاف","count":927},{"language":"en","tag":"Web Scraping \u0026 Browsing","count":873},{"language":"en","tag":"File \u0026 Document","count":828},{"language":"ko","tag":"파일 \u0026 문서","count":828},{"language":"ko","tag":"웹 스크래핑 \u0026 브라우징","count":826},{"language":"ar","tag":"الملفات والمستندات","count":772},{"language":"ar","tag":"استخراج بيانات الويب","count":770},{"language":"pt-BR","tag":"Web Scraping \u0026 Navegação","count":767},{"language":"ko","tag":"가이드","count":727},{"language":"pt-BR","tag":"Guias","count":727},{"language":"pt-BR","tag":"Arquivo \u0026 Documento","count":710},{"language":"ar","tag":"الأدلّة","count":694},{"language":"pt-BR","tag":"Pesquisa","count":590},{"language":"ko","tag":"시작 안내","count":570},{"language":"pt-BR","tag":"Começando","count":570},{"language":"en","tag":"AI \u0026 Machine Learning","count":566},{"language":"ar","tag":"البدء","count":538}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v1.15.29/en/concepts/checkpointing","slug":"/v1.15.29/en/concepts/checkpointing","pageMetadata":{"title":"Checkpointing","description":"Automatically save execution state so crews, flows, and agents can resume after failures.","icon":"floppy-disk","mode":"wide","href":"/v1.15.29/en/concepts/checkpointing"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Automatically save execution state so crews, flows, and agents can resume after failures.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,CodeGroup,Expandable,Frame,Heading,Note,OptimizedImage,ParamField,Step,Steps,Tab,Table,Tabs,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Checkpointing saves a snapshot of execution state during a run so a crew, flow, or agent can resume after a failure or be forked into an alternate branch.`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Explanation`,icon:`lightbulb`,href:`#explanation`,children:_jsx(_components.p,{children:`How checkpointing works: events, storage, and inheritance.`})}),_jsx(Card,{title:`Tutorial`,icon:`graduation-cap`,href:`#tutorial-resume-a-failing-crew`,children:_jsx(_components.p,{children:`A 5-minute walkthrough: run, interrupt, resume.`})}),_jsx(Card,{title:`How-to guides`,icon:`screwdriver-wrench`,href:`#how-to-guides`,children:_jsx(_components.p,{children:`Task-focused recipes for common workflows.`})}),_jsx(Card,{title:`Reference`,icon:`book`,href:`#reference`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`CheckpointConfig`}),`, events, providers, and CLI.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`explanation`,children:`Explanation`}),`\n`,_jsx(Heading,{level:`3`,id:`what-a-checkpoint-is`,children:`What a checkpoint is`}),`\n`,_jsx(_components.p,{children:`A checkpoint captures everything CrewAI needs to recreate a run mid-flight: the full state of the crew, flow, or agent — configuration, agent memory and knowledge sources, task progress, intermediate outputs, internal state and attributes — alongside the kickoff inputs, the event history up to that point, and a lineage ID that ties the checkpoint to the run it came from.`}),`\n`,_jsx(_components.p,{children:`Restoring rebuilds that state and continues. Completed tasks are skipped, memory and knowledge are rehydrated, and downstream work runs against the same outputs the original run produced. Forking does the same restore under a new lineage, so the new branch and the original run can write checkpoints side by side without overwriting each other.`}),`\n`,_jsx(Heading,{level:`3`,id:`when-checkpoints-are-written`,children:`When checkpoints are written`}),`\n`,_jsxs(_components.p,{children:[`Checkpointing is event-driven. The runtime subscribes to events you select via `,_jsx(_components.code,{children:`on_events`}),` and writes a checkpoint each time one fires. The default `,_jsx(_components.code,{children:`task_completed`}),` produces one checkpoint per finished task — a sensible tradeoff between granularity and disk use. Higher-frequency events like `,_jsx(_components.code,{children:`llm_call_completed`}),` are available for fine-grained recovery but write far more files.`]}),`\n`,_jsx(Heading,{level:`3`,id:`storage`,children:`Storage`}),`\n`,_jsx(_components.p,{children:`Two providers ship with CrewAI:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`JsonProvider`}),` writes one file per checkpoint. Human-readable and easy to inspect.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`SqliteProvider`}),` writes to a single SQLite database. Better for high-frequency checkpointing.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Both prune oldest checkpoints when `,_jsx(_components.code,{children:`max_checkpoints`}),` is set.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Auto-checkpoint writes (event-driven) are best-effort: a failed write is logged and the run continues. Manual `,_jsx(_components.code,{children:`state.checkpoint()`}),` and `,_jsx(_components.code,{children:`state.acheckpoint()`}),` calls re-raise on failure.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`inheritance-model`,children:`Inheritance model`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Crew`}),`, `,_jsx(_components.code,{children:`Flow`}),`, and `,_jsx(_components.code,{children:`Agent`}),` all accept a `,_jsx(_components.code,{children:`checkpoint`}),` argument. Children inherit from their parent unless they set their own value or pass `,_jsx(_components.code,{children:`False`}),` to opt out. Enable checkpointing once on the crew and every agent participates, or selectively exclude one agent.`]}),`\n`,_jsx(Heading,{level:`2`,id:`tutorial-resume-a-failing-crew`,children:`Tutorial: Resume a failing crew`}),`\n`,_jsx(_components.p,{children:`This walkthrough takes ~5 minutes. You will run a two-task crew, kill it midway, and resume from the saved checkpoint.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Create the crew with checkpointing enabled`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Agent, Crew, Task`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`researcher `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Agent(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`role`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Researcher\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`goal`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Research\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`backstory`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Expert\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`writer `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Agent(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`role`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Writer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`goal`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Write\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`backstory`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Expert\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`crew `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` agents`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[researcher, writer],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` tasks`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Task(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`description`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Research AI trends\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`agent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`researcher, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`expected_output`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bullets\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Task(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`description`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Write a summary\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`agent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`writer, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`expected_output`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"paragraph\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})})}),_jsxs(Step,{title:`Run it and interrupt after the first task`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`result `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crew.kickoff()`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Press `,_jsx(_components.code,{children:`Ctrl+C`}),` after the first task finishes. Look in `,_jsx(_components.code,{children:`./.checkpoints/`}),` — a file named `,_jsx(_components.code,{children:`\u003ctimestamp>_\u003cuuid>.json`}),` is the checkpoint.`]})]}),_jsxs(Step,{title:`Resume from the checkpoint`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` CheckpointConfig`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`result `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crew.kickoff(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` from_checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`CheckpointConfig(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` restore_from`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./.checkpoints/\u003ctimestamp>_\u003cuuid>.json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(_components.p,{children:`The research task is skipped, the writer runs against the saved research output, and the crew finishes.`})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-guides`,children:`How-to guides`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Enable checkpointing with defaults`,icon:`play`,id:`enable-checkpointing-with-defaults`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`crew `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`agents`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`tasks`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Writes to `,_jsx(_components.code,{children:`./.checkpoints/`}),` on every `,_jsx(_components.code,{children:`task_completed`}),`.`]})]}),_jsx(Accordion,{title:`Customize storage and frequency`,icon:`sliders`,id:`customize-storage-and-frequency`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew, CheckpointConfig`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`crew `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` agents`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` tasks`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`CheckpointConfig(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` location`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./my_checkpoints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` on_events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"task_completed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"crew_kickoff_completed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` max_checkpoints`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})})}),_jsxs(Accordion,{title:`Choose a storage provider`,icon:`database`,id:`choose-a-storage-provider`,children:[_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`JsonProvider`,numberOfLines:`12`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`12`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew, CheckpointConfig`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai.state `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` JsonProvider`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`crew `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` agents`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` tasks`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`CheckpointConfig(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` location`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./my_checkpoints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` provider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`JsonProvider(),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` max_checkpoints`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`SqliteProvider`,numberOfLines:`12`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`12`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew, CheckpointConfig`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai.state `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` SqliteProvider`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`crew `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` agents`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` tasks`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`CheckpointConfig(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` location`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./.checkpoints.db\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` provider`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`SqliteProvider(),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` max_checkpoints`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`50`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})})]}),_jsx(Tip,{children:_jsx(_components.p,{children:`SQLite enables WAL journal mode for concurrent reads. Prefer it for high-frequency checkpointing.`})})]}),_jsx(Accordion,{title:`Opt one agent out`,icon:`user-slash`,id:`opt-one-agent-out`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`crew `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` agents`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Agent(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`role`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Researcher\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Agent(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`role`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Writer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` tasks`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`...`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})})}),_jsxs(Accordion,{title:`Fork into a new branch`,icon:`code-branch`,id:`fork-into-a-new-branch`,children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`fork()`}),` restores a checkpoint under a fresh lineage so the new run does not collide with the original.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`config `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` CheckpointConfig(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`restore_from`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./my_checkpoints/\u003cfile>.json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`crew `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew.fork(config, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`branch`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"experiment-a\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`result `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crew.kickoff(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`inputs`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"strategy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"aggressive\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`})`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`branch`}),` label is optional; one is generated if omitted.`]})]}),_jsx(Accordion,{title:`Checkpoint a Crew, Flow, or Agent`,icon:`cubes`,id:`checkpoint-a-crew-flow-or-agent`,children:_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Crew`,id:`crew`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`crew `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Crew(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` agents`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[researcher, writer],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` tasks`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[research_task, write_task, review_task],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`CheckpointConfig(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`location`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./crew_cp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Default trigger: `,_jsx(_components.code,{children:`task_completed`}),`.`]})]}),_jsx(Tab,{title:`Flow`,id:`flow`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai.flow.flow `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Flow, start, listen`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` CheckpointConfig`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` MyFlow`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Flow`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` @start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` step_one`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"data\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` @listen`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(step_one)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` step_two`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` process(data)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`flow `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` MyFlow(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`CheckpointConfig(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` location`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./flow_cp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` on_events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"method_execution_finished\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`result `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` flow.kickoff()`})]}),`\n`]})})})}),_jsx(Tab,{title:`Agent`,id:`agent`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`agent `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Agent(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` role`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Researcher\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` goal`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Research topics\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` backstory`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Expert researcher\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`CheckpointConfig(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` location`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./agent_cp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` on_events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"lite_agent_execution_completed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`result `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` agent.kickoff(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`messages`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Research AI trends\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}])`})]}),`\n`]})})})})]})}),_jsxs(Accordion,{title:`Write a checkpoint manually`,icon:`code`,id:`write-a-checkpoint-manually`,children:[_jsxs(_components.p,{children:[`Register a handler on any event and call `,_jsx(_components.code,{children:`state.checkpoint()`}),`.`]}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Sync`,numberOfLines:`15`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`15`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` __future__`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` annotations`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` typing `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` TYPE_CHECKING`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, Any`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai.events.event_bus `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai_event_bus`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai.events.types.llm_events `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` LLMCallCompletedEvent`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` TYPE_CHECKING`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai.state.runtime `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` RuntimeState`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@crewai_event_bus.on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(LLMCallCompletedEvent)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` on_llm_done`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`source`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Any, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: LLMCallCompletedEvent, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: RuntimeState) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` path `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` state.checkpoint(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./my_checkpoints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Saved checkpoint: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`path`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Async`,numberOfLines:`15`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`15`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` __future__`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` annotations`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` typing `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` TYPE_CHECKING`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, Any`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai.events.event_bus `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai_event_bus`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai.events.types.llm_events `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` LLMCallCompletedEvent`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` TYPE_CHECKING`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` crewai.state.runtime `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` RuntimeState`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@crewai_event_bus.on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(LLMCallCompletedEvent)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` on_llm_done_async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`source`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Any, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: LLMCallCompletedEvent, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: RuntimeState) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` path `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` state.acheckpoint(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"./my_checkpoints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Saved checkpoint: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`path`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})]}),_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`state`}),` argument is supplied automatically when the handler takes three parameters. See `,_jsx(_components.a,{href:`/en/concepts/event-listener`,children:`Event Listeners`}),` for the full event catalog.`]})]}),_jsxs(Accordion,{title:`Browse, resume, and fork from the CLI`,icon:`terminal`,id:`browse-resume-and-fork-from-the-cli`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`crewai`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` checkpoint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`crewai`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --location`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./my_checkpoints`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`crewai`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --location`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./.checkpoints.db`})]}),`\n`]})})}),_jsx(Frame,{caption:`Checkpoint tree — branches and forks nest under their parent.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-tree.png?fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=ecfcf4b1e60db4ad637721f80664c24c`,alt:`Checkpoint TUI tree view`,\"data-og-width\":`2820`,width:`2820`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`images/checkpoint-tui-tree.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-tree.png?w=280\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=3a4dd300ad2a17d756d16ec956a4ed71 280w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-tree.png?w=560\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=a83896ad36cbb0e405bd583bcb0353db 560w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-tree.png?w=840\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=927ca47fdefda47571b0449a11e8c225 840w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-tree.png?w=1100\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=0911d5795b8a447f9341889d1e005f05 1100w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-tree.png?w=1650\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=88ec7ba1ac2068910f7decf2767a602b 1650w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-tree.png?w=2500\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=84947b59ce2273ccdd355ad20b5d006e 2500w`})}),_jsxs(_components.p,{children:[`The left panel groups checkpoints by branch; forks nest under their parent. Selecting a checkpoint opens the detail panel with metadata, entity state, and task progress. `,_jsx(_components.strong,{children:`Resume`}),` continues the run; `,_jsx(_components.strong,{children:`Fork`}),` starts a new branch.`]}),_jsx(Frame,{caption:`Overview tab — metadata, entity state, and run summary.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-overview.png?fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=e8b0459236049f1c324bc129f47156fe`,alt:`Checkpoint detail overview tab`,\"data-og-width\":`2820`,width:`2820`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`images/checkpoint-tui-detail-overview.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-overview.png?w=280\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=767c9521ab1f7eeb631d04a2bcb5654e 280w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-overview.png?w=560\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=d3d26d128f1b474ce3e42576124645c5 560w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-overview.png?w=840\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=d75922b11a8d6ae2d3c1555757d6e55a 840w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-overview.png?w=1100\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=ca18f70aab263014d5bb697413728bb6 1100w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-overview.png?w=1650\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=adf96433542d3bd9e49cb186df75007f 1650w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-overview.png?w=2500\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=a547ab8ccf90380a648358bd14e3a248 2500w`})}),_jsx(_components.p,{children:`The detail panel exposes two editable areas:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Inputs`}),` — original kickoff inputs, pre-filled and editable.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-inputs.png?fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=8cf27d43c6f75214449b261c3f898174`,alt:`Editable kickoff inputs`,\"data-og-width\":`2820`,width:`2820`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`images/checkpoint-tui-detail-inputs.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-inputs.png?w=280\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=b668bb2be464680060bd26d60a2f4c87 280w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-inputs.png?w=560\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=51cf509e0e18efc6c71f1a633d095cec 560w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-inputs.png?w=840\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=7138548d2c68270a8b7af809eca5e610 840w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-inputs.png?w=1100\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=502cc61e19fe7e2e27f90f00e3b4d6ac 1100w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-inputs.png?w=1650\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=c471dc61e4d0b35bb9113b6afad9b0a1 1650w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-inputs.png?w=2500\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=ca23ce1c44a92cfc01238ecddbebd32e 2500w`})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Task outputs`}),` — outputs of completed tasks. Editing an output and hitting `,_jsx(_components.strong,{children:`Fork`}),` invalidates downstream tasks so they re-run against the modified context.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-tasks.png?fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=b51cce6c1e5fcc39407e88257e97d9fb`,alt:`Editable task outputs`,\"data-og-width\":`2820`,width:`2820`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`images/checkpoint-tui-detail-tasks.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-tasks.png?w=280\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=a2a40365345894ca2c91769d83f2003b 280w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-tasks.png?w=560\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=74baec6c067f1de2a2bba0ba91d91f67 560w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-tasks.png?w=840\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=5418f73943ffa38ea071cee4e8a47c7e 840w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-tasks.png?w=1100\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=e89b843d171c82f6c8b6ea7b3f6c89ac 1100w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-tasks.png?w=1650\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=a37e5c15bed15fae6369b2b18fce11ab 1650w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-detail-tasks.png?w=2500\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=7a3767a67d5ccf14d65dc3fef72eb604 2500w`})}),`\n`]}),`\n`]}),_jsx(Frame,{caption:`Fork view — confirm a new branch from the selected checkpoint.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-details-fork.png?fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=4b7545359a4bf5ecad064f3970dbf416`,alt:`Fork confirmation panel`,\"data-og-width\":`2820`,width:`2820`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`images/checkpoint-tui-details-fork.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-details-fork.png?w=280\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=65823098325790ebf3684d35e52edf92 280w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-details-fork.png?w=560\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=accce7441106668163e44993e2ea28fe 560w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-details-fork.png?w=840\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=91431bff3d5e8afea08b99e94be39760 840w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-details-fork.png?w=1100\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=d88ec01b63eac7d844ecd4e45b2cc7b2 1100w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-details-fork.png?w=1650\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=5ac0bd5b2a7068e0a276793f4149cf6e 1650w, https://mintcdn.com/crewai/enQiMpD-5gg-SIEO/images/checkpoint-tui-details-fork.png?w=2500\u0026fit=max\u0026auto=format\u0026n=enQiMpD-5gg-SIEO\u0026q=85\u0026s=357da20b8c1bf89040a73a20991a3e23 2500w`})}),_jsx(Tip,{children:_jsx(_components.p,{children:`Useful for “what if” exploration: fork, tweak, observe.`})})]}),_jsx(Accordion,{title:`Inspect checkpoints without the TUI`,icon:`magnifying-glass`,id:`inspect-checkpoints-without-the-tui`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`crewai`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./my_checkpoints`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`crewai`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` info`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./my_checkpoints/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`fil`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`e`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`.json`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`crewai`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` checkpoint`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` info`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./.checkpoints.db`})]}),`\n`]})})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`reference`,children:`Reference`}),`\n`,_jsx(Heading,{level:`3`,id:`checkpointconfig`,children:_jsx(_components.code,{children:`CheckpointConfig`})}),`\n`,_jsx(ParamField,{path:`location`,type:`str`,default:`\"./.checkpoints\"`,id:`param-location`,children:_jsxs(_components.p,{children:[`Storage destination. A directory for `,_jsx(_components.code,{children:`JsonProvider`}),`, a database file path for `,_jsx(_components.code,{children:`SqliteProvider`}),`.`]})}),`\n`,_jsx(ParamField,{path:`on_events`,type:`list[CheckpointEventType | Literal[\"*\"]]`,default:`[\"task_completed\"]`,id:`param-on-events`,children:_jsxs(_components.p,{children:[`Event types that trigger a checkpoint. `,_jsx(_components.code,{children:`CheckpointEventType`}),` is a `,_jsx(_components.code,{children:`Literal`}),` — your type checker will autocomplete and reject unsupported values. See `,_jsx(_components.a,{href:`#event-types`,children:`event types`}),` for the full list.`]})}),`\n`,_jsx(ParamField,{path:`provider`,type:`BaseProvider`,default:`JsonProvider()`,id:`param-provider`,children:_jsxs(_components.p,{children:[`Storage backend. Either `,_jsx(_components.code,{children:`JsonProvider`}),` or `,_jsx(_components.code,{children:`SqliteProvider`}),`.`]})}),`\n`,_jsx(ParamField,{path:`max_checkpoints`,type:`int | None`,default:`None`,id:`param-max-checkpoints`,children:_jsx(_components.p,{children:`Maximum checkpoints to retain. Oldest are pruned after each write.`})}),`\n`,_jsx(ParamField,{path:`restore_from`,type:`Path | str | None`,default:`None`,id:`param-restore-from`,children:_jsxs(_components.p,{children:[`Checkpoint to restore from when passed via `,_jsx(_components.code,{children:`from_checkpoint`}),`.`]})}),`\n`,_jsxs(Heading,{level:`3`,id:`checkpoint-field-values`,children:[_jsx(_components.code,{children:`checkpoint`}),` field values`]}),`\n`,_jsxs(_components.p,{children:[`Accepted by `,_jsx(_components.code,{children:`Crew`}),`, `,_jsx(_components.code,{children:`Flow`}),`, and `,_jsx(_components.code,{children:`Agent`}),`.`]}),`\n`,_jsx(ParamField,{path:`None`,type:`default`,id:`param-none`,children:_jsx(_components.p,{children:`Inherit from parent.`})}),`\n`,_jsx(ParamField,{path:`True`,type:`bool`,id:`param-true`,children:_jsx(_components.p,{children:`Enable with defaults.`})}),`\n`,_jsx(ParamField,{path:`False`,type:`bool`,id:`param-false`,children:_jsx(_components.p,{children:`Explicit opt-out. Stops inheritance.`})}),`\n`,_jsx(ParamField,{path:`CheckpointConfig(...)`,type:`CheckpointConfig`,id:`param-checkpoint-config`,children:_jsx(_components.p,{children:`Custom configuration.`})}),`\n`,_jsx(Heading,{level:`3`,id:`event-types`,children:`Event types`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`on_events`}),` accepts any combination of `,_jsx(_components.code,{children:`CheckpointEventType`}),` values. The default `,_jsx(_components.code,{children:`[\"task_completed\"]`}),` writes one checkpoint per finished task; `,_jsx(_components.code,{children:`[\"*\"]`}),` matches every event.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`[\"*\"]`}),` and high-frequency events like `,_jsx(_components.code,{children:`llm_call_completed`}),` write many checkpoints and can degrade performance. Pair them with `,_jsx(_components.code,{children:`max_checkpoints`}),`.`]})}),`\n`,_jsx(Expandable,{title:`All supported events`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Task`}),` — `,_jsx(_components.code,{children:`task_started`}),`, `,_jsx(_components.code,{children:`task_completed`}),`, `,_jsx(_components.code,{children:`task_failed`}),`, `,_jsx(_components.code,{children:`task_evaluation`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Crew`}),` — `,_jsx(_components.code,{children:`crew_kickoff_started`}),`, `,_jsx(_components.code,{children:`crew_kickoff_completed`}),`, `,_jsx(_components.code,{children:`crew_kickoff_failed`}),`, `,_jsx(_components.code,{children:`crew_train_started`}),`, `,_jsx(_components.code,{children:`crew_train_completed`}),`, `,_jsx(_components.code,{children:`crew_train_failed`}),`, `,_jsx(_components.code,{children:`crew_test_started`}),`, `,_jsx(_components.code,{children:`crew_test_completed`}),`, `,_jsx(_components.code,{children:`crew_test_failed`}),`, `,_jsx(_components.code,{children:`crew_test_result`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Agent`}),` — `,_jsx(_components.code,{children:`agent_execution_started`}),`, `,_jsx(_components.code,{children:`agent_execution_completed`}),`, `,_jsx(_components.code,{children:`agent_execution_error`}),`, `,_jsx(_components.code,{children:`lite_agent_execution_started`}),`, `,_jsx(_components.code,{children:`lite_agent_execution_completed`}),`, `,_jsx(_components.code,{children:`lite_agent_execution_error`}),`, `,_jsx(_components.code,{children:`agent_evaluation_started`}),`, `,_jsx(_components.code,{children:`agent_evaluation_completed`}),`, `,_jsx(_components.code,{children:`agent_evaluation_failed`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Flow`}),` — `,_jsx(_components.code,{children:`flow_created`}),`, `,_jsx(_components.code,{children:`flow_started`}),`, `,_jsx(_components.code,{children:`flow_finished`}),`, `,_jsx(_components.code,{children:`flow_paused`}),`, `,_jsx(_components.code,{children:`method_execution_started`}),`, `,_jsx(_components.code,{children:`method_execution_finished`}),`, `,_jsx(_components.code,{children:`method_execution_failed`}),`, `,_jsx(_components.code,{children:`method_execution_paused`}),`, `,_jsx(_components.code,{children:`human_feedback_requested`}),`, `,_jsx(_components.code,{children:`human_feedback_received`}),`, `,_jsx(_components.code,{children:`flow_input_requested`}),`, `,_jsx(_components.code,{children:`flow_input_received`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`LLM`}),` — `,_jsx(_components.code,{children:`llm_call_started`}),`, `,_jsx(_components.code,{children:`llm_call_completed`}),`, `,_jsx(_components.code,{children:`llm_call_failed`}),`, `,_jsx(_components.code,{children:`llm_stream_chunk`}),`, `,_jsx(_components.code,{children:`llm_thinking_chunk`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`LLM Guardrail`}),` — `,_jsx(_components.code,{children:`llm_guardrail_started`}),`, `,_jsx(_components.code,{children:`llm_guardrail_completed`}),`, `,_jsx(_components.code,{children:`llm_guardrail_failed`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tool`}),` — `,_jsx(_components.code,{children:`tool_usage_started`}),`, `,_jsx(_components.code,{children:`tool_usage_finished`}),`, `,_jsx(_components.code,{children:`tool_usage_error`}),`, `,_jsx(_components.code,{children:`tool_validate_input_error`}),`, `,_jsx(_components.code,{children:`tool_selection_error`}),`, `,_jsx(_components.code,{children:`tool_execution_error`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Memory`}),` — `,_jsx(_components.code,{children:`memory_save_started`}),`, `,_jsx(_components.code,{children:`memory_save_completed`}),`, `,_jsx(_components.code,{children:`memory_save_failed`}),`, `,_jsx(_components.code,{children:`memory_query_started`}),`, `,_jsx(_components.code,{children:`memory_query_completed`}),`, `,_jsx(_components.code,{children:`memory_query_failed`}),`, `,_jsx(_components.code,{children:`memory_retrieval_started`}),`, `,_jsx(_components.code,{children:`memory_retrieval_completed`}),`, `,_jsx(_components.code,{children:`memory_retrieval_failed`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Knowledge`}),` — `,_jsx(_components.code,{children:`knowledge_search_query_started`}),`, `,_jsx(_components.code,{children:`knowledge_search_query_completed`}),`, `,_jsx(_components.code,{children:`knowledge_query_started`}),`, `,_jsx(_components.code,{children:`knowledge_query_completed`}),`, `,_jsx(_components.code,{children:`knowledge_query_failed`}),`, `,_jsx(_components.code,{children:`knowledge_search_query_failed`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Reasoning`}),` — `,_jsx(_components.code,{children:`agent_reasoning_started`}),`, `,_jsx(_components.code,{children:`agent_reasoning_completed`}),`, `,_jsx(_components.code,{children:`agent_reasoning_failed`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`MCP`}),` — `,_jsx(_components.code,{children:`mcp_connection_started`}),`, `,_jsx(_components.code,{children:`mcp_connection_completed`}),`, `,_jsx(_components.code,{children:`mcp_connection_failed`}),`, `,_jsx(_components.code,{children:`mcp_tool_execution_started`}),`, `,_jsx(_components.code,{children:`mcp_tool_execution_completed`}),`, `,_jsx(_components.code,{children:`mcp_tool_execution_failed`}),`, `,_jsx(_components.code,{children:`mcp_config_fetch_failed`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Observation`}),` — `,_jsx(_components.code,{children:`step_observation_started`}),`, `,_jsx(_components.code,{children:`step_observation_completed`}),`, `,_jsx(_components.code,{children:`step_observation_failed`}),`, `,_jsx(_components.code,{children:`plan_refinement`}),`, `,_jsx(_components.code,{children:`plan_replan_triggered`}),`, `,_jsx(_components.code,{children:`goal_achieved_early`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Skill`}),` — `,_jsx(_components.code,{children:`skill_discovery_started`}),`, `,_jsx(_components.code,{children:`skill_discovery_completed`}),`, `,_jsx(_components.code,{children:`skill_loaded`}),`, `,_jsx(_components.code,{children:`skill_activated`}),`, `,_jsx(_components.code,{children:`skill_load_failed`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Logging`}),` — `,_jsx(_components.code,{children:`agent_logs_started`}),`, `,_jsx(_components.code,{children:`agent_logs_execution`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A2A`}),` — `,_jsx(_components.code,{children:`a2a_delegation_started`}),`, `,_jsx(_components.code,{children:`a2a_delegation_completed`}),`, `,_jsx(_components.code,{children:`a2a_conversation_started`}),`, `,_jsx(_components.code,{children:`a2a_conversation_completed`}),`, `,_jsx(_components.code,{children:`a2a_message_sent`}),`, `,_jsx(_components.code,{children:`a2a_response_received`}),`, `,_jsx(_components.code,{children:`a2a_polling_started`}),`, `,_jsx(_components.code,{children:`a2a_polling_status`}),`, `,_jsx(_components.code,{children:`a2a_push_notification_registered`}),`, `,_jsx(_components.code,{children:`a2a_push_notification_received`}),`, `,_jsx(_components.code,{children:`a2a_push_notification_sent`}),`, `,_jsx(_components.code,{children:`a2a_push_notification_timeout`}),`, `,_jsx(_components.code,{children:`a2a_streaming_started`}),`, `,_jsx(_components.code,{children:`a2a_streaming_chunk`}),`, `,_jsx(_components.code,{children:`a2a_agent_card_fetched`}),`, `,_jsx(_components.code,{children:`a2a_authentication_failed`}),`, `,_jsx(_components.code,{children:`a2a_artifact_received`}),`, `,_jsx(_components.code,{children:`a2a_connection_error`}),`, `,_jsx(_components.code,{children:`a2a_server_task_started`}),`, `,_jsx(_components.code,{children:`a2a_server_task_completed`}),`, `,_jsx(_components.code,{children:`a2a_server_task_canceled`}),`, `,_jsx(_components.code,{children:`a2a_server_task_failed`}),`, `,_jsx(_components.code,{children:`a2a_parallel_delegation_started`}),`, `,_jsx(_components.code,{children:`a2a_parallel_delegation_completed`}),`, `,_jsx(_components.code,{children:`a2a_transport_negotiated`}),`, `,_jsx(_components.code,{children:`a2a_content_type_negotiated`}),`, `,_jsx(_components.code,{children:`a2a_context_created`}),`, `,_jsx(_components.code,{children:`a2a_context_expired`}),`, `,_jsx(_components.code,{children:`a2a_context_idle`}),`, `,_jsx(_components.code,{children:`a2a_context_completed`}),`, `,_jsx(_components.code,{children:`a2a_context_pruned`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`System signals`}),` — `,_jsx(_components.code,{children:`SIGTERM`}),`, `,_jsx(_components.code,{children:`SIGINT`}),`, `,_jsx(_components.code,{children:`SIGHUP`}),`, `,_jsx(_components.code,{children:`SIGTSTP`}),`, `,_jsx(_components.code,{children:`SIGCONT`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Wildcard`}),` — `,_jsx(_components.code,{children:`\"*\"`}),` matches every event.`]}),`\n`]})}),`\n`,_jsx(Heading,{level:`3`,id:`storage-providers`,children:`Storage providers`}),`\n`,_jsx(ParamField,{path:`JsonProvider`,type:`provider`,id:`param-json-provider`,children:_jsxs(_components.p,{children:[`One file per checkpoint, named `,_jsx(_components.code,{children:`\u003ctimestamp>_\u003cuuid>.json`}),` inside `,_jsx(_components.code,{children:`location`}),`.`]})}),`\n`,_jsx(ParamField,{path:`SqliteProvider`,type:`provider`,id:`param-sqlite-provider`,children:_jsxs(_components.p,{children:[`Single database file at `,_jsx(_components.code,{children:`location`}),` with WAL journaling.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`cli`,children:`CLI`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Command`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`crewai checkpoint`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Launch the TUI; auto-detect storage.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`crewai checkpoint --location \u003cpath>`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Launch the TUI against a specific location.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`crewai checkpoint list \u003cpath>`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`List checkpoints.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`crewai checkpoint info \u003cpath>`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Inspect a checkpoint file or the latest entry in a SQLite database.`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Checkpointing","description":"Automatically save execution state so crews, flows, and agents can resume after failures.","icon":"floppy-disk","mode":"wide","href":"/v1.15.29/en/concepts/checkpointing"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Explanation","slug":"explanation","depth":2,"children":[{"title":"What a checkpoint is","slug":"what-a-checkpoint-is","depth":3,"children":[]},{"title":"When checkpoints are written","slug":"when-checkpoints-are-written","depth":3,"children":[]},{"title":"Storage","slug":"storage","depth":3,"children":[]},{"title":"Inheritance model","slug":"inheritance-model","depth":3,"children":[]}]},{"title":"Tutorial: Resume a failing crew","slug":"tutorial-resume-a-failing-crew","depth":2,"children":[]},{"title":"How-to guides","slug":"how-to-guides","depth":2,"children":[]},{"title":"Reference","slug":"reference","depth":2,"children":[{"title":"CheckpointConfig","slug":"checkpointconfig","depth":3,"children":[]},{"title":"checkpoint field values","slug":"checkpoint-field-values","depth":3,"children":[]},{"title":"Event types","slug":"event-types","depth":3,"children":[]},{"title":"Storage providers","slug":"storage-providers","depth":3,"children":[]},{"title":"CLI","slug":"cli","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/crewai/cc0a0a5c2c93f4d8/common-room-tracking.js","/_mintlify/custom/crewai/36c44d75a9111b06/reo-tracking.js"],"subdomain":"crewai","siteName":"CrewAI","title":"Checkpointing - CrewAI","navMaps":{"firstHrefInVersion":{"Edge":{"href":"/edge/en/concepts/checkpointing","matchLevel":1},"v1.15.41":{"href":"/v1.15.41/en/concepts/checkpointing","matchLevel":1},"v1.15.40":{"href":"/v1.15.40/en/concepts/checkpointing","matchLevel":1},"v1.15.39":{"href":"/v1.15.39/en/concepts/checkpointing","matchLevel":1},"v1.15.38":{"href":"/v1.15.38/en/concepts/checkpointing","matchLevel":1},"v1.15.37":{"href":"/v1.15.37/en/concepts/checkpointing","matchLevel":1},"v1.15.36":{"href":"/v1.15.36/en/concepts/checkpointing","matchLevel":1},"v1.15.35":{"href":"/v1.15.35/en/concepts/checkpointing","matchLevel":1},"v1.15.34":{"href":"/v1.15.34/en/concepts/checkpointing","matchLevel":1},"v1.15.33":{"href":"/v1.15.33/en/concepts/checkpointing","matchLevel":1},"v1.15.32":{"href":"/v1.15.32/en/concepts/checkpointing","matchLevel":1},"v1.15.31":{"href":"/v1.15.31/en/concepts/checkpointing","matchLevel":1},"v1.15.30":{"href":"/v1.15.30/en/concepts/checkpointing","matchLevel":1},"v1.15.29":{"href":"/v1.15.29/en/concepts/checkpointing","matchLevel":0},"v1.15.28":{"href":"/v1.15.28/en/concepts/checkpointing","matchLevel":1},"v1.15.27":{"href":"/v1.15.27/en/concepts/checkpointing","matchLevel":1},"v1.15.26":{"href":"/v1.15.26/en/concepts/checkpointing","matchLevel":1},"v1.15.25":{"href":"/v1.15.25/en/concepts/checkpointing","matchLevel":1},"v1.15.24":{"href":"/v1.15.24/en/concepts/checkpointing","matchLevel":1},"v1.15.23":{"href":"/v1.15.23/en/concepts/checkpointing","matchLevel":1},"v1.15.22":{"href":"/v1.15.22/en/concepts/checkpointing","matchLevel":1},"v1.15.21":{"href":"/v1.15.21/en/concepts/checkpointing","matchLevel":1},"v1.15.20":{"href":"/v1.15.20/en/concepts/checkpointing","matchLevel":1},"v1.15.19":{"href":"/v1.15.19/en/concepts/checkpointing","matchLevel":1},"v1.15.18":{"href":"/v1.15.18/en/concepts/checkpointing","matchLevel":1},"v1.15.17":{"href":"/v1.15.17/en/concepts/checkpointing","matchLevel":1},"v1.15.16":{"href":"/v1.15.16/en/concepts/checkpointing","matchLevel":1},"v1.15.15":{"href":"/v1.15.15/en/concepts/checkpointing","matchLevel":1},"v1.15.14":{"href":"/v1.15.14/en/concepts/checkpointing","matchLevel":1},"v1.15.13":{"href":"/v1.15.13/en/concepts/checkpointing","matchLevel":1},"v1.15.12":{"href":"/v1.15.12/en/concepts/checkpointing","matchLevel":1},"v1.15.11":{"href":"/v1.15.11/en/concepts/checkpointing","matchLevel":1},"v1.15.10":{"href":"/v1.15.10/en/concepts/checkpointing","matchLevel":1},"v1.15.9":{"href":"/v1.15.9/en/concepts/checkpointing","matchLevel":1},"v1.15.8":{"href":"/v1.15.8/en/concepts/checkpointing","matchLevel":1},"v1.15.7":{"href":"/v1.15.7/en/concepts/checkpointing","matchLevel":1},"v1.15.6":{"href":"/v1.15.6/en/concepts/checkpointing","matchLevel":1},"v1.15.5":{"href":"/v1.15.5/en/concepts/checkpointing","matchLevel":1},"v1.15.4":{"href":"/v1.15.4/en/concepts/checkpointing","matchLevel":1},"v1.15.3":{"href":"/v1.15.3/en/concepts/checkpointing","matchLevel":1},"v1.15.2":{"href":"/v1.15.2/en/concepts/checkpointing","matchLevel":1},"v1.15.1":{"href":"/v1.15.1/en/concepts/checkpointing","matchLevel":1},"v1.15.0":{"href":"/v1.15.0/en/concepts/checkpointing","matchLevel":1},"v1.14.7":{"href":"/v1.14.7/en/concepts/checkpointing","matchLevel":1},"v1.14.6":{"href":"/v1.14.6/en/concepts/checkpointing","matchLevel":1},"v1.14.5":{"href":"/v1.14.5/en/concepts/checkpointing","matchLevel":1},"v1.14.4":{"href":"/v1.14.4/en/concepts/checkpointing","matchLevel":1},"v1.14.3":{"href":"/v1.14.3/en/concepts/checkpointing","matchLevel":1},"v1.14.2":{"href":"/v1.14.2/en/concepts/checkpointing","matchLevel":1},"v1.14.1":{"href":"/v1.14.1/en/concepts/checkpointing","matchLevel":1},"v1.14.0":{"href":"/v1.14.0/en/concepts/checkpointing","matchLevel":1},"v1.13.0":{"href":"/v1.13.0/en/concepts/agents","matchLevel":2},"v1.12.2":{"href":"/v1.12.2/en/concepts/agents","matchLevel":2},"v1.12.1":{"href":"/v1.12.1/en/concepts/agents","matchLevel":2},"v1.12.0":{"href":"/v1.12.0/en/concepts/agents","matchLevel":2},"v1.11.1":{"href":"/v1.11.1/en/concepts/agents","matchLevel":2},"v1.11.0":{"href":"/v1.11.0/en/concepts/agents","matchLevel":2},"v1.10.1":{"href":"/v1.10.1/en/concepts/agents","matchLevel":2},"v1.10.0":{"href":"/v1.10.0/en/concepts/agents","matchLevel":2}},"firstHrefInLanguage":{"en":{"href":"/v1.15.29/en/concepts/checkpointing","matchLevel":0},"pt-BR":{"href":"/v1.15.29/pt-BR/concepts/checkpointing","matchLevel":1},"ko":{"href":"/v1.15.29/ko/concepts/checkpointing","matchLevel":1},"ar":{"href":"/v1.15.29/ar/concepts/checkpointing","matchLevel":1}}},"lastModified":"2026-10-23T17:55:31.883Z","originalFileLocation":"v1.15.29/en/concepts/checkpointing.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Automatically save execution state so crews, flows, and agents can resume after failures.\">\u003cmeta data-mint-head name=\"keywords\" content=\"AI agents, multi-agent systems, CrewAI, artificial intelligence, automation, Python framework, agent collaboration, AI workflows\">\u003cmeta data-mint-head name=\"application-name\" content=\"CrewAI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Checkpointing - CrewAI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Automatically save execution state so crews, flows, and agents can resume after failures.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CrewAI Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.crewai.com/images/crew_only_logo.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Checkpointing - CrewAI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Automatically save execution state so crews, flows, and agents can resume after failures.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.crewai.com/images/crew_only_logo.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CrewAI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#EB6658\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v1.15.29/en/concepts/checkpointing.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.crewai.com/v1.15.29/pt-BR/concepts/checkpointing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.crewai.com/v1.15.29/ko/concepts/checkpointing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.crewai.com/v1.15.29/ar/concepts/checkpointing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.crewai.com/#organization\",\"name\":\"CrewAI\",\"url\":\"https://docs.crewai.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/crewai/5SZbe87tsCWZY09V/images/crew_only_logo.png?fit=max\u0026auto=format\u0026n=5SZbe87tsCWZY09V\u0026q=85\u0026s=439ca5dc63a1768cad7196005ff5636f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.crewai.com#website\",\"name\":\"CrewAI\",\"url\":\"https://docs.crewai.com\",\"publisher\":{\"@id\":\"https://docs.crewai.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing#webpage\",\"url\":\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing\",\"name\":\"Checkpointing\",\"description\":\"Automatically save execution state so crews, flows, and agents can resume after failures.\",\"dateModified\":\"2026-10-23T17:55:31.883Z\",\"isPartOf\":{\"@id\":\"https://docs.crewai.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Core Concepts\",\"item\":\"https://docs.crewai.com/v1.15.29/en/concepts/agents\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Checkpointing\",\"item\":\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing#article\",\"headline\":\"Checkpointing\",\"name\":\"Checkpointing\",\"description\":\"Automatically save execution state so crews, flows, and agents can resume after failures.\",\"url\":\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing\",\"mainEntityOfPage\":{\"@id\":\"https://docs.crewai.com/v1.15.29/en/concepts/checkpointing#webpage\"},\"image\":\"https://docs.crewai.com/images/crew_only_logo.png\",\"dateModified\":\"2026-10-23T17:55:31.883Z\",\"publisher\":{\"@id\":\"https://docs.crewai.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.crewai.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CrewAI\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"CrewAI\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/v1.15.29/en/concepts/checkpointing.md","siteName":"CrewAI","nav":{"global":null,"languages":[{"language":"en","versions":[{"version":"Edge","tag":"Edge","pages":[{"title":"Edge","href":"/edge/en/concepts/checkpointing"}]},{"version":"v1.15.41","default":true,"tag":"Latest","pages":[{"title":"v1.15.41","href":"/v1.15.41/en/concepts/checkpointing"}]},{"version":"v1.15.40","pages":[{"title":"v1.15.40","href":"/v1.15.40/en/concepts/checkpointing"}]},{"version":"v1.15.39","pages":[{"title":"v1.15.39","href":"/v1.15.39/en/concepts/checkpointing"}]},{"version":"v1.15.38","pages":[{"title":"v1.15.38","href":"/v1.15.38/en/concepts/checkpointing"}]},{"version":"v1.15.37","pages":[{"title":"v1.15.37","href":"/v1.15.37/en/concepts/checkpointing"}]},{"version":"v1.15.36","pages":[{"title":"v1.15.36","href":"/v1.15.36/en/concepts/checkpointing"}]},{"version":"v1.15.35","pages":[{"title":"v1.15.35","href":"/v1.15.35/en/concepts/checkpointing"}]},{"version":"v1.15.34","pages":[{"title":"v1.15.34","href":"/v1.15.34/en/concepts/checkpointing"}]},{"version":"v1.15.33","pages":[{"title":"v1.15.33","href":"/v1.15.33/en/concepts/checkpointing"}]},{"version":"v1.15.32","pages":[{"title":"v1.15.32","href":"/v1.15.32/en/concepts/checkpointing"}]},{"version":"v1.15.31","pages":[{"title":"v1.15.31","href":"/v1.15.31/en/concepts/checkpointing"}]},{"version":"v1.15.30","pages":[{"title":"v1.15.30","href":"/v1.15.30/en/concepts/checkpointing"}]},{"version":"v1.15.29","tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":""}]},{"tab":"Documentation","icon":"book-open","groups":[{"group":"Get Started","pages":[{"title":"Introduction","icon":"handshake","mode":"wide","href":"/v1.15.29/en/introduction"},{"title":"Build with AI","icon":"robot","mode":"wide","href":"/v1.15.29/en/guides/coding-tools/build-with-ai"},{"title":"Skills","icon":"wand-magic-sparkles","mode":"wide","href":"/v1.15.29/en/skills"},{"title":"Installation","icon":"wrench","mode":"wide","href":"/v1.15.29/en/installation"},{"title":"Quickstart","icon":"rocket","mode":"wide","href":"/v1.15.29/en/quickstart"}]},{"group":"Guides","pages":[{"group":"Strategy","icon":"compass","pages":[{"title":"Evaluating Use Cases for CrewAI","icon":"scale-balanced","mode":"wide","href":"/v1.15.29/en/guides/concepts/evaluating-use-cases"}]},{"group":"Agents","icon":"user","pages":[{"title":"Crafting Effective Agents","icon":"robot","mode":"wide","href":"/v1.15.29/en/guides/agents/crafting-effective-agents"}]},{"group":"Crews","icon":"users","pages":[{"title":"Build Your First Crew","icon":"users-gear","mode":"wide","href":"/v1.15.29/en/guides/crews/first-crew"}]},{"group":"Flows","icon":"code-branch","pages":[{"title":"Build Your First Flow","icon":"diagram-project","mode":"wide","href":"/v1.15.29/en/guides/flows/first-flow"},{"title":"Mastering Flow State Management","icon":"diagram-project","mode":"wide","href":"/v1.15.29/en/guides/flows/mastering-flow-state"},{"title":"Conversational Flows","icon":"comments","mode":"wide","href":"/v1.15.29/en/guides/flows/conversational-flows"},{"title":"Migrating from inputs.id to restore_from_state_id","icon":"arrow-right-arrow-left","href":"/v1.15.29/en/guides/flows/inputs-id-deprecation"}]},{"group":"Frontend","icon":"browser","pages":[{"title":"Frontend Overview","icon":"browser","mode":"wide","href":"/v1.15.29/en/guides/frontend/overview"},{"title":"Conversational Flows","icon":"comments","mode":"wide","href":"/v1.15.29/en/guides/frontend/conversational-flows"},{"title":"Generative UI","icon":"wand-magic-sparkles","mode":"wide","href":"/v1.15.29/en/guides/frontend/generative-ui"},{"title":"Tool-Based Generative UI","icon":"puzzle-piece","mode":"wide","href":"/v1.15.29/en/guides/frontend/tool-based-generative-ui"},{"title":"Agentic Generative UI","icon":"list-check","mode":"wide","href":"/v1.15.29/en/guides/frontend/agentic-generative-ui"},{"title":"Reasoning","icon":"brain","mode":"wide","href":"/v1.15.29/en/guides/frontend/reasoning"},{"title":"A2UI","icon":"table-cells","mode":"wide","href":"/v1.15.29/en/guides/frontend/a2ui"},{"title":"Human-in-the-Loop","icon":"user-check","mode":"wide","href":"/v1.15.29/en/guides/frontend/human-in-the-loop"},{"title":"Shared State","icon":"arrows-rotate","mode":"wide","href":"/v1.15.29/en/guides/frontend/shared-state"},{"title":"Frontend Actions","icon":"bolt","mode":"wide","href":"/v1.15.29/en/guides/frontend/frontend-actions"},{"title":"Predictive State Updates","icon":"gauge-high","mode":"wide","href":"/v1.15.29/en/guides/frontend/predictive-state-updates"},{"title":"Channels","icon":"messages","mode":"wide","href":"/v1.15.29/en/guides/frontend/channels"}]},{"group":"Tools","icon":"wrench","pages":[{"title":"Publish Custom Tools","icon":"box-open","mode":"wide","href":"/v1.15.29/en/guides/tools/publish-custom-tools"}]},{"group":"Coding Tools","icon":"terminal","pages":[{"title":"Coding Tools","icon":"terminal","mode":"wide","href":"/v1.15.29/en/guides/coding-tools/agents-md"},{"title":"Build with AI","icon":"robot","mode":"wide","href":"/v1.15.29/en/guides/coding-tools/build-with-ai"}]},{"group":"Advanced","icon":"gear","pages":[{"title":"Customizing Prompts","icon":"message-pen","mode":"wide","href":"/v1.15.29/en/guides/advanced/customizing-prompts"},{"title":"Fingerprinting","icon":"fingerprint","mode":"wide","href":"/v1.15.29/en/guides/advanced/fingerprinting"}]},{"group":"Migration","icon":"shuffle","pages":[{"title":"Moving from LangGraph to CrewAI: A Practical Guide for Engineers","icon":"switch","mode":"wide","href":"/v1.15.29/en/guides/migration/migrating-from-langgraph"},{"title":"Upgrading CrewAI","icon":"arrow-up-circle","href":"/v1.15.29/en/guides/migration/upgrading-crewai"}]}]},{"group":"Core Concepts","pages":[{"title":"Agents","icon":"robot","mode":"wide","href":"/v1.15.29/en/concepts/agents"},{"title":"Agent Capabilities","icon":"puzzle-piece","mode":"wide","href":"/v1.15.29/en/concepts/agent-capabilities"},{"title":"Tasks","icon":"list-check","mode":"wide","href":"/v1.15.29/en/concepts/tasks"},{"title":"Crews","icon":"people-group","mode":"wide","href":"/v1.15.29/en/concepts/crews"},{"title":"Flows","icon":"arrow-progress","mode":"wide","href":"/v1.15.29/en/concepts/flows"},{"title":"Streaming","icon":"radio","mode":"wide","href":"/v1.15.29/en/concepts/streaming"},{"title":"Production Architecture","icon":"server","mode":"wide","href":"/v1.15.29/en/concepts/production-architecture"},{"title":"Knowledge","icon":"book","mode":"wide","href":"/v1.15.29/en/concepts/knowledge"},{"title":"Skills","icon":"bolt","mode":"wide","href":"/v1.15.29/en/concepts/skills"},{"title":"LLMs","icon":"microchip-ai","mode":"wide","href":"/v1.15.29/en/concepts/llms"},{"title":"Files","icon":"file-image","href":"/v1.15.29/en/concepts/files"},{"title":"Processes","icon":"bars-staggered","mode":"wide","href":"/v1.15.29/en/concepts/processes"},{"title":"Collaboration","icon":"screen-users","mode":"wide","href":"/v1.15.29/en/concepts/collaboration"},{"title":"Training","icon":"dumbbell","mode":"wide","href":"/v1.15.29/en/concepts/training"},{"title":"Memory","icon":"database","mode":"wide","href":"/v1.15.29/en/concepts/memory"},{"title":"Reasoning","icon":"brain","mode":"wide","href":"/v1.15.29/en/concepts/reasoning"},{"title":"Planning","icon":"ruler-combined","mode":"wide","href":"/v1.15.29/en/concepts/planning"},{"title":"Testing","icon":"vial","mode":"wide","href":"/v1.15.29/en/concepts/testing"},{"title":"CLI","icon":"terminal","mode":"wide","href":"/v1.15.29/en/concepts/cli"},{"title":"Tools","icon":"screwdriver-wrench","mode":"wide","href":"/v1.15.29/en/concepts/tools"},{"title":"Event Listeners","description":"Tap into CrewAI events to build custom integrations and monitoring","icon":"spinner","mode":"wide","href":"/v1.15.29/en/concepts/event-listener"},{"title":"Checkpointing","icon":"floppy-disk","mode":"wide","href":"/v1.15.29/en/concepts/checkpointing"}]},{"group":"MCP Integration","pages":[{"title":"MCP Servers as Tools in CrewAI","description":"Learn how to integrate MCP servers as tools in your CrewAI agents using the `crewai-tools` library.","icon":"plug","mode":"wide","href":"/v1.15.29/en/mcp/overview"},{"title":"MCP DSL Integration","icon":"code","mode":"wide","href":"/v1.15.29/en/mcp/dsl-integration"},{"title":"Stdio Transport","icon":"server","mode":"wide","href":"/v1.15.29/en/mcp/stdio"},{"title":"SSE Transport","icon":"wifi","mode":"wide","href":"/v1.15.29/en/mcp/sse"},{"title":"Streamable HTTP Transport","icon":"globe","mode":"wide","href":"/v1.15.29/en/mcp/streamable-http"},{"title":"Connecting to Multiple MCP Servers","icon":"layer-group","mode":"wide","href":"/v1.15.29/en/mcp/multiple-servers"},{"title":"MCP Security Considerations","icon":"lock","mode":"wide","href":"/v1.15.29/en/mcp/security"}]},{"group":"Tools","pages":[{"title":"Tools Overview","icon":"toolbox","mode":"wide","href":"/v1.15.29/en/tools/overview"},{"group":"File \u0026 Document","icon":"folder-open","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/tools/file-document/overview"},{"title":"File Read","icon":"folders","mode":"wide","href":"/v1.15.29/en/tools/file-document/filereadtool"},{"title":"File Write","icon":"file-pen","mode":"wide","href":"/v1.15.29/en/tools/file-document/filewritetool"},{"title":"PDF RAG Search","icon":"file-pdf","mode":"wide","href":"/v1.15.29/en/tools/file-document/pdfsearchtool"},{"title":"DOCX RAG Search","icon":"file-word","mode":"wide","href":"/v1.15.29/en/tools/file-document/docxsearchtool"},{"title":"MDX RAG Search","icon":"markdown","mode":"wide","href":"/v1.15.29/en/tools/file-document/mdxsearchtool"},{"title":"XML RAG Search","icon":"file-xml","mode":"wide","href":"/v1.15.29/en/tools/file-document/xmlsearchtool"},{"title":"TXT RAG Search","icon":"file-lines","mode":"wide","href":"/v1.15.29/en/tools/file-document/txtsearchtool"},{"title":"JSON RAG Search","icon":"file-code","mode":"wide","href":"/v1.15.29/en/tools/file-document/jsonsearchtool"},{"title":"CSV RAG Search","icon":"file-csv","mode":"wide","href":"/v1.15.29/en/tools/file-document/csvsearchtool"},{"title":"Directory RAG Search","icon":"address-book","mode":"wide","href":"/v1.15.29/en/tools/file-document/directorysearchtool"},{"title":"Directory Read","icon":"folder-tree","mode":"wide","href":"/v1.15.29/en/tools/file-document/directoryreadtool"},{"title":"OCR Tool","icon":"image","mode":"wide","href":"/v1.15.29/en/tools/file-document/ocrtool"},{"title":"PDF Text Writing Tool","icon":"file-pdf","mode":"wide","href":"/v1.15.29/en/tools/file-document/pdf-text-writing-tool"}]},{"group":"Web Scraping \u0026 Browsing","icon":"globe","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/overview"},{"title":"Scrape Website","icon":"magnifying-glass-location","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/scrapewebsitetool"},{"title":"Scrape Element From Website Tool","icon":"code","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/scrapeelementfromwebsitetool"},{"title":"Scrapfly Scrape Website Tool","icon":"spider","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/scrapflyscrapetool"},{"title":"Selenium Scraper","icon":"clipboard-user","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/seleniumscrapingtool"},{"title":"Scrapegraph Scrape Tool","icon":"chart-area","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/scrapegraphscrapetool"},{"title":"Spider Scraper","icon":"spider-web","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/spidertool"},{"title":"Browserbase Web Loader","icon":"browser","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/browserbaseloadtool"},{"title":"Hyperbrowser Load Tool","icon":"globe","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/hyperbrowserloadtool"},{"title":"Stagehand Tool","icon":"hand","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/stagehandtool"},{"title":"Firecrawl Crawl Website","icon":"fire-flame","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/firecrawlcrawlwebsitetool"},{"title":"Firecrawl Scrape Website","icon":"fire-flame","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/firecrawlscrapewebsitetool"},{"title":"Oxylabs Scrapers","icon":"globe","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/oxylabsscraperstool"},{"title":"Bright Data Tools","icon":"spider","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/brightdata-tools"},{"title":"You.com Content Extraction Tool","icon":"globe","mode":"wide","href":"/v1.15.29/en/tools/web-scraping/youai-contents"}]},{"group":"Search \u0026 Research","icon":"magnifying-glass","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/tools/search-research/overview"},{"title":"Google Serper Search","icon":"google","mode":"wide","href":"/v1.15.29/en/tools/search-research/serperdevtool"},{"title":"Brave Search Tools","icon":"searchengin","mode":"wide","href":"/v1.15.29/en/tools/search-research/bravesearchtool"},{"title":"Exa Search Tool","icon":"magnifying-glass","mode":"wide","href":"/v1.15.29/en/tools/search-research/exasearchtool"},{"title":"Linkup Search Tool","icon":"link","mode":"wide","href":"/v1.15.29/en/tools/search-research/linkupsearchtool"},{"title":"Github Search","icon":"github","mode":"wide","href":"/v1.15.29/en/tools/search-research/githubsearchtool"},{"title":"Website RAG Search","icon":"globe-stand","mode":"wide","href":"/v1.15.29/en/tools/search-research/websitesearchtool"},{"title":"Code Docs RAG Search","icon":"code","mode":"wide","href":"/v1.15.29/en/tools/search-research/codedocssearchtool"},{"title":"YouTube Channel RAG Search","icon":"youtube","mode":"wide","href":"/v1.15.29/en/tools/search-research/youtubechannelsearchtool"},{"title":"YouTube Video RAG Search","icon":"youtube","mode":"wide","href":"/v1.15.29/en/tools/search-research/youtubevideosearchtool"},{"title":"Tavily Search Tool","icon":"magnifying-glass","mode":"wide","href":"/v1.15.29/en/tools/search-research/tavilysearchtool"},{"title":"Tavily Extractor Tool","icon":"square-poll-horizontal","mode":"wide","href":"/v1.15.29/en/tools/search-research/tavilyextractortool"},{"title":"Tavily Research Tool","icon":"flask","mode":"wide","href":"/v1.15.29/en/tools/search-research/tavilyresearchtool"},{"title":"Arxiv Paper Tool","icon":"box-archive","mode":"wide","href":"/v1.15.29/en/tools/search-research/arxivpapertool"},{"title":"SerpApi Google Search Tool","icon":"google","mode":"wide","href":"/v1.15.29/en/tools/search-research/serpapi-googlesearchtool"},{"title":"SerpApi Google Shopping Tool","icon":"cart-shopping","mode":"wide","href":"/v1.15.29/en/tools/search-research/serpapi-googleshoppingtool"},{"title":"Databricks SQL Query Tool","icon":"trowel-bricks","mode":"wide","href":"/v1.15.29/en/tools/search-research/databricks-query-tool"},{"title":"You.com Search \u0026 Research Tools","icon":"magnifying-glass","mode":"wide","href":"/v1.15.29/en/tools/search-research/youai-search"}]},{"group":"Database \u0026 Data","icon":"database","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/tools/database-data/overview"},{"title":"MySQL RAG Search","icon":"database","mode":"wide","href":"/v1.15.29/en/tools/database-data/mysqltool"},{"title":"PG RAG Search","icon":"elephant","mode":"wide","href":"/v1.15.29/en/tools/database-data/pgsearchtool"},{"title":"Snowflake Search Tool","icon":"snowflake","mode":"wide","href":"/v1.15.29/en/tools/database-data/snowflakesearchtool"},{"title":"NL2SQL Tool","icon":"language","mode":"wide","href":"/v1.15.29/en/tools/database-data/nl2sqltool"},{"title":"Qdrant Vector Search Tool","icon":"vector-square","mode":"wide","href":"/v1.15.29/en/tools/database-data/qdrantvectorsearchtool"},{"title":"Weaviate Vector Search","icon":"network-wired","mode":"wide","href":"/v1.15.29/en/tools/database-data/weaviatevectorsearchtool"},{"title":"MongoDB Vector Search Tool","icon":"leaf","mode":"wide","href":"/v1.15.29/en/tools/database-data/mongodbvectorsearchtool"},{"title":"SingleStore Search Tool","icon":"circle","mode":"wide","href":"/v1.15.29/en/tools/database-data/singlestoresearchtool"},{"title":"Db2 Vector Search Tool","icon":"database","mode":"wide","href":"/v1.15.29/en/tools/database-data/db2searchtool"}]},{"group":"AI \u0026 Machine Learning","icon":"brain","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/overview"},{"title":"DALL-E Tool","icon":"image","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/dalletool"},{"title":"Vision Tool","icon":"eye","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/visiontool"},{"title":"AI Mind Tool","icon":"brain","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/aimindtool"},{"title":"LlamaIndex Tool","icon":"address-book","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/llamaindextool"},{"title":"LangChain Tool","icon":"link","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/langchaintool"},{"title":"RAG Tool","icon":"vector-square","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/ragtool"},{"title":"Code Interpreter","icon":"code-simple","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/codeinterpretertool"},{"title":"Daytona Sandbox Tools","icon":"box","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/daytona"},{"title":"E2B Sandbox Tools","icon":"box","mode":"wide","href":"/v1.15.29/en/tools/ai-ml/e2bsandboxtools"}]},{"group":"Cloud \u0026 Storage","icon":"cloud","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/tools/cloud-storage/overview"},{"title":"S3 Reader Tool","icon":"aws","mode":"wide","href":"/v1.15.29/en/tools/cloud-storage/s3readertool"},{"title":"S3 Writer Tool","icon":"aws","mode":"wide","href":"/v1.15.29/en/tools/cloud-storage/s3writertool"},{"title":"Bedrock Knowledge Base Retriever","icon":"aws","mode":"wide","href":"/v1.15.29/en/tools/cloud-storage/bedrockkbretriever"}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/tools/integration/overview"},{"title":"Bedrock Invoke Agent Tool","icon":"aws","mode":"wide","href":"/v1.15.29/en/tools/integration/bedrockinvokeagenttool"},{"title":"CrewAI Run Automation Tool","icon":"robot","href":"/v1.15.29/en/tools/integration/crewaiautomationtool"},{"title":"Merge Agent Handler Tool","icon":"diagram-project","mode":"wide","href":"/v1.15.29/en/tools/integration/mergeagenthandlertool"}]},{"group":"Automation","icon":"bolt","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/tools/automation/overview"},{"title":"Apify Actors","icon":"); -webkit-mask-image: url('https://upload.wikimedia.org/wikipedia/commons/a/ae/Apify.svg');/*","mode":"wide","href":"/v1.15.29/en/tools/automation/apifyactorstool"},{"title":"Composio Tool","icon":"gear-code","mode":"wide","href":"/v1.15.29/en/tools/automation/composiotool"},{"title":"MultiOn Tool","icon":"globe","mode":"wide","href":"/v1.15.29/en/tools/automation/multiontool"},{"title":"Wait Tool","icon":"hourglass-half","mode":"wide","href":"/v1.15.29/en/tools/automation/waittool"},{"title":"Zapier Actions Tool","icon":"bolt","mode":"wide","href":"/v1.15.29/en/tools/automation/zapieractionstool"}]}]},{"group":"Observability","pages":[{"title":"CrewAI Tracing","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.15.29/en/observability/tracing"},{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/observability/overview"},{"title":"Arize Phoenix","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.15.29/en/observability/arize-phoenix"},{"title":"Braintrust","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.15.29/en/observability/braintrust"},{"title":"Datadog Integration","icon":"dog","mode":"wide","href":"/v1.15.29/en/observability/datadog"},{"title":"Galileo","icon":"telescope","mode":"wide","href":"/v1.15.29/en/observability/galileo"},{"title":"LangDB Integration","icon":"database","mode":"wide","href":"/v1.15.29/en/observability/langdb"},{"title":"Langfuse Integration","icon":"vials","mode":"wide","href":"/v1.15.29/en/observability/langfuse"},{"title":"Langtrace Integration","icon":"chart-line","mode":"wide","href":"/v1.15.29/en/observability/langtrace"},{"title":"Maxim Integration","icon":"infinity","mode":"wide","href":"/v1.15.29/en/observability/maxim"},{"title":"MLflow Integration","icon":"bars-staggered","mode":"wide","href":"/v1.15.29/en/observability/mlflow"},{"title":"Neatlogs Integration","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.15.29/en/observability/neatlogs"},{"title":"OpenLIT Integration","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.15.29/en/observability/openlit"},{"title":"Opik Integration","icon":"meteor","mode":"wide","href":"/v1.15.29/en/observability/opik"},{"title":"Patronus AI Evaluation","icon":"shield-check","mode":"wide","href":"/v1.15.29/en/observability/patronus-evaluation"},{"title":"Portkey Integration","icon":"key","mode":"wide","href":"/v1.15.29/en/observability/portkey"},{"title":"Weave Integration","icon":"radar","mode":"wide","href":"/v1.15.29/en/observability/weave"},{"title":"TrueFoundry Integration","icon":"chart-line","mode":"wide","href":"/v1.15.29/en/observability/truefoundry"}]},{"group":"Learn","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.15.29/en/learn/overview"},{"title":"Strategic LLM Selection Guide","icon":"brain-circuit","mode":"wide","href":"/v1.15.29/en/learn/llm-selection-guide"},{"title":"Conditional Tasks","icon":"diagram-subtask","mode":"wide","href":"/v1.15.29/en/learn/conditional-tasks"},{"title":"Coding Agents","icon":"rectangle-code","mode":"wide","href":"/v1.15.29/en/learn/coding-agents"},{"title":"Create Custom Tools","icon":"hammer","mode":"wide","href":"/v1.15.29/en/learn/create-custom-tools"},{"title":"Custom LLM Implementation","icon":"code","mode":"wide","href":"/v1.15.29/en/learn/custom-llm"},{"title":"Custom Manager Agent","icon":"user-shield","mode":"wide","href":"/v1.15.29/en/learn/custom-manager-agent"},{"title":"Customize Agents","icon":"user-pen","mode":"wide","href":"/v1.15.29/en/learn/customizing-agents"},{"title":"Image Generation with DALL-E","icon":"image","mode":"wide","href":"/v1.15.29/en/learn/dalle-image-generation"},{"title":"Force Tool Output as Result","icon":"wrench-simple","mode":"wide","href":"/v1.15.29/en/learn/force-tool-output-as-result"},{"title":"Hierarchical Process","icon":"sitemap","mode":"wide","href":"/v1.15.29/en/learn/hierarchical-process"},{"title":"Human Input on Execution","icon":"user-plus","mode":"wide","href":"/v1.15.29/en/learn/human-input-on-execution"},{"title":"Human-in-the-Loop (HITL) Workflows","icon":"user-check","mode":"wide","href":"/v1.15.29/en/learn/human-in-the-loop"},{"title":"Human Feedback in Flows","icon":"user-check","mode":"wide","href":"/v1.15.29/en/learn/human-feedback-in-flows"},{"title":"Kickoff Crew Asynchronously","icon":"rocket-launch","mode":"wide","href":"/v1.15.29/en/learn/kickoff-async"},{"title":"Kickoff Crew for Each","icon":"at","mode":"wide","href":"/v1.15.29/en/learn/kickoff-for-each"},{"title":"Streaming Runtime Contract","icon":"tower-broadcast","mode":"wide","href":"/v1.15.29/en/learn/streaming-runtime-contract"},{"title":"Consuming Streams","icon":"square-terminal","mode":"wide","href":"/v1.15.29/en/learn/consuming-streams"},{"title":"Connect to any LLM","icon":"brain-circuit","mode":"wide","href":"/v1.15.29/en/learn/llm-connections"},{"title":"Using CrewAI Without LiteLLM","icon":"shield-check","mode":"wide","href":"/v1.15.29/en/learn/litellm-removal-guide"},{"title":"Using Multimodal Agents","icon":"video","mode":"wide","href":"/v1.15.29/en/learn/multimodal-agents"},{"title":"Replay Tasks from Latest Crew Kickoff","icon":"arrow-right","mode":"wide","href":"/v1.15.29/en/learn/replay-tasks-from-latest-crew-kickoff"},{"title":"Sequential Processes","icon":"forward","mode":"wide","href":"/v1.15.29/en/learn/sequential-process"},{"title":"Using Annotations in crew.py","icon":"at","mode":"wide","href":"/v1.15.29/en/learn/using-annotations"},{"group":"Execution Hooks","pages":[{"title":"Execution Hooks","mode":"wide","href":"/v1.15.29/en/learn/execution-hooks"},{"title":"LLM Call Hooks","mode":"wide","href":"/v1.15.29/en/learn/llm-hooks"},{"title":"Tool Call Hooks","mode":"wide","href":"/v1.15.29/en/learn/tool-hooks"},{"title":"Execution Boundary Hooks","mode":"wide","href":"/v1.15.29/en/learn/execution-boundary-hooks"},{"title":"Step Hooks","mode":"wide","href":"/v1.15.29/en/learn/step-hooks"},{"title":"Before and After Kickoff Hooks","mode":"wide","href":"/v1.15.29/en/learn/before-and-after-kickoff-hooks"}]}]},{"group":"Telemetry","pages":[{"title":"Telemetry","icon":"signal-stream","mode":"wide","href":"/v1.15.29/en/telemetry"}]}]},{"tab":"AMP","icon":"briefcase","href":"https://docs-platform.crewai.com/platform/en/introduction"},{"tab":"API Reference","icon":"magnifying-glass","pages":[{"title":"API Reference","href":"/v1.15.29/en/api-reference/introduction"}]},{"tab":"Examples","icon":"code","pages":[{"title":"Examples","href":"/v1.15.29/en/examples/example"}]},{"tab":"Changelog","icon":"clock","pages":[{"title":"Changelog","href":"/v1.15.29/en/changelog"}]}]},{"version":"v1.15.28","pages":[{"title":"v1.15.28","href":"/v1.15.28/en/concepts/checkpointing"}]},{"version":"v1.15.27","pages":[{"title":"v1.15.27","href":"/v1.15.27/en/concepts/checkpointing"}]},{"version":"v1.15.26","pages":[{"title":"v1.15.26","href":"/v1.15.26/en/concepts/checkpointing"}]},{"version":"v1.15.25","pages":[{"title":"v1.15.25","href":"/v1.15.25/en/concepts/checkpointing"}]},{"version":"v1.15.24","pages":[{"title":"v1.15.24","href":"/v1.15.24/en/concepts/checkpointing"}]},{"version":"v1.15.23","pages":[{"title":"v1.15.23","href":"/v1.15.23/en/concepts/checkpointing"}]},{"version":"v1.15.22","pages":[{"title":"v1.15.22","href":"/v1.15.22/en/concepts/checkpointing"}]},{"version":"v1.15.21","pages":[{"title":"v1.15.21","href":"/v1.15.21/en/concepts/checkpointing"}]},{"version":"v1.15.20","pages":[{"title":"v1.15.20","href":"/v1.15.20/en/concepts/checkpointing"}]},{"version":"v1.15.19","pages":[{"title":"v1.15.19","href":"/v1.15.19/en/concepts/checkpointing"}]},{"version":"v1.15.18","pages":[{"title":"v1.15.18","href":"/v1.15.18/en/concepts/checkpointing"}]},{"version":"v1.15.17","pages":[{"title":"v1.15.17","href":"/v1.15.17/en/concepts/checkpointing"}]},{"version":"v1.15.16","pages":[{"title":"v1.15.16","href":"/v1.15.16/en/concepts/checkpointing"}]},{"version":"v1.15.15","pages":[{"title":"v1.15.15","href":"/v1.15.15/en/concepts/checkpointing"}]},{"version":"v1.15.14","pages":[{"title":"v1.15.14","href":"/v1.15.14/en/concepts/checkpointing"}]},{"version":"v1.15.13","pages":[{"title":"v1.15.13","href":"/v1.15.13/en/concepts/checkpointing"}]},{"version":"v1.15.12","pages":[{"title":"v1.15.12","href":"/v1.15.12/en/concepts/checkpointing"}]},{"version":"v1.15.11","pages":[{"title":"v1.15.11","href":"/v1.15.11/en/concepts/checkpointing"}]},{"version":"v1.15.10","pages":[{"title":"v1.15.10","href":"/v1.15.10/en/concepts/checkpointing"}]},{"version":"v1.15.9","pages":[{"title":"v1.15.9","href":"/v1.15.9/en/concepts/checkpointing"}]},{"version":"v1.15.8","pages":[{"title":"v1.15.8","href":"/v1.15.8/en/concepts/checkpointing"}]},{"version":"v1.15.7","pages":[{"title":"v1.15.7","href":"/v1.15.7/en/concepts/checkpointing"}]},{"version":"v1.15.6","pages":[{"title":"v1.15.6","href":"/v1.15.6/en/concepts/checkpointing"}]},{"version":"v1.15.5","pages":[{"title":"v1.15.5","href":"/v1.15.5/en/concepts/checkpointing"}]},{"version":"v1.15.4","pages":[{"title":"v1.15.4","href":"/v1.15.4/en/concepts/checkpointing"}]},{"version":"v1.15.3","pages":[{"title":"v1.15.3","href":"/v1.15.3/en/concepts/checkpointing"}]},{"version":"v1.15.2","pages":[{"title":"v1.15.2","href":"/v1.15.2/en/concepts/checkpointing"}]},{"version":"v1.15.1","pages":[{"title":"v1.15.1","href":"/v1.15.1/en/concepts/checkpointing"}]},{"version":"v1.15.0","pages":[{"title":"v1.15.0","href":"/v1.15.0/en/concepts/checkpointing"}]},{"version":"v1.14.7","pages":[{"title":"v1.14.7","href":"/v1.14.7/en/concepts/checkpointing"}]},{"version":"v1.14.6","pages":[{"title":"v1.14.6","href":"/v1.14.6/en/concepts/checkpointing"}]},{"version":"v1.14.5","pages":[{"title":"v1.14.5","href":"/v1.14.5/en/concepts/checkpointing"}]},{"version":"v1.14.4","pages":[{"title":"v1.14.4","href":"/v1.14.4/en/concepts/checkpointing"}]},{"version":"v1.14.3","pages":[{"title":"v1.14.3","href":"/v1.14.3/en/concepts/checkpointing"}]},{"version":"v1.14.2","pages":[{"title":"v1.14.2","href":"/v1.14.2/en/concepts/checkpointing"}]},{"version":"v1.14.1","pages":[{"title":"v1.14.1","href":"/v1.14.1/en/concepts/checkpointing"}]},{"version":"v1.14.0","pages":[{"title":"v1.14.0","href":"/v1.14.0/en/concepts/checkpointing"}]},{"version":"v1.13.0","pages":[{"title":"v1.13.0","href":"/v1.13.0/en/concepts/agents"}]},{"version":"v1.12.2","pages":[{"title":"v1.12.2","href":"/v1.12.2/en/concepts/agents"}]},{"version":"v1.12.1","pages":[{"title":"v1.12.1","href":"/v1.12.1/en/concepts/agents"}]},{"version":"v1.12.0","pages":[{"title":"v1.12.0","href":"/v1.12.0/en/concepts/agents"}]},{"version":"v1.11.1","pages":[{"title":"v1.11.1","href":"/v1.11.1/en/concepts/agents"}]},{"version":"v1.11.0","pages":[{"title":"v1.11.0","href":"/v1.11.0/en/concepts/agents"}]},{"version":"v1.10.1","pages":[{"title":"v1.10.1","href":"/v1.10.1/en/concepts/agents"}]},{"version":"v1.10.0","pages":[{"title":"v1.10.0","href":"/v1.10.0/en/concepts/agents"}]}],"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://crewai.com"},{"anchor":"Forum","icon":"discourse","href":"https://community.crewai.com"},{"anchor":"Blog","icon":"newspaper","href":"https://blog.crewai.com"},{"anchor":"CrewGPT","icon":"robot","href":"https://chatgpt.com/g/g-qqTuUWsBY-crewai-assistant"}]}},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/v1.15.29/pt-BR/concepts/checkpointing"}]},{"language":"ko","pages":[{"title":"ko","href":"/v1.15.29/ko/concepts/checkpointing"}]},{"language":"ar","pages":[{"title":"ar","href":"/v1.15.29/ar/concepts/checkpointing"}]}]},"basePath":"","title":"Checkpointing - CrewAI","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-vIkpUzVS.js","DynamicMarkdown-TAXIW2vN.js","zoom-image-lightbox-y00V8U6G.js","lightbox-handle-r17bVUz3.js"]}