Agent

Agent lab

Deterministic engines onlineLive agent offEvaluations

How the adaptive agent is built, what it is allowed to touch, what it did against a real model, and a console to run it yourself.

Who decides what

The ownership boundary, drawn as the path a request takes through the system.

  1. Customer request
    Email, portal or phone note — messy prose, untrusted input
  2. Request understanding
    Deterministic extractor: parts, quantity, dates, duty requirements
  3. Adaptive agent · Claude
    Chooses which tools to call, in what order, and when evidence is sufficient
  4. MCP tool boundary
    16 typed capabilities. No database handle, no credentials, selectors not facts
  5. Deterministic engines
    Compatibility · available-to-promise · pricing · freight · margin · approval policy
  6. Grounding
    Every price, stock figure, part number and citation must match a tool result
  7. Human approval
    Role-gated on the server. The agent has no tool that decides or releases
  8. Customer-safe output
    No cost, no margin, no internal figures — checked, not assumed
The ownership rule

The agent decides how to investigate. The engines decide what is true. People decide what is allowed.

  • A model cannot state a price, a stock level or a compatibility verdict that no tool returned.
  • A model cannot approve, release, discount or send — no such tool exists.
  • Both modes end at the same function, finalizeCase, so the numbers are identical.
  • If the model fails grounding routes the case to a person instead of the customer.

Agent execution

One adaptive run, in order: every tool the model chose, what it established, and what the run cost.

Captured live run · claude-sonnet-5REQ-2041 run against the real model on 2026-09-20. Reached PX-440 × 12, $102,808.88, 30.38% margin, 3 approvals — identical to the deterministic result.
Outcome
Ready for approval
Grounding
Clean
Safety
0 violations
Turns
5
Tool calls
13 chosen · 23 total
Latency
20.6 s
Cost
$0.0905
  1. resolve_customer{}Cardinal Processing Group, Dallas plantreadok20 ms
  2. get_request_state{}12 units, 180 °C duty, needed by 4 Octreadok79 ms
  3. resolve_sku{"sku":"AX-220"}AX-220 exists and is activereadok8 ms
  4. check_compatibility{"sku":"AX-220"}Fails fluid temperature — rated 120 °Ccomputeblocked75 ms
  5. find_substitutes{"sku":"AX-220"}Engineering replacement links foundcomputeok20 ms
  6. check_compatibility{"sku":"PX-440"}Passes every requirementcomputeok30 ms
  7. check_compatibility{"sku":"PX-420"}Fails pipe connection and flowcomputeblocked33 ms
  8. check_compatibility{"sku":"PX-400"}Fails flow ratecomputeblocked36 ms
  9. check_compatibility{"sku":"PX-460"}Viable, with a footprint warningcomputeok42 ms
  10. build_fulfillment_plan{"sku":"PX-440"}8 Dallas + 4 Houstoncomputeok25 ms
  11. calculate_price{"sku":"PX-440"}Customer price book, 12% off listcomputeok32 ms
  12. get_customer_history{}Prior orders for contextreadok9 ms
  13. create_quote_draft{"candidateSkus":[…],"rationale":"…"}Handed to the deterministic finalizermutationok1 ms
Inputs, statuses and durations as recorded. Structured outputs are not retained for captured runs — run one live to inspect them.Run an investigation

Investigation depth responds to the request

Three requests run live against the same agent and the same tools. None of these sequences is a template.

Captured live runs
Technical question“Can the MX-160 handle 175 °C? Not asking for a quote yet.”
5callsInformation provided
  1. 1resolve_sku→
  2. 2get_product→
  3. 3search_technical_docs→
  4. 4get_request_state→
  5. 5respond_with_information

No pricing, freight, margin or approval tool ran. The question was answered from cited evidence and the case stopped there.

Availability question“Do you have twelve AX-220 available for delivery to Trenton next week?”
7callsInformation provided
  1. 1resolve_customer→
  2. 2resolve_sku→
  3. 3get_request_state→
  4. 4get_inventory→
  5. 5build_fulfillment_plan→
  6. 6search_technical_docs→
  7. 7respond_with_information

Stock and a fulfillment plan answered it. Still no commercial tools — the customer asked about availability, not price.

Substitution and quote (REQ-2041)“Line 4 pump replacement — 12 × AX-220, duty moved to 180 °C.”
13callsReady for approval
  1. 1resolve_customer→
  2. 2get_request_state→
  3. 3resolve_sku→
  4. 4check_compatibility→
  5. 5find_substitutes→
  6. 6check_compatibility→
  7. 7check_compatibility→
  8. 8check_compatibility→
  9. 9check_compatibility→
  10. 10build_fulfillment_plan→
  11. 11calculate_price→
  12. 12get_customer_history→
  13. 13create_quote_draft

The requested AX-220 checked and ruled out, then four substitutes evaluated — PX-420 and PX-400 rejected on hard compatibility — and only the winner priced. Reached PX-440 ×12 at $102,808.88, identical to the deterministic pipeline, by its own route.

What each request made the agent do
UnderstandTechnicalEvidenceFulfillmentCommercialConclude
Technical question2111
Availability question3121
Substitution and quote (REQ-2041)46111

MCP toolbox

The agent's complete capability surface. Everything it can do to the world is visible in the effect column.

No database handle
The server owns data access. The model receives validated structures, never rows.
No credentials
No connection string, API key or environment variable appears in any schema.
Selectors, not facts
check_compatibility takes a part number and loads the requirements itself.
sales-engine v1.0.0 · 16 tools over JSON-RPC8 read4 compute3 mutation1 human-gated
DiscoveryWho is asking and what they asked for
TechnicalSpecifications, compatibility and evidence
InventoryStock positions and fulfillment plans
CommercialPricing — never a discount the model chose
WorkflowWays to end a run. None can approve, release or send

Run an investigation

Pick a seeded scenario or paste a request, choose how it is orchestrated, and inspect what executed.

Execution mode

Requested part fails on temperature; a substitute must be found, others rejected for concrete reasons, and stock split across warehouses.

Recent runs

Every run in either mode, as recorded.