Inspiration
McKinsey's 2024 Global Supply Chain Leader Survey found that only 30% of executives have good visibility beyond their first-tier suppliers, down from 56% two years earlier. The damage in most disruptions isn't in the supplier you're watching. It's in the one two or three hops away that nobody thought to check.
That gap became concrete on February 28, 2026, when Houthi forces resumed attacks on Red Sea shipping. Four days later, Iran closed the Strait of Hormuz. For the first time in modern history, both of the Middle East's major maritime corridors were blocked at once. QatarEnergy declared force majeure on LNG and helium exports. This wasn't a hypothetical we invented for a demo. It was real and still unfolding as we built.
We wanted to know whether a graph-grounded multi-agent system could actually see the suppliers a flat analysis misses, and prove it with numbers instead of a demo that just looks convincing.
What it does
SentinelSCM is a multi-agent supply chain control tower for a fictional Singapore manufacturer, Orbital Manufacturing, sourcing real material categories from suppliers chosen for their documented exposure to the 2026 crisis. Five LangGraph agents collaborate: Monitoring detects disruptions, Risk traverses a Neo4j digital twin to find every supplier actually exposed, Planning proposes mitigations, Finance evaluates cost and benefit, and an Operations Manager arbitrates and compiles a recommendation with a full evidence chain. Nothing executes until a human approves it.
Beyond the seeded scenario, the Monitoring Agent takes any current headline, searches the live web for it via Qwen, extracts a structured event constrained to the digital twin's actual entities, and runs the same pipeline against real news. When there's no material connection, it says so and stops, rather than manufacturing a recommendation out of nothing.
How we built it
The stack is LangGraph for orchestration, Qwen (qwen-plus, DashScope International) for every agent call and for live web search, Neo4j AuraDB as the digital twin, a custom MCP server exposing four tools over SSE, FastAPI with Server-Sent Events for the live agent trace, and React with Cytoscape.js for the frontend. Deployment is three Docker services on Alibaba Cloud, Singapore.
The agents call their tools over the actual MCP protocol rather than importing the functions directly, with a typed fallback to in-process calls if the connection drops. We proved this was real rather than decorative with a symmetry test: with the MCP server running, a full scenario logs 38 real protocol calls and zero fallbacks. Stop the server and run it again: zero protocol calls, 38 fallbacks, identical per-tool counts, and the pipeline still completes.
To answer Track 3's requirement for a measurable efficiency gain, we built a ground-truth evaluation harness. The ground truth is computed independently in plain Python, with no shared code path with the agents or tools under test, so agreement can't be circular. The single-agent baseline receives identical information to the agent society, with no tools and no graph traversal, so the only variable is architecture.
Challenges we ran into
The first real bug came from a Neo4j Python driver inconsistency: node objects converted cleanly through the driver, but relationship objects in multi-column returns came back as raw tuples, throwing AttributeError on .get() calls. The fix was forcing map projections inside the Cypher query itself rather than trusting the driver.
A second, subtler bug hid behind a silent exception handler. Every Finance Agent cost came back as zero, which triggered the negotiation loop on every run. It looked like a working feature. It was actually the same tuple bug, caught by a bare except Exception block with no logging, one file over. Adding a traceback print surfaced the real error in seconds. The dangerous part wasn't the bug. It was that the code kept running and produced plausible-looking output the entire time it was wrong.
The evaluation harness had its own near-miss. An early version of the cost-accuracy metric reported 0.0% error, which briefly looked like a strong result. It was actually a circularity: the ground-truth cost function and the agent's Finance tool used the identical formula, so the comparison measured a number against itself. We caught it, removed the metric from the reported results, and documented why rather than quietly deleting the problem.
Deployment on Alibaba Cloud was its own obstacle course. A new account hit risk-control blocks on the standard ECS purchase path, with generic errors and no clear resolution. Simple Application Server, a different product on the same account, worked where ECS didn't. Separately, agent calls that worked locally returned 401 errors after deployment, because the DashScope endpoint in the config pointed at the mainland China host while the API key was issued for the international one. Two regional endpoints, two separate key spaces, one wrong config value.
Accomplishments that we're proud of
The agent society scored perfect supplier-detection recall, 1.00, across 25 evaluation scenarios, including five events sharing nothing with the seeded crisis story. The single-agent baseline averaged 0.82 recall, and dropped to 0.38 on the hardest compound scenario, missing five of eight affected suppliers. Every miss followed the same pattern: suppliers connected only indirectly, through a rerouting chain a flat analysis has no way to trace without walking the graph.
We're proud that the MCP integration is provably real rather than asserted, that the evaluation's ground truth was built with a hard independence constraint instead of a shortcut, and that when we found a real scoring gap in the Risk Agent late in the build, we documented it honestly rather than either hiding it or rushing an unverified fix hours before the deadline.
What we learned
An evaluation is only as trustworthy as its independence from the thing it's testing. The most dangerous bugs aren't the ones that crash. They're the ones that fail silently and produce output plausible enough that nothing looks wrong until you go looking. And a demo integration and a real one look identical from the outside, which means the only way to know the difference is to build a test that can tell them apart, the way the MCP symmetry test does.
What's next for Sentinel Supply Chain Manager
Independent cost-accuracy ground truth, so mitigation cost estimates get the same rigor as supplier detection. Per-event world-state derivation for canned scenarios, matching the approach already used in the evaluation harness and in live search. A circuit breaker on the MCP fallback path, so a sustained outage doesn't pay the connection-attempt cost on every call. Bidirectional graph writes, so a human's approval updates the digital twin's supplier allocation and inventory state instead of leaving it read-only.
Log in or sign up for Devpost to join the conversation.