Agent Oracle

How to Build an AI Decision Router That Sends Work to the Right Path

Last updated: 10/11/2026

Back to blog
Daniel Rosenthal avatarDaniel Rosenthal 9 min read
Cover image for How to Build an AI Decision Router That Sends Work to the Right Path
AI-assisted, human-reviewed. Drafted with AI research tools from public sources and edited by our team. How we build these →

Many AI failures begin before the work starts. The system answers when it should route, automates when it should seek approval, or sends a routine request to an expensive specialist. The underlying problem is not weak generation. It is weak dispatch.

A decision router sits between a user’s request and the system that will handle it. Its job is to determine what kind of work is being requested, what information is missing, what could go wrong, and which path should own the next move. Done well, the router makes the organization feel simpler: users describe the outcome they want, and the AI selects the appropriate operating path.

This guide shows how to build one using explicit routes, observable signals, bounded questions, and a feedback loop based on routing errors.

Step 1: Define Routes as Operational Commitments

Start with the destinations, not the prompt. A route is not a topic label such as “finance” or “marketing.” It is an operational commitment that specifies what happens next, who or what takes responsibility, and what controls apply.

A useful first version usually needs only a small set of materially different paths:

RouteUse whenNext action
Direct responseThe request is informational and does not require privileged actionAnswer with appropriate evidence and caveats
Automated executionThe action is authorized, reversible, and sufficiently specifiedExecute through an approved tool
ClarificationOne missing fact would change the path or resultAsk one discriminating question
Human approvalThe action is prepared but requires accountable authorizationPackage the proposed action for approval
Specialist reviewInterpretation requires domain judgmentSend a structured case to the relevant expert
Reject or redirectThe request is prohibited, impossible, or outside scopeState the constraint and offer a safe alternative

Write an entry condition and an exit condition for every route. For automated execution, the entry condition might require a verified requester, a supported action, complete parameters, and a reversible outcome. The exit condition might be a confirmed tool result recorded against the case.

Common mistake: creating routes around departments. “Send to Legal” is not precise enough. Legal may approve language, interpret a contract, or investigate an incident. Those are different commitments with different inputs and completion tests.

Step 2: Identify the Signals That Actually Change the Route

Next, list the facts that determine which route applies. Avoid collecting context merely because it might be useful. A routing signal earns its place only if a different value can send the request down a different path.

Useful signal classes include:

  • Requested operation: explain, draft, compare, approve, publish, purchase, delete, or notify.
  • Object: the account, document, system, customer, campaign, or transaction affected.
  • Authority: whether the requester can initiate or approve the operation.
  • Impact: who is affected and whether the effect is internal, external, financial, legal, or security-relevant.
  • Reversibility: whether the action can be undone cleanly.
  • Completeness: whether the required parameters are known and internally consistent.
  • Novelty: whether the case matches an established procedure or requires interpretation.
  • Time constraint: whether delay changes the feasible response.

Convert each class into observable fields. “This seems risky” is not observable. “Publishes externally,” “changes access rights,” and “cannot be automatically rolled back” are observable.

For example, “Send the updated renewal terms to the customer” contains an operation and an external recipient, but it does not establish that the terms were approved or that the requester may send them. Those missing facts affect the route. The customer’s industry may be relevant later, but it does not necessarily determine dispatch.

Common mistake: using sentiment as a routing signal. An urgent tone does not establish authorization, and a confident tone does not establish completeness. Route on operational facts.

Step 3: Build a Precedence Order for Conflicting Signals

Real requests trigger several rules at once. A task may be routine but externally visible, authorized but irreversible, or urgent but underspecified. Without precedence, the router will behave inconsistently.

Use a fixed evaluation order:

  1. Check whether the request is allowed and technically supported.
  2. Verify identity, authority, and affected scope.
  3. Test whether the requested action is sufficiently specified.
  4. Assess impact and reversibility.
  5. Determine whether established procedure covers the case.
  6. Select the least costly route that satisfies all required controls.

This order prevents convenience from overriding governance. If a request is prohibited, clarification should not be used to help execute it. If the user lacks authority, completeness does not make it executable. If the action requires approval, routine status does not remove that requirement.

Express the logic as inspectable rules rather than a single opaque instruction. For instance: if an action changes customer-visible contract terms, route to approval unless a valid approval reference is attached. If an attached approval does not cover the current version, treat it as absent.

Common mistake: assigning a numerical risk score and assuming the total resolves every conflict. Scores can hide decisive conditions. A single authority failure should block execution even if all other indicators appear safe.

Step 4: Ask Only Questions With Routing Value

When required fields are missing, the router should identify the question with the highest routing value: the answer most likely to distinguish between viable paths.

Suppose a manager writes, “Deactivate Jordan’s access today.” The router could ask which applications Jordan uses, why access should be removed, or whether Jordan has been informed. The decisive first question is more likely: “Has the approved offboarding or access-removal request been recorded?” A yes can lead toward controlled execution; a no can route to authorization.

