Inspiration
A few years ago, working operations at a manufacturing plant, I got the call every planner dreads: a line was about to stop because we were about to run out of a part. Nothing had gone wrong overnight , a supplier had just quietly gotten a little slower, week after week, until nobody was watching closely enough to catch it in time. That's not a rare story, it's Tuesday at basically every plant like it and it's the exact problem Reorder Autopilot is built to solve.
What it does
Reorder Autopilot runs against a plant's inventory and purchase-order history and, per SKU:
- Computes the real reorder point using Economic Order Quantity and statistical safety stock which are genuine operations-research formulas, not a decorative AI guess.
- Checks whether the most recent purchase order's lead time or price is a real statistical outlier against that SKU's own history (a z-score test), separating "something changed" from ordinary supplier noise.
- Pulls a live public commodity-price benchmark (steel / aluminum / a resin proxy, via the FRED API) so it can tell "market-wide move" apart from "this supplier specifically slipped."
- If everything's normal: logs it and moves on. No human interruption.
- If something's genuinely anomalous: costs out two real options either reorder now at higher safety stock, or switch to the backup supplier at its higher unit cost and drafts the renegotiation email, and surfaces exactly one clear, costed decision to a human, ranked by financial impact so the biggest-dollar problem always surfaces first.
- A real human makes the actual call. The agent can suggest, but it never decides. A planner runs the override tool and picks stay, switch, or skip and that choice gets written down permanently, with a timestamp. Not what the AI suggested but what the human decided. This step is deliberately plain Python with no LLM in the loop, on purpose.
How I built it
Built with the Strands Agents SDK on Amazon Bedrock (Claude Sonnet 4.5). The math which is EOQ, safety stock, z-score anomaly detection and is deliberately plain, unit-tested Python with zero external dependencies, so it's checkable by hand, not "trust the AI." The agent's job is orchestration and judgment: deciding which SKUs are worth a human's attention, pulling in market context only when needed, and turning structured tool output into one clear, costed decision. It's explicitly instructed to never invent a number that didn't come from atool call — every figure in an escalation traces back to real arithmetic on real (synthetic, clearly labeled) data.
Challenges I ran into
Early feedback on this project (a supply-chain professional's comment, specifically) raised a fair bar: exception-based planning is only as good as whether the alerts are explainable, prioritized by financial impact, and easy for a planner to override. That wasn't fully true of my first version, so I went back and built a financial-impact ranking used consistently across the agent, the report, and the override tool; a real human-override CLI with a timestamped decision log; and a self-contained HTML report — closing the gap between "cool agent demo" and something a procurement lead could actually use.
Accomplishments that I'm proud of
None of the math is "trust the AI" , every number a human sees traces back to a tool call into plain, tested Python. And I'm proudest of the override step specifically: the agent is genuinely never the last word on a decision. It can rank, explain, and recommend, but a human always makes the actual call, and that call — not the AI's suggestion — is the permanent record.
What I learned
That the hardest part of "AI for procurement" isn't the AI , it's the last mile of making an alert explainable, prioritized, and overridable enough that a busy human actually trusts and uses it.
What's next for Reorder Autopilot
AgentCore deployment (strengthens Technical Implementation, not yet done), live ERP/inventory integration in place of the CSVs, and multi-channel escalation (Slack/email) instead of console output.
Built With
- amazon-bedrock
- amazon-web-services
- anthropic-claude
- api
- boto3
- fred
- python
- strands-agents-sdk
Log in or sign up for Devpost to join the conversation.