Spaces:
Running on Zero
Running on Zero
A newer version of the Gradio SDK is available: 6.25.0
LoadETA Domain Intelligence & Agent Training Specification
Extracted directly from ~/Projects/loadeta (backend/livekit/src/assistant/). This document defines the exact production schemas, speech rules, equipment validation constraints, and negotiation workflow states used to fine-tune Qwen 3.8 9B for LoadETA.
1. Speech Hygiene & Pronunciation Rules (PronunciationRules.ts)
These rules are strictly enforced during voice synthesis (TTS/STT in LiveKit):
- Money & Currencies: Always pronounce naturally (e.g.
$2,450$\to$"twenty-four fifty dollars"or"twenty-four hundred and fifty dollars"). Never read digit-by-digit. - IDs, Load Numbers & MCs: Read digit-by-digit (e.g.
MC 782914$\to$"Motor Carrier Number seven eight two nine one four"). - Terminology Override: Always say
"Motor Carrier Number", never"MC"or"mac". - Entity Suffix Stripping: NEVER say
"LLC","INC","CORP", or"LTD"on the phone. Only say the base name (e.g."Apex Logistics", not"Apex Logistics Incorporated"). - State Names: Always pronounce state abbreviations in full (
"Illinois"forIL,"Texas"forTX,"Georgia"forGA). - Silence on Acknowledgment: When the broker or driver says
"yes","okay", or"right", the agent remains silent and proceeds directly to the next question.
2. Mandatory 6-Step Workflow State Machine (WorkflowSequence.ts)
Every LiveKit negotiation call follows this strict linear progression:
[1. Verify MC] ──> [2. Rate Floor Negotiation] ──> [3. Equipment / Tarps]
│
└──> [4. Driver Name & Phone] ──> [5. Email Exchange] ──> [6. Send Rate Con]
verify_mc: Look up FMCSA authority, check if active, inspect safety rating and credit score (>85).negotiate_rate: Compute effective rate floor: $\text{Effective Floor} = \max(\text{minTotalUsd}, \text{minRatePerMile} \times \text{loadedMiles})$. Protect accessorials (2 hours free detention, $75/hr after).truck_info: Confirm equipment code (V=Van,R=Reefer,F=Flatbed,SD=Stepdeck,PO=Power Only) and tarp size (8ft vs 12ft).driver_info: Collect Driver First/Last Name and 10-digit mobile number for dispatch tracking.email_exchange: Exchange dispatch email address for rate confirmation delivery.send_rate_con: Execute booking in database, dispatch confirmation email, and close call politely.
3. Equipment & HOS Constraints (agentEquipmentValidators.ts)
- Hours of Service (HOS):
$$\text{Driving Time} = \frac{\text{Trip Miles}}{50.0\text{ mph}}$$
- If driving time $> 8$ hours, add 30-minute mandatory rest break.
- If driving time $> 11$ hours, add 10-hour sleeper berth reset per 11-hour driving block.
- Tarp Verification (Flatbed/Stepdeck):
- Validate minimum tarp drops (8ft tarps for machinery, 12ft tarps for tall lumber/steel).
- Reefer Modes:
- Continuous (-10°F to 0°F frozen foods) vs Start-Stop (+34°F to +45°F fresh produce). Mandatory pre-cool verification before loading.
4. Exact LoadETA Tool Schemas
fmcsa_verify_mc:- Args:
{"mc_number": string, "broker_name": string} - Returns:
{"status": "CLEAN"|"FLAGGED", "active": boolean, "credit_score": number, "days_active": number}
- Args:
calculate_rate_floor:- Args:
{"origin": string, "destination": string, "equipment_type": string, "mileage": number, "weight": number} - Returns:
{"rate_floor": number, "recommended_target": number, "rpm_floor": number}
- Args:
get_truck_route_distance:- Args:
{"origin": string, "destination": string, "truck_type": string} - Returns:
{"distance_miles": number, "toll_roads_usd": number, "estimated_drive_hours": number}
- Args:
book_load_offer:- Args:
{"broker_name": string, "mc_number": string, "rate_agreed": number, "detention_rate_per_hr": number, "driver_name": string, "driver_phone": string, "dispatch_email": string} - Returns:
{"status": "BOOKED", "confirmation_code": string}
- Args: