Skip to main content
An Outcome is Checkfu’s definition-of-done loop for one Session. It gives the Agent a task description, a rubric, and a bounded number of attempts. The Session remains the execution truth throughout the loop.
Outcome is not a graph cycle, a second Agent, or a post-run audit system.

What an Outcome owns

An Outcome owns:
  • the task description and rubric;
  • the current evaluation iteration;
  • the bounded max_iterations limit;
  • optional deliverable paths and report configuration;
  • grader lifecycle and verdict events;
  • the terminal result: satisfied, maximum iterations reached, failed, or interrupted.
The surrounding Session continues to own the ordered event log, Runs, AgentVersion, Environment admission, mounts, tool activity, approvals, and Usage.

Same Session means the same admitted Agent

A needs_revision verdict resumes the exact Session that produced the work. It does not create a new Session or silently move to a newer AgentVersion or Environment. The next Run receives the retained task, rubric, grader feedback, and prior Session context permitted by retention. The Agent can revise files or other work in its existing Session world. Material configuration changes apply only to newly admitted Sessions. This property is important for both correctness and debugging: the evidence that triggered revision and the revision itself share one ordered log.

Define an Outcome directly

Post user.define_outcome to a pending or idle Session. The current contract accepts one nonterminal Outcome at a time. max_iterations is optional and must be between 1 and 20.
Authentication supplies the trusted author attribution. Do not invent a caller-selected actor. Deliverables are optional absolute sandbox paths. They are captured at settlement under standard retention and must resolve within the admitted capture roots. A zero-data-retention Workspace rejects an Outcome definition that requests durable deliverables because those bytes cannot enter durable custody.

Attach an Outcome in an AutomationGraph

An AutomationGraph Outcome node must attach through a reviews edge to the exact Agent node whose work it revises.
In this shape, the Outcome belongs to Agent B’s Session. A failure does not redraw the graph or return to Agent A. The bounded revision loop stays inside Agent B’s Session until it settles. An Outcome cannot attach to a Decision. A Decision owns constrained routing; Outcome owns same-Session revision. Keeping them separate prevents an authored graph from becoming an implicit cyclic runtime.

Evaluation events

The Session log exposes the grading lifecycle:
  • outcome.evaluation_started identifies the Outcome and iteration;
  • outcome.evaluation_completed records the verdict and bounded feedback;
  • run.requires_action with action.kind: "outcome_evaluation" records the temporary platform-owned wait while grading runs.
Applications do not answer an Outcome evaluation wait. Checkfu grades and either settles the Outcome or admits the next revision Run. Response timing is not evidence. Consume the persisted events or the Session projection.

Usage and Budgets

Every model call made by the Agent and grader is written to authoritative Usage. Outcome iteration therefore cannot evade Workspace, Principal, Session, or Automation-scoped Budget enforcement. When a Budget stops further work, the Session records the reached cap. Checkfu does not continue grading or revising from an observability estimate.

Outcomes do not grant authority

An Outcome may ask the Agent to perform consequential work, but it grants no Connection, tool, Agent, Memory, or Computer access. Those permissions still flow through PermissionAssignment, then ActionPolicy, then ActionApproval when required. If a revision encounters a governed action, the Run parks on the ordinary approval boundary. Human approval settles that action; it does not settle the Outcome rubric.

Outcome versus FlowReview

Use Outcome when failed criteria should cause another attempt in the same Session. Use FlowReview when you want passive post-settlement audit over retained evidence. FlowReview can report pass, concern, or unknown by criterion, but it has no control-flow authority and never resumes the Agent.

Outcome evidence from an Automation

For Automation-launched Agent work, inspect the layers separately:
  1. The AutomationRun tells you the composed execution lifecycle and result.
  2. The Session log tells you what the Agent did and which AgentVersion and Environment were frozen at admission.
  3. The Outcome tells you why revision occurred and how the bounded loop ended.
The Automation may project a convenient terminal Outcome summary, but the Session’s Outcome events remain the execution evidence.

Evaluations and task sets

Checkfu’s task-set tooling compiles a task into ordinary Environment, Session, and Outcome inputs. It does not create a second server-side evaluation runtime. See Evaluate an Agent against a task set for the current compile and experiment paths and their support limits.