LW
cv

side project · multi-agent claude poc

Sales Quoting Agent

Orchestrator + 6 specialists. Three runtimes. Same Claude API.

Proof-of-concept built for a freight forwarder’s brief. An inbound RFQ goes in — an orchestrator routes it through six specialist subagents that parse it, look up rate cards, apply surcharges, check client terms, check margin floors and draft the quote. The same orchestrator runs three ways: as Claude Code subagents on a laptop, behind a Cloudflare Worker for the in-browser demo, and on Anthropic’s Managed Agents cloud runtime for stateful server-side sessions.

What it is

Three runtimes, one orchestrator

Claude Code subagents
laptop · iterate on the agents
Cloudflare Worker + web demo
your edge · the in-room demo
Anthropic Managed Agents
anthropic cloud · stateful sessions, durable event log

All three drive the same orchestrator logic and the same six tools. That matters because the laptop iteration loop and the production runtime are not different codebases — same prompts, same tools, same outputs, just different agent-loop hosts.

Three demo scenarios

A — happy path

air freight, premium client, all six specialists fire

scenario A

  • RFQ Parser extracts mode, lane, weight, client.
  • Rate Lookup pulls the right card; Surcharge Engine applies fuel + security.
  • Client Terms attaches a VIP rebate; Margin Checker clears the 18% AIR floor.
  • Quote Drafter returns a clean draft — no human-in-the-loop required.

B — margin floor breach

sea LCL, historical-margin target trips the floor

scenario B

  • Quote-history lookup shows ~9% on this lane; orchestrator targets that.
  • Margin Checker trips the 12% SEA_LCL floor — flags a violation.
  • Quote Drafter surfaces a manager-approval banner with a plain-English reason. No silent override.

C — missing required info

RFQ missing chargeable weight; agent pauses and asks

scenario C

  • RFQ Parser returns missing_required: ['chargeable_kg'].
  • Orchestrator pauses; UI raises a clarifying modal.
  • User answers in-thread; run resumes from where it stopped, no restart.

Architecture

.claude/agents/sales-quoting/    7 subagents — orchestrator + 6 specialists
poc-data/                        synthetic corpus (rates, clients, margins)
poc-tools/mcp-server/            local MCP server, 6 tools, 15 passing tests
worker/                          Cloudflare Worker — Anthropic API bridge
                                 src/agent-loop.js, src/rate-limit.js
site/                            web demo (HTML/CSS/JS, no framework)
poc-tools/managed-agents/        Anthropic Managed Agents cloud deployment
docs/superpowers/                spec + implementation plan

Synthetic data only — no client data leaves any system. The six tools are the contract: same names, same shapes across all three runtimes. Iteration happens at the prompt and tool layer; the runtime is interchangeable.

Links

Source
github — private, walkthrough on request