Concepts

Adapter Capabilities

Capture and replay capability levels across framework adapters and managed runtimes.

Adapters differ because frameworks expose different hooks. Some can observe model and tool behavior. Some can block risky tools. Some can replace model or tool outputs before side effects. These differences determine the strength of replay evidence.

Capability Status

StatusMeaning
native_fullRuntime primitives support native replacement or safe interception.
managed_replayAdapter can capture and steer, but runtime limitations remain.
observability_onlyUseful trace capture without deterministic replay.
unsupportedPublic API does not expose the primitive.

Interception Modes

ModeMeaning
native_replaceRuntime lets the adapter replace model/tool output before downstream code sees it.
proxy_replaceAdapter wraps a boundary and can substitute output.
post_result_replaceAdapter can alter recorded output after execution; side effects may already happened.
block_onlyAdapter can prevent execution but not synthesize safe replacements.
observe_onlyAdapter can only record what happened.

Current Adapter Shape

IntegrationCapture strengthReplay caveat
Adapter kitStrong for custom code you ownReplay depends on where you wrap and what executors you provide.
AI SDKGood model/tool capture through middleware and wrappersStreams must be drained; provider live replay needs executors.
MastraExplicit workflow, step, model, and tool captureNo automatic global Agent.generate monkey patch.
LangGraphNode/state/model/stream/tool captureGlobal option coverage is not the same as per-wrapper capture.
CodexManaged runtime hook ingestionBuilt-in tools may not be replaceable before side effects.
Claude CodeObservability-oriented captureModel replay is unsupported; post-tool context cannot undo side effects.
OpenClawStrongest managed runtime storyBest when runtime honors skip/replace hooks.

Choosing An Adapter

  • Use a dedicated adapter when it captures the framework's native boundaries.
  • Use adapter kit when your framework has no first-party integration or you need exact control.
  • Treat managed-runtime adapters as capability-specific. Do not assume model replacement, tool replacement, and side-effect blocking are equally supported.
  • Read capability manifests before trusting replay results from a managed runtime.

On this page