Skip to content

Orchestration Decision Readout

Orchestration Decision Readout is a compact, read-only explanation surface for how a workflow or candidate-search episode was assembled. It returns bounded decision rows, a top-level status, and optional derived advisory blocks that help you tell the difference between local row issues and a broader rollup gap.

This surface is for inspection, debugging, and integration. It does not choose an action, reroute execution, or grant provider authority by itself.

Orchestration decision advisory readout in context
Live BMO TUI: a real provider-backed turn uses `get_orchestration_decision_readout` on bounded sample evidence, then explains the operator value of `aggregate_summary`, `recommendation_quality`, and `composite_rollup_blocked` without exposing raw prompts or provider payloads.

Use the readout when you need to inspect orchestration evidence without reading internal traces or raw provider payloads.

Good moments to check it:

  • When a workflow result looks degraded and you need the row-level reason.
  • When candidate selection, pruning, merge, or handoff behavior needs a bounded explanation.
  • When an integration needs a stable JSON contract instead of TUI inspection.
  • When you want to distinguish between a blocked row and a missing composed rollup surface.

Every response includes:

FieldMeaning
schema_versionVersioned readout contract.
generated_at_unixUTC generation time as a Unix timestamp.
statusOverall posture derived from the rows and composed rollup availability.
composite_rollup_availableWhether the composed rollup surface was available when the readout was built.
rowsBounded decision rows reconstructed from workflow, candidate-search, and explicit advisory evidence.
warningsOptional bounded warning strings.

The response may also include two derived blocks:

Derived blockWhen it appearsWhat it means
aggregate_summaryWhen rows or warnings are presentAdvisory rollup over row counts, warning counts, and composed rollup availability.
recommendation_qualityOnly when recommendation rows existDescriptive metrics over recommendation evidence already present in the readout.

Provider recovery evidence remains conditional. When session-scoped owner evidence is available, the readout may include a provider_recovery_ref on a bounded row owned by provider_recovery. That row is advisory: it cites provider recovery posture without taking ownership of provider truth.

aggregate_summary is derived. It does not override the row-level evidence.

FieldMeaning
statusDerived overall advisory posture.
total_rowsNumber of bounded decision rows in the readout.
warning_rowsRow count carrying warning severity.
blocks_rollup_rowsRow count that blocks a composed rollup.
blocks_promotion_rowsRow count that blocks promotion.
warning_countCount of top-level warning strings.
composite_rollup_blockedSignals that the composed rollup surface itself was unavailable, even if no individual row is blocked.

The important distinction is this:

  • A row-level blocked state lives in rows.
  • A composed rollup gap lives in aggregate_summary.composite_rollup_blocked.

That lets you tell whether the problem is in one primitive row or in the absence of the higher-level rollup surface.

recommendation_quality is descriptive, not authoritative. It summarizes only the recommendation rows already present in the payload.

FieldMeaning
total_recommendationsTotal recommendation rows.
actionable_recommendationsRecommendation rows with a next_action.
role_recommendationsRecommendation rows carrying an advisory role.
topology_recommendationsRecommendation rows carrying an advisory topology.
model_recommendationsRecommendation rows carrying an advisory model.
route_recommendationsRecommendation rows carrying an advisory route.
warning_recommendationsRecommendation rows that also carry warning severity.

If no recommendation rows exist, this block is omitted.

The same contract is exposed through multiple surfaces:

SurfaceUse
POST /v1/orchestration-decision-readoutHTTP read for integrations and tooling.
get_orchestration_decision_readoutNative agent read surface returning the same JSON contract when server-backed parity is enabled.
bmo_get_orchestration_decision_readoutMCP read surface returning the same JSON contract when app-backed MCP parity is enabled.
Runtime featuresDiscovery metadata advertises the parity route, the conditional recommendation_quality block, and conditional provider recovery references.

The HTTP route accepts bounded reconstruction inputs. Native and MCP calls use the same shape, with one extra convenience: when session_id is omitted, a session-bound tool or MCP context may supply it implicitly.

FieldMeaning
session_idOptional session identifier used to resolve owner-backed provider recovery references. For HTTP, pass it explicitly in the JSON body when you need session-scoped provider recovery evidence.
run_idOptional run identifier for bounded handoff rows.
workflow_idOptional workflow identifier for bounded handoff rows.
workflow_nodesOptional workflow DAG evidence rows.
candidate_searchOptional candidate-search evidence for branch, score, prune, merge, and recommendation rows.
additional_rowsOptional explicit bounded decision rows.
composite_rollup_availableWhether the composed rollup surface is available for this readout.

The readout is intentionally bounded:

  • No raw prompt text
  • No raw tool bodies
  • No provider payloads
  • No hidden chain-of-thought or private deliberation
  • No orchestration-owned provider health truth; provider recovery surfaces stay authoritative