<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dusan</title>
    <description>The latest articles on DEV Community by Dusan (@dusan_telivity).</description>
    <link>https://dev.to/dusan_telivity</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3871684%2Ff1c1f8e5-6f30-432e-a50e-5fcb3233ef0d.jpg</url>
      <title>DEV Community: Dusan</title>
      <link>https://dev.to/dusan_telivity</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dusan_telivity"/>
    <language>en</language>
    <item>
      <title>70 AI Agents for Airline and Hotel Booking — Open Source, Apache 2.0</title>
      <dc:creator>Dusan</dc:creator>
      <pubDate>Fri, 10 Apr 2026 11:59:09 +0000</pubDate>
      <link>https://dev.to/dusan_telivity/70-ai-agents-for-airline-and-hotel-booking-open-source-apache-20-3h34</link>
      <guid>https://dev.to/dusan_telivity/70-ai-agents-for-airline-and-hotel-booking-open-source-apache-20-3h34</guid>
      <description>&lt;p&gt;Every airline, hotel chain, and travel management company is trying to build AI that books flights and rooms. They're all hitting the same wall: generic AI doesn't know how travel works.&lt;/p&gt;

&lt;p&gt;An LLM can parse "book me a flight to Amsterdam next Tuesday" just fine. But it has no idea what happens next. It doesn't know what a fare basis means. It doesn't know that an ADM from Lufthansa for a segment mismatch costs $250. It doesn't know that BSP HOT file reconciliation runs biweekly and if the numbers don't match, the agency eats the difference.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is OTAIP?
&lt;/h2&gt;

&lt;p&gt;OTAIP (Open Travel AI Platform) is an open core AI agent platform for travel operations. 70 agents organized across 10 stages of the travel transaction lifecycle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stage 0 — Reference Data&lt;/strong&gt; (144 tests): Airport codes, airline codes, fare basis parsing, class of service, currency and tax codes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 1 — Search &amp;amp; Shop&lt;/strong&gt; (142 tests): Availability, schedules, connection building, fare shopping, offer evaluation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 2 — Select &amp;amp; Price&lt;/strong&gt; (90 tests): Fare rules, fare construction, tax calculation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 3 — Book &amp;amp; Order&lt;/strong&gt; (189 tests): GDS/NDC routing, PNR building, PNR validation, queue management, API abstraction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 4 — Ticket &amp;amp; Fulfill&lt;/strong&gt; (160 tests): Ticket issuance, EMD management, void processing, itinerary delivery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 5 — Change &amp;amp; Exchange&lt;/strong&gt; (104 tests): Change management, exchange/reissue, involuntary rebooking (IRROPS).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 6 — Refund &amp;amp; ADM&lt;/strong&gt; (83 tests): Refund processing and ADM prevention.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 7 — BSP/ARC Settlement&lt;/strong&gt; (73 tests): Financial reconciliation between airlines and agencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 8 — TMC &amp;amp; Agency Ops&lt;/strong&gt; (101 tests): Traveler profiles, corporate accounts, mid-office automation, duty of care.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 9 — Platform &amp;amp; Integration&lt;/strong&gt; (97 tests): Orchestrator, knowledge retrieval, monitoring, audit and compliance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total: 2,737 tests across 70 agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Key Architecture: LLM Parses Intent, Agents Decide
&lt;/h2&gt;

&lt;p&gt;The LLM's job is narrow: understand what the passenger wants.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Book me LHR to AMS on April 14th. Client meeting at 11am — need to land with 45 min to spare. Time matters more than saving £30."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From there, agents take over deterministically. They search NDC inventory. They evaluate 124 offers against the constraints. They eliminate 95 that arrive too late. They score the remaining 29 on timing, price, and connection quality. They select, price, and book.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The LLM never picks the flight. Never touches money.&lt;/strong&gt; Agents do — with rules, not vibes.&lt;/p&gt;

&lt;p&gt;Result: &lt;code&gt;PNR YB6D73 | LH0923 | LHR → FRA → AMS | $427.46 USD&lt;/code&gt; — first confirmed LLM-to-booking on NDC inventory.&lt;/p&gt;

&lt;h2&gt;
  
  
  6 Supplier Adapters
&lt;/h2&gt;

&lt;p&gt;OTAIP connects to real booking systems:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Adapter&lt;/th&gt;
&lt;th&gt;Tests&lt;/th&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Amadeus&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;OAuth2, Self-Service API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sabre&lt;/td&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;Bargain Finder Max v5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Navitaire&lt;/td&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;dotREZ Digital API v4.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TripPro/Mondee&lt;/td&gt;
&lt;td&gt;73&lt;/td&gt;
&lt;td&gt;REST + SOAP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Duffel&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;td&gt;NDC REST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HAIP&lt;/td&gt;
&lt;td&gt;58&lt;/td&gt;
&lt;td&gt;Hotel PMS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Users bring their own API credentials. OTAIP is the technology layer, not the commercial relationship.&lt;/p&gt;

&lt;h2&gt;
  
  
  Also: HAIP — Open Source Hotel PMS
&lt;/h2&gt;

&lt;p&gt;We also open sourced &lt;strong&gt;HAIP&lt;/strong&gt;, an AI-powered hotel property management system built on the same architecture.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/telivity-otaip/haip" rel="noopener noreferrer"&gt;github.com/telivity-otaip/haip&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;p&gt;TypeScript, Node.js, pnpm, vitest. Apache 2.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OTAIP&lt;/strong&gt;: &lt;a href="https://github.com/telivity-otaip/otaip" rel="noopener noreferrer"&gt;github.com/telivity-otaip/otaip&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HAIP&lt;/strong&gt;: &lt;a href="https://github.com/telivity-otaip/haip" rel="noopener noreferrer"&gt;github.com/telivity-otaip/haip&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commercial layer&lt;/strong&gt;: &lt;a href="https://telivity.app" rel="noopener noreferrer"&gt;telivity.app&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building AI for travel — or any domain-specific AI agent system — the patterns here (LLM for intent, deterministic agents for execution, domain-encoded logic) apply beyond airlines. Would love to hear your thoughts.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>typescript</category>
      <category>travel</category>
    </item>
  </channel>
</rss>
