Skip to main content
Use Adapt-1 value observations to attach supervision to recorded states. Stable record identities make uploads retryable; separate supervision sources preserve the distinction between an observed outcome, a supplied target, and an estimate produced by a reference model.
Request shapes, types, and defaults below come from the archived schema-version-5 build 0136121. Behavior notes describe separate checks on build af6670b on 6 November 2026. These sources describe different builds. Check the target deployment’s host-root /version; the value API reference records the source coverage.

Send an observation batch

Send POST /api/v1/domains/{domain_id}/value/observe with a nonempty session_id and an observations array. The schema permits at most 50 observations per request. Use "session_id": "ignored" on the authenticated hosted service as described in HTTP and contracts. This complete request body shows one supplied target with numeric policy features. Replace the illustrative IDs, feature names, and values with the encoding used by your configured value learner.
Value observation request
The same envelope also accepts application_outcomes, an array of at most 50 application-evaluation records. Those records have case_id, context_sha256, model_sha256, and utility; they are separate from supervised observations. See application promotion for their contract.

Choose one supervision source

Each observation sent to value/observe carries exactly one of target, outcome, or continuation. Omit the other two fields. A row with conflicting or missing supervision rejects the whole observation batch with HTTP 422. The observed error is:

Identify the record and its inputs

Keep record_id, episode_id, and step alongside the state representation. record_id identifies a particular observation; episode_id and step identify its place in the recorded sequence. The observation schema rejects additional top-level fields. The object and relation entries allow application-defined properties. The schema specifies the types and defaults of the representation controls but does not define their full projection behavior. The projected representation reduces objects and relations to counts. The object_graph representation retains the objects and the relations between them. The comparison-group workflow below uses the graph path. Configure the representation before collecting the observations for a fit; see value learning.

Provided target

This supervision fragment identifies an application-provided value. Combine it with the state’s required inputs and the full value/observe request envelope.
Provided-target observation fragment

Observed outcome

An outcome requires value and terminal_step. Its value, discount, and neutral are numbers in [0, 1]; terminal_step is a nonnegative number. discount defaults to 1 and neutral to 0.5. Discounting moves the recorded terminal value toward the neutral value for earlier states. With discount: 1, that distance from the neutral value is unchanged.
Observed-outcome observation fragment
The IDs, steps, and values in these fragments illustrate the fields. Your application defines utility within the API’s [0, 1] range and supplies the actual episode boundaries.

Build continuation observations

Your application supplies legal successor states. The server evaluates unfinished successors with a fitted reference model and uses these evaluations to construct the continuation target. A completed successor carries its exact terminal_value, which takes precedence over the model’s estimate. In the construction fragment below, recorded_state is the current state’s supported descriptor. legal_successors is the list of successor descriptors generated by the application’s rules or transition interface.
Continuation observation construction fragment
maximizing is a required Boolean. The successors array requires 1 to 256 entries per continuation row. The continuation schema defaults discount to 1 and neutral to 0.5, with both constrained to [0, 1]. Set maximizing for the value perspective used by this comparison and keep successor values in that perspective. Supply the legal alternatives intended for the backup. If that set exceeds the per-row schema limit, resolve the integration contract instead of silently dropping alternatives. For a completed successor, attach the exact score to its descriptor:
Terminal successor construction fragment
terminal_value is a number in [0, 1]. Successor descriptors use the same numeric maps, object arrays, relation arrays, and representation flags as a value input. They can also carry an optional counterpart in the ValueInput shape; the schema alone does not establish how an evaluator combines the two perspectives. Place the constructed observation in the observations array of the complete request envelope above. Preserve the real recorded outcome separately in your application record when the continuation is an estimated target.

Satisfy the fitting prerequisites

Each refusal above was returned as HTTP 422. The aggregate per-fit successor cap is separate from the schema limit of 256 successors per observation. Its exact value, whether terminal successors count toward it, and a route for inspecting it are not established by the available contract. Do not infer a supported aggregate limit from the size of one successful request. When reducing or sampling comparison groups, preserve the evidence and group coverage required in both partitions.

Declare comparisons between alternatives

Rows sharing metadata.comparison_group belong to the same comparison group in the observed graph workflow. A continuation’s successors array does not create a comparison group by itself. Use one observation per alternative child of a recorded parent state. Each child’s row describes that child and carries its own continuation over that child’s successors. Give the sibling rows the same parent comparison identifier, while preserving distinct record_id values.
Sibling identity fragments
These fragments show identity and grouping only. Each real row also needs the child’s state and one supervision source. Keep the group’s target values in the same viewpoint so their differences have a consistent meaning. Comparison training requires groups in both fitting and validation partitions. Set a positive comparison_weight to add the comparison contribution; its default is 0. A positive weight does not create missing groups. The training guide explains the options and report fields. The checked arrangement used continuation supervision for sibling rows. Mixed target, outcome, and continuation supervision within one group has not been characterized by these checks.

Keep a blended target explicit

The coupled learning and planning method describes targets of the form y = λu + (1 − λ)z̄, where u is a planning assessment and z̄ is a discounted observed outcome. If your application computes this scalar, send the result as target. It then enters as a provided target, rather than a continuation that the server refreshes from successors. Retain the observed outcome, assessment, blend settings, and reference-model identity in the application record so you can reconstruct the calculation. The inspected interface does not expose a λ field. Matching episode_id and step on separate rows does not establish an automatic blend. Neither continuation.discount nor neutral is documented as a λ control. Keeping outcome rows and continuation rows in the same fit preserves both kinds of examples; it does not by itself reproduce a per-row blended target.

Retry identical observations

value/observe uses record_id to recognize identical replays. An accepted replay contributes to duplicates; reusing the ID with changed content returns HTTP 409. After an uncertain upload, resend the identical records with their original IDs, then check that accepted + duplicates accounts for every submitted row. Treat a changed observation as a distinct record with a new ID. Do not change a target under an existing ID and expect the request to update it in place. This rule belongs to value observations. Domain feedback has a different retry contract; see operations and retries.

Verify admission and target refresh

The observation response reports target_sources.model_continuation and target_sources.provided_or_observed. These counters identify admitted source types. Inspect the subsequent fit through value/state and training.report.target_refresh to verify the target work used by training. An accepted upload alone does not show that a later training scope included its rows. Check target refresh, supervision scope, and comparison coverage together.