Travel and tourism — national tourism boardMulti-agent orchestration & constraint reasoning

Multi-agent constraint solving across 50+ tourism vendors, in real time

Change one hotel and a dozen downstream bookings shift. The system re-plans against the constraints instead of starting the itinerary over.

What happens when a traveller asks to change their hotel but keep their dinner reservation. In a static itinerary, the plan is a list: swapping the hotel silently breaks the transport timing, the lift commute and the 19:00 table, and the only remedy is to rebuild the itinerary from the beginning. In the system built here the plan is a constraint set held in a background scratchpad, so the proposed change is tested against what it touches — the 19:00 table is checked, the commute recalculated, the transport adjusted — and conflicts resolve without anything restarting. The response confirms transport updated, ski schedule adjusted and the table held, with the new hotel five minutes closer to the slopes. Delivered as a 4-week MVP across 50-plus live vendor integrations.
The plan is a constraint set, not a list. That single choice is why a change re-plans instead of restarting.

Project snapshot

Client
A national tourism board coordinating a country-wide vendor ecosystem
Industry
Travel and tourism
Business function
Itinerary planning, vendor coordination and cross-selling
Challenge
The board needed to coordinate 50+ tourism vendors in real time, reason with local and cultural knowledge, optimise complex itineraries on the fly, and maximise revenue through cross-selling. Traditional travel apps give static recommendations; this needed dynamic coordination.
Solution
An AI conductor orchestrating specialised agents, with a background scratchpad acting as working memory so the system reasons over constraints rather than restarting. Ask for a cheaper hotel further out and it checks the dinner reservation and the added commute before answering. Built on the Agno framework with a vector database, on AWS, integrating 50+ vendor APIs.
Result
Itinerary planning dropped from hours to minutes — 70% faster — with vendor coordination fully automated across 50+ vendors and a 60% efficiency gain from cross-selling that had previously been missed. Delivered as a 4-week MVP on an architecture ready for city-wide operation.

Key outcomes

70%
Faster itinerary planning
100%
Of vendor coordination automated
60%
Revenue efficiency gain
4 weeks
From start to working MVP

The client

A tourism economy that runs on other people’s calendars

A national tourism board coordinating a country-wide vendor ecosystem — hotels, ski lifts, restaurants, transport, activities.

Each with its own availability, its own booking system, and its own dependencies on the others. Which is the part that makes this hard.

The challenge

Static recommendations in a dynamic system

The board needed a system that could coordinate 50+ tourism vendors in real time, reason with local and cultural knowledge, optimise complex itineraries on the fly, and maximise revenue through intelligent cross-selling.

The coordination surface

50+
independent vendors, each with its own availability and booking system
4 weeks
to a working MVP, with a lean team and a city-scale architecture required

The gap, in one line: traditional travel apps give static recommendations. What was needed was dynamic, intelligent coordination — a system that knows a change to one booking is a change to several.

Industry context — published research, not our measurements

~40%
of global travellers now use AI tools somewhere in trip planning
#1
itinerary generation — the most-used AI feature among travellers
26.7%
CAGR for AI in tourism, $3.4bn in 2024 toward $13.9bn by 2030

Those three figures are market research, not results from this engagement — they are here because they explain why a tourism board was commissioning this in the first place. Sources: Statista on AI use in travel and tourism, and aggregated travel-chatbot adoption statistics. The measured numbers for this project are the four at the top of the page.

Constraints

What we had to design around

  • CascadeA single substitution — a different hotel — propagates through transport, timing and every booking downstream. Handling that as “start over” is a bad experience; handling it as constraint re-satisfaction is the product.
  • Heterogeneity50+ vendors means 50+ integration surfaces with no common standard between them.
  • LatencyA traveller changing plans is standing somewhere, waiting for an answer. Re-planning had to happen at conversation speed.
  • TimelineFour weeks with a lean team, against an architecture that had to survive city-wide operation afterwards.
  • Local knowledgeCultural and contextual judgment is not in a booking API. It had to be modelled explicitly.

Our approach

A conductor, not a monolith

One model asked to handle accommodation, transport, dining and revenue does all four at the level of its weakest. Worse, it has no principled way to arbitrate when they conflict — and in itinerary planning they conflict constantly.

So we built an AI conductor that orchestrates specialised agents the way a conductor coordinates a section. Each agent is competent in its own domain; the conductor is responsible for them making sense together.

The solution

Constraint-based reasoning over a shared scratchpad

