不整虛的!SQL Agent從規劃、建設到落地的完整范例
目錄
一、背景介紹
二、方案演進與設計
三、落地效果與經驗總結
四、未來規劃
一、背景介紹
1、當前取數流程
圖片
當前公司內部數據分析流程如下:產運人員提出數據需求后,數據分析人員并不立即執行查詢,而是啟動一套標準排期流程。排期人員首先核驗現有數據表是否可滿足需求;若無法滿足,則需先編寫腳本清洗并重構數據表,再撰寫 SQL 完成查詢,最終將結果反饋產運。整個過程中,產運人員因不具備 SQL 能力,只能等待結果返回后方可推進后續工作。
2、當前存在的問題
圖片
基于上述流程,當前主要存在三大痛點:
1)查數難。業務場景復雜、數據體量大,底層表規模龐大;同時數據管理缺乏統一規范,臟數據泛濫,業務口徑多元且隨需求頻繁調整,導致定位準確數據耗時費力。
2)取數難。產運人員普遍缺乏 SQL 編寫與解讀能力,復雜查詢完全依賴數據分析人員;數分側亦需投入大量時間撰寫與調試高復雜度 SQL,且既有腳本復用、改造成本高,需求積壓現象突出。
3)使用難。用戶獲取 SQL 后,需經歷復制、粘貼、提交、等待等多環節,操作流程冗長;交互界面友好度不足,體驗欠佳,差錯率居高不下。
公司內部對 2024 年 Q4 取數情況統計顯示,人均跑數量、跑數失敗率及人均跑數時長均存在顯著優化空間。
3、提效空間
圖片
基于上述痛點,可將其歸集為兩大核心問題:一是數據本身質量與規范缺失,二是 SQL 生成流程效率低下。
由此,明確兩大提效空間:
- 數據治理:通過統一標準、清洗臟數據、固化口徑,解決“查數難”;
- 智能 SQL 生成:引入 Agent 自動撰寫與改寫 SQL,替代人工,降低“取數難”與“使用難”。
二、方案演進與設計
1、數據是基石
圖片
首效空間聚焦于數據治理。數據乃后續智能服務之基,唯規范、清潔、口徑一致,方能保障知識精度與模型輸出唯一性。若底表體量臃腫,既拖慢 SQL 執行,又徒增 AI 認知負荷;若指標口徑多元,同一問題即可能衍生多套結果, Agent 精準生成 SQL 更無從談起。因此,構建高質數據環境乃 SQL Agent 落地之前置條件。
該環節由機票業務團隊主導,已完成以下工作:
- 字段補全:對接產運,梳理缺失字段并補充完善;
- 底層基建:開展數據清洗、統一口徑,對缺失字段埋點回溯,構建輕量級 DWD 中間表,壓縮數據規模;
- 標準沉淀:建立企業級數據字典,實現指標口徑統一與元數據共享。
2、SQL Agent的初探
圖片
以下回顧 SQL Agent 的完整演進歷程。項目伊始經驗有限,團隊先行構建單體 Agent,注入必要知識庫后即開放生成能力。初版流程如下:
- 需求判定:用戶輸入問題后,Agent 首先識別其是否屬于 SQL 范疇;若否,則引導用戶重新表述。
- 場景定位:依據用戶所屬部門加載對應業務知識庫。
- 信息補全:評估問題完整度,必要時提示用戶補充關鍵信息。
- 表集遴選:交互結束后,Agent 篩選本次查詢所需表集并獲取元數據。
- 條件補全:調用工具獲取默認過濾條件。
- SQL 生成:整合上述信息生成最終 SQL 并返回用戶執行。
右側展示初版 Agent 的提示詞及運行效果,可見系統通過多工具協同完成信息采集與 SQL 輸出。
3、初次探索存在的問題
圖片
以下闡述 SQL Agent 的演進歷程。初始階段經驗有限,團隊先行搭建原型 Agent,并以必要知識庫灌注,使其具備生成 SQL 之能力。初代流程概覽如下:
- 需求識別:用戶提出問題后,Agent 先行判定其是否屬于 SQL 范疇;若否,則引導用戶重新表述。
- 場景定位:依據用戶所屬部門,加載對應業務知識庫。
- 信息補全:判斷問題完整度,如需補充,則提示用戶提供關鍵信息。
- 表集遴選:交互完畢,Agent 篩選本次查詢所需表集,并獲取其元數據。
- 條件補全:調用工具獲取默認過濾條件。
- SQL 生成:整合上述信息生成最終 SQL,并返回用戶執行。
右側展示了 Agent 的提示詞與運行效果,可見系統通過多工具協同完成信息采集與 SQL 輸出。
4、首次拆分-優化 Agent
圖片
以下為拆分后的流程說明。原單體 Agent 被解耦為「SQL 生成 Agent」與「SQL 優化 Agent」:前者保留需求識別、表集遴選及初版 SQL 編制職責;后者獨立承擔后置優化,包括格式修正、語法校驗、默認條件補全及內置邏輯注入。
流程保持不變,生成 Agent 完成初版 SQL 后直接交付優化 Agent;優化 Agent 完成上述檢查后輸出最終語句并返回用戶。右側給出優化 Agent 的提示詞與效果示例,可見其對原語句補充默認條件并完成格式統一。
該版本上線后,SQL 準確率顯著提升,但仍存在以下待解決問題。
5、存在的問題
圖片
這一版跑通了以后,我們交付給用戶進行試用,隨后暴露出哪些問題呢?
首先,雖然我們將語法檢查拆出來了,并且效果有提升,但是我們發現,生成的sql還是有小概率語法錯誤,
其次,有些工具可能一次調用并不能滿足我們的場景,并且任務復雜,沒有一個任務規劃。
基于此,我們決定引入react機制,讓ai先思考,然后在行動,觀察結果,根據結果在思考決定下一步行動,直到解決問題。
6、引入React機制
圖片
現將單體 Agent 拆分為「SQL 生成 Agent」與「SQL 優化 Agent」。生成 Agent 承繼原有需求識別、表集遴選、元數據獲取及初步 SQL 編寫功能;所有后置優化、格式修正、語法校驗、默認條件補全及內置邏輯注入等職責,則遷移至獨立優化 Agent。
流程如下:生成 Agent 完成 SQL 初稿后,直接交付優化 Agent;優化 Agent 對語句執行格式統一、語法檢查、條件補全及邏輯增強,最終輸出可執行 SQL 并返回用戶。右側列出優化 Agent 的提示詞及效果示例,可見其對原 SQL 補充默認條件并統一格式。
此版本上線后,SQL 準確率顯著提升,但仍存若干待解問題。
7、還有哪些問題?
圖片
引入 React 機制后,SQL 準確率再獲顯著提升。然而,隨著應用規模擴大,新的瓶頸逐漸暴露:
- 語義鴻溝:SQL 語義精確而自然語言含混,二者映射存在固有模糊性;
- 交互薄弱:Agent 缺乏主動澄清能力,無法就需求中的歧義項進行追問與確認;
- 入口疏離:用戶需跳轉至低頻使用平臺,拉長了操作鏈路。
鑒于生成 Agent 同時承擔“規則確認”與“SQL 生成”兩類異質認知任務,團隊再度拆分架構,并以公司 IM 工具為統一交互入口,使服務直達用戶常駐場景。
8、規則映射-引入問題細化Agent
圖片
本輪架構調整,新增“問題細化 Agent”,專司需求澄清與規則確認,原有生成 Agent 僅承擔 SQL 生成任務。其流程如下:
- 前置步驟保持不變:識別業務域并加載對應知識庫。
- 需求澄清:問題細化 Agent 對 SQL 關鍵要素逐一確認,包括分組字段、排序字段、指標口徑及同名異義項等,并將待確認信息回傳用戶。
- 用戶補充:用戶直接在飛書機器人界面完成補充或確認。
- 后續流轉:確認結果回傳系統,繼續執行 SQL 生成與優化流程。
入口已整體遷移至飛書機器人,用戶無需切換平臺即可完成交互。右側展示問題細化 Agent 的提示詞及運行示例:當用戶提出“查詢昨日總積分排名第二的代理商”時,Agent 主動追問時間范圍、分組維度等信息;用戶確認無誤后,流程即刻推進。
9、神奇的現象
圖片
該版本上線后,整體表現已趨穩定:同名異表、遺漏分組等差錯顯著減少。然而,伴隨使用深入,出現一類新型異常。
左側所示用例頗具代表性——用戶僅提出“查詢昨日積分第二名的代理商”。表面看需求明確、SQL 亦不復雜,但 Agent 在兩種等價卻結果迥異的語句間隨機切換,用戶最終所需為第一種,遂反饋“AI 答案不準,可否固化”。初期結論將其歸因于模型固有隨機性。隨著同類案例增加,團隊重新審視,并經差異比對與模型追問,確認根源在于用戶文本表述存在歧義。
10、增加改寫Agent
圖片
右側示例之“查詢昨日積分第二名的代理商”即含雙重歧義:其一指“昨日累計積分總量排名第二之代理商”,其二指“昨日單筆積分排名第二之代理商”。兩種語義對應之 SQL 截然不同,恰與前述兩條語句分別吻合。
識別該現象后,團隊在問題細化 Agent 之上增設“問題改寫 Agent”。其職責為:對用戶原始表述進行歧義檢測與改寫,將潛在多義表達(如占比之分子、分母篩選條件,或排名之聚合維度等)轉化為無歧義、唯一語義之需求文本,再交由問題細化 Agent 處理。
11、不斷成長與學習的 Agent
圖片
全部 Agent 業已完成拆解。針對用戶高頻重復或近似提問場景,并充分復用已沉淀的高質量 SQL 案例,團隊引入 RAG 機制,以提升生成穩定性并持續擴展知識邊界。
流程如下:用戶提出需求后,系統于 QDify 的 RAG 庫內檢索歷史問答對,按相似度取 Top-K 構成動態示例,并注入 Prompt;Agent 據此生成 SQL 并返回用戶。若結果正確,用戶可一鍵“點贊”,該問答對即時入庫,更新索引,供后續檢索復用。
12、知識庫設計
圖片
首版知識庫由兩類信息構成:
1)業務知識庫
- 指標名稱、字段中文名(業務語義)
- 字段定義:枚舉值列表或計算指標公式
- 來源表及其中文業務釋義
2)表結構信息
- 包含 ID、表名、表 ID 等元數據
右側示例如上。
圖片
首版表結構信息冗余字段較多,影響生成效率。第二版據此精簡:僅保留對 SQL 生成具直接助益之字段,并新增術語庫及默認補充條件,以提升知識密度與復用價值。右側截圖為示例。
圖片
第三版知識庫隨 SQL 復雜度提升而擴展:
新增多表關聯知識庫,沉淀主外鍵、關聯路徑及業務約束,使 Agent 可準確拼裝 JOIN 邏輯;
引入 SQL 模板層,針對高頻且結構固定的復雜查詢,允許用戶預置模板,Agent 生成時直接調用并做參數化改造,確保復雜場景快速、精準復用
13、整體結構一覽
圖片
14、迭代方案與運營機制
圖片
迭代方案與運營機制如下:
- Case 沉淀
產運人員通過人工錄入及日常高頻使用,持續積累高質量問答對與 SQL 示例,擴充知識庫。
- 自動評估
評估 Agent 定時對“九章”輸出進行批量質檢,生成準確率、錯誤類型及分布報告,推送至研發團隊。
- 分類處置
知識缺失:開發側將問題歸類并派發產運,產運于知識庫補錄術語、口徑或模板;
模型缺陷:開發側定位 Agent 邏輯或提示詞缺陷,完成修復后提交回歸測試。
- 驗證上線
修復版本經評估 Agent 二次驗證,指標達標后方可灰度并全量發布。
- 長期觀測
按周統計問題類型、數量及解決進度,形成運營看板,持續追蹤并驅動迭代。右側為周維度的運營示意。
三、落地效果與經驗總結
1、落地效果
圖片
目前已覆蓋機票業務域 80%,整體準確率穩定達 95%,成效顯著。大市場、大前端及火車票業務域正同步試點,后續將按計劃擴展至全業務域。
2、經驗總結
圖片
項目經驗總結如下:
- 指標先行:啟動前須明確定義驗證指標并構建驗證集;初始數據不足時,可從歷史日志回溯補充。
- 職責單一:Multi-Agent 架構契合“單一職責”原則,Agent 任務邊界越清晰,準確率越高。
- 體驗優化:AI 響應耗時較長,實時展示推理過程可顯著緩解等待焦慮,提升用戶滿意度。
- 上線即開始:與傳統工程不同,AI 產品上線后需持續收集反饋、快速迭代;應通過小范圍試點不斷暴露問題并優化。
- 模型為王:若多輪調優仍無改善,直接升級基座模型往往事半功倍。
- 可行性驗證:概念驗證階段須采用能力最強的模型,以確保結論具備可推廣性。
四、未來規劃
圖片
未來規劃如下:
- 可視化升級:當前 SQL Agent 結果僅返回原始 SQL,后續將接入圖表、儀表盤等可視化組件,實現結果友好渲染。
- 分析能力擴展:現階段僅支持單點 SQL 生成,后續將補充復雜業務分析功能,提供診斷、歸因及預測等高級能力。
- 用戶群體延伸:目前主要服務產運人員,下一步將推廣至技術團隊,覆蓋研發、測試等角色,實現全職能共享。
宋鑫:去哪兒旅行,基礎架構基礎平臺 ,高級Java開發工程師。
- 2022年加入去哪兒網,目前在基礎架構-基礎平臺團隊,主要參與負責測試環境管理、全鏈路壓測平臺。對AI Agent有深入了解,2025年開始探索AI Agent在企業中的應用與實踐。






























