Skip to content

Typed topology

Typed topology is an optional question the classifier can ask about how a session should be organized. The closed answers are single, team_star, fan_out, and no_match. It is off unless you turn it on.

It is not the rest of adaptive orchestration, and it is not the passive decision-model replay on that page.

PathWhen it runsWhat it may change
Ordinary orchestrationAdaptive orchestration is on, which is the default.A heuristic or bounded LLM genome patch, then an optional monitor reshape at a later run boundary.
Active typed topologytyped_topology_enabled is true and the classifier mode is llm, and this run has a complete evidence cut for the same prompt.The classifier’s topology field only: single, team_star, or fan_out. no_match changes nothing.
Passive decision modelsYou run bmo eval decision-model or an explicitly started local bridge.A report. The live route stays on the ordinary classifier.

A typed answer does not grant a tool, spend a budget, pass a verifier, or accept completion. The monitor can still reshape topology later unless you pin the field.

Leave the flag off for heuristic coordination or for the ordinary one-shot LLM genome patch. Pin topology when a fixed value must win and no Choice call should run. Use passive replay when you are comparing retained typed results and do not want a live route change.

[options.adaptive_orchestration.classifier]
mode = "llm"
typed_topology_enabled = true

typed_topology_enabled defaults to false. Omit the key, or set it to false, to keep the ordinary LLM genome patch. Setting the flag true while classifier.mode is omitted or heuristic fails config load with adaptive_orchestration.classifier.typed_topology_enabled requires llm mode.

options.adaptive_orchestration.enabled = false turns the whole layer off, including this question and its spawn checks.

All of the following have to hold. Otherwise the run keeps a baseline or heuristic result and does not treat a model answer as the route.

  • Adaptive orchestration is enabled, the flag is true, and the mode is llm.
  • The run has not been canceled and the session has not been retired.
  • topology is not pinned.
  • The App supplied a complete evidence cut for this session and this prompt. A partial cut does not call the model.
  • The prompt is valid UTF-8 and fits the 1,200-character classifier bound. A longer prompt is not sent as a truncated stand-in.
  • The task, run, and source owners are still the ones the evidence names. A stale owner keeps the baseline.

The call is one small-model request, temperature 0, at most 96 output tokens, with a five-second limit. The question id is topology_hint.v1.

[options.adaptive_orchestration.pinned_fields]
topology = "single"

Legal values are single, team_star, and fan_out. Any other value fails config load. A pin is applied to the baseline and the Choice call is skipped. The trace source is operator_pin.

The visible field is classification_source on the adaptive-orchestration prompt trace and on the live parity readouts.

classification_sourceMeaning
typed_choiceA current answer proposed single, team_star, or fan_out.
operator_pinTopology is pinned. No Choice call ran.
config_baselineThe run was canceled, the prompt did not match the evidence, or the owner was stale. The baseline stands.
llm_fallback_heuristicThe Choice was skipped or rejected and heuristic rules produced a patch.
llm_fallback_baselineThe Choice was skipped or rejected and heuristic rules added nothing.

no_match, an invalid answer, and a provider failure use the fallback rows. They do not invent a topology. A provider failure logs Typed topology classifier failed; falling back.

While the flag and LLM mode are on, a proposed topology is checked again at spawn_agent, spawn_agents_on_csv, and create_team:

Proposed topologyAllowed toolOther of those three
team_starcreate_teamdelegation does not match the current typed topology
fan_outspawn_agent, spawn_agents_on_csvsame mismatch error
singlenone of the threesame mismatch error

Other refusals at that boundary:

  • typed topology owner evidence is no longer current
  • typed topology run is no longer active
  • current topology policy is invalid when a topology pin is empty or illegal

A fallback that kept the baseline or the heuristic route does not add the mismatch error. A run that already recorded stale owner evidence still refuses those three tools with typed topology owner evidence is no longer current. Ordinary tool permission still applies. Passing the check does not grant a budget or a child run by itself.

bmo config show-adaptive-orchestration shows the layer, not the flag. With the layer on and no live session, expect:

state: enabled-idle
classifier_mode: llm

There is no typed_topology_enabled line. Read the merged config for the flag. state: disabled means the whole adaptive layer is off.

For a live session, read classification_source from:

  • the Agent Debugger (/debug) prompt event, segment adaptive_orchestration
  • get_adaptive_orchestration or bmo_get_adaptive_orchestration
  • GET /v1/sessions/{id}/adaptive-orchestration

The maintainer procedure, including the recorded disposition names, is Typed topology.

Set typed_topology_enabled = false, or delete the key. To stop the Choice path without leaving an invalid combination, also keep mode at heuristic only when the flag is false.

[options.adaptive_orchestration.classifier]
mode = "heuristic"

Pinning topology stops the Choice call and leaves the rest of adaptive orchestration on. Disabling adaptive orchestration stops ordinary reshapes, the Choice, and the spawn check together.

Passive comparison stays a separate command and does not re-enable the flag:

Terminal window
bmo eval decision-model --example > decision-corpus.json
bmo eval decision-model decision-corpus.json

That replay makes no provider call. A local bridge started for the same Choice contract does not turn typed topology on. See Adaptive orchestration for the passive report fields.