Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions networks/smart-travel-network/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# OpenRouter API Configuration
# Get your API key from: https://openrouter.ai/keys
OPENROUTER_API_KEY=YOUR_OPENROUTER_API_KEY

# Instructions:
# 1. Copy this file to .env
# 2. Replace YOUR_OPENROUTER_API_KEY with your actual API key
# 3. Update all agent YAML files in agents/ folder with your key
7 changes: 7 additions & 0 deletions networks/smart-travel-network/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
__pycache__/
*.pyc
.env
.venv
venv/
*.log
openagents.log
21 changes: 21 additions & 0 deletions networks/smart-travel-network/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM ghcr.io/openagents-org/openagents:latest

WORKDIR /app

ENV PYTHONUNBUFFERED=1

# Install system dependencies (git/curl are usually needed)
RUN apt-get update && apt-get install -y git curl && rm -rf /var/lib/apt/lists/*

# Copy project files (we don't need pip install as openagents is in the base image)
COPY . .

# Make startup script executable
COPY start_zeabur.sh .
RUN chmod +x start_zeabur.sh

# Expose the dashboard port
EXPOSE 8700

# Start the monolith
CMD ["./start_zeabur.sh"]
51 changes: 51 additions & 0 deletions networks/smart-travel-network/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Smart Travel Network 🌍✈️

**A Multi-Agent System for Intelligent Travel Planning**

> Submitted for the OpenAgents PR Hackathon

## Overview
The **Smart Travel Network** is a centralized agent network designed to take a vague travel "vibe" or theme from a user and turn it into a concrete, actionable itinerary. It demonstrates the power of specialized agents collaborating in a pipeline.

## Unique Value
Most travel bots just ask "Where do you want to go?". We ask **"How do you want to feel?"**.
* **Input**: "I want a cyberpunk aesthetics trip with great street food."
* **Output**: A complete breakdown of Tokyo/Seoul with specific neon-lit spots, food stalls, flights, and a daily schedule.

## Agent Architecture
1. **🕵️ Destination Scout (`agent_a_scout`)**:
* Listens to specific user themes.
* Uses extensive knowledge to match "vibes" to real-world cities.
2. **✈️ Logistics Planner (`agent_b_logistics`)**:
* Receives the target city.
* Simulates searching for optimal flights and accommodation.
3. **🎡 Activities Coordinator (`agent_c_activities`)**:
* Finds unique, theme-aligned experiences (not just tourist traps).
4. **📅 Itinerary Master (`agent_d_master`)**:
* Synthesizes all data into a beautiful Markdown-formatted daily plan.

## Setup & Run

### Prerequisites
* OpenAgents v0.8.3+
* A DeepSeek API Key (or compatible LLM key)

### Installation
1. Clone this repository.
2. Navigate to `smart-travel-network`.
3. **IMPORTANT**: Open `agents/*.yaml` and paste your API key in the `api_key` field.

### Running
Windows (PowerShell):
```powershell
./start_network.ps1
```

### Usage
1. Connect to the network dashboard (default: `http://localhost:8700`).
2. Go to the **#user-input** channel.
3. Type a message like: `Theme: A quiet mountain retreat for reading and coffee.`
4. Watch the agents spring into action in the other channels!

## License
MIT
46 changes: 46 additions & 0 deletions networks/smart-travel-network/agents/agent_a_scout.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# AgentA - Destination Scout
# Role: Suggests specific cities/countries based on abstract themes.

type: "openagents.agents.collaborator_agent.CollaboratorAgent"
agent_id: "agent_a_scout"

config:
model_name: "deepseek/deepseek-r1:free"
base_url: "https://openrouter.ai/api/v1"
api_key: "YOUR_OPENROUTER_API_KEY"

instruction: |
You are the Destination Scout.

【Mission】
Listen to #user-input for travel themes (e.g., "Relaxing beach with good food", "Cyberpunk vibes", "Historical Europe").
Pick the SINGLE BEST real-world destination that matches that theme and post a research report to #location-research.

【Rules】
- ONLY listen to #user-input.
- ONLY post to #location-research.
- Do not reply to other agents.
- Respond only once per theme.

【Output Format】
**Destination Proposal**
Target: [City, Country]
Why: [One sentence explanation]

### Key Highlights
* [Highlight 1]
* [Highlight 2]

react_to_all_messages: true
default_channels:
- "user-input"
- "location-research"

mods:
- name: "openagents.mods.workspace.messaging"
enabled: true

connection:
host: "localhost"
port: 8700
transport: "http"
47 changes: 47 additions & 0 deletions networks/smart-travel-network/agents/agent_b_logistics.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# AgentB - Logistics Planner
# Role: Suggests flights and hotels for the proposed destination.

type: "openagents.agents.collaborator_agent.CollaboratorAgent"
agent_id: "agent_b_logistics"

config:
model_name: "deepseek/deepseek-r1:free"
base_url: "https://openrouter.ai/api/v1"
api_key: "YOUR_OPENROUTER_API_KEY"

instruction: |
You are the Logistics Planner.

【Mission】
Listen to #location-research for a "Destination Proposal".
Generate realistic (mock) flight and hotel options for that destination and post to #logistics-plan.

【Rules】
- ONLY listen to #location-research.
- ONLY post to #logistics-plan.

【Output Format】
**Logistics Plan for [City]**

### Flights (Estimated)
* Option A: Direct ($800), 12h duration
* Option B: 1 Stop ($500), 18h duration

### Accommodation
* Luxury: [Name of real luxury hotel]
* Budget: [Name of real budget hostel/hotel]
* Unique: [Name of a boutique/unique stay]

react_to_all_messages: true
default_channels:
- "location-research"
- "logistics-plan"

mods:
- name: "openagents.mods.workspace.messaging"
enabled: true

connection:
host: "localhost"
port: 8700
transport: "http"
43 changes: 43 additions & 0 deletions networks/smart-travel-network/agents/agent_c_activities.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# AgentC - Activities Coordinator
# Role: Suggests fun things to do.

type: "openagents.agents.collaborator_agent.CollaboratorAgent"
agent_id: "agent_c_activities"

config:
model_name: "deepseek/deepseek-r1:free"
base_url: "https://openrouter.ai/api/v1"
api_key: "YOUR_OPENROUTER_API_KEY"

instruction: |
You are the Activities Coordinator.

【Mission】
Listen to #location-research for the destination.
Plan 3 distinct activities that fit the "Vibe" of the place.
Post to #activities.

【Rules】
- ONLY listen to #location-research.
- ONLY post to #activities.

【Output Format】
**Activity List**

1. **[Activity Name]**: [Description]
2. **[Activity Name]**: [Description]
3. **[Activity Name]**: [Description]

react_to_all_messages: true
default_channels:
- "location-research"
- "activities"

mods:
- name: "openagents.mods.workspace.messaging"
enabled: true

connection:
host: "localhost"
port: 8700
transport: "http"
59 changes: 59 additions & 0 deletions networks/smart-travel-network/agents/agent_d_master.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# AgentD - Itinerary Master
# Role: Compiles the final plan.

type: "openagents.agents.collaborator_agent.CollaboratorAgent"
agent_id: "agent_d_master"

config:
model_name: "deepseek/deepseek-r1:free"
base_url: "https://openrouter.ai/api/v1"
api_key: "YOUR_OPENROUTER_API_KEY"

instruction: |
You are the Itinerary Master.

【Mission】
You listen to #activities. When you see a new Activity List, you assume the Logistics Plan (in #logistics-plan) and Destination (in #location-research) are already sent.

You must generate the **FINAL ITINERARY** by combining:
1. The Destination (infer from activities/history)
2. The Activities
3. Safety Tips (from #safety-tips)
4. Packing List (from #packing-list)

(Wait for all these inputs or just aggregate what you see).

【Output Format】
# FINAL TRAVEL ITINERARY

## The Trip
We are going to **[Destination]**!

## Daily Schedule
* **Day 1**: Arrival & Check-in.
* **Day 2**: [Activity 1]
* **Day 3**: [Activity 2]
* **Day 4**: [Activity 3] & Departure.

## Safety & Prep
* **Safety**: [Summary from Agent E]
* **Packing**: [Top 3 items from Agent F]

## Summary
Have a great trip!

react_to_all_messages: true
default_channels:
- "activities"
- "safety-tips"
- "packing-list"
- "itinerary-output"

mods:
- name: "openagents.mods.workspace.messaging"
enabled: true

connection:
host: "localhost"
port: 8700
transport: "http"
40 changes: 40 additions & 0 deletions networks/smart-travel-network/agents/agent_e_safety.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# AgentE - Safety Advisor
# Role: Provides safety warnings and emergency info.

type: "openagents.agents.collaborator_agent.CollaboratorAgent"
agent_id: "agent_e_safety"

config:
model_name: "deepseek/deepseek-r1:free"
base_url: "https://openrouter.ai/api/v1"
api_key: "YOUR_OPENROUTER_API_KEY"

instruction: |
You are the Safety Advisor.

【Mission】
Listen to #location-research.
Identify the destination and provide a safety briefing.
Post to #safety-tips.

【Output Format】
**Safety Briefing for [City]**

* **Safety Score**: [1-10] (10 is safest)
* **Emergency Number**: [Local Police/Ambulance ID]
* **Advisory**: [One sentence on any scams or areas to avoid]
* **Health**: [Vaccinations or water safety tips]

react_to_all_messages: true
default_channels:
- "location-research"
- "safety-tips"

mods:
- name: "openagents.mods.workspace.messaging"
enabled: true

connection:
host: "localhost"
port: 8700
transport: "http"
40 changes: 40 additions & 0 deletions networks/smart-travel-network/agents/agent_f_packing.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# AgentF - Packing Specialist
# Role: Creates a custom packing list.

type: "openagents.agents.collaborator_agent.CollaboratorAgent"
agent_id: "agent_f_packing"

config:
model_name: "deepseek/deepseek-r1:free"
base_url: "https://openrouter.ai/api/v1"
api_key: "YOUR_OPENROUTER_API_KEY"

instruction: |
You are the Packing Specialist.

【Mission】
Listen to #activities (because it implies the type of trip).
Generate a checklist of what to bring.
Post to #packing-list.

【Output Format】
**Packing List**

* **Clothing**: [3-4 items based on weather/activities]
* **Gear**: [Camera, adapters, snorkeling mask, etc.]
* **Documents**: [Visa requirements, Passport]
* **Don't Bring**: [Banned items or unnecessary things]

react_to_all_messages: true
default_channels:
- "activities"
- "packing-list"

mods:
- name: "openagents.mods.workspace.messaging"
enabled: true

connection:
host: "localhost"
port: 8700
transport: "http"
Loading