<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SupplyGraph.AI</title>
    <description>The latest articles on DEV Community by SupplyGraph.AI (@supplygraphai).</description>
    <link>https://dev.to/supplygraphai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3634105%2F7e87cf43-b8c9-4bb5-bd50-3a99adfc65c8.png</url>
      <title>DEV Community: SupplyGraph.AI</title>
      <link>https://dev.to/supplygraphai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/supplygraphai"/>
    <language>en</language>
    <item>
      <title>Automating Supplier Due Diligence with AI: Turning Days of Work into Minutes</title>
      <dc:creator>SupplyGraph.AI</dc:creator>
      <pubDate>Tue, 09 Dec 2025 02:36:30 +0000</pubDate>
      <link>https://dev.to/supplygraphai/automating-supplier-due-diligence-with-ai-turning-days-of-work-into-minutes-4a3g</link>
      <guid>https://dev.to/supplygraphai/automating-supplier-due-diligence-with-ai-turning-days-of-work-into-minutes-4a3g</guid>
      <description>&lt;p&gt;Global supply chains are evolving faster than traditional due diligence workflows can support. Analysts must navigate fragmented public records, inconsistent disclosures, and region-specific data systems — all while responding to rising expectations across ESG, sanctions, corporate governance, labor compliance, cybersecurity, and financial transparency.&lt;/p&gt;

&lt;p&gt;The result? Due diligence has become one of the &lt;strong&gt;most time-consuming and resource-intensive&lt;/strong&gt; steps in supplier onboarding, M&amp;amp;A screening, and third-party risk management.&lt;/p&gt;

&lt;p&gt;SupplyGraph AI’s &lt;strong&gt;Automated Due Diligence Agent&lt;/strong&gt; was designed to address these challenges by transforming manual research into a structured, repeatable, and scalable intelligence process.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Pain: Why Traditional Due Diligence Fails at Scale
&lt;/h2&gt;

&lt;p&gt;Even for a single supplier, analysts often spend &lt;strong&gt;10+ hours&lt;/strong&gt; manually compiling information from numerous sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Corporate registration and identity records
&lt;/li&gt;
&lt;li&gt;Ownership and shareholder structures
&lt;/li&gt;
&lt;li&gt;Legal filings, regulatory actions, and sanctions
&lt;/li&gt;
&lt;li&gt;Intellectual property portfolios
&lt;/li&gt;
&lt;li&gt;Financial disclosures
&lt;/li&gt;
&lt;li&gt;Workforce, operations, and business scope
&lt;/li&gt;
&lt;li&gt;ESG-related or governance-related signals
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The complexity increases as organizations expand across markets or face stricter compliance requirements.&lt;br&gt;&lt;br&gt;
Common issues include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slow and inconsistent information gathering
&lt;/li&gt;
&lt;li&gt;Outdated reports due to static snapshots
&lt;/li&gt;
&lt;li&gt;Limited visibility across jurisdictions
&lt;/li&gt;
&lt;li&gt;High operational cost
&lt;/li&gt;
&lt;li&gt;Fragmented data formats
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These gaps introduce delays, blind spots, and elevated risk exposure.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Breakthrough: Automated, Structured, and Continuously Refreshed Due Diligence
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Due Diligence Agent&lt;/strong&gt; consolidates globally dispersed corporate information into a unified, structured, and evidence-linked intelligence report.&lt;/p&gt;

&lt;p&gt;Behind the scenes, it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resolves company identity across global registries
&lt;/li&gt;
&lt;li&gt;Structures information into standardized due-diligence modules
&lt;/li&gt;
&lt;li&gt;Extracts legal, financial, IP, operational, and compliance-related signals
&lt;/li&gt;
&lt;li&gt;Benchmarks companies using more than &lt;strong&gt;8,000 statistical industry matrices&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Refreshes data on a &lt;strong&gt;rolling update cycle&lt;/strong&gt;, ensuring reports incorporate the latest available information
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From the user’s perspective, the process requires only:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enter a company name
&lt;/li&gt;
&lt;li&gt;Confirm the matched entity
&lt;/li&gt;
&lt;li&gt;Receive a comprehensive (or chapter-specific) report in minutes
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No custom integrations, no manual aggregation.&lt;/p&gt;


&lt;h2&gt;
  
  
  What the Report Contains
&lt;/h2&gt;

&lt;p&gt;Each report follows a consistent structure designed for procurement, legal, and compliance workflows.&lt;/p&gt;

&lt;p&gt;You receive intelligence covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Corporate registration &amp;amp; identity&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ownership &amp;amp; shareholding structure&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subsidiaries and affiliated entities&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Legal, regulatory, and enforcement records&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intellectual property holdings&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Financial statements&lt;/strong&gt; (where publicly available)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digital presence &amp;amp; brand indicators&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Government programs, subsidies, or violations&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Competitive and industry benchmarking&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Users may also request &lt;strong&gt;specific chapters only&lt;/strong&gt; when a narrower scope is needed.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why SupplyGraph AI?
&lt;/h2&gt;

&lt;p&gt;SupplyGraph AI is powered by a global supply-chain intelligence graph built from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100M+ companies&lt;/strong&gt; worldwide
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1M+ products and operational entities&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;8,000+ industry benchmarking datasets&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows the system to produce due diligence intelligence that is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Evidence-linked&lt;/strong&gt; — every insight traces back to sourced information
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context-aware&lt;/strong&gt; — enriched with industry and peer-group context
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuously refreshed&lt;/strong&gt; — updated on a rolling cycle
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Designed for enterprise use&lt;/strong&gt; — consistent, structured, and audit-friendly
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Importantly, the system does &lt;strong&gt;not&lt;/strong&gt; require uploading proprietary or internal corporate data.&lt;/p&gt;


&lt;h2&gt;
  
  
  Try the Automated Due Diligence Workflow (Live Demo)
&lt;/h2&gt;

&lt;p&gt;Before integrating through API, you can experience the workflow via our interactive chatbot:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://supplygraph.ai/zk_chat_os/agentic/dialog.html?name=due_diligence_report" rel="noopener noreferrer"&gt;https://supplygraph.ai/zk_chat_os/agentic/dialog.html?name=due_diligence_report&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter a company name in natural language
&lt;/li&gt;
&lt;li&gt;Confirm the correct entity
&lt;/li&gt;
&lt;li&gt;Generate a full or chapter-specific due diligence report
&lt;/li&gt;
&lt;li&gt;Preview the structure and clarity of the generated intelligence
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To access the demo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a SupplyGraph AI account
&lt;/li&gt;
&lt;li&gt;Top up your credit balance
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The chatbot uses the &lt;strong&gt;same A2A agent&lt;/strong&gt; described in the developer documentation.&lt;/p&gt;


&lt;h2&gt;
  
  
  Developer Section: A2A API Overview
&lt;/h2&gt;

