After you approve an experiment proposal, Thesis delegates execution to a sandboxed sub-agent that runs independently of your chat session. The sub-agent receives a compiled payload from durable Thesis state, not your chat history, and reports telemetry back as it works. This guide covers every step from approval to result.

The approval flow

1

Approve the proposal in the UI

On the experiment proposal card in the agent chat (or in the Agents tab), click Run with your chosen GPU SKU and provider. This triggers two things in sequence:
  1. The backend writes compute_approval.json to the node and logs a proposal_approved entry in the research log.
  2. The frontend injects a synthesized hidden message into the chat stream, passing the approval token to the agent.
No compute is acquired yet, the token is simply minted and ready to be consumed.
If the agent needs to request approval programmatically rather than via the UI card, it calls thesis_request_compute_grant_approval to initiate the approval session and prompt you for confirmation.
2

The agent calls spawn_experiment_agent

The main agent receives the approval token in the injected message and emits a spawn_experiment_agent tool call. The backend validates the token, then executes this sequence:
  1. Creates an approval session and compute grant tied to the token.
  2. Calls thesis_compute_acquire to lease a GPU from the selected provider.
  3. Mints a runner token scoped to the sub-agent’s callback URL.
  4. Updates the node status to in_progress.
  5. Starts the sandbox runner on the provider when supported.
The agent acknowledges the result in chat, and the Agents tab refreshes to show the new active lease.
3

The sub-agent executes

The sub-agent runs in an isolated sandbox. It receives the following compiled payload, sourced entirely from durable Thesis state, not from chat history:
VariableWhat it contains
THESIS_BLUEPRINT_JSONThe full 8-section experiment blueprint from blueprint.json
THESIS_NODE_IDThe ID of the empirical node being executed
THESIS_PROJECT_IDThe project scope for graph and filesystem access
THESIS_CALLBACK_URLEndpoint for telemetry, signals, and asset uploads
THESIS_RUNNER_TOKENAuth token for sub-agent callbacks (not your API key)
The sub-agent does not receive your chat history. If the research plan changes materially while the sub-agent is running, spawn a new run or send an explicit signal via send_to_agent.
Because the sub-agent works from the blueprint, the quality of the experiment design directly determines the quality of the execution. A well-specified method_section and data_config_section reduce the risk of the sub-agent making ambiguous implementation choices.
4

Monitor telemetry in the Agents tab

Switch to the Agents tab to watch the sub-agent’s progress. The backend persists runner telemetry events in real time:
Event typeWhat it signals
startedSub-agent initialized and running
heartbeatPeriodic liveness signal
milestone_reportA named checkpoint the sub-agent explicitly logged
stdout / stderrProcess output
asset_manifestA new file or result has been generated
error_traceAn exception or failure
doneSub-agent finished
Milestones, generated files, and results are surfaced back in the agent chat as asset_card events, you can see plots, reports, and datasets without leaving the conversation.
5

Release compute when done

When the sub-agent finishes, the lease is released automatically. If you need to stop a run early or clean up a stalled lease, use:
{
  "name": "thesis_compute_release",
  "arguments": {
    "lease_id": "<lease-id>"
  }
}
To release all active leases at once:
{
  "name": "thesis_compute_release_all",
  "arguments": {}
}
Released leases appear in the Completed section of the Agents tab.

Compute providers

Thesis supports two compute backends:
ProviderBest forNotes
ModalSandboxed sub-agent runsDefault runner; starts automatically on approval. Connect in Settings → API Keys.
Lambda CloudGPU instances for longer training runsSet provider: "LAMBDA" in the proposal. Connect your Lambda Cloud account in Settings → API Keys.
Browse available GPU SKUs with thesis_compute_list_options before approving a proposal if you want to select a specific instance type.

Safety boundaries

Thesis is intentionally conservative with compute:
  • The approval token is short-lived and single-use. Prompt compliance alone cannot start a run.
  • Sub-agent callbacks use runner tokens, not your API key, so a compromised sub-agent cannot access your account.
  • The main agent cannot spend compute on its own, every run requires an explicit approval action from you.