Skip to main content
Most hand-built agents start as one process: call the model, execute tool calls, append messages to an array, and repeat. The hard part arrives later. Process memory is not durable execution truth, credentials leak into runtime configuration, retries blur external side effects, and each new surface invents another transcript. Checkfu separates the authored configuration from execution:
The Session event log is the durable source of truth. The harness is a replaceable execution lane around it.
Plain HTTP against the Checkfu API needs no private package. The Checkfu CLI and TypeScript SDK are optional private-alpha artifacts; the HTTP requests work without them. Part of this flow is behind a rollout fence; a deployment that has not enabled it refuses the request rather than running it. Confirm capability status before making availability part of your application’s contract.

What moves where

A Vault owns secret-bearing Credential custody. A Connection is the nonsecret governed link to an external account or provider capability. Credential values never enter Agent or AgentVersion configuration, model context, harness configuration, Session events, Files, Memory, tool arguments, or the sandbox. A connected effect follows PermissionAssignment → ActionPolicy → ActionApproval when required, then a live authority and revocation recheck before provider I/O. An uncertain external effect never becomes safe merely because the platform can retry execution. Reconcile it with the provider or use an operation-specific idempotency key before trying again. See Capabilities and Tenancy and governance for the current resource and trust surfaces.

Before

A typical loop mixes configuration, execution, credentials, and history in one process:

After

Create the Agent and Environment once. For each task, create a Session with an initial event. This exact request selects an AgentVersion and Environment at admission:
Creating with initial_events combines Session creation and the first user event. You can also create the Session first and send events later. A non-requires_action session.status_idle settles the current Turn. It does not erase or replace the Session. Because settlement lives in the event log, a client that disconnects can resume reading durable history rather than infer the result from a lost HTTP response.

Admission replaces implicit configuration

At Session creation, Checkfu:
  • resolves and freezes the current or explicitly pinned AgentVersion;
  • freezes the selected Environment admission authority;
  • records the admitted resource, Connection, and Vault references.
Later edits to the Agent or Environment affect later Sessions, not the one already admitted. PermissionAssignments, ActionPolicies, ActionApprovals, Connection lifecycle, revocation, and Credential authority remain live at their documented boundaries; Audit records the resulting decisions and provider effects without recording Credential values.

The harness is not the product model

Your loop still exists, but it runs inside the selected harness. Managed and customer-operated harnesses use the same Agent, Environment, and Session model. The harness may prepare context and invoke tools; it does not own a separate transcript or recovery authority. Your application becomes responsible for a smaller interface:
  1. author Agents and supporting resources through one active desired-state owner;
  2. create and drive Sessions;
  3. consume durable events and decisions.
UI, HTTP, SDK, CLI, and MCP are interfaces over the same resource operations, not separate owners. YAML and Git may supply desired state, but they do not become another runtime or reconciler. See Author an Agent project before adding a source-backed authoring path.

Migration order

  1. Create the Environment. Reproduce the minimum packages, networking, and execution mode your task needs.
  2. Create the Agent. Move the system instructions and model choice first. Creation produces AgentVersion 1.
  3. Create a pinned Session. Use an exact AgentVersion until behavior is stable and compare the durable event history.
  4. Move credentials and tools. Create Vaults, Credentials, and Connections. Assign PermissionAssignments before adding ActionPolicies and approval behavior.
  5. Move files, Skills, and Memory. Keep durable inputs and learned state out of harness-specific history.
  6. Move triggers last. Replace cron or webhook wrappers with Automations after direct Session execution is correct.

Run your first Session

Create the core resources and execute one task end to end.

Sessions and Runs

Understand event history, Turns, Runs, settlement, and continuation.

Capabilities

Move Connections and resources behind the shared trust boundary.

Tenancy and governance

Add PermissionAssignments, ActionPolicies, ActionApprovals, revocation, and Audit.

Author an Agent project

Keep source-backed desired state behind one active authoring owner.

Resume a stream

Reconnect to durable events without treating the stream as authority.