Skip to main content
Glama

dispatch_send

Assign work to another agent by creating a dispatch packet with a full brief, tracking status from pending to complete, and returning a dispatch_id for handoff verification.

Instructions

Create a dispatch packet assigning work to another agent: writes meta.json + assignment.md with status 'pending' under $WILLOW_HOME/dispatch/. assignment_md is the full brief the specialist will read; reply_to names who verifies the handoff. The packet advances pending → working → complete via dispatch_accept and handoff_write_v4. Filesystem-backed unless an authority envelope governs verb "dispatch" for this caller (#333) — then citing that envelope (and its quota) gates the write, Postgres-backed for that one check. Returns the new packet's metadata including its dispatch_id.

envelope_id names WHICH governing envelope to cite when more than one covers this verb for you. Leave it empty and a single governing envelope is resolved automatically (the common case); pass it only after an EAMBIG names your options in envelope_ids. It can only select among envelopes that already govern you — naming one that does not returns ENOENT, so it disambiguates and never widens.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
roleNo
phaseNooperate
app_idYes
to_appYes
summaryNo
priorityNonormal
reply_toNowillow
envelope_idNo
context_refsNo
assignment_mdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.27.0
    • addedInput schema / properties / envelope_id
      Added value: +{
      +  "default": "",
      +  "title": "Envelope Id",
      +  "type": "string"
      +}
  2. Addedv2.2.3

TDQS

A3.9/5.0
Behavior5/5

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

Annotations only provide hints (readOnlyHint=false, destructiveHint=false) with no detailed behavioral information, so the description carries the full burden. It is remarkably transparent: it states the filesystem backing, the optional Postgres-backed envelope gate, the state transitions, the return value (metadata including dispatch_id), and the exact behavior of envelope_id (auto-resolution, EAMBIG disambiguation, ENOENT for non-governing envelopes). No annotation contradiction exists; the description aligns with and expands on the annotations. This level of detail exceeds what is typical.

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 two paragraphs, front-loaded with the core purpose and output in the first sentence, then adding behavioral details. The envelope_id explanation is logically separated and clearly structured. It is dense but not overly verbose; every sentence adds meaningful information. It could be trimmed slightly, but it earns its length given the complexity of the envelope behavior. It avoids redundancy and is well-organized.

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

Completeness3/5

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

Given the tool's complexity (10 params, no output schema, sparse annotations), the description is quite thorough for the core behavior, storage, and envelope logic. However, it omits explanations for many parameters and does not describe the full return format beyond 'metadata including its dispatch_id.' It also lacks details on error handling beyond EAMBIG/ENOENT for envelope_id. While it covers the critical path, it is incomplete for a tool with this many parameters and no schema documentation. A more complete description would address the missing parameters and return structure.

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

Parameters2/5

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

Schema coverage is 0%, meaning the description must compensate for all parameters. It explains assignment_md ('full brief'), reply_to ('who verifies the handoff'), and envelope_id in depth (including disambiguation and error behavior). However, the remaining seven parameters (app_id, to_app, role, phase, summary, priority, context_refs) are not described at all. With 10 parameters and zero schema descriptions, leaving the majority unexplained is a significant gap. The description adds value for the few it covers but fails to compensate for the schema's lack of documentation.

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: 'Create a dispatch packet assigning work to another agent,' and details the files written (meta.json + assignment.md) and the lifecycle (pending → working → complete). It clearly distinguishes this creation tool from related siblings like dispatch_accept and handoff_write_v4 by positioning it as the origin of the packet. The purpose is unambiguous and not a tautology.

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

Usage Guidelines3/5

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

The description explains the workflow by referencing that the packet advances via dispatch_accept and handoff_write_v4, which implies these are subsequent steps. However, it never explicitly states when to use this tool versus alternatives (e.g., when to use dispatch_read, dispatch_list, or handoff_write_v4 directly). The envelope_id section gives conditional usage for a specific parameter, but no overall 'use this when' or 'don't use this when' guidance is provided. The usage context is implied rather than explicit.

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