Build

Migrate existing agents

You already have graphs or crews. Goal: runners speak Runner Protocol; clients keep Agent Protocol; the plane owns governance, without rewriting your whole product.

What it is

Package each workload as a runner process (LangGraph Py/JS first-class; CrewAI / LlamaIndex / AutoGen / LangChain via adapters). Point config at existing entrypoints; register agent_ids; move secrets into connectors where side effects leave the box.

Why it is here

“Rip out the framework” is a non-goal. The plane wraps execution. Migration succeeds when runs are dispatchable, observable, and governable, not when every line of agent code is new.

How to implement

  1. Inventory: list agent entrypoints, checkpoint stores, tools that need secrets, HITL points, cron/triggers.
  2. Pick runner kind: LangGraph stay on LangGraph runners; others use python/adapters/* (see matrix).
  3. Wire config: langgraph.json / adapter config with stable agent_ids matching what clients will call.
  4. Checkpoints: LangGraph: direct Postgres or HTTP opaque proxy. Adapters (CrewAI / LlamaIndex / AutoGen / LangChain): set RUNKITE_HTTP_URL so the generic worker load/saves opaque message transcripts, clients can send only the new turn.
  5. Secrets: stop baking tokens in agent env long-term; move side-effect tools to connectors + grants.
  6. Cutover: run shadow traffic on the plane; compare outputs; switch clients to plane base URL + API keys.

In the product

Admin → Registry: catalog entries for discoverability (optional; not auto-deploy)
Runkite Admin Registry

What to expect

Reference: Framework matrix · Checkpoints · docs/runners.md