Building an AI Operations Control Tower for eCommerce (2026)
Quick summary: Beautiful sales tile while advertised ATP=0 still spends. Named feeds. Rank by blast radius. Cap the now-list at seven. The tower cannot write. Do not start a fleet.
Key Takeaways
- Beautiful sales tile while advertised ATP=0 still spends
- Ads on an advertised SKU with ATP=0 kept spending all weekend
- This is series part 56: the strategic architecture post
- It is not the 8 a
- Demo caps (now-list of 7) are worksheets, not a client SLA

Table of Contents
Tuesday standup, the sales tile is green. Ads on an advertised SKU with ATP=0 kept spending all weekend. Nobody opened inventory until Monday.
This is series part 56: the strategic architecture post. The primary question is: what requires human attention now? Surfaces: sales, orders, inventory, customers, support, returns, marketing, fulfillment. It is not the 8 a.m. Slack brief — that job is the daily operations agent and operations-daily-brief-schema.md. Demo caps (now-list of 7) are worksheets, not a client SLA. After July 30, 2026, net-new towers should not start on Agents Classic.
The daily brief’s cap of 5 is a morning contract. The tower’s cap of 7 is a live contract. Different cadences. Same evidence rule.
The job. Rank what a human should see now from named signal feeds. Never write from the wall.
This week. Name feeds you can actually wire. Cap the now-list at 7. Overflow is watch.
A person still signs. POs, ad pauses, refunds, and live price changes stay on domain agents.
Skip it when you have no named feeds, no blast-radius rule, and no owner for the now-list.
Our take: the tower recommends; it does not purchase. Do not start a fleet — a thin ranker first. Trade-off: executives still click into domain HITL for POs, pauses, and refunds. The alternative is one Identity that can do all eight domains’ writes because the wall looked expensive.
Copy the tower architecture — Open
operations-control-tower-architecture.md. Replace feeds with your tools. Do not submit the example cap of 7 as an operating review. Series folder:ecommerce-ai-agents-series/.
FactualMinds is an AWS Select Tier Services Partner. This is an architecture conversation — contact us and Amazon Bedrock — not a guaranteed attention-reduction metric.
How FactualMinds typically composes AgentCore for retail is the CTO brief. When to split one agent vs many is multi-agent architecture — after this post, not instead of it.
The question the wall must answer
Ops already has tiles. The failure is not “we lack AI.” It is that attention is a login, not a rank. The tower is the always-on prioritization layer over signals.
Business Systems → Signals → AI Operations Layer → Detect / Investigate / Prioritize → Operations Control Towerflowchart LR
Systems[BusinessSystems]
Signals[Signals]
OpsLayer[AIOperationsLayer]
Work[DetectInvestigatePrioritize]
Tower[OperationsControlTower]
Systems --> Signals
Signals --> OpsLayer
OpsLayer --> Work
Work --> TowerAds keep spending on advertised ATP=0 while the weekly meeting reviews AOV; exception queues rot behind a beautiful sales tile; returns clusters wait for someone to open the RMA report. The monitor owns detect. The tower owns what a human should see now.
Eight surfaces (feeds, not eight chatbots)
From operations-control-tower-architecture.md:
| Domain | Signal feed | Default on the wall |
|---|---|---|
| Sales | salesByPeriod | Watch unless blast radius is high |
| Orders | Exception queue | Investigate — exception pattern |
| Inventory | ATP vs ads | Page if advertised stockout; pin asOf |
| Customers | Duplicate / credit | Quality / B2B AM — no account write |
| Support | Tag spike | Brief, not invented UX |
| Returns | Rate vs baseline | Refund / quality; minimum n |
| Marketing | Spend vs ATP | Recommend pause — do not auto-pause |
| Fulfillment | SLA | Exception agent |
You do not owe week one a specialist per row. You owe named feeds. Empty feed → that domain is off the wall, not a model story. Baymard 70.22% does not fill a conversion surface you do not instrument.
Prioritize by blast radius, then cap
Rank by blast radius, not model confidence. Cap the tower’s now list (worksheet example: 7). Overflow is watch.
| Rank higher | Rank lower |
|---|---|
| Advertised SKU ATP=0 with spend still on | 2% AOV wiggle on a long-tail category |
| Exception queue past your SLO | A single one-star review |
| SLA breach on a promised window | A metric the feed cannot name |
Writes stay on domain agents with Cedar. The tower recommends. It does not createPurchaseOrder. It does not capture payment. It does not change a live price. HITL still owns irreversible actions.
Not the 8 a.m. Slack brief
| Daily brief | Control tower | |
|---|---|---|
| Question | What needs my attention today? | What requires human attention now? |
| Cadence | Scheduled invoke | Always-on over signals |
| Cap | 5 in the sample schema | 7 on the now-list (worksheet) |
| Channel | One morning message | Wall / ops UI / watch overflow |
| Writes | Recommend only | Recommend only |
Copying the brief JSON onto a big screen is interior design. Architecture is: systems → signals → detect/investigate/prioritize → a ranked now-list with overflow. Alerts that explain what happened and what to do next are evidence-based alerts. Pull Q&A remains store intelligence.
When the tower is premature
A control tower is the wrong first agent if you cannot name two feeds and a human owner for the now-list. In that case ship the daily brief and one monitor detector (usually advertised ATP=0). The wall without feeds is Looker with better lighting.
| You have | Build | Do not build yet |
|---|---|---|
| Scheduled brief + 1–2 detectors | Brief + monitor | Tower |
| Named feeds across ≥3 domains, blast-radius rule, owners | Thin ranker (this post) | Eight specialists |
| Prompts / IAM / Policy diverging by domain | Ranker + split | One god-agent with all writes |
Refresh cadence: event-driven detect, ranker on change. Polling every SKU every second is how Browser-off still burns the ~$791/mo floor. The supervisor-plus-specialists sample already lives in the store-agents architecture. Link it. Do not copy it into the tower RFC until the split table says you must.
For your technical lead
On June 17, 2026, Amazon Bedrock AgentCore Harness reached general availability — a config-driven loop on the same platform as Runtime, Memory, Gateway, Identity, and Policy (What’s New). Agents Classic is in maintenance for new customers after July 30, 2026. Net-new control-tower agents should use Bedrock AgentCore. Full matrix: lifecycle roundup.
First-party signals we reuse (not eCommerce outcomes) — Gateway server-side tools cut median tool round-trip ~180 ms → ~95 ms on a B2B CRM assistant (12 tools, ~8k turns/day) — Gateway post. Platform TCO silhouette: support-style AgentCore at 50K sessions/mo ~$791/mo platform + model (decision guide). A tower that refreshes every metric every second is a token hose. Model session time on the AgentCore pricing calculator. Treat ~$791/mo as a platform cost floor to plan against, not as savings from fewer dashboard logins.
How we typically compose production agents on AWS is already in the CTO architecture post. For the tower:
| Piece | Role here |
|---|---|
| Harness | Thin ranker: read tools, schema, now-list JSON |
| Runtime + Strands | When you later fan out with hop caps — when to split |
| Gateway | Named reads only on the tower role |
| Policy (Cedar) | Default-deny every write for the tower Identity |
| Identity | Associate / exec tokens for the wall. Shopper JWTs DENY |
| Next.js UI | Typical HITL + now-list surface — not the runtime |
There is no native Shopify AgentCore connector. Shopify, OMS, WMS, ads, and helpdesk are your OpenAPI or MCP targets.
Gateway ~180 → ~95 ms is the CRM canary. The wall’s latency is the slowest feed you joined. Do not buy Harness and Runtime and a custom graph because the board said “control tower.” Start on Harness if configuration covers model, instructions, tools, and Memory. Export to Strands when hop caps and specialists are forced by IAM, not by a slide.
What broke — A steering deck labeled “control tower” that attached
pauseCampaign,createPurchaseOrder, andrefundOrderto the same ranker so the wall could “close tickets.” A fixture advertised stockout recommended a pause; the ranker executed it on a sibling SKU because the ads join lackedasOf. Detection: Gateway trace showed write tools on the tower role; Policy was stillLOG_ONLY. Fix: strip writes from the tower Identity; Cedar ENFORCE default-deny; pause stays recommend on the marketing domain agent; now-list cap 7; overflow watch. Lesson: a tower that can purchase is not a control plane. It is an unattended merchandiser with a nicer font.
A second counter-case: delivering the 8 a.m. brief into the wall channel every five minutes. Slack and the UI both died. Fix: brief stays scheduled; tower stays event-ranked; do not merge cadences.
What to do this week
- Write the one-sentence job: what requires human attention now? — not “be the ops copilot.”
- Copy
operations-control-tower-architecture.md. List feeds you can actually name. - Turn off domains with no feed. Do not fill them with industry stats.
- Rank by blast radius. Cap the now-list (start at 7 as a worksheet). Overflow = watch.
- Tower Identity: read tools only. Cedar default-deny writes. LOG_ONLY then ENFORCE on domain agents, not on the wall.
- Keep the daily brief as a separate scheduled job.
- Wire detect from monitoring. Do not detect inside the ranker prompt.
- Run
monday-checklist.md. - Model refresh cadence on the AgentCore pricing calculator.
- Book an architecture conversation — contact us — and start from Amazon Bedrock consulting. Retail context: AWS for retail / eCommerce.
If you only do one thing: take write tools off the tower role. Recommend on the wall. Execute in domain agents.
What this post doesn’t cover
- The scheduled five-priority JSON — daily operations agent
- Signal catalog and detectors — monitoring
- Supervisor vs specialist split criteria — multi-agent architecture
- Full AWS composition (Harness vs Runtime, Cedar, Next.js as UI) — FactualMinds CTO brief
- A guaranteed “attention hours saved” from a named client
- PCI-scoped payment automation
- A native Shopify AgentCore connector
- Eight specialists on day one because the table has eight rows
FAQ
When should you NOT build an AI operations control tower?
Skip it when you have no named signal feeds, no blast-radius ranking rule, and no human owners for the now-list. A wall of tiles is a dashboard. Also skip it if the only job is the 8 a.m. five-item Slack brief — that is a scheduled JSON, not a tower. Do not start on Agents Classic after July 30, 2026.
What could go wrong if the tower can purchase, pause, or refund?
You inherit every domain write in one Identity. The tower recommends. Domain agents execute behind Cedar and HITL. Mixing now-list ranking with createPurchaseOrder is how an executive surface becomes an unattended merchandiser.
How is this different from the daily operations brief?
The brief answers what needs my attention today, once, capped at five. The tower is always-on prioritization over signals: what requires human attention now. Share evidence fields. Do not deliver the brief into the tower channel and call it architecture.
What could go wrong if we rank the now-list by model confidence?
You get twenty P1 items and the board ignores the wall. Rank by blast radius. Cap the now-list (example: 7). Overflow is watch. Advertised stockout beats a 2 percent AOV wiggle on a long-tail category.
Should week one include eight domain specialists behind the tower?
No. Start with signal feeds you can name and a ranker that cannot write. Split to a supervisor plus specialists when prompts, IAM, and Policy diverge — that is the next post in the series, not a day-one topology. A single Harness with reads is cheaper to operate until the split is forced. multi-agent.
Harness or Runtime for the control tower?
Harness can host a thin ranker over named read tools. Use Runtime plus Strands when the tower fans out to monitoring, exception, and RCA specialists with hop caps. Next.js is a typical ops UI, not the AgentCore runtime. Net-new builds use AgentCore, not Agents Classic after July 30, 2026.
Need a now-list architecture without an unattended purchaser on the wall? Contact FactualMinds for an architecture conversation, or start from Amazon Bedrock.
AWS Cloud Architect & AI Expert
AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.




