2025-12-22 18:05:49 -08:00
# Travel Booking Agent Demo
2026-02-02 14:35:49 -08:00
A multi-agent travel booking system demonstrating Plano's intelligent agent routing and orchestration capabilities. This demo showcases two specialized agents working together to help users plan trips with weather information and flight searches. All agent interactions are fully traced with OpenTelemetry-compatible tracing for complete observability.
2025-12-22 18:05:49 -08:00
## Overview
2025-12-23 17:14:50 -08:00
This demo consists of two intelligent agents that work together seamlessly:
2025-12-22 18:05:49 -08:00
2025-12-23 17:14:50 -08:00
- **Weather Agent** - Real-time weather conditions and multi-day forecasts for any city worldwide
2025-12-22 18:05:49 -08:00
- **Flight Agent** - Live flight information between airports with real-time tracking
2026-03-05 07:35:25 -08:00
All agents use Plano's agent orchestration LLM to intelligently route user requests to the appropriate specialized agent based on conversation context and user intent.
2025-12-22 18:05:49 -08:00
## Features
- **Intelligent Routing**: Plano automatically routes requests to the right agent
- **Conversation Context**: Agents understand follow-up questions and references
2025-12-23 17:14:50 -08:00
- **Real-Time Data**: Live weather and flight data from public APIs
- **Multi-Day Forecasts**: Weather agent supports up to 16-day forecasts
2026-02-02 14:35:49 -08:00
- **LLM-Powered**: Uses GPT-4o-mini for extraction and GPT-5.2 for responses
2025-12-22 18:05:49 -08:00
- **Streaming Responses**: Real-time streaming for better user experience
## Prerequisites
2026-03-05 07:35:25 -08:00
- [Plano CLI ](https://docs.planoai.dev/get_started/quickstart.html#prerequisites ) installed (`pip install planoai` )
2026-03-11 12:49:36 -07:00
- [uv ](https://docs.astral.sh/uv/ ) installed (for running agents natively)
2026-02-02 14:35:49 -08:00
- [OpenAI API key ](https://platform.openai.com/api-keys )
- [FlightAware AeroAPI key ](https://www.flightaware.com/aeroapi/portal )
2026-03-11 12:49:36 -07:00
- Docker and Docker Compose (optional, only needed for `--with-ui` )
2026-02-02 14:35:49 -08:00
> **Note:** You'll need to obtain a FlightAware AeroAPI key for live flight data. Visit [https://www.flightaware.com/aeroapi/portal](https://www.flightaware.com/aeroapi/portal) to get your API key.
2025-12-22 18:05:49 -08:00
## Quick Start
2025-12-23 17:14:50 -08:00
### 1. Set Environment Variables
2025-12-22 18:05:49 -08:00
Create a `.env` file or export environment variables:
```bash
2026-02-02 14:35:49 -08:00
export AEROAPI_KEY="your-flightaware-api-key"
export OPENAI_API_KEY="your OpenAI api key"
2025-12-22 18:05:49 -08:00
```
2026-03-05 07:35:25 -08:00
### 2. Start the Demo
2025-12-23 17:14:50 -08:00
```bash
2026-03-05 07:35:25 -08:00
./run_demo.sh
2025-12-23 17:14:50 -08:00
```
2026-03-11 12:49:36 -07:00
This starts Plano natively and runs agents as local processes:
2025-12-22 18:05:49 -08:00
- Weather Agent on port 10510
- Flight Agent on port 10520
2026-03-05 07:35:25 -08:00
Plano runs natively on the host (port 8001).
2025-12-22 18:05:49 -08:00
2026-03-11 12:49:36 -07:00
To also start Open WebUI, Jaeger tracing, and other optional services, pass `--with-ui` :
```bash
./run_demo.sh --with-ui
```
This additionally starts:
- Open WebUI on port 8080
- Jaeger tracing UI on port 16686
2025-12-23 17:14:50 -08:00
### 4. Test the System
2025-12-22 18:05:49 -08:00
2026-03-11 12:49:36 -07:00
**Option A: Using curl**
```bash
curl -X POST http://localhost:8001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "gpt-5.2", "messages": [{"role": "user", "content": "What is the weather in Istanbul?"}]}'
```
**Option B: Using Open WebUI (requires `--with-ui` )**
Navigate to http://localhost:8080
2025-12-23 17:14:50 -08:00
2026-02-02 14:35:49 -08:00
> **Note:** The Open WebUI may take a few minutes to start up and be fully ready. Please wait for the container to finish initializing before accessing the interface. Once ready, make sure to select the **gpt-5.2** model from the model dropdown menu in the UI.
2025-12-22 18:05:49 -08:00
## Example Conversations
### Multi-Agent Conversation
```
User: What's the weather in Istanbul?
Assistant: [Weather information]
User: Do they fly out from Seattle?
Assistant: [Flight information from Istanbul to Seattle]
```
The system understands context and pronouns, automatically routing to the right agent.
2026-02-02 14:35:49 -08:00
### Multi-Intent Single Query
2025-12-22 18:05:49 -08:00
```
User: What's the weather in Seattle, and do any flights go direct to New York?
Assistant: [Both weather_agent and flight_agent respond simultaneously]
- Weather Agent: [Weather information for Seattle]
- Flight Agent: [Flight information from Seattle to New York]
```
## Architecture
```
2025-12-23 17:14:50 -08:00
User Request
↓
Plano (8001)
[Orchestrator]
|
2026-02-02 14:35:49 -08:00
┌────┴──-──┐
↓ ↓
Weather Flight
Agent Agent
(10510) (10520)
2026-03-05 07:35:25 -08:00
(10510) (10520)
2025-12-22 18:05:49 -08:00
```
Each agent:
2025-12-23 17:14:50 -08:00
1. Extracts intent using GPT-4o-mini (with OpenTelemetry tracing)
2025-12-22 18:05:49 -08:00
2. Fetches real-time data from APIs
2026-02-02 14:35:49 -08:00
3. Generates response using GPT-5.2
2025-12-22 18:05:49 -08:00
4. Streams response back to user
2026-03-11 12:49:36 -07:00
Both agents run as native local processes and communicate with Plano running natively on the host.
2025-12-22 18:05:49 -08:00
2026-02-02 14:35:49 -08:00
## Observability
2025-12-22 18:05:49 -08:00
2026-02-02 14:35:49 -08:00
This demo includes full OpenTelemetry (OTel) compatible distributed tracing to monitor and debug agent interactions:
The tracing data provides complete visibility into the multi-agent system, making it easy to identify bottlenecks, debug issues, and optimize performance.
2025-12-22 18:05:49 -08:00
2026-02-02 14:35:49 -08:00
For more details on setting up and using tracing, see the [Plano Observability documentation ](https://docs.planoai.dev/guides/observability/tracing.html ).
2025-12-22 18:05:49 -08:00
2026-02-02 14:35:49 -08:00
