Skip to main content
Glama

Run a task with a local AI CLI

start_agent
Destructive

Start a CLI subagent invocation and receive an invocation_id to track it, then use wait_agent to collect the result.

Instructions

Start one CLI invocation and return its invocation_id; use wait_agent for the result.

AgentNave imposes no runtime deadline; use cancel_agent to stop work explicitly. Provider-native limits still apply. Active invocations do not accept messages. To continue a finished conversation, pass its returned native session_id with a new prompt to a new start_agent call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cwdYesAbsolute existing directory where the subagent runs.
promptYesComplete task, context, constraints, and expected output; the CLI does not inherit this conversation.
providerYesCLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok. Excluded providers: none. Excluded providers are rejected before launch.
session_idNoTo continue a conversation, use the session_id returned by a finished invocation of the same provider; omit for a new conversation. Never use an invocation_id here.
provider_optionsNoExplicit options for the selected CLI. Call describe_provider(provider) for supported keys. Omitted options inherit native CLI settings.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNo
outputNo
reasonYes
statusYes
activityNo
elapsed_msYes
session_idNo
invocation_idYes
output_age_msNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.9.0
    • removedInput schema / properties / timeout_seconds
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "exclusiveMinimum": 0,
      -      "maximum": 86400,
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Optional total runtime limit in seconds; expiry stops the invocation. Omit or null for no AgentNave deadline; native CLI limits still apply.",
      -  "title": "Timeout Seconds"
      -}
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "running",
      -  "succeeded",
      -  "failed",
      -  "blocked",
      -  "cancelled",
      -  "timed_out"
      -]New value: +[
      +  "running",
      +  "succeeded",
      +  "failed",
      +  "blocked",
      +  "cancelled"
      +]
  2. Changed20 schema fields changedv0.7.0
    • changedInput schema / properties / provider / description
      Previous value: -"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok. Excluded providers: none. Exclusions are enforced before an invocation is created. Choose an installed, authenticated permitted CLI; if none is available, report the blocker instead of falling back to an excluded provider."New value: +"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok. Excluded providers: none. Excluded providers are rejected before launch."
    • changedInput schema / properties / provider_options / description
      Previous value: -"Explicit options for the selected CLI. Call describe_provider(provider) for supported keys and model/effort defaults; user choices override those defaults."New value: +"Explicit options for the selected CLI. Call describe_provider(provider) for supported keys. Omitted options inherit native CLI settings."
    • addedInput schema / properties / timeout_seconds / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 86400,
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / timeout_seconds / default
      Previous value: -1800New value: +null
    • changedInput schema / properties / timeout_seconds / description
      Previous value: -"Total runtime limit in seconds; expiry stops the invocation."New value: +"Optional total runtime limit in seconds; expiry stops the invocation. Omit or null for no AgentNave deadline; native CLI limits still apply."
    • removedInput schema / properties / timeout_seconds / exclusiveMinimum
      Removed value: -0
    • removedInput schema / properties / timeout_seconds / maximum
      Removed value: -86400
    • removedInput schema / properties / timeout_seconds / type
      Removed value: -"number"
    • addedOutput schema / $defs
      Added value: +{
      +  "ActivityPayload": {
      +    "properties": {
      +      "age_ms": {
      +        "title": "Age Ms",
      +        "type": "integer"
      +      },
      +      "kind": {
      +        "title": "Kind",
      +        "type": "string"
      +      },
      +      "state": {
      +        "title": "State",
      +        "type": "string"
      +      },
      +      "tool_name": {
      +        "title": "Tool Name",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind"
      +    ],
      +    "title": "ActivityPayload",
      +    "type": "object"
      +  },
      +  "InvocationErrorPayload": {
      +    "properties": {
      +      "code": {
      +        "title": "Code",
      +        "type": "string"
      +      },
      +      "message": {
      +        "title": "Message",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "message"
      +    ],
      +    "title": "InvocationErrorPayload",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties / activity
      Added value: +{
      +  "$ref": "#/$defs/ActivityPayload"
      +}
    • addedOutput schema / properties / elapsed_ms
      Added value: +{
      +  "title": "Elapsed Ms",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / error
      Added value: +{
      +  "$ref": "#/$defs/InvocationErrorPayload"
      +}
    • addedOutput schema / properties / output
      Added value: +{
      +  "title": "Output",
      +  "type": "string"
      +}
    • addedOutput schema / properties / output_age_ms
      Added value: +{
      +  "title": "Output Age Ms",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / reason
      Added value: +{
      +  "enum": [
      +    "started",
      +    "wait_elapsed",
      +    "execution_blocked",
      +    "finished"
      +  ],
      +  "title": "Reason",
      +  "type": "string"
      +}
    • addedOutput schema / properties / session_id
      Added value: +{
      +  "title": "Session Id",
      +  "type": "string"
      +}
    • removedOutput schema / properties / state
      Removed value: -{
      -  "const": "running",
      -  "title": "State",
      -  "type": "string"
      -}
    • addedOutput schema / properties / status
      Added value: +{
      +  "enum": [
      +    "running",
      +    "succeeded",
      +    "failed",
      +    "blocked",
      +    "cancelled",
      +    "timed_out"
      +  ],
      +  "title": "Status",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "invocation_id",
      -  "state"
      -]New value: +[
      +  "invocation_id",
      +  "status",
      +  "reason",
      +  "elapsed_ms"
      +]
    • changedOutput schema / title
      Previous value: -"StartAgentPayload"New value: +"InvocationPayload"
  3. Changed5 schema fields changedv0.5.0
    • changedInput schema / properties / prompt / description
      Previous value: -"Complete, self-contained task for the subagent."New value: +"Complete task, context, constraints, and expected output; the CLI does not inherit this conversation."
    • changedInput schema / properties / provider / description
      Previous value: -"Local subagent provider to launch."New value: +"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok. Excluded providers: none. Exclusions are enforced before an invocation is created. Choose an installed, authenticated permitted CLI; if none is available, report the blocker instead of falling back to an excluded provider."
    • changedInput schema / properties / provider_options / description
      Previous value: -"Explicit provider-native options. Omit to inherit the provider's own settings; supported keys depend on the selected provider."New value: +"Explicit options for the selected CLI. Call describe_provider(provider) for supported keys and model/effort defaults; user choices override those defaults."
    • changedInput schema / properties / session_id / description
      Previous value: -"Provider session ID returned by an earlier finished invocation."New value: +"To continue a conversation, use the session_id returned by a finished invocation of the same provider; omit for a new conversation. Never use an invocation_id here."
    • changedInput schema / properties / timeout_seconds / description
      Previous value: -"Maximum provider runtime in seconds."New value: +"Total runtime limit in seconds; expiry stops the invocation."
  4. Changed1 schema field changedv0.3.0
    • changedInput schema / $defs / ProviderName / enum
      Previous value: -[
      -  "antigravity",
      -  "claude",
      -  "codebuddy",
      -  "grok"
      -]New value: +[
      +  "antigravity",
      +  "claude",
      +  "codebuddy",
      +  "codex",
      +  "grok"
      +]
  5. First observedv0.2.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral context beyond annotations: AgentNave imposes no runtime deadline, provider-native limits still apply, and active invocations reject messages. It also clarifies the continuation pattern with session_id. This goes well beyond the readOnly/destructive hints, and there is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tightly written sentences with the primary action and result front-loaded. Each subsequent sentence earns its place by addressing deadline, alternatives, or continuation—no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich output schema and fully described parameters, the description covers all necessary operational aspects: lifecycle, result retrieval, cancellation, deadlines, provider limits, and conversation continuation. Nothing an agent needs to select and call the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% parameter coverage with detailed descriptions (e.g., provider exclusions, session_id 'never use an invocation_id', prompt requirements). The tool description itself adds little parameter-specific detail beyond reinforcing the session_id continuation workflow, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Start one CLI invocation and return its invocation_id', pairing a specific verb with a concrete resource and output. It immediately distinguishes itself from wait_agent and cancel_agent, so an agent understands exactly what this tool accomplishes versus its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names wait_agent for retrieving results and cancel_agent for stopping work, and explains when to use session_id to continue a conversation with a new call. It also notes that active invocations do not accept messages, covering the main alternative flows without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools