
我們的 AI 訂了一家不存在的飯店——而數學早就算準它會如此
我第一次看著我們的旅遊助理確認一家根本不存在的飯店時,示範會場裡竟然響起了掌聲。
一名測試人員要求在哥斯大黎加找一間每晚低於 $200 的豪華生態小屋。模型回傳了「Tabacon Springs Eco-Lodge」——文案美輪美奐、有合理的每晚房價、還有一個確認畫面。讀起來賞心悅目。但它其實是把兩處真實的物業 Tabacon 與 Nayara Springs 融合成一個虛構地點。世界上根本沒有 Tabacon Springs Eco-Lodge。如果螢幕另一端是一個家庭,他們會飛到哥斯大黎加,抵達一個從未聽說過他們的櫃台。
那一刻,正是整件事的癥結所在——為什麼agentic AI 旅遊訂位比看起來要難得多,也是為什麼我想帶大家回顧一下我們在做對之前做錯了哪些事。簡短版本是:在旅遊業,流暢的答案和真實的答案是兩種不同的東西,而兩者之間的落差並不是可以靠反覆迭代消除的臭蟲。它是把機率模型拿去做確定性工作時的一種結構性本質。
一個對可訂房狀況瞎猜的真人旅行社員工會被開除。而一個瞎猜的 AI,卻因為語氣得體而受到稱讚——直到某位顧客站在機場為止。
董事會要的是「一套 AI 策略」。市場給他們的,卻是恐慌的理由。
讓我先鋪陳一下背景,因為如果你在旅遊管理公司或線上旅行社(OTA)負責產品,你此刻正身處其中。
在 2026 年 2 月到 4 月之間,旅遊業每一個主要的分銷層都推出或宣布了 agentic 訂位。Sabre、PayPal 與 Mindtrip 於 2 月 12 日宣布了業界首個端到端的 agentic 體驗——機票將於 2026 年第二季全面上線,運行在 Sabre 的 Mosaic API 上,涵蓋 420 多家航空公司與兩百萬家飯店,並疊加了 Mindtrip 650 萬個節點的知識庫。就在前一天,萬豪(Marriott)執行長證實 Google 的 AI Mode 將直接預訂萬豪,完全跳過 OTA 通路。Amadeus 與 Accenture 合作,把一個名為 Cytric Easy 的生成式助理放進了 Microsoft Teams。Navan 不斷公布的數字,讓每一家傳統 TMC 都顯得慢半拍。
於是財務長走進會議室,質問你為什麼不「像 Navan 那樣搞個 AI 出來」。而這裡就是我看著聰明的團隊掉進去的陷阱:他們把這個問題聽成了快點推出一個聊天機器人,然而真正的問題——唯一重要的問題——是我們要如何做到這件事,同時又不像加拿大航空那樣惹禍上身。
我接觸到的採購方,並不是在問要不要做 agentic 訂位。那個爭論已經結束了。他們問的是,如何在不把整家公司押注在單一平台庫存的情況下做到這件事,也不讓一台自信卻出錯的機器製造出必須由他們親自承擔責任的法律風險。
這個法律風險早已有了名字,而你的法務團隊心知肚明
如果你想理解為什麼旅遊業的法務會如此緊張,你只需要看一個案例。
2024 年 2 月 14 日,卑詩省民事解決法庭裁定加拿大航空須向 Jake Moffatt 賠付 $812.02,因為其聊天機器人捏造了一項與航空公司實際票價規則相牴觸的追溯性喪親優惠票價政策。加拿大航空的辯詞是,該聊天機器人實質上是一個獨立的法律實體,須為自己的言論負責。法庭以明白直接的語言駁回了這一點:一家公司要為其所有介面上出現的一切負責,無論這些文字是來自靜態網頁還是模型。
八百一十二美元只是一個進位誤差。但那個判例不是。此後撰寫的每一份旅遊科技法律備忘錄都引用了 Moffatt 案,而一項更近期的裁決雖然結論相反,卻絲毫沒有幫到部署方——2026 年 1 月,杭州一家法院在一名使用者試圖強制執行聊天機器人承諾時,縮限了一家 LLM供應商的責任。兩案合看,指向同一個令人不安的方向:注意義務落在旅遊品牌身上,而不是模型供應商身上。你無法把責任外包給 OpenAI。
而且這還不只是錢的問題。2025 年,遊客們跋涉到秘魯安地斯山脈 4,000 公尺的高處,尋找一個 AI 行程規劃工具憑空捏造出來的「Humantay 聖谷」。一對馬來西亞夫婦驅車 400 公里,去搭乘一個根本不存在的「Kuak Skyride」。塔斯馬尼亞一個只有 33 位居民的村莊,開始接到詢問它從未擁有過的溫泉的來電。ISO 31030——旅遊風險管理標準——將旅客安全訂為部署方的義務,而這些事件正是它存在的意義所在,就是為了防止它們發生。如今大約有四分之一的遊客使用 AI 來規劃行程,其波及範圍早已不再只是理論上的了。
我做錯的地方:我以為這是一個提示詞的問題

接下來是我不太光彩的部分。
老實說,我們的第一版建置就是一個好看的外殼。一個能幹的模型、一段設計精良的系統提示詞、對飯店目錄的檢索,以及一個乾淨俐落的對話介面。它示範起來很不錯——好到我一度說服自己,那些幻覺只是一個邊緣案例,只要靠更好的提示詞和更大的檢索索引就能擠掉。那段時間有位投資人差不多是這樣跟我說的:直接用 GPT 就好,別想太多。有大約一個月,我半信半疑地接受了。
Tabacon Springs 那一刻擊碎了那個信念,但真正讓我改變想法的,是坐下來把我一直逃避的那道算術算了一遍。
一次現實的機票預訂大約有十個連續步驟:解析意圖、搜尋、篩選、定價、佔位、檢查政策、蒐集乘客資料、移交付款、提交 PNR、出票。假設——已經算是慷慨的了——每一步都是一次機率模型呼叫,正確率為 90%。端到端算下來,你的成功率就是 0.9 的十次方。大約是 34%。
你無法靠提示詞擺脫複合式的隨機失效。誤差不會隨著你增加步驟而變小。它會相乘。
然後我找到了那個結束內部辯論的數字。俄亥俄州立大學 NLP 研究組的 TravelPlanner 基準測試衡量了 GPT-4 採用熱門的 ReAct 模式,完成現實中的多日行程的成功率為0.6%。不是 60%。是百分之零點六。一千趟行程裡有六趟成功。
有人拿著同一個基準測試裡「97%」的數字到處揮舞,我在這裡想講清楚,因為若挪用它,會讓我們顯得要不是不誠實、就是天真:那 97% 來自一個程式碼驅動的求解器,跑在一個靜態、凍結的知識庫上——OpenFlights 與 Yelp 的快照——而不是一個對著即時、變動中的庫存下單的模型。那不是一個生產環境的訂位數字,任何把它當成生產數字引用的人,都沒讀過那篇論文。至於一個由 LLM 驅動整個流程的誠實數字,就是那個很小的數字。
那就是轉捩點。問題從來都不在提示詞。問題在於我們一開始就把一個機率模型放進了控制流程裡。
你要如何阻止 AI 預訂一家根本不存在的飯店?