&lt;p&gt;SupplyGraph AI provides a programmatic interface for embedding due diligence intelligence into procurement platforms, compliance workflows, or internal automation systems.&lt;/p&gt;
&lt;h3&gt;
  
  
  Endpoints
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/api/v1/agents/due_diligence_report/manifest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;Retrieve metadata, schema, pricing, version info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/api/v1/agents/due_diligence_report/run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;Start or manage tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Run Example
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://agent.supplygraph.ai/api/v1/agents/due_diligence_report/run &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &amp;lt;YOUR_API_KEY&amp;gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{ "text": "Tesla, Inc. United States", "stream": false }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;If confirmation is required:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"WAITING_USER"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"data"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Here are the companies we’ve identified... Please reply Yes or No."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Retrieve Results
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://agent.supplygraph.ai/api/v1/agents/due_diligence_report/run &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &amp;lt;YOUR_API_KEY&amp;gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{ "mode": "results", "task_id": "&amp;lt;task-id&amp;gt;" }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Build Your Own Workflows
&lt;/h2&gt;

&lt;p&gt;The Due Diligence Agent integrates with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SupplyGraph A2A protocol&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python SDK&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event-driven automation workflows&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-step investigation pipelines&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SDK Repository:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk" rel="noopener noreferrer"&gt;https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  From Manual Research to Continuous Intelligence
&lt;/h2&gt;

&lt;p&gt;Compliance expectations are rising. Supply chains are expanding. Third-party risk is accelerating.&lt;/p&gt;

&lt;p&gt;Organizations that rely on manual research will fall behind.&lt;br&gt;&lt;br&gt;
Organizations that automate intelligence will move faster, operate safer, and make better decisions.&lt;/p&gt;

&lt;p&gt;The Automated Due Diligence Agent helps teams transition from fragmented, static reporting to &lt;strong&gt;continuous, structured, and scalable supplier intelligence&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If this article was helpful, follow us on dev.to and GitHub for future deep dives into the SupplyGraph AI ecosystem.&lt;/p&gt;

&lt;p&gt;GitHub → &lt;a href="https://github.com/SupplyGraphAI" rel="noopener noreferrer"&gt;https://github.com/SupplyGraphAI&lt;/a&gt;&lt;/p&gt;

</description>
      <category>supplychain</category>
      <category>ai</category>
      <category>automation</category>
      <category>apidevelopment</category>
    </item>
    <item>
      <title>Automating U.S. Tariff Calculation with AI: A More Reliable Way to Navigate HTS + Chapter 99 Complexity</title>
      <dc:creator>SupplyGraph.AI</dc:creator>
      <pubDate>Mon, 08 Dec 2025 02:18:31 +0000</pubDate>
      <link>https://dev.to/supplygraphai/automating-us-tariff-calculation-with-ai-a-more-reliable-way-to-navigate-hts-chapter-99-2dg6</link>
      <guid>https://dev.to/supplygraphai/automating-us-tariff-calculation-with-ai-a-more-reliable-way-to-navigate-hts-chapter-99-2dg6</guid>
      <description>&lt;h2&gt;
  
  
  Why Tariff Calculation Has Become So Difficult
&lt;/h2&gt;

&lt;p&gt;For trade compliance teams, customs brokers, and global sourcing leaders, U.S. tariff determination has quietly become one of the most resource-intensive steps in trade operations. Even with internal systems and partial automation, teams still face several structural challenges:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Overlapping and fast-changing rule layers
&lt;/h3&gt;

&lt;p&gt;The Harmonized Tariff Schedule (HTSUS) defines base duty rates, but &lt;strong&gt;Chapter 99 introduces hundreds of additional, suspended, conditional, or time-limited measures&lt;/strong&gt;. These interact with Section 301, Section 232, presidential proclamations, temporary exclusions, and other notices — many of which can be updated with minimal lead time.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Highly specific eligibility conditions
&lt;/h3&gt;

&lt;p&gt;Tariff outcomes can hinge on details such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether U.S.-origin content exceeds specific thresholds
&lt;/li&gt;
&lt;li&gt;Whether a shipment qualifies as a charitable donation
&lt;/li&gt;
&lt;li&gt;Whether an FTA applies
&lt;/li&gt;
&lt;li&gt;Whether a product’s classification carries conditional exceptions
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each requirement is straightforward on its own, but extremely difficult to evaluate consistently for large SKU catalogs.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Manual workflows that don’t scale
&lt;/h3&gt;

&lt;p&gt;A typical duty calculation still requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searching HTSUS tables
&lt;/li&gt;
&lt;li&gt;Reviewing Chapter 99 notes
&lt;/li&gt;
&lt;li&gt;Cross-checking trade measures
&lt;/li&gt;
&lt;li&gt;Verifying origin-dependent rules
&lt;/li&gt;
&lt;li&gt;Ensuring no exemptions or temporary measures were missed
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even experienced specialists may reach different results when interpreting the same product scenario — especially under time pressure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Introducing SupplyGraph AI’s U.S. Tariff Calculation Agent
&lt;/h2&gt;

&lt;p&gt;SupplyGraph AI provides an &lt;strong&gt;AI-assisted, traceable, regulation-aligned duty calculation workflow&lt;/strong&gt; designed to reduce manual effort and improve consistency for organizations that handle recurring tariff assessments.&lt;/p&gt;

&lt;p&gt;The Agent assists with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Classifying products when only a description is provided
&lt;/li&gt;
&lt;li&gt;Applying base HTS rates
&lt;/li&gt;
&lt;li&gt;Checking all relevant Chapter 99 measures
&lt;/li&gt;
&lt;li&gt;Identifying applicable Section 301 / 232 / 201 implications
&lt;/li&gt;
&lt;li&gt;Evaluating country-of-origin impacts
&lt;/li&gt;
&lt;li&gt;Producing an explainable calculation trail
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every output is designed to be &lt;strong&gt;auditable and aligned with published U.S. regulatory sources&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
It does &lt;strong&gt;not&lt;/strong&gt; override, reinterpret, or predict regulatory decisions — it simply ensures teams can operationalize publicly available tariff rules with greater reliability.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before vs. After: What Changes for Compliance Teams?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Before (Typical Workflow)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Searching HTS tables manually
&lt;/li&gt;
&lt;li&gt;Comparing multiple possible classifications
&lt;/li&gt;
&lt;li&gt;Reviewing each applicable Chapter 99 note
&lt;/li&gt;
&lt;li&gt;Checking for exclusions or expirations
&lt;/li&gt;
&lt;li&gt;Combining base duties + surcharges manually
&lt;/li&gt;
&lt;li&gt;Repeating the process for every minor variation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The process often takes &lt;strong&gt;30–90 minutes per SKU&lt;/strong&gt;, depending on complexity.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;After (With AI Assistance)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Enter a product description or HTS code
&lt;/li&gt;
&lt;li&gt;Provide a country of origin
&lt;/li&gt;
&lt;li&gt;Receive an explainable calculation in seconds
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Users still maintain full oversight — the system simply accelerates the analytical steps and centralizes all applicable rule references.&lt;/p&gt;

