plano/demos/agent_orchestration/multi_agent_crewai_langchain
2026-02-17 03:09:28 -08:00
..
crewai Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
langchain Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
config.yaml Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
docker-compose.yaml Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
Dockerfile Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
openai_protocol.py Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
pyproject.toml Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
README.md Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
traces.png Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
uv.lock Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00

Travel Agents in CrewAI and LangChain - with Plano

What you'll see: A travel assistant that seamlessly combines flight booking (CrewAI) and weather forecasts (LangChain) in a single conversation - with unified routing, orchestration, moderation, and observability across both frameworks.

The Problem

Building multi-agent systems today forces developers to:

  • Pick one framework - can't mix CrewAI, LangChain, or custom agents easily
  • Write plumbing code - authentication, request routing, error handling
  • Rebuild for changes - want to swap frameworks? Start over
  • Limited observability - no unified view across different agent frameworks

Plano's Solution

Plano acts as a framework-agnostic proxy and data plane that:

  • Routes requests to the right agent(s), in the right order (CrewAI, LangChain, or custom)
  • Normalizes requests/responses across frameworks automatically
  • Provides unified authentication, tracing, and logs
  • Lets you mix and match frameworks without coupling, so that you can continue to innovate easily

How To Run

Prerequisites

  1. Install Plano CLI

    uv tool install planoai
    
  2. Set Environment Variables

    export OPENAI_API_KEY=your_key_here
    export AEROAPI_KEY=your_key_here  # Get your free API key at https://flightaware.com/aeroapi/
    

Start the Demo

# From the demo directory
cd demos/agent_orchestration/multi_agent_crewai_langchain

# Build and start all services
docker-compose up -d

This starts:

  • Plano (ports 12000, 8001) - routing and orchestration
  • CrewAI Flight Agent (port 10520) - flight search
  • LangChain Weather Agent (port 10510) - weather forecasts
  • AnythingLLM (port 3001) - chat interface
  • Jaeger (port 16686) - distributed tracing

Try It Out

  1. Open the Chat Interface

  2. Ask Multi-Agent Questions

    "What's the weather in San Francisco and can you find flights from Seattle to San Francisco?"
    

    Plano automatically:

    • Routes the weather part to the LangChain agent
    • Routes the flight part to the CrewAI agent
    • Combines responses seamlessly
  3. View Distributed Traces

    Tracing Example

Architecture

┌──────────────┐
│ AnythingLLM  │ (Chat Interface)
└──────┬───────┘
       │
       v
┌─────────────┐
│    Plano    │ (Orchestration & DataPlane)
└──────┬──────┘
       │
       ├──────────────┬──────────────┐
       v              v              v
┌────────────┐ ┌────────────┐ ┌──────────┐
│  CrewAI    │ │ LangChain  │ │  Jaeger  │
│   Flight   │ │  Weather   │ │ (Traces) │
│   Agent    │ │   Agent    │ └──────────┘
└────────────┘ └────────────┘
       ├──────────────├
       v              v
┌─────────────┐
│    Plano    │ (Proxy LLM calls)
└──────┬──────┘

Travel Agents

Flight Agent

  • Framework: CrewAI
  • Capabilities: Flight search, itinerary planning
  • Tools: resolve_airport_code, search_flights
  • Data Source: FlightAware AeroAPI

Weather Agent

  • Framework: LangChain
  • Capabilities: Weather forecasts, conditions
  • Tools: get_weather_forecast
  • Data Source: Open-Meteo API

Cleanup

docker-compose down

Next Steps

  • Add your own agent - any framework, just expose the OpenAI-compatible endpoint
  • Custom routing - modify config.yaml to change agent selection logic
  • Production deployment - see Plano docs for scaling guidance

Learn More