Festival Producer

Multi-agent festival planning with artist booking, logistics, and marketing agents — backed by rag_augmented conversation memory, orchestrator skills, and structured entity extraction.

What this demonstrates

Three GenericAgent instances (artist booking, logistics, marketing) with cross-agent orchestrator skills, backed by rag_augmented conversation memory. Every feature of the summarization pipeline (Phases 1–5) is active.

FeatureHow It's Used
rag_augmented memoryPast turns embedded in Qdrant; 5 most relevant retrieved per query
Orchestrator skillsfull_production_review, budget_optimization, stage_planning — sequential pipelines
Structured JSON entitiesArtists, venues, budgets tracked as typed entities
Middle truncationRider specs and stage configs truncated preserving start+end
Per-agent promptsEach agent overrides summary_compression_* in prompt_sections

Run it

ORCHID_CONFIG=examples/festival-producer/orchid.yml uvicorn orchid_api.main:app
# or:
orchid chat interactive --config examples/festival-producer/orchid.yml
# or validate:
orchid config validate examples/festival-producer/agents.yaml

Agents and tools

AgentToolsExpertise
artist-bookinglookup, list, riders, compareArtist availability, fees, lineup curation
logisticsvenues, schedule, power, crewStage specs, power grids, crew planning
marketingdemographics, pricing, channels, attendanceTicket pricing, promo channels, projections

Orchestrator skills

skills:
  full_production_review:     # booking → logistics → marketing
  budget_optimization:        # booking → marketing
  stage_planning:             # booking → logistics

Memory config

supervisor:
  memory:
    strategy: "rag_augmented"
    summary_recent_turns: 12
    structured_output: true
    persist_summary: true
    rag_k: 5
    rag_similarity_threshold: 0.5
    store_turns: true
    truncation_strategy: "middle"
    truncation_max_chars: 1000

Simulated flow

"The Midnight Vibrations want $85K for Saturday. Can our budget handle it?"
→ artist-booking: confirms availability Q2-Q3, 22K attendance draw
→ marketing: projects $2.1M ticket revenue at $129 avg with this headliner
→ budget_optimization skill fires: booking provides fee data, marketing projects revenue
→ RAG retrieves past budget discussions from earlier planning sessions

Files

examples/festival-producer/
├── README.md
├── orchid.yml
├── agents.yaml
└── tools/
    ├── booking.py      # 6 artists with static data
    ├── logistics.py    # 5 venues with power/schedule
    └── marketing.py    # demographics, pricing, channels

No custom agent classes — all three agents are GenericAgent driven by YAML.