&lt;p&gt;A suggested cover-image description for this section (if the platform generates images):  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A split-screen diagram showing a manual, paper-heavy tariff calculation workflow on the left and an AI-assisted, structured calculation output on the right.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How It Works: Inside the TariffRAG™ Engine
&lt;/h2&gt;

&lt;p&gt;The U.S. Tariff Calculation Agent is powered by &lt;strong&gt;TariffRAG™&lt;/strong&gt;, a rule-aligned knowledge and reasoning system built specifically for tariff determination.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Structured ingestion of official sources
&lt;/h3&gt;

&lt;p&gt;The system continuously processes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTSUS schedules
&lt;/li&gt;
&lt;li&gt;Chapter 99 notes
&lt;/li&gt;
&lt;li&gt;Federal Register notices
&lt;/li&gt;
&lt;li&gt;Presidential proclamations
&lt;/li&gt;
&lt;li&gt;Section 301 / 232 updates
&lt;/li&gt;
&lt;li&gt;CBP and USTR publications
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All data is normalized into a structured ruleset that can be applied consistently.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Semantic parsing of conditional logic
&lt;/h3&gt;

&lt;p&gt;Many tariff rules contain conditional language (e.g., &lt;em&gt;“except when…”, “provided that…”, “notwithstanding…”&lt;/em&gt;).&lt;br&gt;&lt;br&gt;
The Agent interprets these conditions and transforms them into machine-applicable logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Logical chaining and applicability checks
&lt;/h3&gt;

&lt;p&gt;When a user submits a scenario, the system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identifies the relevant HTS code(s)
&lt;/li&gt;
&lt;li&gt;Applies base duty rates
&lt;/li&gt;
&lt;li&gt;Evaluates all potentially applicable Chapter 99 provisions
&lt;/li&gt;
&lt;li&gt;Checks for conditions such as origin, donation status, exclusions, etc.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The final calculation includes a &lt;strong&gt;human-readable explanation&lt;/strong&gt; outlining why specific provisions applied or did not apply.&lt;/p&gt;

&lt;p&gt;The goal is not to replace compliance judgment — but to significantly reduce the mechanical workload behind each calculation.&lt;/p&gt;




&lt;h2&gt;
  
  
  What You Can Do Today
&lt;/h2&gt;

&lt;p&gt;The U.S. Tariff Calculation Agent is available through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;live chatbot demo&lt;/strong&gt; for interactive classification + duty calculation
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A2A (Agent-to-Agent) API integration&lt;/strong&gt; for automated workflows
&lt;/li&gt;
&lt;li&gt;An open-source Python SDK for rapid developer adoption
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Try the Live Chatbot
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://supplygraph.ai/zk_chat_os/agentic/dialog.html?name=tariff_calc" rel="noopener noreferrer"&gt;https://supplygraph.ai/zk_chat_os/agentic/dialog.html?name=tariff_calc&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Explore the SDK on GitHub
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk" rel="noopener noreferrer"&gt;https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  A More Scalable Way Forward
&lt;/h2&gt;

&lt;p&gt;Organizations handling high-volume tariff assessments face a structural challenge: the regulatory environment will never get simpler, and manual workflows will never scale.&lt;br&gt;&lt;br&gt;
SupplyGraph AI’s approach focuses on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Consistency&lt;/strong&gt; — every calculation applies rules systematically
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency&lt;/strong&gt; — all outcomes include traceable reasoning
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsiveness&lt;/strong&gt; — updates are synchronized frequently with official sources
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration&lt;/strong&gt; — use interactively or incorporate into existing systems
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For teams managing hundreds or thousands of SKUs, this shifts tariff work from reactive, manual research to a more predictable operational process.&lt;/p&gt;

&lt;p&gt;If your organization wants to modernize tariff operations or experiment with AI-assisted compliance infrastructure, the GitHub SDK is an easy starting point.&lt;/p&gt;




&lt;h2&gt;
  
  
  Want to Build With Us?
&lt;/h2&gt;

&lt;p&gt;The Tariff Calculation Agent is one component of SupplyGraph AI’s broader multi-agent supply chain intelligence ecosystem.&lt;br&gt;&lt;br&gt;
If you’re interested in integrating tariff logic into your own workflows, agent systems, or procurement analytics tools, explore the SDK or reach out through GitHub.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>ai</category>
      <category>supplychain</category>
    </item>
    <item>
      <title>Detecting Deep-Tier Geographic Concentration in Supply Chains Using AI</title>
      <dc:creator>SupplyGraph.AI</dc:creator>
      <pubDate>Fri, 05 Dec 2025 09:35:00 +0000</pubDate>
      <link>https://dev.to/supplygraphai/detecting-deep-tier-geographic-concentration-in-supply-chains-using-ai-3ib0</link>
      <guid>https://dev.to/supplygraphai/detecting-deep-tier-geographic-concentration-in-supply-chains-using-ai-3ib0</guid>
      <description>&lt;p&gt;&lt;strong&gt;How engineers can surface hidden upstream dependencies without access to proprietary supplier data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most supply-chain visibility tools stop at Tier-1. But the structural patterns that matter most — country-level concentration, single-region dependencies, and upstream bottlenecks — often emerge far deeper in the network, sometimes at Tier-4, Tier-6, or even Tier-10.&lt;/p&gt;

&lt;p&gt;This raises a practical engineering question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How can we algorithmically detect where a company’s upstream supply chain is dominated by one geography, even when no supplier lists or ERP data are available?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This article explains how SupplyGraph AI’s &lt;strong&gt;Geographic Concentration Analysis Agent&lt;/strong&gt; uses graph inference, multi-hop traversal, and quantitative concentration metrics to surface these patterns — and how you can integrate it directly into your own system through our A2A API.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Core Problem: Geographic Risk You Cannot See
&lt;/h2&gt;

&lt;p&gt;Most enterprises do not have enough visibility to answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which upstream tiers depend heavily on a single country?
&lt;/li&gt;
&lt;li&gt;Which components lack geographic alternatives?
&lt;/li&gt;
&lt;li&gt;Where could a regional disruption propagate into upstream bottlenecks?
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even companies with globally diversified Tier-1 vendors may still have deep-tier segments showing &lt;strong&gt;very high geographic concentration&lt;/strong&gt; — something not detectable through traditional supplier-declaration approaches.&lt;/p&gt;

&lt;p&gt;These insights are often needed for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;compliance and ESG workflows
&lt;/li&gt;
&lt;li&gt;due-diligence automation
&lt;/li&gt;
&lt;li&gt;internal supply-chain risk dashboards
&lt;/li&gt;
&lt;li&gt;strategic sourcing assessments
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where graph-based inference becomes useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The Graph-Based Approach (How We Model Upstream Structure)
&lt;/h2&gt;

&lt;p&gt;Instead of relying on declared supplier lists, the agent uses a &lt;strong&gt;global enterprise–product knowledge graph&lt;/strong&gt;, encoding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;enterprises
&lt;/li&gt;
&lt;li&gt;products
&lt;/li&gt;
&lt;li&gt;product-inclusion structures
&lt;/li&gt;
&lt;li&gt;geographic attributes
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By chaining product-inclusion relationships, we can infer likely multi-tier upstream structures.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚠ Important Clarification
&lt;/h3&gt;

