Studio previewSelf-host Studio locally.Run it

Product / Runtime contracts

Keep the server run and React UI in sync.

Stream typed output, pause for human input, resume from a checkpoint, and keep session history without writing a second state model for React.

REFUND REVIEW / RUN_81F4LIVE
01

Agent node

check policy

02

Stream

typed decision

03

React

approve refund

The run waits here until a person approves or escalates.

The runtime lifecycle

Run, stream, wait, and resume against the same state.

01

Run

Model calls, tools, services, routing, and retries live in focused TypeScript nodes.

02

Stream

Text, validated fields, tool events, and errors reach the interface over one protocol.

03

Wait

The workflow checkpoints while React renders a choice, form, or custom component.

04

Revisit

Regenerate, roll back, or fork with transcript and server state kept together.

Typed output and human input

Stream a typed decision, then ask for approval.

Application code can own the question with useInterrupt. When the model should decide what to ask, the schemas can live directly in useReason.

review-refund.node.ts
// review-refund.node.ts
const result = await useReason<RefundDecision, Review, Action>({
  id: "refund-review",
  model: google("gemini-2.5-flash"),
  input: orderAndPolicy,
  outputSchema: refundDecisionSchema,
  structured: { fields: {
    summary: "text-delta",
    recommendation: "set",
  } },
  interrupt: {
    schemaId: "refund-approval",
    requestSchema, responseSchema,
  },
});

Kortyx runtime state

Runs, checkpoints, hooks, streams, branches.

State needed to execute, pause, resume, and revisit an agent workflow.

Your product state

Users, orders, permissions, records, interface.

Durable business data stays in the services and database your application already owns.

Write the workflow for your product.

Kortyx carries stream events, checkpoints, and human responses between the workflow and React.