The Geographic Concentration Analysis Agent performs a quantitative, multi-tier evaluation of an enterprise’s global supply chain to identify country-level and regional over-concentration risks.
By applying Herfindahl–Hirschman Index (HHI) calculations and deep-tier graph traversal, it exposes hidden dependency structures that are often invisible in traditional Tier-1 or Tier-2 analysis.
The agent delivers a clear, decision-ready report that highlights systemic vulnerabilities, enabling organizations to assess exposure, design mitigation strategies, and strengthen supply resilience before disruption occurs.
Most companies believe their supply chain is diversified — but in reality, hidden concentration often exists deep in Tier-3 through Tier-8 levels of their network.
Even globally diversified enterprises can rely on a single dominant geography for critical upstream inputs without realizing it. In one analysis, Nvidia — widely regarded as having a highly diversified supply chain — was found to have Tier-6 components with over 90% concentration in a single country based on HHI analysis.
Such invisible dependencies introduce severe enterprise risks:
Any one of these can trigger cascading failures: component shortages, production delays, revenue loss, and reputational damage.
Behind the scenes, SupplyGraph AI executes a node-by-node analysis of a company-centric supply graph, calculating geographic concentration at each tier using statistical benchmarks and real-world enterprise data.
User experience remains simple:
The final output includes:
Advanced network science, delivered through an intuitive and actionable format.
Powered by a continuously updated knowledge graph spanning:
SupplyGraph AI is the first AI-native infrastructure designed to perform deep-tier geographic dependency analysis at scale — without requiring any proprietary data uploads from clients.
Our platform transforms invisible structural risk into auditable, explainable intelligence that decision-makers can trust.
Before integrating this agent via API, you can experience it directly through our interactive chatbot.
This live demo allows you to:
Launch the Geographic Concentration Analysis Agent
https://supplygraph.ai/zk_chat_os/agentic/dialog.html?name=sg_chokepoint
To use the chatbot, you’ll first need to:
The chatbot is powered by the same Geographic Concentration Analysis Agent and A2A endpoints described in this documentation.
Credits consumed in the chatbot are deducted in the same way as API / A2A usage.
Everything you experience here can be fully embedded into your own systems through A2A integration.
This agent supports Sandbox API Keys, enabling developers to test without consuming credits.
When using a Sandbox Key:
Suitable for:
⚠️ Sandbox datasets are static samples.
Production Keys are required for real, dynamic computations.
For more information, see
Getting Started Guide → API Keys.
agent_id: sg_chokepoint · MCP tool: sg_chokepoint · Pricing: 264590 credits / run
Input differs by integration surface:
| Field | Required | Description |
|---|---|---|
text |
Yes | Natural-language input — company name, and later country or region when prompted |
Example (initial): "Tesla, Inc."
The agent resolves the company and country/region through multi-turn confirmation before report generation starts (see Multi-turn Example (A2A)).
MCP does not use multi-turn confirmation on sg_chokepoint. Resolve pid and region_name via helper tools first.
| Step | MCP tool | Input | Output |
|---|---|---|---|
| 1 | search_company_candidates |
text |
candidates[].pid |
| 2 | search_region_candidates |
text |
candidates[].region_name |
| 3 | sg_chokepoint |
pid, region_name |
Concentration report |
Step 1 example: {"text": "Tesla United States"}
Step 2 example: {"text": "China"}
Step 3 example: {"pid": "a77828f060c866441f2403384b271e63", "region_name": "China"}
Helper tool pricing: 1 credit / run each for search_company_candidates and search_region_candidates.
Full machine-readable schemas → GET /api/v1/agents/sg_chokepoint/manifest (see Agent API §3).
Primary output lives in data.content (Agent API) or task artifacts (A2A / MCP). The payload is a oneOf:
| State | content type |
Description |
|---|---|---|
| In progress, failed, cancelled, or waiting for user input | string |
Text or Markdown — validation prompts, confirmation requests, or error messages |
| Task completed successfully | object |
Structured geographic concentration report (see below) |
Structured success object:
{
"type": "sg_chokepoint_results",
"data": [
{
"content_type": "dir",
"content": "Summary"
},
{
"content_type": "paragraph",
"content": "### Research Objective\nThis report applies the Herfindahl–Hirschman Index (HHI) methodology to evaluate the geographic concentration and risk exposure of Tesla, Inc.'s global supply chain."
}
]
}
| Field | Description |
|---|---|
type |
Always "sg_chokepoint_results" on success |
data |
Ordered array of report elements |
data[].content_type |
"dir" — title or heading; "paragraph" — body text (may include Markdown) |
data[].content |
Text content of the element |
Estimated task duration: 30 minutes – 7 hours (Production). Sandbox returns instantly.
After entity and region confirmation (A2A) or pid + region_name submission (MCP), the task enters a long-running executing state — poll status until TASK_COMPLETED, then call results.
Sandbox returns the Tesla, Inc. / China fixture with the same structure as Production. Report content below is abbreviated.
Success (TASK_COMPLETED) — Agent API results:
{
"success": true,
"code": "TASK_COMPLETED",
"message": "Task completed successfully.",
"data": {
"task_id": "<task-id>",
"agent": "sg_chokepoint",
"stage": "completed",
"progress": 100,
"content": {
"type": "sg_chokepoint_results",
"data": [
{
"content_type": "dir",
"content": "Summary"
},
{
"content_type": "paragraph",
"content": "### Research Objective\nThis report applies the Herfindahl–Hirschman Index (HHI) methodology to evaluate the geographic concentration and risk exposure of Tesla, Inc.'s global supply chain in China."
},
{
"content_type": "dir",
"content": "HHI Analysis"
},
{
"content_type": "paragraph",
"content": "Tier-3 through Tier-6 components show elevated single-region dependency scores, with several nodes exceeding the 0.25 HHI threshold for high concentration."
}
]
}
},
"metadata": { "credits_used": 0 },
"errors": null
}
A2A and Agent API only. MCP uses the three-tool workflow (
search_company_candidates→search_region_candidates→sg_chokepoint) instead of multi-turn confirmation.
Each WAITING_USER response includes a Markdown prompt in content (string). Continue with the same task_id.
Turn 1 — submit company name:
curl -X POST "https://agent.supplygraph.ai/api/v1/agents/sg_chokepoint/run" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"text": "Tesla, Inc.", "stream": false}'
Poll until WAITING_USER. Example content:
{
"success": true,
"code": "WAITING_USER",
"data": {
"task_id": "<task-id>",
"content": "Here are the companies we've identified.\nCompany Name: Tesla, Inc.\nCountry: United States\nPlease reply [Yes] or [No] to confirm."
}
}
Turn 2 — confirm company (same task_id):
curl -X POST "https://agent.supplygraph.ai/api/v1/agents/sg_chokepoint/run" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"text": "Yes", "task_id": "<task-id>", "stream": false}'
Agent prompts for the target country or region.
Turn 3 — submit country or region (same task_id):
curl -X POST "https://agent.supplygraph.ai/api/v1/agents/sg_chokepoint/run" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"text": "China", "task_id": "<task-id>", "stream": false}'
Poll until WAITING_USER with region confirmation, e.g.:
{
"success": true,
"code": "WAITING_USER",
"data": {
"task_id": "<task-id>",
"content": "Country or region identified: **China**.\nPlease reply [Yes] or [No] to confirm."
}
}
Turn 4 — confirm country or region (same task_id):
curl -X POST "https://agent.supplygraph.ai/api/v1/agents/sg_chokepoint/run" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"text": "Yes", "task_id": "<task-id>", "stream": false}'
The agent queues report generation. Poll status until TASK_COMPLETED (may take 30 min – 7 h in Production), then retrieve sg_chokepoint_results via results.
See Agent API §8 for the general multi-turn pattern.
MCP integrations resolve entities upfront — no confirmation turns on sg_chokepoint.
search_company_candidates{
"type": "company_candidate_search",
"data": {
"candidates": [
{
"pid": "a77828f060c866441f2403384b271e63",
"company_name": "Tesla, Inc.",
"country_name": "United States"
}
]
}
}
search_region_candidates{
"type": "region_candidate_search",
"data": {
"candidates": [
{ "region_name": "China" }
]
}
}
sg_chokepointreport = await session.experimental.call_tool_as_task(
"sg_chokepoint",
{
"pid": "a77828f060c866441f2403384b271e63",
"region_name": "China",
},
)
# poll until complete; parse sg_chokepoint_results
| Method | ID / Tool | Documentation |
|---|---|---|
| A2A | sg_chokepoint |
a2a.md |
| MCP | search_company_candidates + search_region_candidates + sg_chokepoint |
mcp.md |
| Agent API | sg_chokepoint |
agent-api.md |
Call pattern is identical across agents — only agent_id / tool name and input differ.
Quick examples: A2A / MCP · Agent API
Common codes → Agent API §10.
| Situation | Code | Agent behavior |
|---|---|---|
| Ambiguous or unmatched company (A2A / Agent API) | WAITING_USER |
Prompts for entity confirmation; resume with same task_id |
| Country or region needs confirmation (A2A / Agent API) | WAITING_USER |
Prompts for region confirmation after user supplies country/region name |
Invalid pid or region_name (MCP) |
TASK_FAILED |
Returns guidance in content (string) — re-run helper tools |
| Insufficient credits | INSUFFICIENT_CREDITS |
Top up via Console |
| Report still generating | TASK_RUNNING |
Continue polling status; Production may take up to 7 hours |
Maintainer: info@supplygraph.ai
License: Proprietary / Internal
© 2025–2026 SupplyGraph AI. All rights reserved.