-
Notifications
You must be signed in to change notification settings - Fork 11
Agents
Dusan Milicevic edited this page Apr 24, 2026
·
3 revisions
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.
| 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. | — |
| 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. |
— |
| 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. |
— |
| 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. |
— |
| 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. | ✓ |
| 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). | — |
| 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. |
— |
| 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. | — |
| 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. | — |
| 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. | — |
| 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.
| 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. | — |
7 + 8 + 1 + 7 + 8 + 5 + 6 + 6 + 6 + 5 + 9 + 7 = 75 agents across 12 stages, 14 contracted.
- Pipeline Contract — how contracted agents enforce schemas, semantics, and confidence floors
- Architecture — where agents sit in the layered view
-
Offers and Orders — the
BookingReferencebridge used by Stage 3