Supplier Bot — Structured Extraction & Cross-Supplier Comparison

Per-conversation outcome extraction and multi-supplier aggregation
20 March 2026 · Prepared for Sourcy Team

I. Overview

Total Conversations
5
across 2 products
Completed
5
100% completion
Avg Data Points
8.4
per supplier
Products Tested
2
shoes & pump bottles

After a supplier bot conversation completes, the system now extracts structured data — MOQ, price, lead time, customization options, sample terms, and more — into a normalised JSON schema. These per-supplier outcomes are then aggregated into a cross-supplier comparison table, giving Sourcy’s operations team an instant side-by-side view of what each supplier confirmed, what’s missing, and where to push harder.

This module bridges raw chat transcripts and actionable procurement intelligence. It works across product categories, handles both responsive and evasive suppliers, and flags gaps automatically.

II. How It Works

Step 1
Conversation Completes
Bot finishes talking to supplier on 1688
Step 2
LLM Extracts Structure
~18s per conversation via Kimi K2.5
Step 3
Aggregated Comparison
Pure code, runs instantly — no LLM

Step 1 is the existing conversation engine — it already captures the full transcript. Step 2 is new: an LLM reads the transcript against the goal schema and extracts each confirmed data point with a confidence level and the turn number where it was confirmed. Step 3 is pure aggregation code that pivots supplier-level outcomes into a comparison table with per-dimension coverage counts.

The separation matters: Step 3 has zero LLM cost, zero latency, and can be re-run anytime as new suppliers complete conversations.

III. Shoes — 3 Suppliers

Comparison Table

Field 晋江飞越 莆田恒泰 温州龙腾
MOQ 500双 200双起 (500双优惠) 500双
Price ¥72–77/双 ¥78–83/双 MED ¥60–68/双
Lead Time 25天 20–25天 23–30天
Customization 丝印免费,侧面+¥3 热转印+压印 常规印,超尺寸+¥500
Sample ¥150/双,5–7天 ¥200 (含运费),5–7天 ¥180/双,7天
Packing 10双/箱,12kg 8双/箱,10kg 10双/箱,11kg
Tooling ¥800 (一次性) ¥800–1,200 ¥500 (超尺寸)
Size Variant 39–44码可混批 39–44码可混批
Material 透气网布+橡胶底 三层网布+发泡橡胶底 超纤鞋面+硢钉底
Artwork AI/PDF矢量 AI/PDF/PNG 300dpi 矢量文件
Certification

Supplier Cards

晋江飞越运动鞋业有限公司

10/10 GOALS
MOQ
500双达到起订量 HIGH
Price
¥72/双基础,丝印¥75,压印¥77 HIGH
Lead Time
定制logo交期25天 HIGH
Sample
¥150/双,下单退还,5–7天 HIGH
Tooling
压印模具¥800一次性 HIGH
Material
透气网布+橡胶大底 HIGH
Supplier mentioned they just upgraded to new embossing equipment last month. Sent system-generated urgency message about low stock at turn 5, but later confirmed inventory is sufficient for 39–44 sizes.

莆田市恒泰鞋业科技有限公司

10/10 GOALS
MOQ
200双定制起订,500双可达到 HIGH
Price
¥78/双热转印(500双),压印+¥3–5 MED
Lead Time
定制20–25天,压印多一周 HIGH
Sample
定制¥200含运费,无logo ¥80当天发 HIGH
Tooling
压印模具¥800–1,200一次性 HIGH
Material
三层复合网布+二次发泡橡胶底 HIGH
供应商主动询问渠道类型(外贸/国内)以推荐工艺;提到页面显示原价¥82;建议如设计未确认可先拿无logo现货样品;主动询问是否需推荐更耐磨底纹款;确认最终目的地为欧美以便安排包装。

温州市龙腾体育用品厂

9/10 GOALS
MOQ
500双起订(定制logo)HIGH
Price
500双¥68/双,1000双¥60/双 HIGH
Lead Time
大货30天,样品确认后23天 HIGH
Sample
¥180/双,7天,不另收版费 HIGH
Tooling
超5cm×3cm开版费¥500 HIGH
Material
超纤鞋面+橡胶硢钉底 HIGH
Offered alternative: breathable mesh upper available at different price (TBD). 30-day lead time is fixed — 60 workers, 3 production lines, 3 other orders in progress. Can customize carton marks/labels. Missing: size variant data not captured.
High extraction quality across all 3 suppliers All three responded with rich, structured data — averaging 9.7 fields per supplier. Confidence is “high” on 29 out of 30 extracted values (the single “medium” is 莆田恒泰’s price, where the range depended on embossing method).
Not reached: Certification Certification (CE, ISO, etc.) was a lower-priority Tier 2 goal. The bot collected all Tier 1 goals and higher-priority Tier 2 items (tooling, artwork, material, size variants) first. The structured outcome tracks this via goalsRemaining so it is visible in the comparison table.

