Spaces:
Running on Zero
Running on Zero
| # 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"` for `IL`, `"Texas"` for `TX`, `"Georgia"` for `GA`). | |
| - **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] | |
| ``` | |
| 1. `verify_mc`: Look up FMCSA authority, check if active, inspect safety rating and credit score (>85). | |
| 2. `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). | |
| 3. `truck_info`: Confirm equipment code (`V`=Van, `R`=Reefer, `F`=Flatbed, `SD`=Stepdeck, `PO`=Power Only) and tarp size (8ft vs 12ft). | |
| 4. `driver_info`: Collect Driver First/Last Name and 10-digit mobile number for dispatch tracking. | |
| 5. `email_exchange`: Exchange dispatch email address for rate confirmation delivery. | |
| 6. `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 | |
| 1. `fmcsa_verify_mc`: | |
| - Args: `{"mc_number": string, "broker_name": string}` | |
| - Returns: `{"status": "CLEAN"|"FLAGGED", "active": boolean, "credit_score": number, "days_active": number}` | |
| 2. `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}` | |
| 3. `get_truck_route_distance`: | |
| - Args: `{"origin": string, "destination": string, "truck_type": string}` | |
| - Returns: `{"distance_miles": number, "toll_roads_usd": number, "estimated_drive_hours": number}` | |
| 4. `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}` | |