Checkpointing automatically saves execution state during a run. If a crew, flow, or agent fails mid-execution, you can restore from the last checkpoint and resume without re-running completed work.
Using ["*"] or high-frequency events like llm_call_completed will write many checkpoint files and may impact performance. Use max_checkpoints to limit disk usage.
The state argument is the RuntimeState passed automatically by the event bus when your handler accepts 3 parameters. You can register handlers on any event type listed in the Event Listeners documentation.Checkpointing is best-effort: if a checkpoint write fails, the error is logged but execution continues uninterrupted.
The crewai checkpoint command gives you a TUI for browsing, inspecting, resuming, and forking checkpoints. It auto-detects whether your checkpoints are JSON files or a SQLite database.
# Launch the TUI — auto-detects .checkpoints/ or .checkpoints.dbcrewai checkpoint# Point at a specific locationcrewai checkpoint --location ./my_checkpointscrewai checkpoint --location ./.checkpoints.db
The left panel is a tree view. Checkpoints are grouped by branch, and forks nest under the checkpoint they diverged from. Select a checkpoint to see its metadata, entity state, and task progress in the detail panel. Hit Resume to pick up where it left off, or Fork to start a new branch from that point.
When a checkpoint is selected, the detail panel shows:
Inputs — if the original kickoff had inputs (e.g. {topic}), they appear as editable fields pre-filled with the original values. Change them before resuming or forking.
Task outputs — completed tasks show their output in editable text areas. Edit a task’s output to change the context that downstream tasks receive. When you modify a task output and hit Fork, all subsequent tasks are invalidated and re-run with the new context.
This is useful for “what if” exploration — fork from a checkpoint, tweak a task’s result, and see how it changes downstream behavior.
# List all checkpointscrewai checkpoint list ./my_checkpoints# Inspect a specific checkpointcrewai checkpoint info ./my_checkpoints/20260407T120000_abc123.json# Inspect latest in a SQLite databasecrewai checkpoint info ./.checkpoints.db
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":""},"chroma":{"liveDeploymentHistoryId":"6aecc3b27d833b473e1cae05","collectionId":"802ea765-608d-46fe-93e8-2e231eb5e85a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecc3b27d833b473e1cae05"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aed6c2e48a600c03b62aa16","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"en","tag":"Documentation","count":9378},{"language":"ko","tag":"기술 문서","count":8580},{"language":"ar","tag":"التقنية التوثيق","count":7984},{"language":"pt-BR","tag":"Documentação","count":7957},{"language":"en","tag":"Tools","count":4285},{"language":"ko","tag":"도구 (Tools)","count":3950},{"language":"ar","tag":"الأدوات","count":3716},{"language":"pt-BR","tag":"Ferramentas","count":3377},{"language":"en","tag":"Learn","count":1495},{"language":"ko","tag":"학습","count":1329},{"language":"pt-BR","tag":"Aprenda","count":1329},{"language":"ar","tag":"التعلّم","count":1233},{"language":"en","tag":"Core Concepts","count":1129},{"language":"ko","tag":"핵심 개념","count":1094},{"language":"pt-BR","tag":"Conceitos-Chave","count":1094},{"language":"ar","tag":"المفاهيم الأساسية","count":1022},{"language":"en","tag":"Observability","count":954},{"language":"en","tag":"Guides","count":938},{"language":"en","tag":"Search \u0026 Research","count":930},{"language":"ko","tag":"Observability","count":901},{"language":"pt-BR","tag":"Observabilidade","count":901},{"language":"ko","tag":"검색 및 연구","count":889},{"language":"ar","tag":"Observability","count":833},{"language":"ar","tag":"البحث والاستكشاف","count":825},{"language":"en","tag":"Web Scraping \u0026 Browsing","count":783},{"language":"en","tag":"File \u0026 Document","count":742},{"language":"ko","tag":"파일 \u0026 문서","count":742},{"language":"ko","tag":"웹 스크래핑 \u0026 브라우징","count":742},{"language":"pt-BR","tag":"Web Scraping \u0026 Navegação","count":689},{"language":"ar","tag":"الملفات والمستندات","count":686},{"language":"ar","tag":"استخراج بيانات الويب","count":686},{"language":"ko","tag":"가이드","count":637},{"language":"pt-BR","tag":"Guias","count":637},{"language":"pt-BR","tag":"Arquivo \u0026 Documento","count":636},{"language":"ar","tag":"الأدلّة","count":604},{"language":"pt-BR","tag":"Pesquisa","count":530},{"language":"ko","tag":"시작 안내","count":510},{"language":"pt-BR","tag":"Começando","count":510},{"language":"en","tag":"AI \u0026 Machine Learning","count":506},{"language":"ar","tag":"البدء","count":478}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v1.14.5/en/concepts/checkpointing","slug":"/v1.14.5/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.14.5/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},{CodeBlock,Frame,Heading,OptimizedImage,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsx(_components.p,{children:`Checkpointing is in early release. APIs may change in future versions.`})}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Checkpointing automatically saves execution state during a run. If a crew, flow, or agent fails mid-execution, you can restore from the last checkpoint and resume without re-running completed work.`}),`\n`,_jsx(Heading,{level:`2`,id:`quick-start`,children:`Quick Start`}),`\n`,_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:`#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:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# uses defaults: ./.checkpoints, on task_completed`})]}),`\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:` crew.kickoff()`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Checkpoint files are written to `,_jsx(_components.code,{children:`./.checkpoints/`}),` after each completed task.`]}),`\n`,_jsx(Heading,{level:`2`,id:`configuration`,children:`Configuration`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`CheckpointConfig`}),` for full control:`]}),`\n`,_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`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`checkpointconfig-fields`,children:`CheckpointConfig Fields`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Field`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Type`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Default`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`location`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`str`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`\"./.checkpoints\"`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Storage destination — a directory for `,_jsx(_components.code,{children:`JsonProvider`}),`, a database file path for `,_jsx(_components.code,{children:`SqliteProvider`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`on_events`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`list[str]`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`[\"task_completed\"]`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Event types that trigger a checkpoint`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`provider`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`BaseProvider`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`JsonProvider()`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Storage backend`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`max_checkpoints`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`int | None`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`None`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Max checkpoints to keep. Oldest are pruned after each write. Pruning is handled by the provider.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`restore_from`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`Path | str | None`})}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`None`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Path to a checkpoint to restore from. Used when passing config via a kickoff method’s `,_jsx(_components.code,{children:`from_checkpoint`}),` parameter.`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`inheritance-and-opt-out`,children:`Inheritance and Opt-Out`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`checkpoint`}),` field on Crew, Flow, and Agent accepts `,_jsx(_components.code,{children:`CheckpointConfig`}),`, `,_jsx(_components.code,{children:`True`}),`, `,_jsx(_components.code,{children:`False`}),`, or `,_jsx(_components.code,{children:`None`}),`:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Value`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Behavior`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`None`}),` (default)`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`Inherit from parent. An agent inherits its crew’s config.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`True`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Enable with defaults.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`False`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Explicit opt-out. Stops inheritance from parent.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`CheckpointConfig(...)`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Custom configuration.`})]})]})]}),`\n`,_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:`), `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# inherits crew's checkpoint`})]}),`\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:`), `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# opted out, no checkpoints`})]}),`\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`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`resuming-from-a-checkpoint`,children:`Resuming from a Checkpoint`}),`\n`,_jsxs(_components.p,{children:[`Pass a `,_jsx(_components.code,{children:`CheckpointConfig`}),` with `,_jsx(_components.code,{children:`restore_from`}),` to any kickoff method. The crew restores from that checkpoint, skips completed tasks, and resumes.`]}),`\n`,_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:`#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(`}),_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:`])`})]}),`\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:`\"./my_checkpoints/20260407T120000_abc123.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`]})})}),`\n`,_jsxs(_components.p,{children:[`Remaining `,_jsx(_components.code,{children:`CheckpointConfig`}),` fields apply to the new run, so checkpointing continues after the restore.`]}),`\n`,_jsx(_components.p,{children:`You can also use the classmethod directly:`}),`\n`,_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/20260407T120000_abc123.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.from_checkpoint(config)`})]}),`\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`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`forking-from-a-checkpoint`,children:`Forking from a Checkpoint`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`fork()`}),` restores a checkpoint and starts a new execution branch. Useful for exploring alternative paths from the same point.`]}),`\n`,_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:`#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:`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/20260407T120000_abc123.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`]})})}),`\n`,_jsxs(_components.p,{children:[`Each fork gets a unique lineage ID so checkpoints from different branches don’t collide. The `,_jsx(_components.code,{children:`branch`}),` label is optional and auto-generated if omitted.`]}),`\n`,_jsx(Heading,{level:`2`,id:`works-on-crew-flow-and-agent`,children:`Works on Crew, Flow, and Agent`}),`\n`,_jsx(Heading,{level:`3`,id:`crew`,children:`Crew`}),`\n`,_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`]})})}),`\n`,_jsxs(_components.p,{children:[`Default trigger: `,_jsx(_components.code,{children:`task_completed`}),` (one checkpoint per finished task).`]}),`\n`,_jsx(Heading,{level:`3`,id:`flow`,children:`Flow`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`24`,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:`24`,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(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Resume`})}),`\n`,_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:`\"./flow_cp/20260407T120000_abc123.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:`flow `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` MyFlow.from_checkpoint(config)`})]}),`\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`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`agent`,children:`Agent`}),`\n`,_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`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`storage-providers`,children:`Storage Providers`}),`\n`,_jsx(_components.p,{children:`CrewAI ships with two checkpoint storage providers.`}),`\n`,_jsx(Heading,{level:`3`,id:`jsonprovider-default`,children:`JsonProvider (default)`}),`\n`,_jsx(_components.p,{children:`Writes each checkpoint as a separate JSON file. Simple, human-readable, easy to inspect.`}),`\n`,_jsx(CodeBlock,{filename:``,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(), `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# this is the default`})]}),`\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:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# prunes oldest files`})]}),`\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`]})})}),`\n`,_jsxs(_components.p,{children:[`Files are named `,_jsx(_components.code,{children:`\u003ctimestamp>_\u003cuuid>.json`}),` inside the location directory.`]}),`\n`,_jsx(Heading,{level:`3`,id:`sqliteprovider`,children:`SqliteProvider`}),`\n`,_jsx(_components.p,{children:`Stores all checkpoints in a single SQLite database file. Better for high-frequency checkpointing and avoids many small files.`}),`\n`,_jsx(CodeBlock,{filename:``,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`]})})}),`\n`,_jsx(_components.p,{children:`WAL journal mode is enabled for concurrent read access.`}),`\n`,_jsx(Heading,{level:`2`,id:`event-types`,children:`Event Types`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`on_events`}),` field accepts any combination of event type strings. Common choices:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Use Case`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Events`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`After each task (Crew)`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`[\"task_completed\"]`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`After each flow method`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`[\"method_execution_finished\"]`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`After agent execution`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`[\"agent_execution_completed\"]`}),`, `,_jsx(_components.code,{children:`[\"lite_agent_execution_completed\"]`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`On crew completion only`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`[\"crew_kickoff_completed\"]`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`After every LLM call`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`[\"llm_call_completed\"]`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`On everything`}),_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`[\"*\"]`})})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Using `,_jsx(_components.code,{children:`[\"*\"]`}),` or high-frequency events like `,_jsx(_components.code,{children:`llm_call_completed`}),` will write many checkpoint files and may impact performance. Use `,_jsx(_components.code,{children:`max_checkpoints`}),` to limit disk usage.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`manual-checkpointing`,children:`Manual Checkpointing`}),`\n`,_jsxs(_components.p,{children:[`For full control, register your own event handler and call `,_jsx(_components.code,{children:`state.checkpoint()`}),` directly:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,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:`14`,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.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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Sync handler`})}),`\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:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_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(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Async handler`})}),`\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:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`state`}),_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`]})})}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`state`}),` argument is the `,_jsx(_components.code,{children:`RuntimeState`}),` passed automatically by the event bus when your handler accepts 3 parameters. You can register handlers on any event type listed in the `,_jsx(_components.a,{href:`/en/concepts/event-listener`,children:`Event Listeners`}),` documentation.`]}),`\n`,_jsx(_components.p,{children:`Checkpointing is best-effort: if a checkpoint write fails, the error is logged but execution continues uninterrupted.`}),`\n`,_jsx(Heading,{level:`2`,id:`cli`,children:`CLI`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`crewai checkpoint`}),` command gives you a TUI for browsing, inspecting, resuming, and forking checkpoints. It auto-detects whether your checkpoints are JSON files or a SQLite database.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,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:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Launch the TUI — auto-detects .checkpoints/ or .checkpoints.db`})}),`\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`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Point at a specific location`})}),`\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`]})})}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/crewai/v-aWLJeQqHlTOtQc/images/checkpointing.png?fit=max\u0026auto=format\u0026n=v-aWLJeQqHlTOtQc\u0026q=85\u0026s=a95d61825061d330042831fff5291fab`,alt:`Checkpoint TUI`,\"data-og-width\":`2598`,width:`2598`,\"data-og-height\":`1060`,height:`1060`,\"data-path\":`images/checkpointing.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/crewai/v-aWLJeQqHlTOtQc/images/checkpointing.png?w=280\u0026fit=max\u0026auto=format\u0026n=v-aWLJeQqHlTOtQc\u0026q=85\u0026s=abdcbf826723c4b9b8662114fbd50270 280w, https://mintcdn.com/crewai/v-aWLJeQqHlTOtQc/images/checkpointing.png?w=560\u0026fit=max\u0026auto=format\u0026n=v-aWLJeQqHlTOtQc\u0026q=85\u0026s=cce30e0e17b78314e9ca9135d91232d7 560w, https://mintcdn.com/crewai/v-aWLJeQqHlTOtQc/images/checkpointing.png?w=840\u0026fit=max\u0026auto=format\u0026n=v-aWLJeQqHlTOtQc\u0026q=85\u0026s=250874af43833ee18200599dd5219229 840w, https://mintcdn.com/crewai/v-aWLJeQqHlTOtQc/images/checkpointing.png?w=1100\u0026fit=max\u0026auto=format\u0026n=v-aWLJeQqHlTOtQc\u0026q=85\u0026s=5d87752aed7da97f66bc294214008347 1100w, https://mintcdn.com/crewai/v-aWLJeQqHlTOtQc/images/checkpointing.png?w=1650\u0026fit=max\u0026auto=format\u0026n=v-aWLJeQqHlTOtQc\u0026q=85\u0026s=02361bc0ef9013d624357b2ba9abdf3d 1650w, https://mintcdn.com/crewai/v-aWLJeQqHlTOtQc/images/checkpointing.png?w=2500\u0026fit=max\u0026auto=format\u0026n=v-aWLJeQqHlTOtQc\u0026q=85\u0026s=f0c28b12d018e30f6f775725d04ff1e4 2500w`})}),`\n`,_jsxs(_components.p,{children:[`The left panel is a tree view. Checkpoints are grouped by branch, and forks nest under the checkpoint they diverged from. Select a checkpoint to see its metadata, entity state, and task progress in the detail panel. Hit `,_jsx(_components.strong,{children:`Resume`}),` to pick up where it left off, or `,_jsx(_components.strong,{children:`Fork`}),` to start a new branch from that point.`]}),`\n`,_jsx(Heading,{level:`3`,id:`editing-inputs-and-task-outputs`,children:`Editing inputs and task outputs`}),`\n`,_jsx(_components.p,{children:`When a checkpoint is selected, the detail panel shows:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Inputs`}),` — if the original kickoff had inputs (e.g. `,_jsx(_components.code,{children:`{topic}`}),`), they appear as editable fields pre-filled with the original values. Change them before resuming or forking.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Task outputs`}),` — completed tasks show their output in editable text areas. Edit a task’s output to change the context that downstream tasks receive. When you modify a task output and hit Fork, all subsequent tasks are invalidated and re-run with the new context.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`This is useful for “what if” exploration — fork from a checkpoint, tweak a task’s result, and see how it changes downstream behavior.`}),`\n`,_jsx(Heading,{level:`3`,id:`subcommands`,children:`Subcommands`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,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:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# List all 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:` list`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./my_checkpoints`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Inspect a specific 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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` info`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./my_checkpoints/20260407T120000_abc123.json`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Inspect latest in a SQLite database`})}),`\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`]})})})]})}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.14.5/en/concepts/checkpointing"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Quick Start","slug":"quick-start","depth":2,"children":[]},{"title":"Configuration","slug":"configuration","depth":2,"children":[{"title":"CheckpointConfig Fields","slug":"checkpointconfig-fields","depth":3,"children":[]},{"title":"Inheritance and Opt-Out","slug":"inheritance-and-opt-out","depth":3,"children":[]}]},{"title":"Resuming from a Checkpoint","slug":"resuming-from-a-checkpoint","depth":2,"children":[]},{"title":"Forking from a Checkpoint","slug":"forking-from-a-checkpoint","depth":2,"children":[]},{"title":"Works on Crew, Flow, and Agent","slug":"works-on-crew-flow-and-agent","depth":2,"children":[{"title":"Crew","slug":"crew","depth":3,"children":[]},{"title":"Flow","slug":"flow","depth":3,"children":[]},{"title":"Agent","slug":"agent","depth":3,"children":[]}]},{"title":"Storage Providers","slug":"storage-providers","depth":2,"children":[{"title":"JsonProvider (default)","slug":"jsonprovider-default","depth":3,"children":[]},{"title":"SqliteProvider","slug":"sqliteprovider","depth":3,"children":[]}]},{"title":"Event Types","slug":"event-types","depth":2,"children":[]},{"title":"Manual Checkpointing","slug":"manual-checkpointing","depth":2,"children":[]},{"title":"CLI","slug":"cli","depth":2,"children":[{"title":"Editing inputs and task outputs","slug":"editing-inputs-and-task-outputs","depth":3,"children":[]},{"title":"Subcommands","slug":"subcommands","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.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":1},"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":0},"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.14.5/en/concepts/checkpointing","matchLevel":0},"pt-BR":{"href":"/v1.14.5/pt-BR/concepts/checkpointing","matchLevel":1},"ko":{"href":"/v1.14.5/ko/concepts/checkpointing","matchLevel":1},"ar":{"href":"/v1.14.5/ar/concepts/checkpointing","matchLevel":1}}},"lastModified":"2026-06-17T16:03:29.307Z","originalFileLocation":"v1.14.5/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.14.5/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.14.5/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.14.5/en/concepts/checkpointing.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.crewai.com/v1.14.5/en/concepts/checkpointing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.crewai.com/v1.14.5/pt-BR/concepts/checkpointing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.crewai.com/v1.14.5/ko/concepts/checkpointing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.crewai.com/v1.14.5/ar/concepts/checkpointing\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.crewai.com/v1.14.5/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.14.5/en/concepts/checkpointing#webpage\",\"url\":\"https://docs.crewai.com/v1.14.5/en/concepts/checkpointing\",\"name\":\"Checkpointing\",\"description\":\"Automatically save execution state so crews, flows, and agents can resume after failures.\",\"dateModified\":\"2026-06-17T16:03:29.307Z\",\"isPartOf\":{\"@id\":\"https://docs.crewai.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.crewai.com/v1.14.5/en/concepts/checkpointing#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.crewai.com/v1.14.5/en/concepts/checkpointing#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Core Concepts\",\"item\":\"https://docs.crewai.com/v1.14.5/en/concepts/agents\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Checkpointing\",\"item\":\"https://docs.crewai.com/v1.14.5/en/concepts/checkpointing\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.crewai.com/v1.14.5/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.14.5/en/concepts/checkpointing\",\"mainEntityOfPage\":{\"@id\":\"https://docs.crewai.com/v1.14.5/en/concepts/checkpointing#webpage\"},\"image\":\"https://docs.crewai.com/images/crew_only_logo.png\",\"dateModified\":\"2026-06-17T16:03:29.307Z\",\"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\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"CrewAI","nav":{"global":null,"languages":[{"language":"en","versions":[{"version":"Edge","tag":"Edge","pages":[{"title":"Edge","href":"/edge/en/concepts/checkpointing"}]},{"version":"v1.15.36","default":true,"tag":"Latest","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","pages":[{"title":"v1.15.29","href":"/v1.15.29/en/concepts/checkpointing"}]},{"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","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.14.5/en/introduction"},{"title":"Build with AI","icon":"robot","mode":"wide","href":"/v1.14.5/en/guides/coding-tools/build-with-ai"},{"title":"Skills","icon":"wand-magic-sparkles","mode":"wide","href":"/v1.14.5/en/skills"},{"title":"Installation","icon":"wrench","mode":"wide","href":"/v1.14.5/en/installation"},{"title":"Quickstart","icon":"rocket","mode":"wide","href":"/v1.14.5/en/quickstart"}]},{"group":"Guides","pages":[{"group":"Strategy","icon":"compass","pages":[{"title":"Evaluating Use Cases for CrewAI","icon":"scale-balanced","mode":"wide","href":"/v1.14.5/en/guides/concepts/evaluating-use-cases"}]},{"group":"Agents","icon":"user","pages":[{"title":"Crafting Effective Agents","icon":"robot","mode":"wide","href":"/v1.14.5/en/guides/agents/crafting-effective-agents"}]},{"group":"Crews","icon":"users","pages":[{"title":"Build Your First Crew","icon":"users-gear","mode":"wide","href":"/v1.14.5/en/guides/crews/first-crew"}]},{"group":"Flows","icon":"code-branch","pages":[{"title":"Build Your First Flow","icon":"diagram-project","mode":"wide","href":"/v1.14.5/en/guides/flows/first-flow"},{"title":"Mastering Flow State Management","icon":"diagram-project","mode":"wide","href":"/v1.14.5/en/guides/flows/mastering-flow-state"},{"title":"Migrating from inputs.id to restore_from_state_id","icon":"arrow-right-arrow-left","href":"/v1.14.5/en/guides/flows/inputs-id-deprecation"}]},{"group":"Tools","icon":"wrench","pages":[{"title":"Publish Custom Tools","icon":"box-open","mode":"wide","href":"/v1.14.5/en/guides/tools/publish-custom-tools"}]},{"group":"Coding Tools","icon":"terminal","pages":[{"title":"Coding Tools","icon":"terminal","mode":"wide","href":"/v1.14.5/en/guides/coding-tools/agents-md"},{"title":"Build with AI","icon":"robot","mode":"wide","href":"/v1.14.5/en/guides/coding-tools/build-with-ai"}]},{"group":"Advanced","icon":"gear","pages":[{"title":"Customizing Prompts","icon":"message-pen","mode":"wide","href":"/v1.14.5/en/guides/advanced/customizing-prompts"},{"title":"Fingerprinting","icon":"fingerprint","mode":"wide","href":"/v1.14.5/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.14.5/en/guides/migration/migrating-from-langgraph"},{"title":"Upgrading CrewAI","icon":"arrow-up-circle","href":"/v1.14.5/en/guides/migration/upgrading-crewai"}]}]},{"group":"Core Concepts","pages":[{"title":"Agents","icon":"robot","mode":"wide","href":"/v1.14.5/en/concepts/agents"},{"title":"Agent Capabilities","icon":"puzzle-piece","mode":"wide","href":"/v1.14.5/en/concepts/agent-capabilities"},{"title":"Tasks","icon":"list-check","mode":"wide","href":"/v1.14.5/en/concepts/tasks"},{"title":"Crews","icon":"people-group","mode":"wide","href":"/v1.14.5/en/concepts/crews"},{"title":"Flows","icon":"arrow-progress","mode":"wide","href":"/v1.14.5/en/concepts/flows"},{"title":"Production Architecture","icon":"server","mode":"wide","href":"/v1.14.5/en/concepts/production-architecture"},{"title":"Knowledge","icon":"book","mode":"wide","href":"/v1.14.5/en/concepts/knowledge"},{"title":"Skills","icon":"bolt","mode":"wide","href":"/v1.14.5/en/concepts/skills"},{"title":"LLMs","icon":"microchip-ai","mode":"wide","href":"/v1.14.5/en/concepts/llms"},{"title":"Files","icon":"file-image","href":"/v1.14.5/en/concepts/files"},{"title":"Processes","icon":"bars-staggered","mode":"wide","href":"/v1.14.5/en/concepts/processes"},{"title":"Collaboration","icon":"screen-users","mode":"wide","href":"/v1.14.5/en/concepts/collaboration"},{"title":"Training","icon":"dumbbell","mode":"wide","href":"/v1.14.5/en/concepts/training"},{"title":"Memory","icon":"database","mode":"wide","href":"/v1.14.5/en/concepts/memory"},{"title":"Reasoning","icon":"brain","mode":"wide","href":"/v1.14.5/en/concepts/reasoning"},{"title":"Planning","icon":"ruler-combined","mode":"wide","href":"/v1.14.5/en/concepts/planning"},{"title":"Testing","icon":"vial","mode":"wide","href":"/v1.14.5/en/concepts/testing"},{"title":"CLI","icon":"terminal","mode":"wide","href":"/v1.14.5/en/concepts/cli"},{"title":"Tools","icon":"screwdriver-wrench","mode":"wide","href":"/v1.14.5/en/concepts/tools"},{"title":"Event Listeners","description":"Tap into CrewAI events to build custom integrations and monitoring","icon":"spinner","mode":"wide","href":"/v1.14.5/en/concepts/event-listener"},{"title":"Checkpointing","icon":"floppy-disk","mode":"wide","href":"/v1.14.5/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.14.5/en/mcp/overview"},{"title":"MCP DSL Integration","icon":"code","mode":"wide","href":"/v1.14.5/en/mcp/dsl-integration"},{"title":"Stdio Transport","icon":"server","mode":"wide","href":"/v1.14.5/en/mcp/stdio"},{"title":"SSE Transport","icon":"wifi","mode":"wide","href":"/v1.14.5/en/mcp/sse"},{"title":"Streamable HTTP Transport","icon":"globe","mode":"wide","href":"/v1.14.5/en/mcp/streamable-http"},{"title":"Connecting to Multiple MCP Servers","icon":"layer-group","mode":"wide","href":"/v1.14.5/en/mcp/multiple-servers"},{"title":"MCP Security Considerations","icon":"lock","mode":"wide","href":"/v1.14.5/en/mcp/security"}]},{"group":"Tools","pages":[{"title":"Tools Overview","icon":"toolbox","mode":"wide","href":"/v1.14.5/en/tools/overview"},{"group":"File \u0026 Document","icon":"folder-open","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.14.5/en/tools/file-document/overview"},{"title":"File Read","icon":"folders","mode":"wide","href":"/v1.14.5/en/tools/file-document/filereadtool"},{"title":"File Write","icon":"file-pen","mode":"wide","href":"/v1.14.5/en/tools/file-document/filewritetool"},{"title":"PDF RAG Search","icon":"file-pdf","mode":"wide","href":"/v1.14.5/en/tools/file-document/pdfsearchtool"},{"title":"DOCX RAG Search","icon":"file-word","mode":"wide","href":"/v1.14.5/en/tools/file-document/docxsearchtool"},{"title":"MDX RAG Search","icon":"markdown","mode":"wide","href":"/v1.14.5/en/tools/file-document/mdxsearchtool"},{"title":"XML RAG Search","icon":"file-xml","mode":"wide","href":"/v1.14.5/en/tools/file-document/xmlsearchtool"},{"title":"TXT RAG Search","icon":"file-lines","mode":"wide","href":"/v1.14.5/en/tools/file-document/txtsearchtool"},{"title":"JSON RAG Search","icon":"file-code","mode":"wide","href":"/v1.14.5/en/tools/file-document/jsonsearchtool"},{"title":"CSV RAG Search","icon":"file-csv","mode":"wide","href":"/v1.14.5/en/tools/file-document/csvsearchtool"},{"title":"Directory RAG Search","icon":"address-book","mode":"wide","href":"/v1.14.5/en/tools/file-document/directorysearchtool"},{"title":"Directory Read","icon":"folder-tree","mode":"wide","href":"/v1.14.5/en/tools/file-document/directoryreadtool"},{"title":"OCR Tool","icon":"image","mode":"wide","href":"/v1.14.5/en/tools/file-document/ocrtool"},{"title":"PDF Text Writing Tool","icon":"file-pdf","mode":"wide","href":"/v1.14.5/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.14.5/en/tools/web-scraping/overview"},{"title":"Scrape Website","icon":"magnifying-glass-location","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/scrapewebsitetool"},{"title":"Scrape Element From Website Tool","icon":"code","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/scrapeelementfromwebsitetool"},{"title":"Scrapfly Scrape Website Tool","icon":"spider","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/scrapflyscrapetool"},{"title":"Selenium Scraper","icon":"clipboard-user","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/seleniumscrapingtool"},{"title":"Scrapegraph Scrape Tool","icon":"chart-area","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/scrapegraphscrapetool"},{"title":"Spider Scraper","icon":"spider-web","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/spidertool"},{"title":"Browserbase Web Loader","icon":"browser","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/browserbaseloadtool"},{"title":"Hyperbrowser Load Tool","icon":"globe","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/hyperbrowserloadtool"},{"title":"Stagehand Tool","icon":"hand","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/stagehandtool"},{"title":"Firecrawl Crawl Website","icon":"fire-flame","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/firecrawlcrawlwebsitetool"},{"title":"Firecrawl Scrape Website","icon":"fire-flame","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/firecrawlscrapewebsitetool"},{"title":"Oxylabs Scrapers","icon":"globe","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/oxylabsscraperstool"},{"title":"Bright Data Tools","icon":"spider","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/brightdata-tools"},{"title":"You.com Content Extraction Tool","icon":"globe","mode":"wide","href":"/v1.14.5/en/tools/web-scraping/youai-contents"}]},{"group":"Search \u0026 Research","icon":"magnifying-glass","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.14.5/en/tools/search-research/overview"},{"title":"Google Serper Search","icon":"google","mode":"wide","href":"/v1.14.5/en/tools/search-research/serperdevtool"},{"title":"Brave Search Tools","icon":"searchengin","mode":"wide","href":"/v1.14.5/en/tools/search-research/bravesearchtool"},{"title":"Exa Search Tool","icon":"magnifying-glass","mode":"wide","href":"/v1.14.5/en/tools/search-research/exasearchtool"},{"title":"Linkup Search Tool","icon":"link","mode":"wide","href":"/v1.14.5/en/tools/search-research/linkupsearchtool"},{"title":"Github Search","icon":"github","mode":"wide","href":"/v1.14.5/en/tools/search-research/githubsearchtool"},{"title":"Website RAG Search","icon":"globe-stand","mode":"wide","href":"/v1.14.5/en/tools/search-research/websitesearchtool"},{"title":"Code Docs RAG Search","icon":"code","mode":"wide","href":"/v1.14.5/en/tools/search-research/codedocssearchtool"},{"title":"YouTube Channel RAG Search","icon":"youtube","mode":"wide","href":"/v1.14.5/en/tools/search-research/youtubechannelsearchtool"},{"title":"YouTube Video RAG Search","icon":"youtube","mode":"wide","href":"/v1.14.5/en/tools/search-research/youtubevideosearchtool"},{"title":"Tavily Search Tool","icon":"magnifying-glass","mode":"wide","href":"/v1.14.5/en/tools/search-research/tavilysearchtool"},{"title":"Tavily Extractor Tool","icon":"square-poll-horizontal","mode":"wide","href":"/v1.14.5/en/tools/search-research/tavilyextractortool"},{"title":"Tavily Research Tool","icon":"flask","mode":"wide","href":"/v1.14.5/en/tools/search-research/tavilyresearchtool"},{"title":"Arxiv Paper Tool","icon":"box-archive","mode":"wide","href":"/v1.14.5/en/tools/search-research/arxivpapertool"},{"title":"SerpApi Google Search Tool","icon":"google","mode":"wide","href":"/v1.14.5/en/tools/search-research/serpapi-googlesearchtool"},{"title":"SerpApi Google Shopping Tool","icon":"cart-shopping","mode":"wide","href":"/v1.14.5/en/tools/search-research/serpapi-googleshoppingtool"},{"title":"Databricks SQL Query Tool","icon":"trowel-bricks","mode":"wide","href":"/v1.14.5/en/tools/search-research/databricks-query-tool"},{"title":"You.com Search \u0026 Research Tools","icon":"magnifying-glass","mode":"wide","href":"/v1.14.5/en/tools/search-research/youai-search"}]},{"group":"Database \u0026 Data","icon":"database","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.14.5/en/tools/database-data/overview"},{"title":"MySQL RAG Search","icon":"database","mode":"wide","href":"/v1.14.5/en/tools/database-data/mysqltool"},{"title":"PG RAG Search","icon":"elephant","mode":"wide","href":"/v1.14.5/en/tools/database-data/pgsearchtool"},{"title":"Snowflake Search Tool","icon":"snowflake","mode":"wide","href":"/v1.14.5/en/tools/database-data/snowflakesearchtool"},{"title":"NL2SQL Tool","icon":"language","mode":"wide","href":"/v1.14.5/en/tools/database-data/nl2sqltool"},{"title":"Qdrant Vector Search Tool","icon":"vector-square","mode":"wide","href":"/v1.14.5/en/tools/database-data/qdrantvectorsearchtool"},{"title":"Weaviate Vector Search","icon":"network-wired","mode":"wide","href":"/v1.14.5/en/tools/database-data/weaviatevectorsearchtool"},{"title":"MongoDB Vector Search Tool","icon":"leaf","mode":"wide","href":"/v1.14.5/en/tools/database-data/mongodbvectorsearchtool"},{"title":"SingleStore Search Tool","icon":"circle","mode":"wide","href":"/v1.14.5/en/tools/database-data/singlestoresearchtool"}]},{"group":"AI \u0026 Machine Learning","icon":"brain","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/overview"},{"title":"DALL-E Tool","icon":"image","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/dalletool"},{"title":"Vision Tool","icon":"eye","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/visiontool"},{"title":"AI Mind Tool","icon":"brain","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/aimindtool"},{"title":"LlamaIndex Tool","icon":"address-book","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/llamaindextool"},{"title":"LangChain Tool","icon":"link","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/langchaintool"},{"title":"RAG Tool","icon":"vector-square","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/ragtool"},{"title":"Code Interpreter","icon":"code-simple","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/codeinterpretertool"},{"title":"Daytona Sandbox Tools","icon":"box","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/daytona"},{"title":"E2B Sandbox Tools","icon":"box","mode":"wide","href":"/v1.14.5/en/tools/ai-ml/e2bsandboxtools"}]},{"group":"Cloud \u0026 Storage","icon":"cloud","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.14.5/en/tools/cloud-storage/overview"},{"title":"S3 Reader Tool","icon":"aws","mode":"wide","href":"/v1.14.5/en/tools/cloud-storage/s3readertool"},{"title":"S3 Writer Tool","icon":"aws","mode":"wide","href":"/v1.14.5/en/tools/cloud-storage/s3writertool"},{"title":"Bedrock Knowledge Base Retriever","icon":"aws","mode":"wide","href":"/v1.14.5/en/tools/cloud-storage/bedrockkbretriever"}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.14.5/en/tools/integration/overview"},{"title":"Bedrock Invoke Agent Tool","icon":"aws","mode":"wide","href":"/v1.14.5/en/tools/integration/bedrockinvokeagenttool"},{"title":"CrewAI Run Automation Tool","icon":"robot","href":"/v1.14.5/en/tools/integration/crewaiautomationtool"},{"title":"Merge Agent Handler Tool","icon":"diagram-project","mode":"wide","href":"/v1.14.5/en/tools/integration/mergeagenthandlertool"}]},{"group":"Automation","icon":"bolt","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.14.5/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.14.5/en/tools/automation/apifyactorstool"},{"title":"Composio Tool","icon":"gear-code","mode":"wide","href":"/v1.14.5/en/tools/automation/composiotool"},{"title":"MultiOn Tool","icon":"globe","mode":"wide","href":"/v1.14.5/en/tools/automation/multiontool"},{"title":"Zapier Actions Tool","icon":"bolt","mode":"wide","href":"/v1.14.5/en/tools/automation/zapieractionstool"}]}]},{"group":"Observability","pages":[{"title":"CrewAI Tracing","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.14.5/en/observability/tracing"},{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.14.5/en/observability/overview"},{"title":"Arize Phoenix","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.14.5/en/observability/arize-phoenix"},{"title":"Braintrust","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.14.5/en/observability/braintrust"},{"title":"Datadog Integration","icon":"dog","mode":"wide","href":"/v1.14.5/en/observability/datadog"},{"title":"Galileo","icon":"telescope","mode":"wide","href":"/v1.14.5/en/observability/galileo"},{"title":"LangDB Integration","icon":"database","mode":"wide","href":"/v1.14.5/en/observability/langdb"},{"title":"Langfuse Integration","icon":"vials","mode":"wide","href":"/v1.14.5/en/observability/langfuse"},{"title":"Langtrace Integration","icon":"chart-line","mode":"wide","href":"/v1.14.5/en/observability/langtrace"},{"title":"Maxim Integration","icon":"infinity","mode":"wide","href":"/v1.14.5/en/observability/maxim"},{"title":"MLflow Integration","icon":"bars-staggered","mode":"wide","href":"/v1.14.5/en/observability/mlflow"},{"title":"Neatlogs Integration","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.14.5/en/observability/neatlogs"},{"title":"OpenLIT Integration","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.14.5/en/observability/openlit"},{"title":"Opik Integration","icon":"meteor","mode":"wide","href":"/v1.14.5/en/observability/opik"},{"title":"Patronus AI Evaluation","icon":"shield-check","mode":"wide","href":"/v1.14.5/en/observability/patronus-evaluation"},{"title":"Portkey Integration","icon":"key","mode":"wide","href":"/v1.14.5/en/observability/portkey"},{"title":"Weave Integration","icon":"radar","mode":"wide","href":"/v1.14.5/en/observability/weave"},{"title":"TrueFoundry Integration","icon":"chart-line","mode":"wide","href":"/v1.14.5/en/observability/truefoundry"}]},{"group":"Learn","pages":[{"title":"Overview","icon":"face-smile","mode":"wide","href":"/v1.14.5/en/learn/overview"},{"title":"Strategic LLM Selection Guide","icon":"brain-circuit","mode":"wide","href":"/v1.14.5/en/learn/llm-selection-guide"},{"title":"Conditional Tasks","icon":"diagram-subtask","mode":"wide","href":"/v1.14.5/en/learn/conditional-tasks"},{"title":"Coding Agents","icon":"rectangle-code","mode":"wide","href":"/v1.14.5/en/learn/coding-agents"},{"title":"Create Custom Tools","icon":"hammer","mode":"wide","href":"/v1.14.5/en/learn/create-custom-tools"},{"title":"Custom LLM Implementation","icon":"code","mode":"wide","href":"/v1.14.5/en/learn/custom-llm"},{"title":"Custom Manager Agent","icon":"user-shield","mode":"wide","href":"/v1.14.5/en/learn/custom-manager-agent"},{"title":"Customize Agents","icon":"user-pen","mode":"wide","href":"/v1.14.5/en/learn/customizing-agents"},{"title":"Image Generation with DALL-E","icon":"image","mode":"wide","href":"/v1.14.5/en/learn/dalle-image-generation"},{"title":"Force Tool Output as Result","icon":"wrench-simple","mode":"wide","href":"/v1.14.5/en/learn/force-tool-output-as-result"},{"title":"Hierarchical Process","icon":"sitemap","mode":"wide","href":"/v1.14.5/en/learn/hierarchical-process"},{"title":"Human Input on Execution","icon":"user-plus","mode":"wide","href":"/v1.14.5/en/learn/human-input-on-execution"},{"title":"Human-in-the-Loop (HITL) Workflows","icon":"user-check","mode":"wide","href":"/v1.14.5/en/learn/human-in-the-loop"},{"title":"Human Feedback in Flows","icon":"user-check","mode":"wide","href":"/v1.14.5/en/learn/human-feedback-in-flows"},{"title":"Kickoff Crew Asynchronously","icon":"rocket-launch","mode":"wide","href":"/v1.14.5/en/learn/kickoff-async"},{"title":"Kickoff Crew for Each","icon":"at","mode":"wide","href":"/v1.14.5/en/learn/kickoff-for-each"},{"title":"Connect to any LLM","icon":"brain-circuit","mode":"wide","href":"/v1.14.5/en/learn/llm-connections"},{"title":"Using CrewAI Without LiteLLM","icon":"shield-check","mode":"wide","href":"/v1.14.5/en/learn/litellm-removal-guide"},{"title":"Using Multimodal Agents","icon":"video","mode":"wide","href":"/v1.14.5/en/learn/multimodal-agents"},{"title":"Replay Tasks from Latest Crew Kickoff","icon":"arrow-right","mode":"wide","href":"/v1.14.5/en/learn/replay-tasks-from-latest-crew-kickoff"},{"title":"Sequential Processes","icon":"forward","mode":"wide","href":"/v1.14.5/en/learn/sequential-process"},{"title":"Using Annotations in crew.py","icon":"at","mode":"wide","href":"/v1.14.5/en/learn/using-annotations"},{"title":"Execution Hooks Overview","mode":"wide","href":"/v1.14.5/en/learn/execution-hooks"},{"title":"LLM Call Hooks","mode":"wide","href":"/v1.14.5/en/learn/llm-hooks"},{"title":"Tool Call Hooks","mode":"wide","href":"/v1.14.5/en/learn/tool-hooks"}]},{"group":"Telemetry","pages":[{"title":"Telemetry","icon":"signal-stream","mode":"wide","href":"/v1.14.5/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.14.5/en/api-reference/introduction"}]},{"tab":"Examples","icon":"code","pages":[{"title":"Examples","href":"/v1.14.5/en/examples/example"}]},{"tab":"Changelog","icon":"clock","pages":[{"title":"Changelog","href":"/v1.14.5/en/changelog"}]}]},{"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.14.5/pt-BR/concepts/checkpointing"}]},{"language":"ko","pages":[{"title":"ko","href":"/v1.14.5/ko/concepts/checkpointing"}]},{"language":"ar","pages":[{"title":"ar","href":"/v1.14.5/ar/concepts/checkpointing"}]}]},"basePath":"","title":"Checkpointing - CrewAI","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-NdetNziF.js","DynamicMarkdown-CD8713Yy.js","zoom-image-lightbox-DMoL6lHz.js","lightbox-handle-r17bVUz3.js"]}