Skip to content
Dusan Milicevic edited this page Apr 24, 2026 · 3 revisions

Agents

OTAIP ships 75 agents across 12 stages. 14 have pipeline contracts today (marked ✓); the rest are implemented without a contract (—) or are placeholders pending domain input.

Counts are derived from source by pnpm run count:agents — the CLI (otaip agents) and this page read the same discovery walk. Descriptions are drawn from each agent's JSDoc.

Stage 0 — Reference Data (7 agents)

ID Class Description Contract
0.1 AirportCodeResolver Resolves IATA/ICAO airport and city codes to canonical airport records with multi-airport city awareness and historical code handling.
0.2 AirlineCodeMapper Resolves IATA/ICAO airline designator codes to canonical airline records with alliance membership and codeshare partner networks.
0.3 FareBasisDecoder Decodes ATPCO fare basis codes into cabin class, fare restrictions, advance purchase, and related components.
0.4 ClassOfServiceMapper Maps single-letter booking class codes to cabin class, fare family, upgrade eligibility, and loyalty earning rates.
0.5 EquipmentTypeResolver Resolves IATA aircraft equipment codes to structured equipment data.
0.6 CurrencyTaxResolver Resolves ISO 4217 currency codes and IATA tax/surcharge codes used in airline pricing and ticketing.
0.7 CountryRegulatoryResolver APIS requirements, visa requirements, restriction levels. Static dataset — not legal travel advice.

Stage 1 — Search & Shop (8 agents)

ID Class Description Contract
1.1 AvailabilitySearch Queries distribution adapters in parallel; normalizes, deduplicates, filters, and sorts flight availability offers.
1.2 ScheduleLookup Flight schedule lookup with SSIM operating day parsing, codeshare detection, and connection discovery.
1.3 ConnectionBuilder Validates connections against MCT rules, scores connection quality, and checks interline agreements.
1.4 FareShopping Multi-source fare comparison with fare basis decoding, class mapping, branded fare family grouping, and passenger-type pricing.
1.5 AncillaryShoppingAgent Ancillary shopping across adapter(s) via an injectable AncillaryAdapter.
1.6 MultiSourceAggregatorAgent Aggregates flight search results from multiple sources with normalization and dedup.
1.7 HotelCarSearchAgent Aggregator over injectable hotel/car adapters — parallel fan-out with per-adapter timeouts, filters, and sort. Partial-failure tolerant.
1.8 AITravelAdvisorAgent Rule-based recommender. Orchestrates AvailabilitySearch + FareShopping, scores offers on price / schedule / airline / connections with business/leisure/default weight profiles.

Stage 1.9 — Offer Evaluation (1 agent, in @otaip/core)

ID Class Description Contract
1.9 OfferEvaluatorAgent Stateless, deterministic scoring engine. Takes raw flight offers and structured traveler constraints, applies multi-dimensional scoring. Lives in @otaip/core (not @otaip/agents-search) so downstream packages can depend on it without pulling the full search stack.

Stage 2 — Select & Price (7 agents)

ID Class Description Contract
2.1 FareRuleAgent Parses ATPCO fare rules (Categories 1–20) into structured format.
2.2 FareConstruction NUC × ROE fare construction with EMS mileage surcharge (5%/5%, max 25% — IATA standard) and IATA rounding. Returns DomainInputRequired when ROE for the selling currency is absent — no silent fallback to 1.0. HIP/BHC checks report missing_inputs when intermediate-point fare lookup data is not provided.
2.3 TaxCalculation Per-segment tax computation with exemption engine; currency conversion.
2.4 OfferBuilderAgent Assembles priced offers with TTL (GDS 30s, NDC 15s, direct 20s) and optional persistence adapter.
2.5 CorporatePolicyValidationAgent Validates offers against corporate travel policy (cabin rank, advance-purchase, preferred suppliers).
2.6 DynamicPricingAgent Placeholder. Throws UnimplementedDomainInputError from @otaip/core. Needs revenue-management integration (per-carrier RBD inventory + bid-price feed).
2.7 RevenueManagementAgent Placeholder. Throws UnimplementedDomainInputError. Needs the same RM integration as 2.6.

