Skip to main content
Glama

Delimit Agent Dispatch

delimit_agent_dispatch

Record an engineering dispatch with replayable audit trail, assignee, constraints, and optional tracked worker launch for subagent delegation.

Instructions

Record an engineering-task dispatch with full audit trail.

When to use: as the PLANNING + AUDIT surface when the orchestrator decides to delegate parallelizable engineering work to a subagent. Per the operating model (2026-05-01 revision), actual execution is performed by the Agent tool with subagent_type=engineering; this tool records the intent, assignee, constraints, and eventual outcome so the dispatch is replayable from the ledger. With a launchable assignee ("muse", "codex", "copilot", or "auto") plus the launch parameter, the worker IS started as a tracked contained process whose session, lease, questions, and terminal state are bound to the task record; "auto" rotates runtimes in policy order instead of pinning one. When NOT to use: as an autonomous queue processor expecting auto-execution — without launch this records dispatch but does NOT run the work. Real autonomous queue execution is deferred to a future capability (LED-193 daemon) with strict sandboxing + founder-approval semantics. Also do not use for conversational tasks, sub-5-minute work, or work where no function exists yet.

Sibling contrast: delimit_agent_status reads dispatched task state; delimit_agent_handoff transfers a recorded task to a different model; delimit_agent_complete closes the task with results; delimit_agent_poll / _answer / _cancel operate a launched worker. Compared to delimit_ledger_add, this is the engineering-work surface with assignee, tools_needed, and constraints schema; ledger items are free-form.

Side effects: writes a new task record to disk via ai.agent_dispatch.dispatch_task (a JSON record in the agent tasks file plus an audit log entry). String list inputs (tools_needed, constraints) are coerced from comma strings to lists; launch is coerced from a JSON string or dict via _coerce_dict_arg. Without launch, NO subagent is spawned by this call — the caller is responsible for invoking the Agent tool separately. With launch + a launchable assignee ("muse", "codex", "copilot", "auto"), the contained worker launcher IS invoked (sandbox on, never a sandbox-disabling flag) and the task records the session binding. This lifecycle surface is not license-gated in the current build.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesShort task title. Required.
launchNoOptional tracked-launch spec: dict or JSON string with workspace, prompt_file, max_steps, network. Assignees "muse"/"codex"/"copilot" launch; "auto" rotates in policy order (total failure is "exhausted").
contextNoBackground info to seed the executor.
assigneeNoWorker — "claude", "codex", "gemini", explicit-only "copilot"/"muse", "any" (default), or "auto" (policy-order rotation: muse, copilot, antigravity, codex; requires launch). Copilot/Muse name harnesses, not model families; any excludes both. Launchable: "muse", "codex", "copilot", "auto".any
priorityNoOne of "P0" (immediate), "P1" (default), "P2".P1
constraintsNoComma-separated constraints (e.g. "no force push").
descriptionNoLonger task description.
tools_neededNoComma-separated MCP tools the work will need.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv4.19.11
    • changedInput schema / properties / assignee / description
      Previous value: -"Worker — \"claude\", \"codex\", \"gemini\", explicit-only \"copilot\"/\"muse\", or \"any\" (default). Copilot/Muse name harnesses, not model families; any excludes both. Only \"muse\" supports launch."New value: +"Worker — \"claude\", \"codex\", \"gemini\", explicit-only \"copilot\"/\"muse\", \"any\" (default), or \"auto\" (policy-order rotation: muse, copilot, antigravity, codex; requires launch). Copilot/Muse name harnesses, not model families; any excludes both. Launchable: \"muse\", \"codex\", \"copilot\", \"auto\"."
    • changedInput schema / properties / launch / description
      Previous value: -"Optional tracked-launch spec: dict or JSON string with workspace, prompt_file, max_steps, network. Only assignee \"muse\" launches."New value: +"Optional tracked-launch spec: dict or JSON string with workspace, prompt_file, max_steps, network. Assignees \"muse\"/\"codex\"/\"copilot\" launch; \"auto\" rotates in policy order (total failure is \"exhausted\")."
  2. Changed2 schema fields changedv4.19.1
    • changedInput schema / properties / assignee / description
      Previous value: -"Target model — \"claude\", \"codex\", \"gemini\", or \"any\". Default \"any\"."New value: +"Worker — \"claude\", \"codex\", \"gemini\", explicit-only \"copilot\"/\"muse\", or \"any\" (default). Copilot/Muse name harnesses, not model families; any excludes both. Only \"muse\" supports launch."
    • addedInput schema / properties / launch
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional tracked-launch spec: dict or JSON string with workspace, prompt_file, max_steps, network. Only assignee \"muse\" launches."
      +}
  3. Changed7 schema fields changedv4.7.9
    • addedInput schema / properties / assignee / description
      Added value: +"Target model — \"claude\", \"codex\", \"gemini\", or \"any\". Default \"any\"."
    • addedInput schema / properties / constraints / description
      Added value: +"Comma-separated constraints (e.g. \"no force push\")."
    • addedInput schema / properties / context / description
      Added value: +"Background info to seed the executor."
    • addedInput schema / properties / description / description
      Added value: +"Longer task description."
    • addedInput schema / properties / priority / description
      Added value: +"One of \"P0\" (immediate), \"P1\" (default), \"P2\"."
    • addedInput schema / properties / title / description
      Added value: +"Short task title. Required."
    • addedInput schema / properties / tools_needed / description
      Added value: +"Comma-separated MCP tools the work will need."
  4. Addedv4.5.5

TDQS

A4.9/5.0
Behavior5/5

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

The description discloses side effects in detail: writes a JSON task record to disk via ai.agent_dispatch.dispatch_task, appends an audit log entry, coerces comma-separated inputs to lists and JSON strings/dicts to launch objects, and only spawns a subagent when launch plus a launchable assignee is provided. It also states the sandbox is always on and that the launch path never passes a sandbox-disabling flag, well beyond what the readOnly/destructive hints convey.

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

Conciseness4/5

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

The description is long but well-structured with labeled sections and a front-loaded single-sentence summary. It earns most of its length by covering lifecycle, alternatives, side effects, and coercion, though there is minor redundancy around launchable assignees being stated in both the usage section and the side effects section.

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?

For an 8-parameter tool with launch semantics, sandboxing, coercion, and a sibling family, the description covers every decision an agent needs: when to call it, when not to, what side effects occur, how launch behaves, and how it differs from related tools. Since an output schema exists, not describing return values is acceptable, and the description is otherwise complete.

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

Parameters5/5

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

Schema coverage is 100%, so the baseline is 3, but the description substantially enriches parameter meaning: it clarifies which assignees are launchable, that "auto" rotates runtimes in policy order, and that constraints/tools_needed are comma-separated strings coerced to lists. It also explains assignee nuance (Copilot/Muse name harnesses, not model families; unlaunched dispatch records intent only), which is not evident from the schema alone.

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 a specific verb and resource: "Record an engineering-task dispatch with full audit trail." It goes further and distinguishes itself from siblings by positioning it as the PLANNING + AUDIT surface, while actual execution belongs to the Agent tool, and by contrasting the full dispatch lifecycle tools (status, handoff, complete, poll/answer/cancel) plus delimit_ledger_add.

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?

Explicit "When to use" and "When NOT to use" sections give direct conditions for selection, including alternatives: use the Agent tool for real execution, use delimit_ledger_add for free-form ledger entries, and use the listed sibling tools for status/handoff/completion. It also names exclusions such as conversational tasks, sub-5-minute work, and tasks with no existing function.

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