A single mining strike in Chile can shut down an EV factory in California. SupplySentinel detects that BEFORE contracts are broken and production halts.
| Resource | Link |
|---|---|
| π Web App (no setup) | https://supply-sentinel-144683821783.us-central1.run.app/ |
| π₯ Demo Video | https://youtu.be/fiqA1lf8PQk |
| π Repository | https://github.com/G26karthik/SupplySentinel |
Instead of procurement teams manually tracking thousands of global signals, SupplySentinel automates the entire pipeline:
| Step | Human Effort Today | With SupplySentinel |
|---|---|---|
| Identify critical raw materials | Hours | 0 |
| Monitor global risk signals | Impossible | 24/7 autonomous |
| Validate credibility of threats | Manual interpretation | AI-driven severity scoring |
| Prevent alert spam | Rarely | Built-in deduplication |
| Detect disruption early | Usually too late | Before impact |
You say:
βI manufacture aerospace components in Germany.β
The system then: β finds critical materials β maps producing countries β searches live news globally β scores disruption risk β alerts only when relevant + non-duplicate
| Agent | Responsibility |
|---|---|
| Config Agent | Business β critical materials + countries |
| Watchman Agent | Live disruption scanning via Google Search tool |
| Analyst Agent | Scores severity + triggers retry when evidence is weak |
| Dispatcher Agent | Issues alerts & suppresses duplicates |
If Watchman returns insufficient evidence, Analyst commands a retry with expanded search scope (not hardcoded branching).
Persistent JSON state across runs:
- suppliers.json
- alert_history.json
- metrics_history.json
Streamlit UI OR CLI long-running mode β supports 24/7 monitoring.
flowchart TD
Start([Business Description]) --> Config[π€ Config Agent]
Config -->|Material/Country Map| Map[(π suppliers.json)]
Map --> Loop{For Each Material}
Loop --> Watchman1[π Watchman β Material + Location]
Watchman1 --> Analyst1[π Analyst]
Analyst1 -->|Risk > 0| Dispatcher
Analyst1 -->|Risk = 0 β Retry| Watchman2[π Watchman β Global Scope]
Watchman2 --> Analyst2[π Analyst β Reevaluate]
Analyst2 --> Dispatcher
Dispatcher -->|Critical| Alert[π¨ Alert]
Dispatcher -->|Safe| Safe[π’ Mark Safe]
Dispatcher -->|Duplicate| Skip[β Skip]
Alert --> Memory[(alert_history.json)]
Safe --> Memory
Skip --> Memory
Memory --> Loop
%% simplified orchestration diagram
graph LR
Core([π€ SupplySentinel<br/>Orchestrator]):::main
subgraph Loop [Autonomous Detection Loop]
direction LR
Watchman(π Watchman Agent):::agent
Analyst(π Analyst Agent):::agent
Watchman -->|News| Analyst
Analyst -->|Retry Cmd| Watchman
Google(π§ Google Search Tool):::tool --- Watchman
end
Config(π€ Config Agent):::agent
Dispatcher(π€ Dispatcher Agent):::agent
Memory(πΎ alert_history.json):::tool
Core --> Config
Core --> Loop
Core --> Dispatcher
Core --> Memory
classDef main fill:#2E4F2F,stroke:#4d7f4d,stroke-width:2px,color:#fff;
classDef agent fill:#333,stroke:#fff,stroke-width:1px,color:#fff,rx:20,ry:20;
classDef tool fill:#333,stroke:#888,stroke-width:1px,color:#ccc,rx:5,ry:5;
"I manufacture electric vehicles in California"
Critical Materials:
β’ Lithium β Chile
β’ Cobalt β DRC
β’ Rare Earths β China
Result:
Watchman β insufficient evidence
Analyst β RETRY triggered
Watchman (global scope) β disruption detected
Risk Score = 8/10 β Critical Alert (not duplicate)
| Persona | Value |
|---|---|
| VP of Supply Chain | See disruptions before revenue loss |
| Procurement Manager | Avoid SLA penalties |
| Risk & Compliance | Proactive risk mitigation |
| Logistics & Operations | Forward planning before shortages |
| Sourcing Analyst | Visibility into tier-2 / tier-3 suppliers |
This is not a chatbot β it is a risk defense system.
Copy into Web App:
| Prompt | Industry |
|---|---|
| I manufacture EV batteries in Texas | Automotive / Energy |
| I build medical devices in Germany | MedTech |
| I produce military-grade semiconductors in Japan | Electronics / Defense |
| I run a wind turbine assembly plant in Denmark | Renewable energy |
| I manufacture aerospace components in France | Aerospace |
| Business Metric | Impact |
|---|---|
| Monitoring effort | Reduced from daily manual checks β fully automated |
| Alert noise | Duplicate and low-value alerts suppressed to prevent fatigue |
| Risk visibility | Reveals tier-2 and tier-3 supplier exposure normally invisible to procurement teams |
| Downtime prevention | Disruptions detected early enough to act before production impact |
git clone https://github.com/G26karthik/SupplySentinel.git
cd SupplySentinel
pip install -r requirements.txt
streamlit run app.pyβ‘ No .env required β API key entered in UI.
SupplySentinel/
βββ app.py # Web UI
βββ supply_sentinel.py # CLI monitor
βββ config_agent.py
βββ watchman_agent.py
βββ analyst_agent.py
βββ dispatcher_agent.py
βββ logging_config.py
βββ metrics_tracker.py
βββ logs/
βββ README.md
gcloud run deploy supply-sentinel \
--source . \
--allow-unauthenticated \
--region us-central1Fully deployed version already live on Google Cloud Run.
| Stage | Status |
|---|---|
| Multi-agent autonomy | β complete |
| Logging & metrics | β complete |
| Cloud deployment | β complete |
| Parallel scanning | π in development |
| ERP + Slack/Teams integration | π planned |
| Predictive cost impact modeling | π planned |
If this project interests you, consider giving the repo a β β it helps more developers discover it.
MIT License
Built for the Google Γ Kaggle Agents Intensive β Enterprise Track (Nov 2025).