Stage 3 — Book & Order (8 agents)

ID Class Description Contract
3.1 GdsNdcRouter Per-transaction routing — the transaction_type input (shopping | booking | ticketing | servicing | group | corporate) selects channel. Built-in carrier defaults cover shopping/booking; other transaction types require caller-supplied capability_overrides or the result carries domain_input_required: true with missing_inputs.
3.2 PnrBuilder Constructs GDS-ready PNR commands from normalized booking data. Supports Amadeus, Sabre, and Travelport syntax.
3.3 PnrValidation Pre-ticketing validation — 13 checks to catch errors before ADMs.
3.4 QueueManagement GDS queue monitoring and processing: priority assignment, categorization, action routing, queue command generation.
3.5 ApiAbstraction Universal HTTP client with circuit breaker, retry, per-attempt rate-limit counting, timeout, and IATA error normalization.
3.6 OrderManagement AIDM 24.1 order lifecycle: create, modify, cancel, retrieve, list, with status-transition validation.
3.7 PaymentProcessing PCI-safe payment instruction builder and transaction recorder. Validates forms of payment and builds GDS FOP strings.
3.8 PnrRetrieval Retrieves an existing PNR/booking by record locator across distribution adapters. Read-only.

Stage 4 — Ticket & Fulfill (5 agents)

ID Class Description Contract
4.1 TicketIssuance ETR generation with conjunction ticket support, BSP reporting, and commission handling.
4.2 EmdManagement EMD-A (associated) and EMD-S (standalone) issuance, RFIC/RFISC handling, coupon lifecycle.
4.3 VoidAgent Ticket/EMD void processing — coupon status check, carrier void window, BSP/ARC cut-off validation.
4.4 ItineraryDelivery Multi-channel itinerary rendering — Email (HTML + plain), SMS, WhatsApp. Carrier-neutral templates.
4.5 DocumentVerification APIS validation, passport validity, visa check (delegates to Agent 0.7).

Stage 5 — Change & Exchange (6 agents)

ID Class Description Contract
5.1 ChangeManagement ATPCO Category 31 voluntary change assessment. Reads cat31_rules from input and applies them as filed. When rules are absent: voluntary change = ATPCO default (no charge); involuntary = fee waived. No invented $200 default.
5.2 ExchangeReissue Ticket reissue with residual value, tax carryforward, GDS exchange command stubs, conjunction ticket handling.
5.3 InvoluntaryRebook Carrier-initiated schedule change handling. Caller supplies thresholds.time_change_minutes (no hardcoded IRROP definition). Regulatory entitlements via @otaip/core applyEU261() (EC 261/2004 published constants) when distance/delay/circumstances inputs are provided; missing_inputs listed otherwise.
5.4 DisruptionResponseAgent Placeholder. Throws UnimplementedDomainInputError — needs disruption priority rules and carrier-specific response procedures.
5.5 SelfServiceRebookingAgent Rebooking orchestrator over AvailabilitySearch + ChangeManagement. Ranks priced alternatives by changeFee + fareDifference + taxDifference. Involuntary reasons waive the change fee.
5.6 WaitlistManagementAgent Stateful in-memory queue (reference implementation, not durable). Operations: addEntry, clear, queryStatus, expire. Priority = status tier + fare class type + recency bonus.

Stage 6 — Refund & Settlement (6 agents)

ID Class Description Contract
6.1 RefundProcessing ATPCO Category 33 refund processing. Reads cat33_rules from input. When rules absent: voluntary refund = no penalty; involuntary = full refund. Commission recall, BSP/ARC reporting, conjunction handling.
6.2 ADMPrevention Pre-ticketing audit — 9 checks covering fare integrity, segment validity, and compliance to prevent Agency Debit Memos.
6.3 ADMACMProcessingAgent ADM receipt, assessment, dispute, and ACM application workflows.
6.4 CustomerCommunicationAgent Multi-channel customer notifications for disruptions, refunds, and operational changes.
6.5 FeedbackComplaintAgent Complaint submission, compensation calculation via @otaip/core applyEU261() and applyUsDotIdb() (14 CFR §250.5 denied-boarding, current caps $1,075 / $2,150), case management, DOT record generation.
6.6 LoyaltyMileageAgent Mileage accrual calculation and redemption eligibility.

