Skip to main content
Managed Research runs are designed to leave a reviewable trail.

Launch and state types

ResearchRunLaunchRequest is the released typed launch request. ResearchSwarm is the state model returned by swarm state and wait operations. Import both from the public Research namespace:
Most applications launch and inspect runs through SynthClient().research; use these models when a typed application boundary needs to construct a launch request or annotate a returned swarm without adding low-level transport code.

State flow

Runs usually move through:
A run may also stop because of budget, timeout, operator action, or launch/runtime failure.

Status and messages

Use status reads for current state and messages for durable communication with the runtime. MCP tools:
  • smr_get_run
  • smr_get_run_execution
  • smr_get_run_transcript
  • smr_list_run_actor_logs
Python:

Tasks and actors

Task and actor counts help show what the system actually did.

Artifacts and reports

Artifacts include reports, files, diffs, PR metadata, logs, and workflow-specific outputs.
MCP tools:
  • smr_list_run_artifacts
  • smr_get_run_artifact_manifest
  • smr_get_artifact_content

Checkpoints and branches

Use checkpoints before riskier changes or when a long run finds a useful intermediate state.

Usage

Usage readback helps connect the evidence to spend and budgets. Use smr_get_run_usage, smr_get_project_usage, and resource-limit progress tools from MCP, or handle.usage.get() / client.research.limits.get() from the hero Python SDK. Hard stops can come from run budget, monthly budget, timebox, or policy blockers.