&lt;p&gt;This graph &lt;strong&gt;does not&lt;/strong&gt; represent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;transactional supplier relationships
&lt;/li&gt;
&lt;li&gt;purchase-order data
&lt;/li&gt;
&lt;li&gt;proprietary vendor lists
&lt;/li&gt;
&lt;li&gt;verified supply-chain certifications
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It reflects &lt;strong&gt;inferred, probabilistic upstream pathways&lt;/strong&gt;, not a reconstruction of any company’s official supply chain.&lt;/p&gt;

&lt;p&gt;An abstraction of the graph:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Enterprise → makes → Product → includes → Component → made_by → Enterprise
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Different industries exhibit different reachable depths; some may reach eight or more tiers, while others are shallower.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. What the Geographic Concentration Analysis Agent Does
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1) Multi-hop traversal&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Builds an inferred multi-tier upstream structure based on product-inclusion logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2) Geographic segmentation&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Maps each enterprise node to country and region attributes.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3) Quantitative concentration scoring&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Using models such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HHI = Σ (share_i²)
dominance_ratio = count(country) / total
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;4) Substitutability scan&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Identifies whether &lt;strong&gt;other regions appear in the graph&lt;/strong&gt; for the same upstream segment.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This reflects only graph-level presence — not commercial availability, qualification status, or procurement feasibility.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5) Structured, transparent reporting&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Including geographic dominance, HHI metrics, segment summaries, and evidence chains.&lt;br&gt;&lt;br&gt;
The output is analytical and informational; it is &lt;strong&gt;not&lt;/strong&gt; a regulatory audit or compliance determination.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Example Output (Simplified)
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"segment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Tier-4 Electronics Components"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"dominant_region"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"China"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"dominance_ratio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.91&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"hhi"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.87&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"alternatives_exist"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"enterprise_A → component_X → product_Y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"enterprise_B → component_X → product_Y"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;In practice, the agent produces a rich Markdown report with detailed explanations.&lt;/p&gt;


&lt;h2&gt;
  
  
  5. Try the Agent Interactively
&lt;/h2&gt;

&lt;p&gt;You can explore the agent with no integration required:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://supplygraph.ai/zk_chat_os/agentic/dialog.html?name=sg_chokepoint" rel="noopener noreferrer"&gt;https://supplygraph.ai/zk_chat_os/agentic/dialog.html?name=sg_chokepoint&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just enter a company name.&lt;br&gt;&lt;br&gt;
Entity matching is performed automatically.&lt;/p&gt;


&lt;h2&gt;
  
  
  6. A2A API Integration Guide
&lt;/h2&gt;

&lt;p&gt;Developers can integrate the agent into analytics pipelines, internal dashboards, ETL flows, or risk-modeling services.&lt;/p&gt;


&lt;h3&gt;
  
  
  🔹 Manifest: Retrieve schema &amp;amp; pricing
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; GET https://agent.supplygraph.ai/api/v1/agents/sg_chokepoint/manifest &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &amp;lt;YOUR_API_KEY&amp;gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔹 Run Analysis Task
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://agent.supplygraph.ai/api/v1/agents/sg_chokepoint/run &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &amp;lt;YOUR_API_KEY&amp;gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "text": "Company Name",
    "stream": true
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;"text"&lt;/code&gt; accepts a natural-language company name
&lt;/li&gt;
&lt;li&gt;Entity resolution is handled internally
&lt;/li&gt;
&lt;li&gt;Streaming may return: &lt;code&gt;THINKING&lt;/code&gt;, &lt;code&gt;TASK_ACCEPTED&lt;/code&gt;, &lt;code&gt;TASK_RUNNING&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  🔹 Check Task Status
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://agent.supplygraph.ai/api/v1/agents/sg_chokepoint/run &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &amp;lt;YOUR_API_KEY&amp;gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"mode":"status","task_id":"&amp;lt;id&amp;gt;"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔹 Retrieve Final Results
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://agent.supplygraph.ai/api/v1/agents/sg_chokepoint/run &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &amp;lt;YOUR_API_KEY&amp;gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"mode":"results","task_id":"&amp;lt;id&amp;gt;"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"success"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"data"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"## Concentration Analysis Report ..."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"metadata"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"credits_used"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  7. Where This Fits in Engineering &amp;amp; Analytics Work
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✔ Compliance &amp;amp; ESG automation
&lt;/h3&gt;

&lt;p&gt;Support documentation workflows with explainable metrics.&lt;br&gt;&lt;br&gt;
(Not a certification or regulatory determination.)&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ Risk dashboards
&lt;/h3&gt;

&lt;p&gt;Incorporate upstream geographic concentration metrics into internal UIs.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ Procurement analytics
&lt;/h3&gt;

&lt;p&gt;Highlight hidden dependencies during supplier onboarding or category planning.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ Geopolitical risk modeling
&lt;/h3&gt;

&lt;p&gt;Use concentration metrics as inputs to scenario simulations.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ Data science pipelines
&lt;/h3&gt;

&lt;p&gt;Engineer HHI-based features for ML or forecasting models.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. One Sentence Summary
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;If your visibility stops at Tier-1, you’re blind to the most important geographic risks in your supply chain.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This agent exposes those deep-tier dependencies — analytically, transparently, and at scale — using graph-based inference.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. GitHub (A2A SDK + Examples)
&lt;/h2&gt;

&lt;p&gt;➡️ &lt;a href="https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk" rel="noopener noreferrer"&gt;https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;If this project is useful, consider leaving a ⭐ to help others discover it.&lt;/p&gt;

</description>
      <category>supplychain</category>
      <category>ai</category>
      <category>datascience</category>
      <category>a2a</category>
    </item>
    <item>
      <title>Building an AI-Powered HTS Classifier: A Technical Breakdown of SupplyGraph AI’s Customs Classification Agent</title>
      <dc:creator>SupplyGraph.AI</dc:creator>
      <pubDate>Thu, 04 Dec 2025 07:24:48 +0000</pubDate>
      <link>https://dev.to/supplygraphai/building-an-ai-powered-hts-classifier-a-technical-breakdown-of-supplygraph-ais-customs-2bck</link>
      <guid>https://dev.to/supplygraphai/building-an-ai-powered-hts-classifier-a-technical-breakdown-of-supplygraph-ais-customs-2bck</guid>
      <description>&lt;p&gt;HTS classification looks simple on paper — but anyone working in trade automation knows it isn’t. It’s a problem full of ambiguity, nested rules, overlapping categories, and legally precise exceptions. And despite being a high-impact step in global trade, most teams still rely on manual lookup and inconsistent human interpretation.&lt;/p&gt;

&lt;p&gt;In this post, I’ll walk through how we engineered the &lt;strong&gt;Customs Classification Agent&lt;/strong&gt; at SupplyGraph AI using a hybrid retrieval + constrained-reasoning approach, exposed through our &lt;strong&gt;A2A (Agent-to-Agent) protocol&lt;/strong&gt;. This is a &lt;strong&gt;technical deep dive&lt;/strong&gt; intended for developers, not a marketing overview.&lt;/p&gt;

