部落格
基礎功能

發布於 更新於

Shouryamaan 和 Anshu

AI 代理和傳統 SaaS 應用程式有何不同

以 Markdown 閱讀

傳統 SaaS 會執行產品團隊預先定義的工作流程。AI 代理則為了達成目標,在執行期間自行選擇部分步驟。這項差異會改變權限、測試、介面、失敗處理與單位成本。

許多產品同時包含兩者。客服應用程式可以用一般程式碼驗證客戶並取得發票,再由代理調查語意不明的帳務問題。若把整個產品都稱為代理式產品,反而會掩蓋工程師真正需要控制的邊界。

工作流程從哪裡來

在 SaaS 中,產品把允許的路徑寫進程式碼。使用者選擇發票、點選退款、確認金額,再收到結果。請求開始前,介面和後端就知道所有可能狀態。

代理從目標出發,根據收到的上下文選擇工具。搜尋結果、工具錯誤或模型選擇不同,都可能讓兩次執行採取不同路徑。應用程式仍必須用硬性規則限制哪些路徑可以使用。

OpenAI 的代理建置實務指南建議在工作流程包含複雜決策、脆弱規則或大量非結構化資料時使用代理。如果一般程式碼就能表達決策,固定工作流程依然是更清楚的設計。

工程上的差異

關注事項 傳統 SaaS AI 代理應用程式
工作流程 預先寫在程式碼中 執行期間在允許範圍內選擇
介面 針對已知狀態設計畫面和端點 目標、上下文、工具及產生的中間步驟
授權 使用者操作對應已知端點 每個選定工具和下游操作都要授權
測試 驗證已知輸入的預期輸出 驗證工作成果、工具選擇、禁止操作及多次執行的差異
失敗 通常是在已知步驟顯示明確錯誤 可能沿用錯誤步驟或來源,產生看似合理的答案
復原 重試請求或顯示錯誤 先核對已完成的效果,再從檢查點接續
成本 主要取決於請求和基礎設施 也取決於 token、工具呼叫、重試和執行時間
可觀測性 請求、服務與資料庫追蹤 再加上模型、工具、政策與評估紀錄

記憶、工具、狀態與持久執行中的應用程式架構,正是由這些差異推導而來。

權限設計會最先改變

SaaS 按鈕可以用範圍狹窄的操作呼叫單一端點。代理可能從二十個工具中選擇,並用產品團隊從未寫過的順序加以組合。後端必須根據目前的使用者、租戶和資源授權每一次呼叫。系統提示裡的一句話無法授予或移除存取權。

OWASP 的 Excessive Agency 指南把問題分成過多功能、權限和自主程度。這是一套實用的檢查方法:移除工作流程不需要的工具、縮小每個保留工具背後的憑證範圍,並在高影響操作前要求核准。

測試轉向行為驗證

單元測試可以證明退款函式會拒絕負數金額,卻無法證明代理永遠只在使用者要求退款時才選擇退款工具。因此,代理評估需要具代表性的工作、預期工具選擇、禁止操作,以及重複執行。

只看輸出並不夠。即使答案正確,只要它是在讀取另一個租戶的紀錄後產生,仍是嚴重失敗。AI 代理上線前評估指南會一起說明工作與追蹤斷言。

介面必須呈現不確定性

傳統 SaaS 通常呈現付款完成、失敗或等待中等已知狀態。代理可能只有不完整的證據,或遇到彼此衝突的來源。產品需要顯示代理使用了哪些內容、哪些地方不確定,以及下一步建議採取什麼操作。

核准內容應包含確切效果。「繼續」太模糊;「將發票 1842 退款 $42.00」才讓審核者知道自己核准的是什麼。

何時不該使用代理

如果規則穩定、輸入有結構,而且正確操作能直接寫成程式碼,就應維持確定性的工作流程。身分驗證、配額執行、付款結算、權限檢查和資料庫約束都屬於一般程式碼,即使呼叫它們的是代理也一樣。

當混亂上下文中的判斷會改變工作順序時,再使用代理。只給它一小組工具,並由後端執行絕不能變動的規則。

為一條工作流程畫出邊界

選擇一條工作流程,把每個步驟標記為確定性程式碼、模型判斷、人工核准或外部副作用。模型步驟若沒有必須變動的理由,就移回一般程式碼。外部效果若沒有明確身分和復原路徑,就先別進入正式環境。

下方提示會要求程式開發代理畫出這條邊界,同時禁止它在思考期間重構應用程式。