Implement this by listing the remaining candidate routes and the unresolved field that best separates them. Ask one question, update the case, and evaluate again. Stop asking when one route is justified or when the request must be escalated regardless of further detail.

Questions should also state the decision boundary when useful: “Will this message be sent outside the company?” is better than “Who is the audience?” when external publication triggers approval.

Common mistake: asking for every field required by the eventual workflow before selecting a route. That turns routing into intake and burdens users with details that another path may not need.

Step 5: Produce a Structured Routing Record

The router’s output should be usable by both the next system and an auditor. A prose explanation alone is difficult to execute, compare, or measure.

Use a compact record containing:

  • Selected route: the operational destination.
  • Detected intent: operation, object, and desired outcome.
  • Decisive signals: only the facts that determined the route.
  • Missing fields: unresolved information required next.
  • Control reason: the policy or operating condition that applies.
  • Next action: the precise step the receiving path should take.
  • Alternatives rejected: plausible routes and why they did not qualify.

Consider: “Please publish the revised pricing page Friday morning.” The record might select human approval, detect an external publication request, note that content and timing are specified, and identify missing commercial approval. Automated execution is rejected because authorization is absent. Clarification is rejected because a user answer cannot substitute for the formal approval artifact.

This distinction matters. Some missing information can be supplied conversationally; some must come from an authoritative system.

Common mistake: recording “low confidence” without explaining the unresolved branch. Confidence is not an instruction. Name the missing evidence and the routes it separates.

Step 6: Test With Boundary Cases, Not Easy Examples

A router trained and tested only on clean requests will look reliable until deployment. Build a test set around boundaries where one fact changes the correct path.

Create paired cases such as:

  • An approved customer email versus the same email with edited commercial terms.
  • A reversible internal configuration change versus an irreversible deletion.
  • A request from the resource owner versus the same request from an observer.
  • A standard refund within policy versus an exception with unusual payment conditions.
  • A draft for private review versus publication to an external audience.

For each case, define the expected route, decisive signals, forbidden routes, and acceptable question if clarification is needed. Then vary wording while preserving the operational facts. This tests whether the router understands the mechanism rather than memorizing phrases.

Also test adversarial combinations: urgency paired with missing authority, seniority paired with prohibited action, and a valid approval attached to an outdated version.

Common mistake: measuring only whether the final route matches. A router can guess correctly for the wrong reason. Inspect decisive signals and rejected alternatives to detect brittle logic.

Step 7: Improve the Router From the Cost of Its Errors

Not all routing errors are equivalent. Sending a routine question to a specialist wastes time. Automating an unauthorized action creates a control failure. Your improvement process should distinguish these costs.

Maintain an error ledger with four categories: unsafe automation, unnecessary escalation, avoidable clarification, and incorrect rejection. Review the mechanism behind each error. Was a signal missing, extracted incorrectly, given the wrong precedence, or sourced from an untrusted record?

Then change the smallest responsible component. Add a field when the router lacked a decisive fact. Revise precedence when two valid rules conflicted. Tighten evidence requirements when conversational claims were mistaken for authorization. Adjust route definitions when receiving teams repeatedly redirect cases.

A useful worked pattern is a purchasing request: “Renew the analytics tool for another year.” If the router escalates every renewal, specialists become a bottleneck. If it executes every renewal, it may ignore changed terms or an expired budget. The improved rule can distinguish an unchanged, authorized renewal from one with altered scope, price, data terms, or owner. The route becomes sensitive to meaningful change rather than the word “renew.”

Common mistake: optimizing for fewer questions as the primary goal. The right objective is lower total handling cost subject to safety and accountability. One decisive question can be cheaper than a misroute, while five low-value questions are merely friction.

Put the Router Into Production With a Narrow Contract

Launch with a bounded domain where routes, authority, and outcomes can be observed. Access requests, content publication, purchasing intake, and customer exceptions are often easier to evaluate than a universal company assistant.

Define the contract plainly: what requests the router accepts, which systems provide authoritative facts, which routes it may select, and which actions it may never execute directly. Log the routing record, the eventual destination, any human correction, and the final outcome.

The concrete result is not an AI that always knows the answer. It is an AI that knows what kind of problem it is facing, identifies the fact that changes the path, and transfers responsibility without losing the reasoning. That is how an assistant begins to understand before the user finishes explaining: not by guessing more aggressively, but by recognizing the operational decision hidden inside the request.

This post was drafted with AI assistance and reviewed against our editorial policy before publication. Corrections are made at the source, on the page, with the date shown.

AI agentsdecision routingworkflow designhuman reviewautomation governance

From our own rounds

Measured on Agent Oracle, from real sessions people played on this site — not a third-party dataset.

Rounds played here
27
Questions per round
1
Play a round and add to these numbers
Share this post

Rate this article

No ratings yet

Discussion

Comments are moderated. Read our editorial policy.