Stage 7 — BSP/ARC Reconciliation (6 agents)

ID Class Description Contract
7.1 BSPReconciliation Matches agency booking records against BSP HOT files; validates commission; identifies discrepancies.
7.2 ARCReconciliation Processes ARC IAR weekly billing, validates commission rates against airline contracts, flags pricing/commission errors.
7.3 CommissionManagementAgent Commission agreement modeling, rate matching by fare basis, and incentive calculation.
7.4 InterlineSettlementAgent Placeholder. Throws UnimplementedDomainInputError — needs interline prorate methodology and IATA SIS billing rules.
7.5 FinancialReportingAgent Aggregates financial records into reports (revenue by route/agent/client, margin analysis, cost tracking, commission summary, spend by supplier).
7.6 RevenueAccountingAgent Coupon lift recording, revenue recognition, uplift and deferred-revenue reporting.

Stage 8 — TMC & Agency (5 agents)

ID Class Description Contract
8.1 TravelerProfileAgent Stores/retrieves traveler preferences, documents, loyalty programs. Applies profiles to PNRs via SSR injection.
8.2 CorporateAccountAgent Corporate travel policy enforcement, negotiated fares, booking validation.
8.3 MidOfficeAgent PNR quality checks, ticketing deadline monitoring, duplicate/passive detection.
8.4 ReportingAgent Aggregates transaction data into reports. All math uses decimal.js.
8.5 DutyCareAgent Locates travelers in active itineraries during disruptions.

Stage 9 — Platform (9 agents)

ID Class Description Contract
9.1 OrchestratorAgent Coordinates multi-agent workflows as a single callable pipeline.
9.2 KnowledgeRetrieval RAG over the travel knowledge base with BM25 scoring and optional hybrid scoring via an injectable EmbeddingProvider.
9.3 MonitoringAlerting Tracks agent health, API latency, error rates, SLA compliance.
9.4 AuditCompliance Audit trail, PII redaction, GDPR/PCI/IATA compliance.
9.5 PluginManager Manages third-party agent extensions and capability discovery.
9.6 PerformanceAudit Aggregates agent execution metrics from the EventStore in a time window and identifies degraded agents. Read-only.
9.7 RoutingAudit Analyses routing decisions and outcomes from the EventStore in a time window. Read-only.
9.8 Recommendation Takes performance and routing audit reports and produces deterministic recommendations. Read-only.
9.9 Alert Queries EventStore events, computes metrics against configurable thresholds, and produces alerts. Read-only.

PlatformHealthAggregator lives in packages/agents-platform/src/health/ but is a utility class (it does not implement the Agent interface) and is not counted above.

Stage 20 — Lodging (7 agents)

ID Class Description Contract
20.1 HotelSearchAggregatorAgent Multi-source hotel availability across GDS hotel segments, direct APIs, and channel-manager feeds.
20.2 PropertyDeduplicationAgent Identifies duplicate properties across sources and merges them into canonical records with best content.
20.3 ContentNormalizationAgent Standardizes hotel content (room types, amenity names, descriptions, photos) into a consistent OTAIP taxonomy.
20.4 RateComparisonAgent Compares rates for the same canonical property across sources; best rate per rate type; detects rate-parity violations.
20.5 HotelBookingAgent Executes hotel bookings from rate verification through confirmation; handles the three-layer confirmation code system.
20.6 HotelModificationAgent Post-booking changes: free modifications, date changes (cancel/rebook), cancellations with penalty calculation, no-show processing.
20.7 ConfirmationVerificationAgent Cross-checks CRS ↔ PMS booking data to detect discrepancies before guest arrival.

Totals

7 + 8 + 1 + 7 + 8 + 5 + 6 + 6 + 6 + 5 + 9 + 7 = 75 agents across 12 stages, 14 contracted.

See also