&lt;p&gt;You'll learn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what makes HTS classification uniquely difficult
&lt;/li&gt;
&lt;li&gt;why embeddings and raw LLM prompts fail
&lt;/li&gt;
&lt;li&gt;how our retrieval layer, scoring engine, and reasoning layer work together
&lt;/li&gt;
&lt;li&gt;how the A2A protocol structures task execution
&lt;/li&gt;
&lt;li&gt;how to run the agent using cURL or Python SDK
&lt;/li&gt;
&lt;li&gt;where to find the SDK and examples on GitHub
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s get into it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why HTS Classification Is a Hard Engineering Problem
&lt;/h2&gt;

&lt;p&gt;HTS classification has several properties that make it a non-trivial task for search, rule-based, and ML systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;legal text doesn’t follow natural-language conventions
&lt;/li&gt;
&lt;li&gt;category boundaries are often implied, not explicit
&lt;/li&gt;
&lt;li&gt;products may match multiple plausible codes
&lt;/li&gt;
&lt;li&gt;correctness depends on combinations of attributes (material + form + use)
&lt;/li&gt;
&lt;li&gt;legal notes introduce exceptions, inclusions, and cross-references
&lt;/li&gt;
&lt;li&gt;tariff schedules update regularly and must remain version-locked for audits
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From an engineering perspective, this resembles &lt;strong&gt;hierarchical, legal-style reasoning&lt;/strong&gt;, rather than simple tagging.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why common approaches fall short
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Embeddings alone
&lt;/h4&gt;

&lt;p&gt;They struggle with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hierarchical structure
&lt;/li&gt;
&lt;li&gt;exclusion rules
&lt;/li&gt;
&lt;li&gt;multi-attribute dependencies
&lt;/li&gt;
&lt;li&gt;long-range legal references
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Raw LLM classification
&lt;/h4&gt;

&lt;p&gt;Common failure cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hallucinating subheadings
&lt;/li&gt;
&lt;li&gt;reasoning without grounding in legal text
&lt;/li&gt;
&lt;li&gt;no version control
&lt;/li&gt;
&lt;li&gt;no reproducibility
&lt;/li&gt;
&lt;li&gt;no audit trail
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTS classification benefits from &lt;strong&gt;structured grounding&lt;/strong&gt;, &lt;strong&gt;deterministic protocol behavior&lt;/strong&gt;, and &lt;strong&gt;explainability&lt;/strong&gt;—not just LLM power.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙ Architecture Overview
&lt;/h2&gt;

&lt;p&gt;Our classification pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Product Description
       ▼
 Pre-processing
       ▼
 Attribute Extraction
       ▼
 Candidate Retrieval
 (HTS text + notes + enriched nodes)
       ▼
 Candidate Scoring
       ▼
 Constrained Reasoning
 (grounded evaluation, no free-form generation)
       ▼
 Ranked HTS Classification
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Engineering clarifications
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The retrieval layer searches a &lt;strong&gt;structured dataset containing HTS text + legal notes + derived attribute nodes&lt;/strong&gt;, not a million HTS entries.
&lt;/li&gt;
&lt;li&gt;The reasoning layer is &lt;strong&gt;LLM-based but constrained&lt;/strong&gt;, operating strictly over grounded candidate data.
&lt;/li&gt;
&lt;li&gt;Confidence score is a &lt;strong&gt;normalized ranking score&lt;/strong&gt;, not a calibrated statistical probability.
&lt;/li&gt;
&lt;li&gt;Every output is tied to a &lt;strong&gt;specific tariff dataset version&lt;/strong&gt; for audit reproducibility.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔌 The A2A Protocol: How the Agent Exposes Its Interface
&lt;/h2&gt;

&lt;p&gt;A2A defines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stable event types
&lt;/li&gt;
&lt;li&gt;deterministic protocol flow
&lt;/li&gt;
&lt;li&gt;explicit state transitions (&lt;code&gt;interpreting → executing → completed&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;optional SSE streaming
&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;WAITING_USER&lt;/code&gt; step when multiple interpretations are possible
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agents expose:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/manifest
/run  (mode=run | status | results)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This keeps agent interactions simple but predictable.&lt;/p&gt;




&lt;h2&gt;
  
  
  📄 Manifest Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /api/v1/agents/tariff_classification/manifest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"agent_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tariff_classification"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Customs Classification Agent"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Maps product descriptions to HS/HTS codes."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"pricing"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"per_run"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"unit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"credits"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"input_schema"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"output_schema"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🚀 Running a Classification Task
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Non-streaming
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://agent.supplygraph.ai/api/v1/agents/tariff_classification/run &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &amp;lt;API_KEY&amp;gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
        "mode": "run",
        "text": "Knitted cotton T-shirt for women"
      }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example Output
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"success"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"TASK_COMPLETED"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"data"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"result"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"data"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"classification_results"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"hts_code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6109.10.00.40"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"reasoning"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Identified as knitted cotton T-shirt for women."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"T-shirts, singlets, tank tops... of cotton; women's or girls'"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"country_of_origin"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Mexico"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✔ &lt;strong&gt;Note:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;country_of_origin&lt;/code&gt; only appears when explicitly present in the input text.&lt;br&gt;&lt;br&gt;
The agent does &lt;strong&gt;not&lt;/strong&gt; infer origin automatically.&lt;/p&gt;


&lt;h2&gt;
  
  
  📡 Streaming Reasoning via SSE
&lt;/h2&gt;

&lt;p&gt;Enable streaming with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;stream=true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example events:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;event: stream
data: { "stage": "interpreting", "reasoning": ["Extracting product attributes..."] }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;event: stream
data: { "stage": "executing", "code": "TASK_ACCEPTED" }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;event: end
data: [DONE]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Helpful for interactive UIs and debugging.&lt;/p&gt;




&lt;h2&gt;
  
  
  Python SDK Example
&lt;/h2&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk" rel="noopener noreferrer"&gt;https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;supplygraph.compat&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAICompatibleClient&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAICompatibleClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sg-xxx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tariff_classification&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Machine-cut aluminum sheets, thickness 2.5mm&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Streaming:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tariff_classification&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📁 Output Structure
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;hts_code&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Suggested classification&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;confidence_score&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ranking score (normalized 0–1)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reasoning&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Constrained, grounded explanation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Official HTS text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;country_of_origin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Included only when present in input&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Outputs are designed for direct integration with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;duty estimation
&lt;/li&gt;
&lt;li&gt;ERP flows
&lt;/li&gt;
&lt;li&gt;compliance review
&lt;/li&gt;
&lt;li&gt;audit logging
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔍 Why This Hybrid Approach Works
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Our solution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Embeddings miss legal boundaries&lt;/td&gt;
&lt;td&gt;Structured retrieval&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLMs hallucinate&lt;/td&gt;
&lt;td&gt;Constrained reasoning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No repeatability&lt;/td&gt;
&lt;td&gt;Protocol-level determinism&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No audit trail&lt;/td&gt;
&lt;td&gt;Version-locked datasets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ambiguous inputs&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;WAITING_USER&lt;/code&gt; clarification&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This yields a classifier that’s transparent, explainable, and suitable for production environments.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 GitHub &amp;amp; Resources
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Python SDK&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk" rel="noopener noreferrer"&gt;https://github.com/SupplyGraphAI/supplygraphai_a2a_sdk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All repositories&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/SupplyGraphAI" rel="noopener noreferrer"&gt;https://github.com/SupplyGraphAI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contributions, issues, and discussions are welcome.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏁 Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;HTS classification is deceptively difficult because it blends legal-style logic with multi-attribute categorization. Our approach combines retrieval, scoring, and constrained reasoning, then exposes it through a predictable A2A protocol that developers can embed directly into their systems.&lt;/p&gt;