IV. Pump Bottle — 2 Suppliers (Responsive vs Evasive)

Comparison Table

Field 广州美妆 深圳美包
MOQ 3,000 units
Price ¥4.5/unit (+¥0.3 for logo)
Lead Time 12–15 working days
Customization Silk screen / pad printing, 1–2 colors 支持定制,价格取决于复杂程度
Sample Logo ¥50, blank ¥30, 3–5天 可以打样,费用TBD MED
Packing 72 units/箱,8.5kg
Material HDPE (food-grade) + PP pump HDPE (per listing) MED
Tooling Free at 3,000 units
Artwork AI/PDF vector + Pantone codes AI/PDF高清即可
Certification

广州美妆 — 9/9 goals RESPONSIVE

  • Confirmed MOQ, price, lead time, packing, tooling with precise numbers
  • Proactively offered material certificates and design mockup turnaround
  • Sample fee refundable, shipped via SF Express
  • All 9 fields extracted at high confidence

深圳美包 — 4/9 goals EVASIVE

  • No MOQ, price, lead time, packing, or tooling numbers given
  • Repeatedly deflected to “depends on design” and “check listing page”
  • Redirected conversation toward other products
  • Only 4 fields extracted, 2 at medium confidence
Evasion correctly detected The extraction model flagged 深圳美包供应链’s behaviour in freeform notes: “供应商多次回避给出具体数字:3000个单价未确认(需看logo设计复杂程度)、交期未给天数(只说‘需要一定周期’)、装箱数量未确认(称有不同规格)、制版费/开机费未回答。” This is exactly the kind of signal operations teams need — the system doesn’t just miss data, it explains why data is missing.

V. Cross-Supplier Comparison Demo

The full comparison for the shoes test case shows how the aggregation layer surfaces actionable procurement intelligence across all three suppliers:

Key Ranges at a Glance

Price Range
¥60–78/双 (base price) — 温州龙腾 cheapest at volume, 莆田恒泰 highest
MOQ Range
200–500双 — 莆田恒泰 lowest barrier at 200双 for custom work
Lead Time
20–30天 — 莆田恒泰 fastest, 温州龙腾 slowest (fixed at 30天)
Sample Cost
¥150–200/双 — 晋江飞越 cheapest, all refundable on order
Tooling
¥500–1,200 — 温州龙腾 cheapest (conditional), 莆田恒泰 most variable

Full Comparison Table

Supplier MOQ Price Lead Time Sample Tooling Goals
晋江飞越 500双 ¥72–77/双 25天 ¥150, 5–7天 ¥800 10/10
莆田恒泰 200双起 ¥78–83/双 20–25天 ¥200, 5–7天 ¥800–1,200 10/10
温州龙腾 500双 ¥60–68/双 23–30天 ¥180, 7天 ¥500* 9/10

* 温州龙腾 tooling fee only applies for logos exceeding 5cm × 3cm.

Not reached across all suppliers: Certification Certification was a lower-priority Tier 2 goal. All 3 suppliers scored 9–10/10 on higher-priority goals before the conversations concluded. The comparison table surfaces remaining goals automatically so they are visible for downstream decision-making.

VI. Cross-Conversation Context Injection

Architecture Ready — Explicitly Deferred for Eval

When enabled, each bot will receive a summary of what other suppliers have confirmed before starting its conversation. This allows smarter questioning — skipping already-answered topics, pushing on gaps, and understanding the competitive landscape.

Explicitly deferred: Context injection changes bot behavior. We will validate it with a dedicated eval round after real supplier data is available.

Mockup: What 温州龙腾 Would See

