技術

爲什麼函數調用正在取代提示工程

函數調用之所以正在取代提示工程、成爲企業 AI 準確性的首要槓桿,是因爲它修好了提示工程修不了的那個失效模式:一個被問到自己沒有的事實的模型,會編出一個可信的事實。提示工程決定答案表達得多好;工具使用決定它是否爲真。當組織從演示走向生產,這個區分就不再是學術性的——董事會材料裏一個文采斐然的錯誤數字,代價高於一次簡短的拒答;而最早明白這一點的團隊,正是那些系統活過了規模化的團隊。

這並不是說提示不再重要。它依然一如既往地重要,只是它不再是槓桿所在。槓桿轉移到了工具、schema 與護欄的設計上——它們決定模型能夠觸達什麼。本文解釋原因、實踐中的變化,以及你該怎麼做。

什麼是函數調用?

函數調用——也稱工具使用——是這樣一種機制:語言模型不直接作答,而是發出一個結構化請求,調用一個帶類型參數的具名操作。應用程序執行它、返回結果,模型再把結果納入自己的答案。

一個具體例子。用戶問:「我們北區上季度的毛利率是多少,和計劃相比如何?」一個僅靠提示的模型會產出一段文字;一個帶工具的模型則會發出類似這樣的請求:

  • get_metric(metric="gross_margin", region="north", period="2026Q1")
  • get_plan_value(metric="gross_margin", region="north", period="2026Q1")

應用程序針對受治理的系統執行這兩條調用、返回數字,模型再寫出對比。差別不是文體上的:在第二種情況下,答案裏的每個數字都來自一個記錄系統,並且可以追溯回去。

讓這套機制運轉起來需要三個組件:一個工具註冊表,描述每個函數、參數與語義;一份參數契約,通常是帶類型、枚舉與必填標記的 JSON schema;以及一條執行與返回路徑,以調用者的權限執行該調用,並以模型可用的形態返回結果。

爲什麼提示會撞上天花板?

因爲有四重限制是結構性的,不是靠更好的措辭能修好的。

不確定時的虛構。一個缺少某事實的模型照樣會把模式補全。「只使用所提供的數據」這類指令能減少但不能消除這一點,因爲模型仍是在按合理性而非按檢索結果來生成 token。

算術與聚合。語言模型是在近似地做算術。讓它在上下文裏把三十個數字相加,等於接受一個任何財務部門都無法容忍的錯誤率。正確的架構是:讓模型請求一次計算,由確定性系統來執行。

新鮮度。訓練截止之後發生的一切,或者今天早上剛變的一切,都在模型知識之外。提示夠不到它;工具調用可以。

約束坍塌。隨着同時施加的規則增多,指令遵循能力會退化。團隊的反應是把提示寫得更長,這隻有邊際效果,還增加了延遲與成本。替代方案——把約束表達爲運行時強制執行的帶類型 schema——之所以有效,是因爲執行是機械的,而不是統計性的。

簡而言之:提示控制的是行爲,而行爲從來不是真正的約束。準確性、新鮮度與可審計性纔是。

轉向工具之後實際發生了什麼變化?

五重轉變,而第三重是組織最容易低估的。

1. 從指令轉向接口。你不再用散文描述想要什麼,而是定義一個帶類型參數的操作。一個命名良好、描述精確的函數,比三段指令更可靠地教會模型,因爲 schema 從機械層面約束了輸出空間。

2. 從希望轉向強制。約束從「請返回合法 JSON」變成運行時會校驗並拒絕的 schema。一次帶越界枚舉值的工具調用,要麼校驗失敗並帶着錯誤重試,要麼根本不執行。在說服是概率性的地方,執行是確定性的。

3. 工作量轉移到數據層。一旦模型能調用工具,答案質量的上界就由底層系統的質量與可訪問性決定。大多數組織在幾週內就會發現這一點:模型沒問題,問題在於數據沒接上、沒定義、或不是當前的。這正是讓團隊措手不及的轉變,因爲它在預算剛剛花完的那個時點,把一個 AI 問題變成了一個數據工程問題。

4. 從答案轉向出處。一個以工具爲落地依據的答案裏,每個數字都能引用系統、查詢與時間戳。這正是讓輸出在 CFO、監管方或法庭面前站得住腳的東西,而單靠提示永遠得不到它。

5. 從單次調用轉向循環。有了工具,模型就能規劃:調用、觀察、調整、重試。這正是智能體成爲可能的原因,也正是"工具設計而非提示設計"決定了這個循環表現好壞的原因。

如何設計出模型會正確使用的工具?

工具設計如今是核心技能,而且它有具體的規則。

按業務意圖命名操作,而不是按數據庫對象命名。get_gross_margin 優於 query_fact_table。模型是靠用戶問題與工具描述之間的語義匹配來選擇工具的,因此描述本身就是接口。