The core mechanism is a background scratchpad acting as working memory. Rather than re-deriving the itinerary on every change, the system holds the current plan and its constraints, then reasons about what a proposed change breaks.

  1. AI conductorBuilt on the Agno framework. Responsible not for answering, but for making the specialists agree with each other.
  2. Specialist agentsAccommodation, transport and lift scheduling, dining and activities, and cross-sell — each competent in one domain rather than all of them approximately.
  3. Background scratchpadThe system’s working memory, holding the current plan and its constraints. This is what makes re-planning possible instead of restarting.
  4. Vector databaseFast lookup across the vendor and destination corpus.
  5. Vendor integration50+ live APIs across the ecosystem, on AWS, with real-time processing.
The orchestration architecture. A traveller request enters an AI conductor built on the Agno framework, which owns coherence between the specialists rather than the answer itself. Four specialist agents sit under it: accommodation covering availability, price and distance to slopes; transport and lifts covering timing, routing and commute windows; dining and activity covering reservations and opening hours; and cross-sell covering revenue without breaking the plan. All four read and write a shared background scratchpad that holds the current plan and its constraints, which is what makes re-planning possible. Below that, a vector database for fast lookup, more than fifty vendor APIs, AWS and real-time processing. The same constraint-optimisation approach now underpins supply chain and scheduling work.
Four specialists that would each give a good answer alone, and a conductor whose job is making them agree.

Ask for a cheaper hotel further out and the system checks the evening dinner reservation and the added ski-lift commute before answering — then returns the optimised plan rather than a list of things that now conflict.

The deployed agent architecture. An input path reaches a planner agent performing orchestration, which fans out to specialist agents — GraphRAG, accommodation, restaurant, experience and reasoning — each drawing on a tools column containing RAG search, ETL, web search and MCP tools, plus thinking tools. Those reach a knowledge store on the right and external systems including Googlemaps, Jira and Notion. A response generation agent returns the answer. Along the bottom runs a background operations strip: Redis cache, guardrails, and a human-in-the-loop step.
The planner orchestrates; the specialists never talk to the traveller directly. Guardrails and a human-in-the-loop step sit in the background strip.
50+ APIslive vendor integrations behind one conversational surface, with re-planning at conversation speed

Responsible by design

Nothing is silently dropped

The failure mode of a naive itinerary assistant is not a wrong answer. It is a quiet one. A change gets applied, three downstream bookings become invalid, and nobody finds out until a traveller arrives somewhere at the wrong time.

Holding the plan as an explicit constraint set is what prevents that. A proposed change is tested against the commitments it touches, and the conflicts it creates are surfaced and resolved rather than absorbed — so the response names what moved: the transport, the ski schedule, the table.

The same structure is what lets the cross-sell agent operate safely. It can only suggest what the constraint set will still satisfy, so revenue optimisation cannot quietly break the plan it is attached to.

Results

Four weeks to a working orchestra

  • Itinerary planning went from hours to minutes — 70% faster, because re-planning replaced rebuilding. This is the constraint scratchpad paying for itself.
  • Vendor coordination fully automated across 50+ vendors, through 50+ live API integrations — replacing what the board described as manual chaos.
  • A 60% efficiency gain on revenue, from cross-selling that the previous static-recommendation approach simply never surfaced.
  • Delivered as a 4-week MVP with a lean team, on an architecture built for city-wide operation from the start.
A four-column table comparing each metric before and after the system, with the measured impact. Planning time: from hours to minutes, 70 percent faster. Vendor coordination: from manual chaos to AI orchestrated, 100 percent automated. Cultural intelligence: from generic advice to local expert, producing authentic itineraries. Revenue optimisation: from missed opportunities to smart cross-selling, a 60 percent efficiency gain. Coordination spans more than 50 vendors through more than 50 live API integrations, delivered as a 4-week MVP.
The revenue row is the one that surprised the board — cross-selling opportunities a static recommender could never see.

The behaviour that demonstrates the difference is the ordinary one: asked to change a hotel while keeping a dinner reservation, the system updates the transport, adjusts the ski schedule and confirms the table — and mentions that the new hotel is five minutes closer to the slopes.

Beyond the numbers

What else changed

The multi-agent constraint optimisation built for tourism now underpins other work — supply chain logistics in real time, healthcare scheduling for dynamic patient care, and enterprise resource planning.

Multi-vendor coordination at scale turns out to be one problem wearing different clothes: a set of independent parties, a shared set of constraints, and a change that has to propagate correctly through both.

One note on the evidence: the two exchanges quoted above are illustrative of the system’s behaviour rather than transcripts. The four measures are as reported at the close of the engagement.

If a change in one system quietly breaks three others

That is a constraint problem wearing an integration problem’s clothes, and it is usually visible within a week of looking at the real dependencies.