Skip to main content
POST
Spawn an agent

Authorizations

Authorization
string
header
required

murmur API key: mur_<key_id>.

Body

application/json
agentId
object

Identifies an agent. The identity is (tenant, workspace, owner, agent path); the workspace scopes the agent's repos, environment, and base branches.

description
string
serviceProfile
string

Service profile name. When set, the agent runs with the named service profile's identity and credentials (a bot spawn). When empty, the agent runs as the calling developer.

gitName
string

Git identity — optional. Defaults to the caller's stored profile, then the caller's username.

gitEmail
string
sshPublicKeys
string[]
plaintextSecrets
object

Plaintext secrets, keyed by environment-variable name. The server encrypts them and merges them into the agent's secrets ahead of every other source. Highest precedence.

idleTimeout
string
model
string
fastMode
boolean
codingAgent
string
backend
string
skipChecks
string[]
suggestTerminateMode
enum<string>
default:SUGGEST_TERMINATE_MODE_UNSPECIFIED
  • SUGGEST_TERMINATE_MODE_UNSPECIFIED: inherit (workspace, then the SUGGEST default)

  • SUGGEST_TERMINATE_MODE_SUGGEST: advisory only: the dashboard renders a delete button; a human decides

  • SUGGEST_TERMINATE_MODE_IMMEDIATE: terminate the agent immediately, no delete button

Available options:
SUGGEST_TERMINATE_MODE_UNSPECIFIED,
SUGGEST_TERMINATE_MODE_SUGGEST,
SUGGEST_TERMINATE_MODE_IMMEDIATE
resurrect
boolean
appendSystemPrompt
string
forkFrom
string
forceNew
boolean
tasks
object[]
expectedOutput
string

Expected output artifact. Free-form — known shorthands are expanded into agent behavior: "pr" → open a pull request "push" → push changes, no PR "respond" → just respond, no code changes "diff" → produce a diff, no commit "report" → produce a written report "none" → no artifact expected Anything else flows through to the agent verbatim.

parentAgentId
object

Identifies an agent. The identity is (tenant, workspace, owner, agent path); the workspace scopes the agent's repos, environment, and base branches.

agentConfig
object

An agent persona definition: system prompt, model, and tool configuration.

sessionMode
enum<string>
default:SESSION_MODE_UNSPECIFIED

SessionMode determines how the agent's coding session is executed.

  • SESSION_MODE_AUTONOMOUS: The agent runs each turn to completion and returns structured output.
  • SESSION_MODE_STREAMING: Long-lived interactive session; follow-ups stream into the live session.
Available options:
SESSION_MODE_UNSPECIFIED,
SESSION_MODE_AUTONOMOUS,
SESSION_MODE_STREAMING
completionCheck
enum<string>
default:COMPLETION_CHECK_UNSPECIFIED

CompletionCheck determines whether the agent re-checks completion after a task finishes, before entering idle behavior.

  • COMPLETION_CHECK_NONE: Proceed directly to idle behavior.
  • COMPLETION_CHECK_ASSESSOR: Fork session, run completion assessor up to 3 times.
Available options:
COMPLETION_CHECK_UNSPECIFIED,
COMPLETION_CHECK_NONE,
COMPLETION_CHECK_ASSESSOR
onIdle
enum<string>
default:ON_IDLE_UNSPECIFIED

OnIdle determines what happens when the agent has no more work after task completion (and optional completion check).

  • ON_IDLE_SLEEP: Hibernate/suspend VM, wait for follow-up or cancel.
  • ON_IDLE_TERMINATE: End the agent and destroy its VM.
  • ON_IDLE_KEEP_ALIVE: VM stays running, session stays live. Periodic session backup every 30m.
Available options:
ON_IDLE_UNSPECIFIED,
ON_IDLE_SLEEP,
ON_IDLE_TERMINATE,
ON_IDLE_KEEP_ALIVE
dequeueStrategy
enum<string>
default:DEQUEUE_STRATEGY_UNSPECIFIED

