Jerry
docs: update DESIGN.md with final hackathon architecture and results
540b7d9
|
Raw
History Blame Contribute Delete
5.01 kB

Design Notes: Logistics Shipment RL Environment

Why This Problem?

India's logistics sector processes over $200B of freight annually. During major disruptions (port strikes, monsoon floods, highway accidents), human dispatchers must manually triage hundreds of concurrent shipments in minutes. This environment simulates that exact crisis β€” testing whether an LLM can act as autonomous operational infrastructure.

Key Architectural Decisions

1. Turn-Based with Deterministic Background Updates

The environment uses a turn-based loop rather than continuous steps. Within each turn, the agent can issue a sequence of JSON actions.

Crucially, background traffic (route congestion) only updates at the end of a turn. This was a major design correction: originally, background traffic updated after every action, which caused non-deterministic behavior where the agent's world model (from get_network_status) would become invalid mid-turn. By decoupling the updates to the end-of-turn, the environment ensures stable planning for the agent.

2. Independent Reward Signals with Anti-Hacking Safeguards

Rather than a single scalar reward, the training pipeline utilizes three independent reward functions:

  1. Structure: Evaluates valid JSON, correct start/end actions, and penalizes spam/rambling.
  2. Routing: Evaluates whether delayed shipments were moved to clear routes.
  3. Communication: Evaluates whether apologies and ETAs were sent to delayed customers.

Anti-Hacking Penalties: To prevent exploitation, strict negative rewards were enforced:

  • -0.5 for duplicate end_turn calls
  • -0.3 for spamming get_network_status
  • -0.6 for choosing congested alternate routes
  • -0.8 for omitting a valid route ID entirely
  • -0.5 for duplicate or spam ETA messages

3. Four-Phase Curriculum Learning (GRPO)

The agent was trained using Group Relative Policy Optimization (GRPO) via TRL and Unsloth. The training followed a strict 4-phase curriculum:

  1. Phase 1 (Easy): Baseline routing on TASK-EASY (1 disruption).
  2. Phase 2 (Medium): Triage prioritization on TASK-MEDIUM (3 simultaneous disruptions) with a lowered learning rate to prevent catastrophic forgetting.
  3. Phase 3 (Hardening): Interleaved Easy/Medium scenarios with high rollout diversity (num_generations=6) to reinforce learned logic.
  4. Phase 4 (Correction): Applied the strictest anti-hacking penalties (e.g., -0.8 for empty routes) to patch loopholes discovered in earlier phases.

4. NLP-Scored Communication

The communicate_eta action is graded by a lightweight heuristic that checks for:

  • Empathetic language ("apologize", "sorry", "regret")
  • Specific ETA commitment ("arrive by 6pm", "reschedule to Monday")
  • Cause of delay ("port congestion", "carrier strike", "weather")
  • Message length (longer = more effort)

This tests a different capability than rerouting math: can the agent produce professional, customer-facing communication under pressure?

5. Three Difficulty Tiers for Benchmarking

Tier Challenge Design Intent
EASY 2 shipments, 1 disruption, 3 turns Validates basic rerouting ability
MEDIUM 4 shipments, 3 simultaneous disruptions, 5 turns Tests triage prioritization under pressure
HARD 7 shipments, 4 critical failures, 7 turns Stress-tests maximum crisis management capacity

An agent that scores well on EASY but poorly on HARD reveals brittleness under complexity β€” a real finding, not a grader artifact.

Final Results Anatomy

The final architecture achieved a +327% performance improvement (0.18 baseline β†’ 0.7683 trained average).

Key behaviors learned by the final model:

  1. World Modeling: The agent learned to always call get_network_status as its first action to construct a mental model of route congestion.
  2. SLA Protection: The agent learned to check route load before blindly rerouting, avoiding the -0.6 penalty for congested routes.
  3. Empathy Under Pressure: The agent learned to reliably dispatch well-formed apologies to the correct disrupted customers.

Known Limitations

  1. Route graph is static: Routes don't dynamically close or change congestion mid-episode. A future version could add stochastic disruption evolution.
  2. Single-agent only: The environment is not designed for multi-agent scenarios where separate dispatchers handle different regions.
  3. No partial observability: The agent always sees the full network state after get_network_status. A more challenging variant would restrict observations to a regional viewport.

Future Extensions

  • TASK-KOLKATA β€” Monsoon flood response at KOPT
  • TASK-VIZAG β€” Cyclone-induced port closure on the eastern coast
  • TASK-MUNDRA β€” Container ship grounding at India's largest private port
  • Dynamic route congestion that evolves each turn
  • Multi-modal transport (sea + rail + road intermodal chains)