&lt;p&gt;As always, final HTS determination depends on complete product details and applicable legal notes.&lt;br&gt;&lt;br&gt;
This agent supports — but does not replace — professional judgment in tariff classification.&lt;/p&gt;

&lt;p&gt;If you'd like a deeper dive into the retrieval engine or A2A internals, I’m happy to write a Part 2.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>code</category>
      <category>supplychain</category>
      <category>htscode</category>
    </item>
    <item>
      <title>How We Build a Tier-10 Global Supply Graph</title>
      <dc:creator>SupplyGraph.AI</dc:creator>
      <pubDate>Wed, 03 Dec 2025 03:05:55 +0000</pubDate>
      <link>https://dev.to/supplygraphai/how-we-build-a-tier-10-global-supply-graph-3bgf</link>
      <guid>https://dev.to/supplygraphai/how-we-build-a-tier-10-global-supply-graph-3bgf</guid>
      <description>&lt;p&gt;&lt;em&gt;Engineering the data, architecture, and reasoning behind deep-tier supply chain visibility&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most teams can only see Tier-1 suppliers.&lt;br&gt;&lt;br&gt;
Some advanced organizations map parts of Tier-2 or Tier-3.&lt;br&gt;&lt;br&gt;
But almost no system today can reliably expose the deeper layers—Tier-4 to Tier-10—where the majority of structural supply chain risk actually lives.&lt;/p&gt;

&lt;p&gt;This article breaks down the engineering principles, system design, and data modeling approach behind building a Tier-10 global supply graph — not as a monolithic platform, but as a foundation for modular, A2A-compatible agents that developers can integrate directly into real systems.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why Tier-1 Visibility Fails in Modern Supply Chains
&lt;/h2&gt;

&lt;p&gt;A single product may depend on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dozens of Tier-1 suppliers
&lt;/li&gt;
&lt;li&gt;hundreds of Tier-2/3 suppliers
&lt;/li&gt;
&lt;li&gt;thousands of deeper-tier producers, refiners, and upstream transform nodes
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yet &lt;strong&gt;80%+ of enterprises today have visibility only into Tier-1&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This creates well-known problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hidden single-source dependencies
&lt;/li&gt;
&lt;li&gt;exposure to upstream geopolitical or natural-disaster risks
&lt;/li&gt;
&lt;li&gt;unexpected compliance violations
&lt;/li&gt;
&lt;li&gt;inaccurate business continuity planning
&lt;/li&gt;
&lt;li&gt;inability to quantify concentration risk
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Risk originates deep in the chain—but most tools only show the surface.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To solve this, we needed a continuously updated global supply graph representing multi-tier dependencies across industries, geographies, product categories, and transformation processes.&lt;/p&gt;


&lt;h2&gt;
  
  
  What We Mean by a “Tier-10 Supply Graph”
&lt;/h2&gt;

&lt;p&gt;A Tier-10 map is not a static supplier list.&lt;br&gt;&lt;br&gt;
It is a graph that expresses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;enterprises&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;industrial products&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;material transformations&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;production relationships&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;geographic footprints&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;dependency edges across 10+ upstream hops&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this depth, the graph is no longer a simple hierarchy. It becomes a large-scale, sparse, heterogeneous knowledge network.&lt;/p&gt;

&lt;p&gt;Our implementation currently spans:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100M+ enterprises&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;millions of industrial products&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;multi-hop dependency paths up to Tier-10&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;thousands of daily updates from public and permissible sources&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These numbers represent &lt;strong&gt;a modeled knowledge graph&lt;/strong&gt; built from globally available public data sources, structured signals, and proprietary transformation pipelines — &lt;em&gt;not raw access to private data&lt;/em&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  Core Engineering Challenges
&lt;/h2&gt;

&lt;p&gt;Building a Tier-10 supply graph presented several significant engineering hurdles.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Unifying Heterogeneous Data at Scale
&lt;/h3&gt;

&lt;p&gt;Supply chain data is inherently fragmented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;corporate registries
&lt;/li&gt;
&lt;li&gt;product catalogs
&lt;/li&gt;
&lt;li&gt;industrial classification systems
&lt;/li&gt;
&lt;li&gt;logistics data
&lt;/li&gt;
&lt;li&gt;trade flows
&lt;/li&gt;
&lt;li&gt;news and regulatory signals
&lt;/li&gt;
&lt;li&gt;technological capability descriptions
&lt;/li&gt;
&lt;li&gt;ESG and compliance metrics
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No single source covers everything. The graph must merge, resolve conflicts, normalize fields, and infer missing structure.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Modeling Multi-Hop Dependencies
&lt;/h3&gt;

&lt;p&gt;A product is rarely made from a single input.&lt;br&gt;&lt;br&gt;
It passes through &lt;em&gt;transform chains&lt;/em&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;raw material → precursor → component → module → system → finished good
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each stage may occur in different countries, under different risk profiles.&lt;/p&gt;

&lt;p&gt;This is why Tier-10 mapping matters:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;disruptions rarely stop at Tier-2 or Tier-3.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Updating the Graph Continuously
&lt;/h3&gt;

&lt;p&gt;The world changes every day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;factory shutdowns
&lt;/li&gt;
&lt;li&gt;sanctions
&lt;/li&gt;
&lt;li&gt;policy shifts
&lt;/li&gt;
&lt;li&gt;mergers &amp;amp; acquisitions
&lt;/li&gt;
&lt;li&gt;natural disasters
&lt;/li&gt;
&lt;li&gt;export controls
&lt;/li&gt;
&lt;li&gt;price/volume shocks
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The supply graph must incorporate new signals without rebuilding the entire network.&lt;br&gt;&lt;br&gt;
We designed an incremental update pipeline with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;entity/event detectors
&lt;/li&gt;
&lt;li&gt;dependency refresh rules
&lt;/li&gt;
&lt;li&gt;risk-type annotations
&lt;/li&gt;
&lt;li&gt;propagation scoring models
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is &lt;em&gt;continuous&lt;/em&gt; updating, not “real-time prediction.”&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Representing Risk Propagation
&lt;/h3&gt;