在描述裏寫明"何時用"與"何時不用"。「用於按區域與期間查詢實際毛利率。不要用於預測值或計劃值——那請用 get_plan_value。」負向指引可以攔下最常見的選擇錯誤。

激進地約束參數。對類別取值使用枚舉,並顯式聲明類型、必填標記與取值範圍。你編碼進 schema 的每一條約束,都是模型不必去猜的一條,也是運行時可以校驗的一條。

以模型能夠推理的形態返回結果。包含單位、幣種、期間標籤與一個狀態字段。一個只返回裸數字的工具,是在邀請模型自行補充上下文——錯誤正是從這裏進入的。

讓錯誤信息具有可操作性。當調用失敗時,返回一個模型可以採取行動的結構化錯誤:「區域 north 無法識別;有效取值爲 north、south、east、west。」這會把失敗變成可恢復的一步,而不是死衚衕。

把工具數量控制在可管理範圍。幾十個重疊的工具會降低選擇準確率。請把相關操作分組,並按領域路由到相關子集,而不是一次把全部工具都擺出來。

工具需要哪些治理?

工具是可被執行的能力,這使它成爲一個安全邊界,而不是一項便利。五項控制不容妥協。

  • 在執行處強制授權。工具以調用用戶的權限運行,且在服務端解析。絕不要相信模型關於「誰在提問」的陳述。一個返回了他人數據行的工具,就是一場用自然語言交付的數據泄露。
  • 對有副作用的動作使用白名單。讀與寫是不同風險等級。任何會創建、更新或發送的操作都應單獨授權,高價值動作還應要求顯式人工審批。
  • 成本與迭代天花板。對每次請求的調用數、每個任務的循環次數、以及每次運行的支出設定硬上限。一個循環失控的智能體,可能在失敗之前燒掉一大筆預算。
  • 對每次調用做審計日誌。誰、什麼工具、什麼參數、什麼結果、什麼時間。這既是事件響應的證據基礎,也是合規的證據基礎。
  • 獨立於模型做輸入校驗。在執行前,於工具邊界按 schema 校驗參數——正如你會校驗任何不可信 API 輸入那樣,因爲它本來就是。

提示工程還重要嗎?

重要,而且這個分工是穩定的,不是過渡性的。

提示依然擁有「理解」:模型如何拆解問題、以什麼順序提問、如何處理歧義、如何呈現結果、使用什麼語氣,以及何時拒絕作答。這些都是行爲屬性,沒有哪個 schema 能定義它們。

提示依然擁有「拒答行爲」:「數據未覆蓋此項」而不是臨場發揮,這是一條提示層面的控制,而且它是你會寫下的價值最高的指令之一。

提示依然擁有「錯誤恢復」:模型在一次工具調用失敗後做什麼——帶着修正後的參數重試、換一個工具,還是升級給人工——是在系統指令裏規定的,而它決定了這個循環能否優雅降級。

變化的是投入比例。在一個成熟系統裏,大部分工程時間花在工具、schema、評估與數據層上;提示變成一個更小、更穩定的表面。我們那篇關於「什麼是提示工程」的配套文章,涵蓋了在這個更小的表面上仍然必不可少的技術。

遷移路徑長什麼樣?

四個階段,而大多數組織正處在中間某處。

第一階段——提示式答案。模型憑自身知識作答,檢索到的文檔只是被粘貼進上下文。構建快,但對任何事實性或數字性的內容都不可靠。

第二階段——把檢索變成工具。模型調用一個搜索函數,而不是被動地接收上下文。這是第一項也是最大的一項準確率提升,而且幾乎所有人都能立刻獲得它。

第三階段——結構化數據工具。模型針對受治理的度量與實體調用具名操作,由語義層定義可用範圍。企業級的答案正是在這一階段變得可審計,大部分持久價值也在這一階段。

第四階段——編排式智能體。帶工具循環的多步規劃、驗證,以及對重大動作的人工審批。威力強大,但只有在第三階段牢固之後才安全,因爲一個建立在無治理工具之上的智能體,會放大其下方的每一個弱點。

不要跳到第四階段。過早引入自主性的失效模式是:一個令人印象深刻、卻無法被託付真實決策的演示,隨之而來的是組織信心的流失,把整個項目拖後一年。

基於工具的系統有哪些失效模式?

選錯工具,卻給出自信答案。模型選擇了一個看似合理但錯誤的操作。緩解手段是精確的描述加負向指引、更小的工具集,以及在真實問題分佈上做評估。

工具對、參數錯。操作正確,但期間或區域錯了。緩解手段是枚舉、校驗,以及返回能讓模型帶着修正重試的可操作錯誤。

把靜默的工具失敗當成數據。調用實際失敗,卻被渲染成「無數據」。請始終返回顯式的狀態字段,並指示模型區分缺失與失敗。

