Checkpoints

The plane stores opaque blobs. Frameworks own the bytes; Runkite owns durability and tenancy keys.

Modes

Adapter multi-turn

Non-LangGraph runners opt in via checkpoint_framework on the adapter. With RUNKITE_HTTP_URL (or the worker’s http address) set, the generic worker GET .../adapter-state before execute and PUT that same id after success — so the client can send only the new message on the next run (not .../latest, which is ordered by checkpoint id and can return a LangGraph blob on a shared thread). LlamaIndex restores native chat_history; other adapters fold prior turns into the next invoke string / AutoGen model context. checkpoint_ref time-travel stays LangGraph-only.

Why opaque

The plane must not parse framework checkpoint schemas. That keeps Agent Protocol clients framework-agnostic and avoids silent breakage when LangGraph/CrewAI change serde.

How to choose

Why opaque checkpoints · architecture.md