Skip to content

Ontology-Grounded ARB Agent Loop

Use this design to understand how FDAI’s operating ontology and fixed 15-agent pantheon review a planned change. It keeps meaning, authority, execution, observation, and learning in separate accountable boundaries.

Scope: This document owns the ARB decision loop. The evidence and authority contract owns evidence bindings, approval, risks, and production exit. The delivery plan sequences implementation.

Authority boundary: The ontology validates identity, relationships, time, evidence, and constraints. It never judges, approves, executes, or raises autonomy.

A normalized Change starts one bounded review. Muninn freezes the current operating context, relevant specialists publish their owned evidence, and Forseti joins the required inputs into an immutable DecisionCase and ImpactEnvelope. Odin resolves only eligible cross-objective conflicts. Var requests human approval only when policy or residual risk requires it.

Design at a glance. The main stages are Huginn: Change, Muninn: context snapshot, Relevant specialists, OperationalEvidenceBundle, Ontology scenario branch, Forseti: DecisionCase, Mimir: constraints and policies, Odin: arbitration, Var: approval, Decision receipt, Saga: audit and Process projection, Thor: execution.

The ARB read model derives from agent-owned records. It does not use mutable checklist status as a second source of truth.

RecordAuthorityARB use
ChangeHuginnExact proposed revision, target, actor, desired-state digest, and correlation
OperationalContextSnapshotMuninn-supported projectionTime-consistent topology, objectives, ownership, freshness, and conflicts
OperationalEvidenceBundleVerified provider receiptsImmutable ontology, state, catalog, and document evidence lanes
ArchitectureConstraint and PolicyMimirEffective constraints and deterministic evaluation rules
Domain observationsHeimdall, Njord, Freyr, LokiReliability, security, cost, capacity, performance, and recovery evidence
DecisionCase and ImpactEnvelopeForsetiBounded options, no-action baseline, protected objectives, uncertainty, and impact limits
ArbitrationDecisionOdinSelection among constitutionally eligible soft-objective tradeoffs
ApprovalVarCurrent, scoped approval when policy requires a person
Decision and audit chainSaga projection over owned eventsReplayable decision, conditions, authority basis, and terminal status
ActionRunThorSeparate execution after the ARB decision and normal action gates
ObservedOutcomeHeimdallIndependent effect closure against expected effects

ReviewCase and ReviewCheck remain read models. They summarize these records for the Process and Console, but they cannot create a decision or mark evidence ready by themselves.

Every agent has a possible ARB responsibility, but a review activates only the agents relevant to the target’s ontology relationships and active objectives.

AgentARB responsibilityActivation condition
OdinArbitrate eligible cross-objective conflictsTwo or more eligible options conflict after hard constraints
ThorExecute a separately promoted actionA final action decision passes all action gates
ForsetiJoin evidence, evaluate constraints, create the case and decision recommendationEvery planned change review
HuginnNormalize, deduplicate, correlate, and publish the exact Change revisionPlanned-change ingress
HeimdallValidate graph and telemetry health, then independently close effectsReliability, security, drift, forecast, or terminal outcome evidence is required
VidarValidate recovery readiness and own recovery after failureThe proposed change needs rollback or recovery evidence
VarEnforce role, quorum, timeout, and no-self-approvalPolicy-mandated or residual human approval
BragiTranslate an operator request and explain grounded resultsConversational start or explanation
SagaPersist audit intent, decision lineage, conditions, and terminal closureEvery review transition
MimirSupply active constraints and policies; accountable owner approved catalog changesConstraint evaluation or accepted constraint change
MuninnRetain change revisions and materialize bounded contextEvery planned change review
NornsPropose inert rules from repeated reviewed outcomesA bounded outcome cohort shows a reusable pattern
NjordEvaluate cost objectives and budget effectsCost-sensitive services or resources are in scope
FreyrEvaluate capacity and performance effectsCapacity or performance objectives are in scope
LokiPropose resilience experiments without self-authorizing themExisting evidence cannot establish recovery behavior safely

Agents collaborate through typed publish and subscribe only. The review coordinator is mechanical: it records deadlines and required evidence keys, but Forseti owns the decision to continue, hold, or escalate.

  1. Huginn publishes one immutable Change and preserves one correlation ID plus the requested ontology release digest.
  2. Muninn materializes a secured snapshot for the exact graph release and evidence cutoff. The snapshot requires verified links before it can produce authenticated graph evidence.
  3. Relevant specialists publish only their owned object topics with the same case reference.
  4. Forseti converts that exact snapshot into the planned-change graph receipt, compares its ontology release with the requested digest, and joins the policy-required evidence set under a deadline. Missing, stale, mixed-release, incomplete, unauthenticated, conflicting, synthetic, future, or truncated evidence lowers the authority ceiling. The receipt projector re-derives link evidence quality from typed metadata instead of trusting the snapshot’s conflict summary.
  5. Before asking a person, FDAI attempts bounded reacquisition, an alternate authoritative source, deterministic reevaluation, or a smaller safe option.