繞過治理。某個工具讀取了調用者無權查看的內容。請在服務端、按每次調用強制授權,並用刻意過寬的問題來測試它。

循環失控。強制迭代與支出上限,並對高成本或高影響的動作設置審批閾值。

虛假精確。工具返回一個數字,模型卻以超出數據支撐的自信呈現它。請指示模型報告新鮮度與覆蓋範圍,並在答案中展示它們。

工具蔓延。每個團隊各自加工具而不協調,會產出語義不一致的重疊操作。請把註冊表當作產品來治理——有負責人、有版本、有棄用機制。

組織應該如何起步?

從高管最常問的那五個問題出發,讓每一個都能由一個受治理的工具來回答。這是一個小而有限的表面——通常涉及兩到四個源系統和少數幾個經過認證的度量。構建工具、接好授權,並度量端到端答案的準確率,而不是單次調用的準確率。

蜂啓諮詢(Beehive Strategy)正是圍繞這一點構建的:MCP 連接器在既有系統之上暴露受治理的操作;語義層定義這些操作可以返回哪些經過認證的度量;行級安全在執行時按角色施加。用戶在 Teams、Slack 或 WhatsApp 裏用自然語言提問,平台把問題解析爲針對實時數據的工具調用——SQL 與來源均可見以供審計。以託管服務方式約兩週部署,這是從提示式猜測走向你能夠捍衛的答案的最短路徑。

常見問題

函數調用——也稱工具使用——是這樣一種機制:語言模型不直接作答,而是發出一個結構化請求,調用一個帶類型參數的具名操作;應用程序執行該調用、返回結果,模型再把結果納入答案。它需要三個組件:描述各函數及其參數的工具註冊表;通常以帶類型與枚舉的 JSON schema 表達的參數契約;以及以調用者權限執行調用、並以可用形態返回結果的執行路徑。

因爲提示決定答案表達得多好,而工具使用決定它是否爲真。提示的四重限制是結構性的:缺少某事實的模型會編出可信的事實;語言模型只是近似地做算術,不應被信任去聚合數字;訓練截止之後的一切都在其知識之外;以及隨着約束增多,指令遵循能力會退化。工具調用同時回應了這四點:讓事實來自檢索、讓計算由確定性系統執行、讓數據保持當前、讓約束被機械地強制執行。

重要。這個分工是穩定的,而非過渡性的。提示擁有理解——問題如何拆解、歧義如何處理、結果如何呈現、使用什麼語氣、何時拒絕作答;它也擁有拒答行爲與錯誤恢復,規定模型在一次調用失敗後做什麼。變化的是投入比例:在成熟系統中,大部分工程時間花在工具、schema、評估與數據層上,而提示變成一個更小、更穩定的表面。

按業務意圖而非數據庫對象命名操作,因爲模型是靠問題與工具描述之間的語義匹配來選擇工具的;在描述中寫明何時用與何時不用,因爲負向指引能攔下最常見的選擇錯誤;用枚舉、類型、必填標記與取值範圍激進地約束參數;返回結果時帶上單位、期間標籤與狀態字段;讓錯誤信息具有可操作性,使失敗可恢復;並把工具數量控制在可管理範圍,按領域路由到相關子集。

五項控制不容妥協:在執行處於服務端強制授權,使工具永不返回調用者無權查看的記錄;對有副作用的動作單獨使用白名單並要求人工審批;對每次請求的調用數、循環迭代次數與單次運行支出設定硬上限;對每次調用做審計日誌,記錄主體、工具、參數、結果與時間;以及在執行前於工具邊界按 schema 校驗參數,正如你會校驗任何不可信的 API 輸入。

反覆出現的有:選擇了看似合理但錯誤的工具,可用精確描述與更小的工具集緩解;工具對但參數錯,可用枚舉與可操作錯誤緩解;把靜默的工具失敗渲染成無數據,需始終返回顯式狀態字段來修正;治理被繞過,即工具讀取超出調用者權限的內容;循環失控,需靠迭代與支出上限控制;虛假精確,需靠報告新鮮度與覆蓋範圍應對;以及工具蔓延,需要把註冊表當作產品來治理。

四個階段。第一階段是憑模型知識的提示式答案,構建快但事實不可靠;第二階段把檢索變成工具,這是第一項也是最大的準確率提升;第三階段暴露針對受治理度量的結構化數據工具,由語義層定義可用範圍,答案在此階段變得可審計,大部分持久價值也在此階段;第四階段加入帶驗證與人工審批的編排式智能體——威力強大,但只有在第三階段牢固後才安全,而直接跳到它是最常見的戰略錯誤。

預約個性化演示

準備好改變您的數據策略了嗎?

了解蜂啓諮詢的對話式分析平台如何在整個運營中解鎖實時洞察——從上游數據到下游決策。

預約示範 了解解決方案
3x
典型首年 ROI
78%
更快解決查詢
92%
6 個月內採用率
50+
數據連接器