Agent lab
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.
- Customer requestEmail, portal or phone note — messy prose, untrusted input
- Request understandingDeterministic extractor: parts, quantity, dates, duty requirements
- Adaptive agent · ClaudeChooses which tools to call, in what order, and when evidence is sufficient
- MCP tool boundary16 typed capabilities. No database handle, no credentials, selectors not facts
- Deterministic enginesCompatibility · available-to-promise · pricing · freight · margin · approval policy
- GroundingEvery price, stock figure, part number and citation must match a tool result
- Human approvalRole-gated on the server. The agent has no tool that decides or releases
- Customer-safe outputNo cost, no margin, no internal figures — checked, not assumed
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.
- resolve_customer{}Cardinal Processing Group, Dallas plantreadok20 ms
- get_request_state{}12 units, 180 °C duty, needed by 4 Octreadok79 ms
- resolve_sku{"sku":"AX-220"}AX-220 exists and is activereadok8 ms
- check_compatibility{"sku":"AX-220"}Fails fluid temperature — rated 120 °Ccomputeblocked75 ms
- find_substitutes{"sku":"AX-220"}Engineering replacement links foundcomputeok20 ms
- check_compatibility{"sku":"PX-440"}Passes every requirementcomputeok30 ms
- check_compatibility{"sku":"PX-420"}Fails pipe connection and flowcomputeblocked33 ms
- check_compatibility{"sku":"PX-400"}Fails flow ratecomputeblocked36 ms
- check_compatibility{"sku":"PX-460"}Viable, with a footprint warningcomputeok42 ms
- build_fulfillment_plan{"sku":"PX-440"}8 Dallas + 4 Houstoncomputeok25 ms
- calculate_price{"sku":"PX-440"}Customer price book, 12% off listcomputeok32 ms
- get_customer_history{}Prior orders for contextreadok9 ms
- create_quote_draft{"candidateSkus":[…],"rationale":"…"}Handed to the deterministic finalizermutationok1 ms
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.
- 1resolve_sku→
- 2get_product→
- 3search_technical_docs→
- 4get_request_state→
- 5respond_with_information
No pricing, freight, margin or approval tool ran. The question was answered from cited evidence and the case stopped there.
- 1resolve_customer→
- 2resolve_sku→
- 3get_request_state→
- 4get_inventory→
- 5build_fulfillment_plan→
- 6search_technical_docs→
- 7respond_with_information
Stock and a fulfillment plan answered it. Still no commercial tools — the customer asked about availability, not price.
- 1resolve_customer→
- 2get_request_state→
- 3resolve_sku→
- 4check_compatibility→
- 5find_substitutes→
- 6check_compatibility→
- 7check_compatibility→
- 8check_compatibility→
- 9check_compatibility→
- 10build_fulfillment_plan→
- 11calculate_price→
- 12get_customer_history→
- 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.
| Understand | Technical | Evidence | Fulfillment | Commercial | Conclude | |
|---|---|---|---|---|---|---|
| Technical question | 2 | 1 | 1 | 1 | ||
| Availability question | 3 | 1 | 2 | 1 | ||
| Substitution and quote (REQ-2041) | 4 | 6 | 1 | 1 | 1 |
MCP toolbox
The agent's complete capability surface. Everything it can do to the world is visible in the effect column.
Run an investigation
Pick a seeded scenario or paste a request, choose how it is orchestrated, and inspect what executed.
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.
- REQ-2041DeterministicLine 4 pump replacement — need a quotecompleted26 calls402 ms29d ago
- REQ-2038DeterministicMX-160 — 5 off for the Charlotte plantcompleted22 calls318 ms29d ago
- REQ-2035DeterministicNew thermal oil loop, No.2 machine — 10 pumpscompleted27 calls368 ms29d ago
- REQ-2030DeterministicVS-250 — 24 units, Clevelandcompleted24 calls325 ms29d ago
- REQ-2026DeterministicUnit 7 acid transfer pump — AX-240completed16 calls276 ms29d ago
- REQ-2044Deterministicpumps for the wash plantcompleted1 calls25 ms29d ago
- REQ-2028DeterministicAX-220 x 12 against contract CTR-BW-2291completed28 calls357 ms29d ago
- REQ-2032DeterministicRG-100 replacements — blend housecompleted24 calls292 ms29d ago