Skip to main content
Glama

pi_steer_agent

Queue a steering message for a running Pi agent to correct or guide work mid-run; returns queued or rejected status so you know whether Pi accepted it for delivery.

Instructions

Queue a steering message for a running Pi agent. Returns the message verbatim plus a delivery status: {ok:true,message,status:"queued"} means only that Pi accepted it for delivery after the current assistant turn finishes its tool calls — it does NOT mean the message was delivered or that Pi has responded. {ok:false,message,status:"rejected",reason} means nothing was sent (unknown session, session not running, or Pi refused the steer). Use pi_followup_agent to queue a message for after all work is finished.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageYes
session_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: it discloses that 'queued' is an acceptance receipt, not delivery; that delivery occurs only after the current turn's tool calls; and that rejection covers unknown session, non-running session, or a refusal. That async, non-interrupting semantics is exactly the context an agent would otherwise get wrong.

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?

Purpose and routing come first, and the return-shape documentation is needed because there is no output schema. The status tuples are dense but each clause carries information; slight redundancy in restating ok/message/status fields keeps it from a 5.

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

Completeness4/5

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

For a two-parameter tool with no annotations and no output schema, the description covers purpose, alternative routing, success semantics, and all known failure modes. The remaining hole is parameter meaning and any note on ordering when multiple steers are queued.

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 description coverage is 0%, so the description must supply meaning for session_id and message, and it supplies none. Both names are largely self-evident, which softens the gap, but the description does not say where session_id comes from (e.g., a pi_spawn_agent result) or any constraints on message content/length.

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 first sentence states a specific verb (queue), resource (steering message), and precondition (for a running Pi agent). It explicitly names the sibling pi_followup_agent and the condition that distinguishes the two, so an agent can route correctly without opening either schema.

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

Usage Guidelines4/5

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

It gives a clear routing rule: use pi_followup_agent 'to queue a message for after all work is finished,' implying this tool is for mid-run steering. The when-to-use is strongly implied by 'running Pi agent' plus the contrast, but no explicit statement of when steering is inappropriate (e.g., agent idle or nearly done) is given.

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