Behavior2Trip: Towards Personalized Travel Planning via User Behavior Trajectory
Organizations: School of Computer Science and Engineering, Beihang University, Beijing · Beijing Institute of Technology · University of Edinburgh · Meituan Inc.
Abstract
Travel planning agents assist users in generating personalized travel plans by modeling their individual preferences. Existing agents either rely on explicit user instructions or engage in multi-turn clarification to elicit user preferences. However, both approaches overlook the rich behavioral signals latent in users' past behaviors, which implicitly encode their preferences. This over-reliance on active user input increases interaction burden and limits plan personalization. To bridge this gap, we introduce a new task, Behavior-Aware Travel Planning, which infers user preferences directly from past behaviors and generates personalized travel plans. To facilitate research on this task, we introduce Behavior2Trip, a benchmark constructed from one of the largest Chinese online travel platforms, comprising 11,400 instances. Each instance represents an average of 39.8 past user behaviors spanning 14 attributes across 5 preference dimensions. We further propose B2T-Agent, a reinforcement learning-based agent that leverages user behavior trajectories, interacts with external tools for preference-aligned retrieval, and maintains an internal memory module. Experiments on Behavior2Trip show that GPT-4.1 achieves a full-constraint pass rate of only 0.5% on the hardest tasks, while B2T-Agent built upon Qwen3-8B outperforms all baselines, highlighting the substantial challenge of this task. Moreover, Qwen3-8B trained with B2T-Agent also outperforms GPT-4.1 on the TravelPlanner benchmark, demonstrating strong generalization. Code and data are available at https://github.com/BUAA-IRIP-LLM/Behavior2Trip
Figures & tables
| Method | DR | Final PR | LLM PR |
|---|---|---|---|
| B2T-Agent | 96.52 | 4.75 | 71.98 |
| - w/o. M | 97.46 ( 0.97% ) | 4.21 ( 11.37% ) | 64.24 ( 10.76% ) |
| - w/o. P | 86.70 ( 10.17% ) | 4.32 ( 9.05% ) | 65.22 ( 9.39% ) |
| - w/o. L | 78.18 ( 18.99% ) | 3.79 ( 20.21% ) | 57.97 ( 19.47% ) |
| Method | DR | CMi | CMa | HMi | HMa | FPR |
|---|---|---|---|---|---|---|
| Mistral-7B † | 7.0 | 4.8 | 0.0 | 0.0 | 0.0 | 0.0 |
| GPT-4-Turbo † | 93.1 | 63.3 | 2.9 | 10.5 | 5.5 | 0.6 |
| GPT-4.1 | 99.4 | 75.1 | 5.7 | 10.7 | 7.8 | 1.5 |
| Qwen3-8B-B2T-Agent | 100 | 76.8 | 25.0 | 26.5 | 10.2 | 9.0 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| POI Type | Count | Features |
|---|---|---|
| Restaurant | 29,604 | Name, Details, Address, Phone, Province, City, Location, Longitude, Latitude, Tertiary Category, Secondary Category, Primary Category, Business Hours, Rating Rank, Parking Information, Average Price, Average Rating, User Reviews |
| Flights | 710,633 | Flight Number, Airline, Airline Code, Departure City, Arrival City, Departure City Code, Arrival City Code, Departure Airport, Arrival Airport, Departure Airport Code, Arrival Airport Code, Departure Date, Arrival Date, Departure Time, Arrival Time, Flight Duration, Departure Terminal, Arrival Terminal, Aircraft Model, Cabin Type, Cabin Code, Adult Fare, Child Fare, Adult Total Price, Child Total Price, Adult Fuel Surcharge, Adult Airport Construction Fee, Discount, On-time Rate, Meal Availability, Codeshare Flight |
| Hotels | 22,473 | Name, Details, Cover Image, Address, Phone, Province, City, District, Longitude, Latitude, Tertiary Category, Secondary Category, Primary Category, Business Hours, Rating Rank, Parking Information, WiFi Availability, Average Price, Average Rating, User Reviews, Room Information |
| Entertainment | 20,250 | Name, Details, Cover Image, Address, Phone, Province, City, District, Longitude, Latitude, Tertiary Category, Secondary Category, Primary Category, Business Hours, Rating Rank, Average Price, Average Rating |
| Trains | 10,371 | Departure City, Arrival City, Departure Station, Arrival Station, Train Number, Train Type, Travel Time, Travel Minutes, Departure Time, Arrival Time, Fare |
| Attractions | 8,229 | Name, Details, Cover Image, Address, Phone, Province, City, Location, Longitude, Latitude, Category Name, Attraction Type, Custom Type, Opening Hours, Best Visiting Season, Recommended Visiting Duration, Average Price, User Reviews, Ticket Information |
| Tool | Description | Parameter |
|---|---|---|
| AccommodationSearch | Accommodation options in a specified city are found, with support for preference-based filtering. | Main Parameters: • city: str • n: int (optional) • preferences: dict (optional) Preference Keys: • star_rating: list of str • amenities: list of str |
| AttractionSearch | Attractions in a specified city are found, with support for preference-based filtering. | Main Parameters: • city: str • n: int (optional) • preferences: dict (optional) Preference Keys: • attraction_type: list of str • walk_tolerance: list of str |
| EntertainmentSearch | Entertainment options in a specified city are found, with support for preference-based filtering. | Main Parameters: • city: str • n: int (optional) • preferences: dict (optional) Preference Keys: • type: list of str |
| FlightSearch | Flight information is retrieved, with support for preference-based filtering. | Main Parameters: • origin: str • destination: str • departure_date: str • n: int (optional) • preferences: dict (optional) Preference Keys: • cabin_class: list of str |
| MapGuide | Navigation routes from a departure location to a destination are searched, including walking, driving, and public transit options, either within the same city or between different cities. | • origin_cityName: str • origin: str • destination_cityName: str • destination: str |
| RestaurantSearch | Dining options in a specified city are explored, with support for preference-based filtering. | Main Parameters: • city: str • n: int (optional) • preferences: dict (optional) Preference Keys: • cuisine: list of str • price_level: list of str • environment: list of str |
| Category | Constraint | Description |
| Format (1) | JSON Format Validation | Validates overall JSON structure and required fields |
| Authenticity (4) | POI Authenticity | Verifies that Points of Interest exist in real city databases |
| Major Transport Authenticity | Confirms availability of intercity transport like flights/trains | |
| Local Transport Authenticity | Ensures local transport durations are reasonable | |
| Business Hours Authenticity | Checks that POI visits occur within operating hours | |
| Reasonableness (15) | Complete Meal Arrangement | Ensures three meals are arranged each day |
| Field | Data Type | Value |
| Historical Travel Experiences | ||
| accommodations | array (of object) | - |
| restaurants | array (of object) | - |
| attractions | array (of object) | - |
| transportation | array (of object) | - |
| Hotel Preferences | ||