Docs · Start Overview Choose the right entry point and understand the pre-alpha boundary. Docs · Start Getting started Install the pinned toolchain and validate the repository locally. Docs · Start Core contract examples Compile the first Agent, typed Tool, Model stream, and explicit protocol mapping without runtime dependencies. Docs · Start Typed Agent Generate and pin typed schemas, then bind the first-party OpenAI and Anthropic adapters. Docs · Start In-process Agent Run a typed Agent without HTTP while preserving PostgreSQL durability, authorization, recovery, and owned roles. Docs · Start Durable admission Atomically commit authenticated intent, database time, the first event, and the initial checkpoint. Docs · Start Durable runs and results Submit with a durable ingress key, recover the original run, and read a verified public result. Docs · Understand Compile a graph Build a schema-pinned graph, validate its topology, and freeze its canonical digest. Docs · Understand Subgraphs and loops Compose shared-state subgraphs, finite loops, and explicit recovery-safe return paths. Docs · Understand Skill composition Choose capability bundles, shared-state subgraphs, durable child runs, and guarded MCP Skills without creating a second runtime. Docs · Understand Durability model Learn how journal, checkpoint, lease, fence, and recovery evidence fit together. Docs · Understand Durable Graph runtime Register exact executable code, replay noninitial state, and drive deterministic bounded sibling batches under one fence. Docs · Understand Durable Agent Loop Commit lifecycle handoffs and execute one tenant-scoped durable scheduling quantum. Docs · Understand Durable invocations Execute exact model and tool attempts with durable starts, staged ordered Tool coordination, streaming validation, and no-dispatch terminal recovery. Docs · Understand Provider-native Agent Compile and operate the durable multi-turn graph with bounded output repair, ordered parallel read-only Tools, write barriers, policy, accounting, and cancellation evidence. Docs · Integrate Local Rust Tools Generate digest-pinned schemas, register typed local code, and preserve the durable invocation boundary. Docs · Integrate AgentService v1 Authorize and expose exact durable Agent revisions through the versioned embedding boundary. Docs · Integrate Agent HTTP v1 Submit, recover, read and cancel through authenticated bounded JSON HTTP. Docs · Integrate General MCP Tool client Discover and call bounded stateless MCP 2026-07-28 Tools with JSON/SSE, OAuth, custom headers, and mediated MRTR. Docs · Integrate MCP OAuth client Bind one MCP resource to challenge-driven discovery, PKCE, issuer validation, durable credentials, and bounded replay. Docs · Integrate MCP Remote Tool Bind one strict stateless MCP 2026-07-28 Tool with pinned identity, schemas, durable dispatch, and reconciliation. Docs · Integrate MCP Server profile Expose bounded Tools, Resources, Prompts, Completion, and MRTR behind the strict stateless production boundary. Docs · Integrate MCP Skills Publish and activate Final SEP-2640 static Skills with immutable manifests, origin-scoped approval, and verified lazy reads. Docs · Integrate MCP conformance status See the frozen official runner inventory, implemented evidence, and exact boundary of current MCP claims. Docs · Integrate A2A 1.0 Client Discover and pin one agent, call all eleven operations, and reconcile durable unknown sends only through attested remote guarantees. Docs · Integrate Durable artifact storage Materialize terminal A2A parts into immutable PostgreSQL metadata and private integrity-checked object bytes. Docs · Integrate A2A 1.0 Server Expose bounded HTTP+JSON and JSON-RPC/SSE through identity-first policy and a durable service contract. Docs · Integrate A2A conformance status Inspect the frozen official TCK, audited harness patch, exact result, and server-only claim boundary. Docs · Operate Fair scheduling Configure replica-safe weighted tenant selection, exact starvation bounds, rollout, and retention. Docs · Operate PostgreSQL provider Configure, migrate, verify, and test the implemented durability provider. Docs · Operate Host qualification Record bounded capacity, recovery and fault evidence without turning CI into a production SLO claim. Docs · Project Versioning and releases Pin the public alpha exactly and understand compatibility, MSRV, durable-data, and release gates. Docs · Project Implementation status See what is implemented, in progress, and deliberately not claimed. Home Architecture map What exists, what is active, and what remains planned. Home Current cut Implemented slices and explicit gaps. Home Roadmap The path from contracts to a qualified v1. Repository Source code StateKnot/StateKnot on GitHub. Repository RFCs Draft architecture and durable execution contracts. Repository Security policy Private vulnerability reporting and support policy.
↑↓ navigate ↵ open 39 results