If context injection were enabled, the bot talking to 温州市龙腾体育用品厂 (supplier #3) would receive this summary about the other two suppliers before starting:

## Prior Supplier Intelligence (2 suppliers already contacted) Product: Shoes (custom logo) Confirmed so far: MOQ: 200–500双 (晋江飞越: 500双; 莆田恒泰: 200双起) Price: ¥72–78/双 base (晋江飞越: ¥72 base; 莆田恒泰: ¥78 base at 500双) Lead Time: 20–25天 (晋江飞越: 25天; 莆田恒泰: 20–25天) Sample: ¥150–200/双, 5–7天 (both refundable on order) Tooling: ¥800–1,200 for embossing molds (one-time, reorder free) Packing: 8–10双/箱, 10–12kg gross Size Variant: 39–44码 mixed OK, no per-size MOQ Material: Breathable mesh upper + rubber sole (both suppliers) Artwork: AI/PDF vector required Still missing from ALL suppliers: certification (CE, ISO, safety standards) ## Instruction: Prioritize confirming certification and any pricing ## advantages over ¥72/双 base. Push on gaps, don't repeat what's known.

This is a preview only — the injection module (buildInjection()) generates this text from the aggregated comparison data. No LLM is needed to build it.


VII. Next: Context-Aware Bot Behavior

The extraction and comparison layers above are standalone and production-ready. The next phase is making the bot act on the cross-supplier intelligence — adjusting its questioning and negotiation based on what other suppliers have already confirmed.

The Round Model

Real supplier conversations don’t complete simultaneously. Some respond in minutes, others take hours or days. Rather than injecting context in real-time (complex, diminishing returns), we use a round-based approach:

PhaseWhat HappensDuration
Round 1 Bot contacts all suppliers. Conversations run independently, no cross-supplier context. Collect as much as possible from responsive suppliers. Adjustable cutoff (e.g. 3–6 hours)
Extract + Compare Run structured extraction on all completed conversations. Build comparison table. Identify gaps and competitive positions. ~1 minute
Round 2+ Re-engage remaining or partially-complete suppliers with context injected. Bot now knows: price ranges, who confirmed what, what’s still missing. Can negotiate, fill gaps, or push on specific topics. Adjustable
Why rounds, not real-time?
  • Responsive suppliers typically complete within the first round — their data forms the baseline for context injection in later rounds.
  • Mid-conversation injection is complex (partial extraction from incomplete conversations) with limited upside — most value comes from completed conversations informing new ones.
  • Round boundaries are natural decision points for Brain: which suppliers to re-engage, what strategy to use, whether to escalate.

What Changes in the Bot Prompt

A new prompt version will add a {{CONTEXT}} placeholder (same pattern as the existing {{GOALS}} placeholder). When context is available, it gets injected; when empty, the bot behaves as it does today. Examples of context-aware behavior to tune and evaluate:

ScenarioBot Behavior Without ContextBot Behavior With Context
Price already confirmed by 2 suppliers Asks “什么价格?” (open-ended) Knows range is ¥68–78. Can anchor or probe positioning.
Certification missing across all May not reach it (Tier 2 priority) Knows this is a gap — can prioritize asking earlier.
One supplier is evasive on lead time Asks once, moves on Knows other suppliers confirmed 20–30 days. Can push: “其他工厂说20天左右,你们大概什么时候?”

Eval Plan

Context injection changes bot behavior, so it requires a dedicated eval round before deployment:

StepWhatDepends On
1 Build dyn-v2 prompt with {{CONTEXT}} placeholder Current report (this deliverable)
2 Side-by-side benchmark: same suppliers, with vs without context dyn-v2 prompt
3 Check for regressions: E4 (hallucination — bot might confuse suppliers), E2 (discipline), E7 (naturalness) Benchmark results
4 Tune prompt instructions for context-aware negotiation (S1 stretch goal) Real supplier data preferred
Timing: Steps 1–3 can run on simulated data (available now). Step 4 is best done after real supplier conversations are available (chatServer fix expected Tue Mar 25). The round-based model is designed so that context injection is additive — the bot works without it, and gets smarter with it.

VIII. Technical Notes

Three-Layer Architecture

Layer Function LLM? Purpose
Extraction extractOutcome() Yes (Kimi K2.5) Conversation transcript → structured JSON with confidence + turn refs
Aggregation summarizeProgress() No (pure code) Per-supplier outcomes → cross-supplier comparison table + coverage stats
Injection buildInjection() No (pure code) Format aggregated data for bot prompt injection — Brain replaces later

Outcome Schema

{ "supplierId": "s01", "supplierName": "晋江飞越运动鞋业有限公司", "product": "shoes", "archetype": "responsive", "status": "completed", "turnsCompleted": 8, "extracted": { "moq": { "value": "500双达到起订量", "confidence": "high", "turn": 2 }, // ... additional fields: price, lead_time, customization, etc. }, "goalsCompleted": ["moq", "price", "lead_time", ...], "goalsRemaining": [], "freeformNotes": "Supplier mentioned..." }
Modularity Layers 1 (extraction) and 2 (aggregation) are standalone — usable for reporting, dashboards, or Sourcy’s own pipeline without any dependency on context injection. The extraction output is a clean data contract that can feed any downstream system.

Performance

Operation Duration Cost Driver
Extraction (per conversation) ~18 seconds Single Kimi K2.5 call
Aggregation (per product) <1 ms Pure JS — no API calls
Injection text build <1 ms Pure JS — string formatting