&lt;p&gt;A supply graph is not useful unless it can express:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;where disruptions originate
&lt;/li&gt;
&lt;li&gt;how they travel
&lt;/li&gt;
&lt;li&gt;which enterprises/products are exposed
&lt;/li&gt;
&lt;li&gt;which nodes act as amplifiers or buffers
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This requires graph-propagation logic, not static dashboards.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture Behind the Tier-10 Graph
&lt;/h2&gt;

&lt;p&gt;At a high level, the system has four major layers.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Ingestion Layer&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Collects and normalizes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;corporate entity data
&lt;/li&gt;
&lt;li&gt;product descriptions
&lt;/li&gt;
&lt;li&gt;industrial classification trees
&lt;/li&gt;
&lt;li&gt;open regulatory signals
&lt;/li&gt;
&lt;li&gt;logistics + trade indicators
&lt;/li&gt;
&lt;li&gt;manufacturing transformation hints
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All sources must be permissible and transparently traceable.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Entity + Product Resolution Layer&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Performs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deduplication
&lt;/li&gt;
&lt;li&gt;clustering
&lt;/li&gt;
&lt;li&gt;multi-field entity matching
&lt;/li&gt;
&lt;li&gt;product canonicalization
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consistency at this stage determines graph quality.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Dependency Construction Layer&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Builds directed edges using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;text-driven extraction
&lt;/li&gt;
&lt;li&gt;product transformation models
&lt;/li&gt;
&lt;li&gt;co-occurrence signals
&lt;/li&gt;
&lt;li&gt;supply-path inference
&lt;/li&gt;
&lt;li&gt;industry-specific logic
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Edges represent &lt;strong&gt;probabilistic but explainable&lt;/strong&gt; relationships.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Graph Intelligence Layer&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;multi-hop traversal
&lt;/li&gt;
&lt;li&gt;dependency expansion to Tier-10
&lt;/li&gt;
&lt;li&gt;concentration analysis (HHI, clustering, country exposure)
&lt;/li&gt;
&lt;li&gt;risk propagation scoring
&lt;/li&gt;
&lt;li&gt;evidence retrieval
&lt;/li&gt;
&lt;li&gt;A2A-compatible structured outputs
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is also where downstream agents—SupplyGraph Visualization, Concentration Analysis, Due Diligence—retrieve graph-based reasoning.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Developers Use the Tier-10 Graph Through A2A Agents
&lt;/h2&gt;

&lt;p&gt;Rather than forcing teams to query the raw graph, we expose capabilities through modular A2A agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;supply-graph visualization&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;multi-hop dependency extraction&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;risk propagation analysis&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;geographic concentration scoring&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;enterprise due diligence&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each agent implements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a clear input schema
&lt;/li&gt;
&lt;li&gt;deterministic structured outputs
&lt;/li&gt;
&lt;li&gt;optional long-running jobs
&lt;/li&gt;
&lt;li&gt;evidence paths
&lt;/li&gt;
&lt;li&gt;transparent reasoning
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes integration simple for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;procurement systems
&lt;/li&gt;
&lt;li&gt;compliance automation
&lt;/li&gt;
&lt;li&gt;supply chain analytics
&lt;/li&gt;
&lt;li&gt;internal developer tools
&lt;/li&gt;
&lt;li&gt;risk monitoring pipelines
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No new platform needed.&lt;br&gt;&lt;br&gt;
Just composable building blocks.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Enables
&lt;/h2&gt;

&lt;p&gt;A Tier-10 supply graph allows organizations to answer questions that traditional systems simply cannot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Which upstream nodes expose us to geopolitical risk across 6+ tiers?”
&lt;/li&gt;
&lt;li&gt;“What are the hidden dependencies behind this product?”
&lt;/li&gt;
&lt;li&gt;“How will a new export control propagate into our supply base?”
&lt;/li&gt;
&lt;li&gt;“Which single-region chokepoints exist beyond Tier-3?”
&lt;/li&gt;
&lt;li&gt;“What concentration risks exist across our entire product portfolio?”
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are not abstract problems—they define whether a company can operate reliably in a volatile world.&lt;/p&gt;




&lt;h2&gt;
  
  
  Explore the Specification
&lt;/h2&gt;

&lt;p&gt;The supply graph itself is not a monolithic product.&lt;br&gt;&lt;br&gt;
It is the underlying intelligence layer powering a set of open A2A-compatible agents.&lt;/p&gt;

&lt;p&gt;Documentation and examples are available here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/SupplyGraphAI/supplygraph-ai" rel="noopener noreferrer"&gt;https://github.com/SupplyGraphAI/supplygraph-ai&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you work on supply chain engineering, risk modeling, or multi-hop dependency systems, we’d love to hear how you approach similar challenges.&lt;/p&gt;

</description>
      <category>supplychain</category>
      <category>graphdatabase</category>
      <category>architecture</category>
      <category>api</category>
    </item>
    <item>
      <title>A Practical A2A Protocol for Supply Chain Intelligence</title>
      <dc:creator>SupplyGraph.AI</dc:creator>
      <pubDate>Tue, 02 Dec 2025 06:41:37 +0000</pubDate>
      <link>https://dev.to/supplygraphai/building-a-practical-a2a-protocol-for-multi-agent-supply-chain-intelligence-1jlj</link>
      <guid>https://dev.to/supplygraphai/building-a-practical-a2a-protocol-for-multi-agent-supply-chain-intelligence-1jlj</guid>
      <description>&lt;p&gt;&lt;em&gt;A lightweight pattern for exposing modular capabilities without creating a monolith&lt;/em&gt;  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note: In this article, “agents” refers to modular capability units — not LLM orchestrators or swarm-style multi-agent systems.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Supply chain operations rarely fit inside a simple request–response cycle.&lt;br&gt;&lt;br&gt;
Classification, tariff evaluation, dependency mapping, due diligence checks — all of them unfold across multiple dependent steps. Yet most API designs still assume these workflows are instantaneous.&lt;/p&gt;

&lt;p&gt;While developing large-scale supply chain intelligence systems—multi-tier supplier graphs, risk propagation logic, compliance engines, tariff models—a recurring challenge emerged:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How do you expose complex, multi-step logic without forcing complexity onto the caller?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A lightweight &lt;strong&gt;A2A (Agent-to-Agent) protocol&lt;/strong&gt; proved to be an effective solution — not as a product feature, but as a generalizable integration &lt;strong&gt;pattern&lt;/strong&gt; for long-running or multi-step API workflows.&lt;/p&gt;

&lt;p&gt;This article breaks down the reasoning behind the pattern and why it works well in practice.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why Traditional APIs Struggle With Multi-Step Workflows
&lt;/h2&gt;