Pre-alpha documentation

Submit once. Recover the same durable Agent run.

Use tenant-scoped durable idempotency, then read a fully revalidated public run/result snapshot by run ID or submission key.

Commit the key with the run

Authenticate the tenant, freeze policy and deployment inputs, then call submit. The key mapping and a new atomic admission commit in one transaction, so no successful mapping can point at a half-created run.

Rust · trusted ingress
let runs = DurableAgentRuns::new(store.clone(), executable_registry)?;
let key = AgentSubmissionKey::generate();

let request = DurableAgentAdmissionRequest::new(
    tenant_id.clone(),
    AgentRunIds::generate(),
    agent_descriptor,
    agent_request,
    evaluated_budget_layers,
    graph_reference,
    admission_authority,
    initial_state,
)?;

let admitted = runs.submit(&key, request).await?;
let run_id = admitted.snapshot().provenance().run_id();

A generated key contains 148 random bits. External keys must use 16–128 bytes from [A-Za-z0-9._~-] and should provide at least 128 bits of unpredictability. PostgreSQL stores only a tenant-scoped digest; raw keys are absent from durable rows and redacted from Debug.

Retry logical content, not candidate identities

After an ambiguous response, reuse the key and every immutable logical input: Agent, request, budgets, graph, authorization evidence, and initial state. The new attempt may allocate fresh run/thread/invocation/event/checkpoint IDs; the original selected run still wins.

Rust · lost acknowledgement
// Rebuild the same logical content. Candidate IDs may be fresh.
let retry = DurableAgentAdmissionRequest::new(
    tenant_id.clone(),
    AgentRunIds::generate(),
    retained_agent_descriptor,
    retained_agent_request,
    retained_budget_layers,
    retained_graph_reference,
    retained_authority,
    retained_initial_state,
)?;

let resolved = runs.submit(&key, retry).await?;
assert_eq!(resolved.snapshot().provenance().run_id(), original_run_id);

let current = runs.load_by_key(&tenant_id, &key).await?;

Changed logical content returns a conflict. A second key for the same run also conflicts. After local deployment revalidation, durable key evidence precedes new database-time and initial-checkpoint admission checks. A valid lost-ACK retry can therefore resolve after its original deadline; missing executable code still fails closed.

Poll a closed public snapshot

Observation identity
Use (run_id, revision). Revision is monotonic; equal revisions represent the same lifecycle observation.
Nonterminal state
active, waiting, and cancellation_requested require an explicit outcome: null.
Terminal state
succeeded returns a schema- and budget-verified AgentResult; failed and cancelled return a public-safe failure, completion time, and cumulative usage.
Quarantine
A quarantined run remains observable but is never silently represented as runnable work.

The response excludes request input, authorization evidence, graph state, leases, scheduler internals, and private diagnostics. Every load rechecks the immutable deployment, schemas, admission anchors, lifecycle, provenance, output, and accounting before returning it.

Authorize before every lookup

Tenant IDs, run IDs, and submission keys are correlation identities—not access credentials. Authenticate and authorize the caller before load or load_by_key, keep PostgreSQL credentials inside the trusted service, and translate not-found/conflict responses without leaking cross-tenant existence.

Roll out migration 16 without weakening retries

Apply migrations with a separate role, require exact checksum and object verification at startup, then deploy the frozen executable registry before enabling traffic. Never delete a key mapping while a client may retry it; deletion would permit a second run. Future retention must remove run, admission, and key evidence together after the retry guarantee expires.

PostgreSQL 16/17 qualification covers a populated v15→v16 upgrade, 24-way convergence, changed-content and second-key conflicts, raw-key non-persistence, tamper rejection, late transactional rollback, and verified succeeded, failed, and confirmed-cancelled results through the public facade. Read the complete integration contract before adopting this public-preview API.