一旦我不再試圖讓模型更可靠,而是開始試圖把它從那些必須可靠的部分中移除,這個架構幾乎就自己設計好了。
我們最後定下的規則是:語言模型只做語言,其他什麼都不做。它抽取旅客的意圖,並用淺白的英語把結果摘要回覆。它不呼叫 GDS。它不檢查政策。它不碰付款。那每一項都是硬編碼的確定性邏輯。我們把編排運行為一個狀態機——LangGraph 是我們慣用的控制平面,不過我們對此並不執著;如果客戶站在 AWS Bedrock AgentCore 或 Vertex AI Agent Builder 上,我們就在那上面建置。
比框架更重要的細節,是型別化的狀態。我見過的大多數生產環境 agent 部署,都死於同一種悄無聲息的方式:狀態在步驟之間悄悄漂移,沒有人發現,於是 agent 自信地依據一幅被污染的世界圖景行事。一套嚴格的 Pydantic 型別化狀態綱要——每個欄位都經過宣告、在每次轉換時都被驗證——正是那個防止它發生、卻毫不起眼的東西。當一筆訂位必須橫跨多次提交時,saga 模式負責處理回滾:如果飯店在機票已出票之後才失敗,這張圖知道該如何作廢並回退,而不是把旅客留在訂了一半的狀態。
我們把它建成三項能力,而不是一個產品,因為並非每個買家都需要全套。有確定性訂位 agent——這是核心。有「驗證即服務」,一個獨立的 API,任何既有的旅遊 AI 團隊都能呼叫它來詢問「這家飯店是真的嗎、這個價格是最新的嗎、這個 PNR 真的確認了嗎?」——它是一道護欄,擋在你早已推出的外殼前面,當你的督導委員會裡有法務提到 Moffatt 案時,這是遠比把整套東西砍掉重練便宜得多的解法。還有一個政策與合規層,它把企業差旅政策或 OTA 的票價規則編譯成強制執行的約束條件、為 ISO 31030 的注意義務加上檢測儀表,並承載歐盟 AI 法案的透明度要求。我們把這三者如何彼此契合的過程寫在了這項工作的解決方案頁面上。
政策的強制執行必須是程式碼,不能是提示詞。提示詞會在不同模型版本之間漂移。而商業規則不容許這樣。
那個沒人會放在募資簡報上的數字
如果我能讓每個旅遊團隊在推出之前徹底內化一件事,那不會是幻覺。而會是搜尋的經濟成本。
GDS 供應商不是按每筆訂位收費。他們按每次航段搜尋收費,通常是 $3 到 $3.50,外加約 10% 的佣金,而且他們會執行 look-to-book 比率,對投機式的查詢加以懲罰。漢莎集團再次調漲了它的 GDS 訂位費,自 2026 年 1 月 1 日起生效,橫跨 Amadeus、Sabre 與 Travelport。現在想像一個 agent,因為模型決定要做得徹底,於是「熱心地」在每一輪對話中跑四次探索性搜尋。以 OTA 那 3% 到 5% 的商戶利潤率來算,這個 agent 會在一個從未真正訂成任何東西的聊天機器人上,燒光整季的利潤。
這是我坐著看過的每一場 agentic 旅遊示範中最被忽略的一條,也正是為什麼那些示範一接觸到生產環境就撐不住。一個確定性 agent 會為搜尋設上限並加以快取,因為決定一次搜尋是否值得它那筆費用的是編排層——而不是模型的心情。
而對一家 TMC 而言,這筆經濟帳直接繫著財務長真正在追的那個數字。這套建置撼動的指標是無接觸訂位比率,以及躲在它背後的離線佇列處理時間。每一筆幻覺的、或無法服務的訂位,都是一張退回給真人客服的工單——當會議室裡有人說「像 Navan 那樣搞個 AI」時,被指向的正是這筆成本。
為什麼你不能乾脆直接在 Amadeus API 上建置?
有幾個現實是我付了昂貴代價才學會的,如今我會在第一次探索性通話時就提出來,好讓沒有人到了第三個月才被嚇一跳。
如果你是一家 TMC,打算「乾脆直接在 Amadeus API 上建置」,先確認一下你拿到的是哪一把金鑰。Amadeus 的自助生產(Self-Service Production)層級明確地排除了Flight Create Orders 端點——按他們自己的說法,那是設計給沒有旅行社認證的企業使用的。要真正開出訂單,你需要企業級(Enterprise)。我親眼看過這一個單項就把一份路線圖整整推遲了一季。
接著是每個人都當成已解決、實際上卻沒有的那道接縫:NDC 對上 GDS。新分銷能力(New Distribution Capability)對於最初的報價與下單很棒,但售後服務——換票、退款、不正常運作的重新訂位——即便原本的銷售是走 NDC,仍然運行在 GDS 基礎設施上。一個生產環境的 agent 需要兩條管道,而不是在兩者之間二選一。而 NDC 本身也不是單一的東西:透過 Verteil 或 Duffel 這類匯集商進行的 Level 4 訂單管理,是一種和大多數外殼止步的 Level 3 購物截然不同的整合。IROPS 才是這道落差變得真切的地方——單單一場天氣事件,就能讓成飛機成飛機的旅客滯留,每一位的重新訂位成本都在 $500 到 $2,000 之間。一個能搜尋卻不能服務的 agent,只是個玩具。
而如果你的設計是讓 agent 直接出票,而不是路由到一個主機系統,那你現在就進入了認證的領域——美國的 ARC,在前置條件備妥後大約需要 25 天,或是完整的 IATA 認證,可能需要六到十二個月。這裡還有一個付款陷阱:對話介面一旦蒐集了卡片資料,你就把整套技術堆疊拉進了 PCI 的範疇。如今的 agentic 商務仍然會把實際的授權交給一個真人付款步驟,透過 VGS 或 Checkout.com 這類供應商進行代碼化(tokenization),讓卡片資料留在你的環境之外。
這些沒有一項會出現在主題演講裡。它們全部都在生產環境的事故報告裡。
「為什麼不乾脆買 Sabre 的、或 Cytric、或 Navan?」
人們一直不斷這樣問我,而我誠實的回答讓他們吃驚:有時候你確實應該買。
如果你是一家樂於在 Sabre 的軌道上分銷 Sabre 庫存的休閒旅遊 OTA,那麼 Sabre–PayPal–Mindtrip 這套堆疊是一筆合理的採購——前提是你已經接受了被 Sabre 鎖定的供給,以及缺少企業政策層或 ISO 31030 檢測儀表這件事。如果你是一家早已使用 Cytric 與 Concur、以 Microsoft 為原生環境的企業,那麼 Teams 裡的 Cytric Easy 大概很適合你,我也會直接這樣告訴你。如果你想徹底拆掉你的 TMC,改跑一個 AI 原生平台,那麼 Navan 是實至名歸地掙來了它的數字——73% 的無接觸費用報銷、政策違規率從 35% 降到 5% 以下——我不會假裝我們在「當 Navan」這件事上贏過他們。
我們契合的是一個更狹窄、更具體的案例:你想保留你既有的 GDS 合約與你的 TMC 關係,並在其上加上一層智慧,供應商中立,而不至於淪為你所購買的那個 agent 的分銷商。那就是這套建置。至於我做不到的部分,我會明說出來——我們不是 IATA/ARC 認證的出票代理,所以出票會走你的主機;我們不擁有你的 GDS 商業協議;而且我們無法修正一份含糊不清的企業差旅政策,儘管我們會在探索階段協助你把它收緊,因為一份含糊的政策無論程式碼寫得多好,都會造出一個含糊的 agent。
那道即將關閉窗口的截止期限
還有一件事關乎時鐘。歐盟 AI 法案對部署方的透明度義務將於 2026 年 8 月 2 日生效,而高風險分類指引則早在 2026 年 2 月 2 日就已落地。如果你的 agent 會與歐盟消費者對話,揭露就不是選配的,而「我們之後再加」是一項等著發生的合規稽核缺失。我們從一開始就把第 50 條的揭露介面,以及一條記錄並解釋(log-and-explain)的稽核軌跡建了進去,因為要在一個黑箱外殼上事後加裝透明度,遠比一開始就為它而設計要痛苦得多。
所以,這就是我在經歷這一切之後所落腳的地方。流暢如今已是免費的——市場上每一個外殼聽起來都很有自信,而旅客光憑閱讀,分辨不出一個真實的確認和一個幻覺出來的確認有什麼不同。旅客最終能分辨的,是當他們抵達時,那個房間到底在不在櫃台。那道落差——介於一句讀起來像真的句子,和一個真的是真的的 PNR 之間——並不會因為模型變大了而閉合。它之所以閉合,是因為有人在推出之前就決定:模型永遠不會是那個回答「這是真的嗎?」的東西。負責回答它的那個確定性層毫不起眼、示範起來也沒那麼漂亮,而它就是整份工作的全部。
Tabacon Springs Eco-Lodge 至今仍不是一個真實的地方。唯一重要的問題是,在你的顧客站進大廳之前,你的系統知不知道這件事。如果你想看看我們是怎麼把我們的系統建成能夠知道這件事的,完整的拆解就在這裡。


