Default path: query a Domain, execute the selected action or policy, and submit the observed outcome as feedback. Ordinary one-decision feedback requires no sequential configuration or learner tuning.A successful feedback write means the record was accepted or stored. It does not by itself prove that
feedback_policy admitted a learning observation. When validating an integration, inspect credit_assignment.contextual_learning_applied and the feedback_policy sample count.Default feedback loop
Keep explicit feedback, observable consequences, and application-only context separate. An observed transition can supply transition evidence without a success label. An observable consequence is not an application judgment or a feedback write.
Transition evidence and feedback
A transition target describes the observable consequence. It does not state if the consequence was good. Feedback can later assign application value to a committed decision. Record feedback as a separate operation.
See Design Domains for transition learning for the separation between the operational record, learner view, and application-only context.
Decision binding
Keep an application interaction record beside the API requests:Feedback horizon
Feedback updates support with respect to the outcome signal it encodes. Immediate outcomes can strengthen locally useful behavior, while terminal or delayed outcomes let Adapt-1 organize that learning around a longer objective. For goal-driven tasks, record which outcome horizon Adapt-1 receives:- local state improvement;
- binary step success;
- reward magnitude;
- terminal goal completion;
- delayed episode return; or
- only the next observable consequence.
Ordinary decision-bound feedback is the default. Do not enable sequential learning merely because records arrive in order.
An environment can contain long episodes and still use ordinary feedback. If every decision receives its own immediate outcome and the action does not determine the later state, episode length alone is not a reason to enable sequential learning.
Sequential feedback for delayed outcomes
Sequential feedback for delayed outcomes
The sequential learning guide documents the complete contract, configuration surface, diagnostics, tuning profiles, and frozen evaluation protocol.Enable this path only when the application has a real episode boundary, ordered state transitions, and delayed credit across actions. Independent samples, immediate-only labels, and chronological records whose actions do not affect later state should remain on ordinary feedback.Enable both learning switches in the Domain:Then repeat this loop:With the default mappings, each sequential feedback item supplies:
All five fields are required for the transition to enter sequential learning. Use a JSON number for
step and step_reward, an object for next_state, and a Boolean for terminal.Policy admission also requires the executed relation and policy. Current runtime behavior requires the relation field to be present before contextual policy learning is applied. A feedback write can still be accepted and stored when relation is absent, so do not use HTTP success as proof that policy learning occurred.Decision-time context can be bound through any of these supported routes:decision_idfrom a prior Domain query (context_source: "decision");target_memory_idfor a retained memory that supplies the relevant context (context_source: "memory");- explicit structured
contextin the feedback request (context_source: "request").
decision_id is the strongest sealed attribution route, but it is not required for policy admission when another supported context source is supplied.Send both reward fields when the same feedback participates in ordinary and sequential learning:values.reward supplies the measured outcome for immediate contextual learning. values.step_reward supplies the ordered reward used for delayed return. They may contain the same value when that matches the task.Keep the same Domain and learner continuity across a trajectory, but query each step with the newly observed state. Use a new episode ID at the real episode boundary, restart step from zero, and set terminal: true on the final transition. Reset the Domain only for an intentional cold-start condition or deliberate replay.Sequential settings that may need adjustment
Use the defaults unless the task contract requires one of these changes:Leave training parameters, validation thresholds, model weights, and n-step settings at their defaults for ordinary use. Adapt-1 validates learned estimates before they affect selection.Request
learning_state and policy_diagnostics when verifying the integration. A sequential estimate may not appear immediately because the learner first needs enough completed episodes and held-out validation. Inspect the returned model status and reason, then confirm that sequential_expected_reward is present before treating delayed estimates as part of selection.Bounded transition scoring
Bounded transition scoring is separate from both delayed-return learning and the general structured-transition learner.learning.transition predicts declared observable targets from event inputs. Bounded transition scoring instead learns action-conditioned changes in an explicit public state and projects candidate policies onto a declared numeric objective during selection. Its configuration is nested at learning.sequential.bound_transition because it consumes state transitions, but it does not turn every feedback task into a sequential-return task.
Use it only when:
- the relevant state is public and numerically bounded;
- each candidate identifies the state and action it affects;
- feedback returns the observed successor state; and
- one declared state feature is the objective.
Add
state_bounds only for real public availability or validity limits. Add action selectors, action features, or signature features only when the action representation requires them. Candidate policies must carry the selector and category values used by the mapping, and feedback must identify the action that actually executed and its observed successor state.
Leave minimum_support, model_weight, novelty_bonus, and transition_cost at their defaults unless the task contract gives a concrete reason to change them. A wrong state, action, or objective binding can materially distort selection.
Policy-learning admission
POST /api/v1/domains/{domain_id}/feedback has two distinct outcomes that clients must not conflate:
- the actual executed
policy; - a
relationfield; - a measured reward or recognized outcome;
- one supported source of decision-time context:
decision_id,target_memory_id, or explicit structuredcontext.
relation to be present. The request validator can accept feedback without it, but that record can be stored without increasing learning_state.subsystems.feedback_policy.sample_count. The admission check currently tests presence rather than validating the relation value against the bound decision. Always send the real relation used by the Domain; do not use placeholder values.
The context source is reported under credit_assignment.context_source when available:
These alternate bindings allow policy feedback to be admitted without a prior Domain query. They do not replace
/query for Adapt-1 policy selection, exploration, or sealed decision attribution. When decision_id is supplied, treat its sealed context as authoritative; do not expect an additional request context to override that snapshot.
To verify that the learner actually consumed the feedback, inspect:
contextual_learning_applied is nested under credit_assignment in current responses. Older integrations that read only a top-level field can miss a stored-but-not-applied feedback record.
For the current feedback validator, use feedback_kind: "execution" or feedback_kind: "semantic". Do not send top-level sequential, decision_context, or run_id; those fields are rejected. When supplying decision-time state directly, use the accepted context field.
Feedback-driven policy scoring
For the currently documented relation/policy workflow:
Store the relevant
relation, policy, and application run_id as structured provenance when the API contract calls for them. In feedback requests, relation and policy are top-level learner fields. run_id is not a top-level feedback field in the current validator; keep it in the surrounding application ledger or accepted metadata instead. Keep the relation, executed policy, and relevant decision-time context aligned between the query and its observed feedback. Keep trial, action, transition, and outcome provenance in the surrounding ledger. Do not hide the scoping values only inside free text.
Sealed-decision feedback
When a Domain query returns adecision_id, persist it when you need sealed attribution to that exact result. It is the preferred route for query → action → outcome workflows, but it is not the only policy-learning context route. Memory-bound feedback can use target_memory_id, and callers with the original structured state can supply explicit context.
Send decision-bound feedback to:
POST https://rei-neuroadapt-api.reilabs.org/api/v1/domains/{domain_id}/feedback
feedback_kind: "execution" for policy-outcome quality and feedback_kind: "semantic" when the feedback evaluates whether a hypothesis is applicable or supported. Without a declared reward contract, numeric feedback is read in this order: values.reward or metadata.reward, score, utility, Boolean correct/success/accepted, then the outcome label. error_distance is not a reward unless the Domain declares its normalization and minimization.
Accepted or stored feedback supplies evidence; it does not guarantee that a learner was applied or that the same policy will control a later selection. Inspect policy_update, eligibility, attribution, and credit_assignment when returned. In current responses, credit_assignment.contextual_learning_applied is the direct diagnostic for whether the contextual policy path was applied. Confirm the effect by checking that learning_state.subsystems.feedback_policy.sample_count advances on a later query.
For competing policies, set allow_exploration: true before a non-default selection_mode can apply. Supported modes are exploit, ucb, thompson, and auto; these affect Domain policy selection, not memory retrieval.
Defaults are sufficient for normal use. Use Domain
exploration_mode or exploration_strength only when the application intentionally needs different explore/exploit behavior. Use transfer_strength or action_transfer_strength only when evidence should share more broadly across related contexts or actions, or remain more strictly isolated.Adaptive result
For this workflow, compare the response-levelpolicy_scores entry for the relation/policy that received positive feedback against the one that received negative feedback. Use an unrelated relation as a control so that a scoped update is not mistaken for global behavior.
For this route, policy_scores is the documented learned signal. supporting_memories, core_support, and ranked-hypothesis fields add context and make the result easier to inspect.
Other adaptation surfaces
policy_scores is one public adaptation surface. Adapt-1 also exposes other adaptive results; the documented interval-policy workflow uses /adapt/* and returns prediction.<output_key>.