Slow or failed subscribers do not block unrelated work. The owner of the join records an explicit missing or late branch instead of interpreting silence as success.

The current runtime binding keeps this boundary observation-only. Core selects Forseti’s review loop only when composition supplies a complete authenticated context/evidence provider pair and an ontology instance store. The deployment StateStore atomically retains the Change idempotency identity and projection status across replicas; a restart after an incomplete projection holds instead of re-evaluating the same identity against newer evidence. A dedicated non-agent consumer group reads owned object.change, object.state-snapshot, specialist, object.verdict, and object.audit-entry topics, replays the immutable ArchitectureReviewObservationTrace, and retains terminal observer gave_up/halted states as degradation evidence. It does not call agents directly, mutate runtime state, or grant execution authority. When an ARB stage has no distinct owned record yet, the trace stays on hold instead of synthesizing success.

The review accepts only planned intent. It hashes the complete Change identity, uses one absolute deadline, and serializes only identical idempotency keys, so unrelated reviews can continue in parallel. Context and evidence must name the same ontology and catalog releases. An unavailable re-read preserves existing checks instead of removing them, and evidence artifact identities bind the bundle and item content. The resulting Change, DecisionCase, ImpactEnvelope, and ReviewCase records retain typed lineage links and remain explicitly observation-only. An architecture_review observation decision is audit-only: Odin excludes it from action-portfolio counts, Thor never dispatches it, and Saga retains the terminal evidence. If the injected state store cannot retain projection status, the loop uses a bounded process-local oldest-first cache; the fallback cannot grow without limit or create authority. Process lineage comes only from an existing Change process_ref that resolves to a typed Process. The projector emits change_instantiates_process; it never invents a review-to-process shortcut, and a validation conflict leaves lineage unavailable with a bounded warning. The base graph must be complete and its source generation must match the authenticated context before an envelope can be conformant. Projection status is recorded with the observation, so a stored result retries a failed or unavailable production projection without re-running evidence collection. Existing Huginn Change records are preserved; a new Change is projected only when the exact normalized fields are present. Scenario branch identifiers use an ASCII-safe bounded prefix plus a content digest, including for UUID-shaped or otherwise long Change identifiers. Deadline fallbacks compare the full Change identity before accepting stored state and use bounded persistence or a durable outbox. Normalized optional provenance fields, including process_ref, remain available for exact Change and Process lineage.

Autonomy applies to review work before it applies to changes. A machine-ready result is not the same as production authorization.

LevelConditionsResult
Automatic conformanceExact change, fresh complete graph, active objectives and constraints, verified evidence, bounded impact, no conflictRecord a conformant recommendation under bounded standing authority
Automatic conditional reviewDeterministic conditions can close all known gapsRecord conditions and reevaluate automatically when evidence changes
Human approvalPolicy requires a person, an exception is requested, impact is high, or residual ambiguity remainsVar opens a scoped approval with quorum and expiry
Hold or rejectEvidence is incomplete, stale, conflicting, target-mismatched, or a hard constraint is violatedApply no change; record the reason and next evidence action

Architecture baseline changes, production promotion, irreversible changes, and exceptions do not gain automatic authority from a green graph result.

The Console should present separate axes instead of one green or red status:

  • Evidence state: complete, incomplete, stale, conflicting, or unavailable.
  • Evaluation state: conformant, conditional, violated, or held.
  • Authority state: observation only, standing authorization, approval required, or approved.
  • Execution state: not requested, pending, running, verified, failed, or recovered.
  • Learning state: ineligible, cohort collecting, candidate proposed, or catalog reviewed.

Every displayed state links to the exact Change, context digest, evidence bundle digest, DecisionCase, conditions, approvals, and audit records that produced it.

GapRequired correction
Planned-change assessment now falls back to ChangeGraphEvidenceReceipt.unavailable()Wire the receipt from the exact OperationalContextSnapshot so planned-change review carries an authenticated graph revision, release match, freshness, and truncation state
Workflow parallel branches journal caller-supplied outcomesDrive branches from agent-owned typed evidence and record explicit deadlines
ARB projection reads manifest status directlyDerive ReviewCase and ReviewCheck from decision lineage and verified evidence
The provider-neutral bundle/scenario/case/envelope path is composed, but runtime activation still depends on deployment-supplied authenticated context and evidence sourcesBind those exact production sources and retain one governed observation receipt
Operating intent instances are not proven end to endProject service, recovery, cost, ownership, constraint, and change-window instances with freshness
The ARB trace runtime binding currently covers only the emitted owned topicsExtend owned records for context, evidence bundle, impact envelope, recommendation, and the derived ReviewCase projection so the observation-only runtime trace can close the full first vertical slice without synthesizing missing stages
To learn aboutRead
ARB entry point and decision boundaryArchitecture Review Board Packet
Evidence, approvals, and production exitEvidence and Authority
Dependency-ordered implementationDelivery Plan
Operating ontology ownershipOperating Ontology
Fixed agent rolesAgent Pantheon
Delivery status and remaining workImplementation ledger