AI agents

Deciding When a Subagent Instruction Change Needs a Human Gate

Antonio Evans9 min read

A split scene showing three lanes at a review desk: left lane an auto-merge conveyor with a small green check, middle lane a single reviewer at a desk with a diff on screen.
Key points

Key points

  1. 1Score every subagent instruction change on reversibility, reach and output contract impact before it reaches review.
  2. 2A change that keeps the subagent's tools undoing their own damage, serves one task and leaves the response shape intact can merge on passing tests alone.
  3. 3Any single medium or high score moves the change to one reviewer, and a high score on reversibility or output contract moves it to the owning team.
  4. 4The gate is cheapest when the instruction file and the tool allowlist are versioned together, because then the risk score is readable from the diff.

Why prompt changes need routing, not blanket review

Most teams converge on one of two habits. Either every instruction tweak goes through a full review, which trains people to batch changes and stop reading diffs, or none do, which lets a Friday afternoon edit reach every conversation a subagent serves with no record of who made it or why. Prompt management literature names both failure modes: version chaos when there is no single source of truth, and invisible quality degradation when changes rest on anecdote rather than measurement (Braintrust).

Subagents raise the stakes because they are not one prompt in one place. A subagent is a separate model instance with its own context window, its own system prompt, its own tool access and its own permissions, and it returns only a summary to the orchestrating agent (Hidekazu Konishi's subagent guide). That separation is the point: it keeps the parent's context clean and constrains what the worker can touch. A useful abstraction is to treat any agent as a tuple of instruction, context, tools and model, where the orchestrator decides each at delegation time (AOrchestra, arXiv). Change one element of that tuple and you have changed the agent's behavior, even if the diff touches only prose.

Governance frameworks make the same claim from the compliance side: a system prompt is a standing policy document, and ungoverned edits to it are the least visible failure in enterprise generative AI programs (Solytics Partners). The practical question is not whether to review instruction changes but which ones. Blanket review is a tax that buys little on a wording clarification in a doc-writing subagent and buys everything on a change that alters how a billing subagent formats its JSON.

The three axes that decide the gate

Score each change on three questions. Each answer lands in low, medium or high.

Reversibility: can the subagent's tools undo the damage if the new instruction is wrong? This is the least-privilege question applied to prompts (ThreatLocker). A research subagent that can read files and search the web has highly reversible tools: a bad instruction produces a bad summary that a human discards. A subagent holding a write token to a production database, or the ability to close tickets or send customer email, has irreversible tools. Microsoft's guidance for connected agents makes the same point: if a child agent can delete records the parent cannot, the call must be treated as a powerful action subject to checks and consent (Microsoft Learn).

One nuance most teams miss: reversibility is a property of the tool set, not of the instruction text. An instruction change can make an irreversible tool more likely to fire without changing permissions at all. "Always close the ticket once the root cause is identified" is a one-line prompt edit that turns a read-only reviewer into an actor.

Reach: how many tasks or workflows does the instruction serve? Instruction files live at two scopes in most coding agents: project level and user level, so a single edit can propagate to every project the author touches (Engineer Prompt). Reach is countable. Open the agent definition and count the call sites: tasks in the workflow graph that route to this subagent, plus any other agents that delegate to it. One task is low. A handful within one team's workflow is medium. A shared agent used across teams or products is high. The orchestrator-worker pattern is what creates this exposure: one orchestrator delegates to specialist workers, and a worker with many upstream callers is a shared dependency (Arize).

Output contract impact: does the change alter the response shape? If downstream code parses the subagent's return, the prompt is part of an API contract. Structured output features guarantee conformance to a supplied schema, which is exactly why schema-bound outputs are safe to change only deliberately (OpenAI). Agent frameworks expose the same idea through typed result objects validated against a schema (Strands Agents). A wording change that leaves fields, types and required keys identical is low. Adding a new optional field, or changing how a free-text section is phrased inside a fixed envelope, is medium. Renaming a field, dropping one, changing an enum or altering when the agent refuses is high.

AxisLowMediumHigh
ReversibilityRead-only tools, outputs discarded on errorWrites to a scratch branch, draft folder or sandboxWrites to production data, sends external messages, spends money
ReachOne task in one workflowSeveral tasks in one team's workflow, or one caller elsewhereShared agent across teams or products, or the default worker
Output contractNo parsed fields changeOptional field added, prose inside a fixed envelope changesField renamed or removed, enum or refusal behavior changes

The routing rule

Read the three scores. Take the highest one.

  • All three low: auto-merge once the evaluation suite passes. No human reads the diff.
  • Any one medium or high: one reviewer approves before merge.
  • Reversibility high, or output contract high, or reach high: the owning team signs off. One reviewer is not enough when the blast radius crosses a team boundary or the change can destroy state.

The rule is deliberately pessimistic: a single high score dominates two lows. That is the correct default because the axes are not independent in practice. A high-reach instruction change is more likely to reach a call path that uses an irreversible tool, and a contract change on a high-reach agent breaks more parsers.

Two supporting mechanisms make the rule enforceable.

First, version the instruction file and the tool allowlist in the same repository, so any diff shows whether tools changed alongside prose. Prompt versioning treats each save as an immutable version with a diff and an environment label, which is what lets a reviewer see the change in isolation rather than against a moving baseline (Braintrust).

Second, run an evaluation gate before routing. A change that fails its tests never reaches the reviewer, which means reviewer time goes to changes that already work and the question is only whether they should ship.

# change-risk.yaml, evaluated in CI on every PR touching agents/*/INSTRUCTIONS.md
axes:
  reversibility: low      # tool allowlist hash unchanged; tools are read_file, search, list_dir
  reach: medium           # 4 tasks route to this subagent in the triage workflow
  output_contract: low    # schema.json unchanged; no parsed field added or removed
route: single_reviewer    # highest score is medium
required_checks:
  - eval_suite             # must pass before routing
  - schema_diff_empty      # fails if schema.json changes without a contract label
owner: triage-platform

A reviewer's job then collapses to one question: is the medium score honest? That takes minutes, not an afternoon.

Worked example: three changes, three gates

Take a support operations team running an orchestrator with three specialist subagents: a researcher that reads the knowledge base and past tickets, a drafter that writes customer replies, and a reconciler that updates the billing system. Task volume is 400 workflows a day.

Change A: the researcher's instruction gains a rule about citing source documents. Tools are read-only, so reversibility is low. Reach is one workflow path, so low. The return is a free-text summary that no parser reads, so low. All three low: auto-merge on a passing eval. If it is wrong, the worst outcome is a slightly worse summary that a human reviewer catches downstream.

Change B: the drafter's instruction gains a tone rule and a new optional field, escalation_reason. Tools can send email, but only after a human approves the draft, so reversibility is medium. Reach is one workflow, low. The output contract adds an optional field, medium. Highest score is medium: one reviewer. The reviewer checks that the optional field is genuinely optional in the parser and that the tone rule does not push refusal rates up in the eval set.

Change C: the reconciler's instruction changes refund handling to auto-apply credits under a threshold. Tools write to the billing system, so reversibility is high. Reach is one workflow but the reconciler is also called by a separate finance tool, so medium to high. The instruction also changes a status enum from pending to applied, which is high on contract. Highest score is high on two axes: the owning team, finance operations plus the platform owner, signs off. The reviewer role cannot approve this alone, and that is the right answer, because a wrong instruction here moves money and breaks a downstream dashboard that counts pending rows.

A useful sanity check: rank the three by the cost of being wrong for a day. A is a bad summary. B is a reply that reads oddly or escalates too often. C is refunds issued in error plus a broken report. The gate hierarchy should match that ordering, and it does.

Making the scores auditable

A routing rule only survives if the score is recorded somewhere a future reader can find. Three practices carry most of the weight.

Label the contract, not the prose. Put the output schema in its own file next to the instruction file and have CI fail any pull request that touches the schema without a contract-change label. Structured output tooling already validates responses against a schema at runtime, so the schema is the real interface; the prompt is one of several things that influence whether the model fills it (OpenAI). Treating the schema file as the contract boundary turns a judgment call into a diff check.

Record reach as a number, not a feeling. Maintain a small map from subagent to call sites and regenerate it from the orchestration config. In a fan-out pattern the number grows fast: with N agents there are N(N-1)/2 possible concurrent interactions, which is why shared workers accumulate callers quietly (Beam AI). If the map is generated, the reach score in the pull request is a fact rather than an estimate.

Log the gate decision with the version. Prompt versioning conventions already require immutable versions and environment separation, so the approval record attaches to a version identifier rather than to a commit message (Braintrust). When someone asks in three months why a refund rule changed, the answer is a version, an approver and a score.

For teams running many subagents, the rollout itself is a change-management exercise, and the same discipline applies: define the scope and impact, name who is responsible for build and test, and state what happens if the change is rejected (SolarWinds). The three-axis score is simply that discipline compressed into three questions a pull request can answer.

Where teams get the rule wrong

Scoring the prompt text instead of the agent tuple. A change that looks cosmetic in prose can alter tool selection. Giving a model more tools than it needs degrades tool selection, and narrow tool sets per subagent are what make selection reliable in the first place (Engineer Prompt). If the tool allowlist changed, score reversibility from the new allowlist, not from the words in the instruction.

Treating reviews as the quality gate. Reviewers catch intent, not regressions. Systematic evaluation is what connects a prompt change to measurable outcomes and exposes degradation before users see it (Braintrust). Route after the eval, never instead of it.

Letting one shared worker escape the rule. Shared agents attract callers because reuse is the reason they exist, and each new caller raises reach without anyone editing the instruction. Recompute reach when the orchestration graph changes, not only when the instruction does, a concern the orchestrator-worker pattern makes explicit (Arize).

Forgetting that subagents do not inherit context. A subagent starts from a fresh context window and receives only what the delegation prompt contains, so an instruction that depends on a decision made earlier in the parent conversation will silently fail (Hidekazu Konishi's subagent guide). Treat "add a reference to prior context" as a high-risk change on reach, because it affects every delegation path that does not supply that context.

Ignoring where control lives. In a centralized single-agent design, instruction changes have one owner. In a coordinated multi-agent design, control is distributed and each cooperating process may have its own tools, memory and decision-making, which is why the owning team, not a general reviewer, must sign off on high-risk changes (JetBrains).

If you are building the orchestration layer itself, having one API key across the models your subagents run on removes a whole class of routing questions, and Quanta Inference (https://quantaintelligence.ai/inference) is built for that: text, image and embedding models behind an OpenAI-compatible endpoint.

FAQ

FAQ

What counts as an irreversible tool?

Any tool whose effect survives a bad instruction without a human in the loop: writes to production data, sending email or messages to customers, moving money, closing or deleting records. The principle of least privilege applies to agents exactly as it applies to users, and a subagent that only reads can almost always be treated as low risk (ThreatLocker). When in doubt, ask whether a reviewer could undo the damage in five minutes. If not, score it high.

Does an instruction change count as a contract change if the schema is untouched?

It depends on whether downstream code reads the affected text. If the subagent returns a typed object validated against a schema, and the change only affects the prose inside a free-text field, score it medium. If any parsed field, enum value or refusal condition changes, score it high, because structured output exists precisely to make those shapes reliable for consumers (OpenAI).

How do I measure reach without manual counting?

Generate it. Keep the orchestration config under version control and write a small script that maps each subagent to its call sites, including other agents that delegate to it. Rerun the script in CI and post the number on the pull request. This is the same reasoning that makes centralized designs easier to observe and distributed designs harder to debug: in a coordinated system, tracing who calls whom is the hard part (JetBrains).

Should the owning team sign off on every medium change to their subagent?

No. Reserve team sign-off for high scores. A medium change on a single call path with reversible tools is exactly what one reviewer is for, and escalating it trains the team to rubber-stamp. The exception is when the owning team is also the downstream consumer of the output contract; in that case, fold the reviewer and owner into one person and say so in the pull request.

What do I do about instruction changes made outside the repository?

Close the channel. Prompt governance exists because system prompts drift into chat threads and local files, where there is no version history and no owner (Solytics Partners). Move the instruction file into the same repository as the agent definition, load it from there at runtime, and treat any edit made elsewhere as unapproved by definition.

Sources

Sources

  1. What is prompt management? Versioning, collaboration, and ...
  2. Claude Code Subagents and Multi-Agent Orchestration ...
  3. AOrchestra: Automating Sub-Agent Creation for ...
  4. What is Prompt Governance? The Critical Control for ...
  5. The principle of least privilege for AI agents
  6. Multi-agent orchestration patterns and best practices - Microsoft Learn
  7. Master Claude Code Sub‑Agents in 10 Minutes
  8. Orchestrator-Worker Agents: Comparing Agent Frameworks
  9. Structured model outputs | OpenAI API
  10. Return structured output
  11. 6 Multi-Agent Orchestration Patterns for Production (2026) - Beam AI
  12. Change Management Checklist
  13. Single Agent vs Multi-Agent Systems: When to Use Each - JetBrains
About the author

About the author

Antonio Evans
Antonio Evans

Antonio Evans is the founder of Quanta Intelligence and a fractional CTO who builds HIPAA-ready AI systems for health and life-science companies. Before that he was technical co-founder of FriendsEAT for twenty years, CEO of Socialdraft, and a data engineer at IBM. Antonio lives with his dog Santino in Lisbon, Portugal.

All articles