Skip to content

Sub-agents & orchestration

Liminal can fork child agents to parallelize big jobs — refactors, multi-angle research, independent builds — then merge their results. Orchestration tools are harness-scoped: they're recreated per child (never copied parent → child), and a fixed set (ORCHESTRATION_TOOL_NAMES) stays on the parent so children can't spawn at root.

For declarative, repeatable multi-phase fan-out, prefer Dynamic workflows. Use the tools here for flexible, ad-hoc parallelism.

Spawning and coordinating

ToolPurpose
spawn_agentFork a child harness with a focused prompt and a scoped tool set
wait_for_agentsBlock until a batch of children finish
list_agentsInspect the live fleet mid-turn
cancel_agentStop a runaway child

forkChild() gives each child its own registry slice. contract_tool_mapper maps the child's contract to the right families (web, code_intel, memory) so it starts with what it needs and nothing more.

Shared context between agents

Every spawn auto-activates share_agent_context / read_agent_context over the session SharedMemoryBus (finalizeChildSpawnTools). Declare dependsOn and a child automatically receives each dependency's result via buildUpstreamDependencyContext — no manual paste.

Verification & debate

Run critics on outputs, especially code- or path-heavy answers:

ToolPurpose
verify_resultGeneral result verification (also auto-run when AGENT_CRITIC is on)
evidence_critic / path_critic / policy_criticTargeted structured challenges
reflect_debateAdversarial pass between positions
verify_contractCheck execution contracts from decompose_goal
branch_explore / branch_evaluateExplore and score alternative approaches

Decomposition & DAG scheduling

  • decompose_goal — break a goal into subgoals with acceptance criteria.
  • dispatch_graph — schedule tools within a round when they depend on each other.
  • query_tool_outputs — query the session tool-output index.
  • synthesis_run — a cross-domain synthesis sub-agent that merges findings.

Enabling

Orchestration tools live in the orchestration / reasoning_advanced / synthesis families and activate on demand (or via the max_autonomy profile). They're available only on the root harness. Telemetry surfaces in the web subtask inspector and session JSONL.

VariablePurpose
AGENT_CRITICAuto-run verify_result when the final answer is code/path-heavy

When NOT to parallelize

Sub-agents add coordination cost and burn tokens. For a single linear task the main loop is cheaper and clearer. Reach for sub-agents when work is genuinely independent (per-package, per-source, per-angle) — and for structured, repeatable fan-out use workflows instead.

See also: Dynamic workflows · Tool families.

Liminal AI · Alpha docs · Marketing: vireondynamics.com/liminal · Compare: vireondynamics.com/liminal/compare