Controls how queued follow-up messages are drained between agent turns.

  • DEQUEUE_STRATEGY_UNSPECIFIED: Default: AUTO.
  • DEQUEUE_STRATEGY_ALL: Drain all queued follow-ups into one batch.
  • DEQUEUE_STRATEGY_ONE: Drain one follow-up per turn.
  • DEQUEUE_STRATEGY_FIVE: Drain up to five follow-ups per turn.
  • DEQUEUE_STRATEGY_AUTO: Drain up to five follow-ups of one kind per turn — manual follow-ups and auto-generated events are never delivered in the same turn (kind-boundary batching, capped at five).
Available options:
DEQUEUE_STRATEGY_UNSPECIFIED,
DEQUEUE_STRATEGY_ALL,
DEQUEUE_STRATEGY_ONE,
DEQUEUE_STRATEGY_FIVE,
DEQUEUE_STRATEGY_AUTO
repos
object[]

Per-repo branch overrides and/or additional repos to clone. Entries matching workspace repos override their branch config. Entries not matching any workspace repo are extraneous repos to clone.

branch
string

Working branch for every repo in this spawn. Applied after workspace repos are resolved — per-repo overrides (repos[].branch) take precedence when both are set.

purpose
string

One-sentence human-readable goal for this agent. Displayed in the dashboard for context. Not interpreted by the system. Max 240 chars.

reasoningEffort
string
reasoningSummary
string
verbosity
string
serviceTier
string
suppressedEventClasses
enum<string>[]

Follow-up event classes the spawned agent ignores, enforced at event delivery. Empty (the default) means react to every class. Must not contain FOLLOW_UP_EVENT_CLASS_UNSPECIFIED.

A user-suppressible category of follow-up event. Only events that wake an already-running agent are classifiable; spawn-trigger and orchestration events are never suppressible.

  • FOLLOW_UP_EVENT_CLASS_UNSPECIFIED: not a suppressible event
  • FOLLOW_UP_EVENT_CLASS_CI: ci_result
  • FOLLOW_UP_EVENT_CLASS_PR_COMMENTS: pr_comment, pr_review
Available options:
FOLLOW_UP_EVENT_CLASS_UNSPECIFIED,
FOLLOW_UP_EVENT_CLASS_CI,
FOLLOW_UP_EVENT_CLASS_PR_COMMENTS
tags
string[]

Tags to attach to the spawned agent, each a tag name (e.g. "release-blocker") or any text that slugifies to one (e.g. "Release Blocker"). A reference matching an existing tag attaches it; one matching none creates it. Max 8; duplicate-free.

outputSchema
string

Optional JSON Schema (as a JSON document) constraining the agent's structured output. When set, the agent's task answer is returned as the schema-validated result member of the canonical {response, needs_input, result} envelope and surfaced on AgentTaskOutput.structured_output. Empty = the platform default envelope ({response, needs_input}) with no result. Validated at spawn time; a malformed schema is rejected with InvalidArgument.

lifecycleConsumers
object[]

Lifecycle-event consumers to attach to the agent. Each consumer kind may appear at most once.

imageRef
string

Catalog image name (e.g. "python-a1b2c3d4e5f67890"). When set, this agent's VM boots from this image instead of the workspace default. The image must exist and be bootable on the workspace's placement substrate. Not inherited on resurrect — pass it again.

disableCurrentBranchForking
boolean

Child spawns only: disables the default of basing each inherited repo on the parent's checked-out working branch. When set, each inherited repo resolves to its default branch at clone — the same base a top-level spawn gets — so a parent can spawn a child without pushing its working branch first. A top-level spawn rejects it.

Response

A successful response.

agentId
object

Identifies an agent. The identity is (tenant, workspace, owner, agent path); the workspace scopes the agent's repos, environment, and base branches.

shortId
string
dashboardUrl
string

Dashboard URL for the spawned agent. Empty when the server has no public URL configured.