&lt;p&gt;On the surface, workflows like “classify a product” or “calculate tariff duties” look atomic. In reality, they decompose into multiple phases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;input normalization
&lt;/li&gt;
&lt;li&gt;attribute inference
&lt;/li&gt;
&lt;li&gt;rule and exception matching
&lt;/li&gt;
&lt;li&gt;multi-country tariff overlays
&lt;/li&gt;
&lt;li&gt;multi-hop dependency expansion
&lt;/li&gt;
&lt;li&gt;evidence collection and assembly
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bundling these processes into a single synchronous call leads to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;unpredictable execution times
&lt;/li&gt;
&lt;li&gt;brittle timeout handling
&lt;/li&gt;
&lt;li&gt;opaque branching logic
&lt;/li&gt;
&lt;li&gt;unclear error reporting
&lt;/li&gt;
&lt;li&gt;monolithic endpoints that quickly become unmanageable
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The issue isn’t performance.&lt;br&gt;&lt;br&gt;
It’s the lack of an API abstraction that &lt;strong&gt;expresses&lt;/strong&gt; multi-step workflows cleanly.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why a Lightweight A2A Pattern Works
&lt;/h2&gt;

&lt;p&gt;Instead of a massive all-in-one endpoint, a system can be decomposed into &lt;strong&gt;small, focused capability units&lt;/strong&gt;, each responsible for exactly one task:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;classification
&lt;/li&gt;
&lt;li&gt;tariff calculation
&lt;/li&gt;
&lt;li&gt;dependency graph expansion
&lt;/li&gt;
&lt;li&gt;concentration analysis
&lt;/li&gt;
&lt;li&gt;due diligence synthesis
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each capability exposes a simple lifecycle:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;run&lt;/strong&gt; — start the task
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;status&lt;/strong&gt; — check progress
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;result&lt;/strong&gt; — fetch the final structured output
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This keeps the surface area predictable while allowing internal logic to remain expressive.&lt;/p&gt;


&lt;h2&gt;
  
  
  The A2A Lifecycle (with Examples)
&lt;/h2&gt;

&lt;p&gt;A2A follows three predictable operations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;caller → POST /run      → task_id
caller → GET /status    → pending | running | done | failed
caller → GET /result    → structured output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This minimal protocol is intuitive, flexible, and maps naturally to complex workflows.&lt;/p&gt;




&lt;h3&gt;
  
  
  1. &lt;code&gt;run&lt;/code&gt; — Start a task (idempotent)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;POST&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;/agents/hts_classification/run&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"product_description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"EV lithium battery pack"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"idempotency_key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"client-123"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"task_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"abc123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PENDING"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Idempotency keys allow safe retries — essential in distributed environments.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. &lt;code&gt;status&lt;/code&gt; — Monitor progress
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;GET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;/agents/hts_classification/status?task_id=abc&lt;/span&gt;&lt;span class="mi"&gt;123&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"RUNNING"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"progress"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"steps"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"normalize_input"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"attribute_inference"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For multi-second or multi-minute workflows, clients typically poll every &lt;strong&gt;1–3 seconds&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. &lt;code&gt;result&lt;/code&gt; — Retrieve structured output
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;GET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;/agents/hts_classification/result?task_id=abc&lt;/span&gt;&lt;span class="mi"&gt;123&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"hts_code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"8507.60.0020"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.94&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"matched_phrases"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"lithium-ion"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"battery pack"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"rule_path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"chapter 85"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"heading 07"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"subheading 60"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output schemas remain deterministic even when internal components use constrained LLM reasoning.&lt;/p&gt;




&lt;h2&gt;
  
  
  Error Handling (A Required Part of the Pattern)
&lt;/h2&gt;

&lt;p&gt;A2A provides a consistent, machine-readable structure for failures:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"FAILED"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"VALIDATION_ERROR"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Missing required field: product_description"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"fields"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"product_description"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Predictable error semantics significantly reduce integration friction.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why A2A Works Well for Supply Chain Intelligence
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✔ 1. It mirrors real multi-step workflows
&lt;/h3&gt;

&lt;p&gt;Developers gain an API abstraction that matches actual execution semantics.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ 2. It keeps capabilities independent
&lt;/h3&gt;

&lt;p&gt;Classification logic stays focused on classification; tariff logic stays focused on tariff computation.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ 3. It supports long-running jobs cleanly
&lt;/h3&gt;

&lt;p&gt;Whether expanding Tier-10 supplier networks or aggregating due diligence signals, long tasks run safely without timeouts.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ 4. It improves transparency and auditability
&lt;/h3&gt;

&lt;p&gt;Each capability has a single responsibility and a deterministic schema.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ 5. It avoids monolithic surface areas
&lt;/h3&gt;

&lt;p&gt;Developers integrate only the components they need.&lt;/p&gt;




&lt;h2&gt;
  
  
  A2A Is Not an Orchestration Framework
&lt;/h2&gt;

&lt;p&gt;A2A does &lt;strong&gt;not&lt;/strong&gt; prescribe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how workflows execute internally
&lt;/li&gt;
&lt;li&gt;which compute model is used
&lt;/li&gt;
&lt;li&gt;whether logic is rule-based, graph-based, or LLM-based
&lt;/li&gt;
&lt;li&gt;whether async execution uses queues, workers, or distributed pipelines
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A2A simply defines &lt;strong&gt;how capabilities expose themselves&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This avoids a common misunderstanding:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A2A is an integration pattern, not a multi-agent runtime.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  When A2A Outperforms Traditional APIs
&lt;/h2&gt;

&lt;p&gt;Choose synchronous APIs for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;small
&lt;/li&gt;
&lt;li&gt;atomic
&lt;/li&gt;
&lt;li&gt;single-step
&lt;/li&gt;
&lt;li&gt;instant operations
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Choose A2A for workflows that are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;multi-step
&lt;/li&gt;
&lt;li&gt;long-running
&lt;/li&gt;
&lt;li&gt;reasoning-dependent
&lt;/li&gt;
&lt;li&gt;requiring deterministic schemas
&lt;/li&gt;
&lt;li&gt;naturally modular
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Explore the Open Specification
&lt;/h2&gt;

&lt;p&gt;The complete open specification — including lifecycle semantics, schemas, error models, and runnable examples — is available here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/SupplyGraphAI/supplygraph-ai" rel="noopener noreferrer"&gt;https://github.com/SupplyGraphAI/supplygraph-ai&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;formal manifest definitions
&lt;/li&gt;
&lt;li&gt;structured I/O schemas
&lt;/li&gt;
&lt;li&gt;consistent error semantics
&lt;/li&gt;
&lt;li&gt;example agents
&lt;/li&gt;
&lt;li&gt;reference clients
&lt;/li&gt;
&lt;li&gt;integration quickstarts
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The spec continues to evolve as more capabilities are added across supply chain intelligence:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;multi-tier dependency expansion
&lt;/li&gt;
&lt;li&gt;risk propagation modeling
&lt;/li&gt;
&lt;li&gt;tariff and compliance automation
&lt;/li&gt;
&lt;li&gt;due diligence aggregation
&lt;/li&gt;
&lt;li&gt;geographic concentration scoring
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’ve worked on similar multi-step API designs or long-running workflows, I’d love to hear how you approached them.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>agents</category>
      <category>supplychain</category>
    </item>
  </channel>
</rss>
