AI Agent 的開發並非一蹴而就的架構設計,而是從最簡單的 API 呼叫開始,根據實際需求逐步演進的過程。關鍵原則包括:單一 API 能解決的問題不要用 Agent、多步驟不等於需要 Agent、只有在需要使用者參與和功能複雜化時才引入對話式 Agent。開發過程中會經歷工具擴展、上下文失控、記憶系統引入等階段,每個階段都有其特定的技術挑戰和解決方案。
近年來 AI Agent 開發成為熱門話題,但許多開發者在實際建構過程中卻頻頻踩坑。從理論到實踐的距離,往往比想像中更遙遠。
video_source: “https://www.youtube.com/watch?v=b_9D7T0n4RA“
從 API 到 Agent:需求驅動的演進邏輯
第一階段:單一 API 呼叫的適用情境
許多開發者容易犯的第一個錯誤,就是為了使用 Agent 而使用 Agent。實際上,大量的 AI 應用情境只需要簡單的 API 呼叫就能完美解決。
以內容創作為例,產生標題、設計視覺元素等任務,本質上都是「輸入內容,輸出結果」的單次互動。這類任務有幾個明顯特徵:需求明確、輸出確定、不需要中間干預。在這種情況下,引入 MCP AI Agents 架構不僅是技術過度設計,更會帶來不必要的複雜性和成本,就像引入GPU 資源管理一樣。
單一 API 適用的判斷標準
- 任務目標明確且單一
- 輸入輸出關係確定
- 不需要使用者中途參與
- 一次性就能獲得滿意結果
第二階段:Workflow vs Agent 的選擇困惑
當任務變得複雜,需要多個步驟才能完成時,很多開發者會直覺性地認為需要 Agent。但這裡存在一個重要的區分:多步驟任務不等於需要 Agent。
以影片自動剪輯為例,整個流程包括:影片轉字幕、分析語氣詞、產生剪輯方案、執行剪輯操作。雖然步驟繁多,但每個環節都是確定性的,不需要使用者中途介入。這種情境下,AI 工作流程自動化的 Workflow 鏈式結構比 Agent 更適合。
Workflow 適用的關鍵特徵
- 步驟固定且可預測
- 中間過程不需要使用者參與
- 輸入確定,輸出一次性交付
- 流程具有明確的開始和結束
真正需要 Agent 的兩個訊號
訊號一:必須讓使用者參與的流程
當任務結果無法一次性達到使用者滿意度,需要反覆調整和最佳化時,對話式 Agent 的價值才真正顯現,這時候可以參考ChatGPT Agents 開發指南。特效產生就是典型例子——很少有使用者會對第一次產生的結果完全滿意,通常需要在風格、節奏、細節等方面進行多輪調整。
這類任務的特點是結果評判具有主觀性,或者模型能力存在局限,需要人類的指導和回饋。傳統的按鈕式互動在這種情境下會導致介面複雜度指數級增長。
訊號二:功能選項的指數級增長
當產品功能豐富到需要為每種需求都設計專門的前端介面時,對話式 Agent 就成為了通用入口的最佳選擇。這避免了產品介面變成「飛機駕駛艙」的困境。
需要 Agent 的判斷指標
- 使用者需要在中間過程反覆參與
- 任務結果帶有主觀判斷性質
- 功能選項多到前端難以承載
- 需要通用的互動入口
技術選型:先跑起來比完美更重要
避免架構過度設計的陷阱
許多開發者在確定使用 Agent 後,會立即尋求最強大、最完整的框架。這種想法看似合理,實際上是概念錯誤。複雜架構會誘導開發者在沒有驗證基礎功能的情況下就開始設計節點和流程,這等同於閉門造車,就像在MLOps 系統架構中常見的問題一樣。
對話式 Agent 的長鏈執行模式與 Workflow 有本質區別。Workflow 需要從頭跑到尾,因此需要考慮任務分發、重試、佇列排程等複雜問題,類似於彈性分散式訓練中的挑戰。但對話式 Agent 的長鏈是可以被切開的,每執行一段就可以停下來與使用者互動,這大大降低了對後端排程系統的要求。
實用主義的技術選擇
選擇整合度高、上手快的方案,如 AI SDK,雖然可能不如某些框架功能強大,但其核心優勢是能夠快速將系統跑起來。只要能完成基礎對話和工具呼叫,就可以在真實任務中進行迭代驗證。
系統提示詞:從簡單開始的漸進式最佳化
避免一開始就追求完美
許多開發者會蒐集各種「效果炸裂」的系統提示詞,希望一步到位達到最佳效果。但這種做法往往適得其反,不僅效果沒有提升,還會導致 Token 消耗爆炸。
複雜的提示詞會讓模型開始拆步驟、規劃流程,原本簡單的任務變得複雜化。更重要的是,這些通用的提示詞可能並不適合具體的應用情境。
漸進式提示詞最佳化策略
正確的做法是從最基礎的角色定義開始,觀察模型的行為模式,然後根據實際需求逐步添加限制條件和最佳化指令。這種方法能夠確保每個改動都有明確的目的和可驗證的效果。
提示詞最佳化的階段性原則
- 第一版保持簡潔,避免過多限制
- 觀察模型的自然行為模式
- 根據實際問題逐步添加約束
- 每次修改都要有明確的驗證標準
工具擴展與上下文失控的臨界點
工具帶來的能力躍遷
當基礎的提示詞最佳化無法解決能力缺失問題時,引入工具就成為必然選擇。工具的加入會帶來明顯的能力躍遷,讓 Agent 真正開始展現智慧行為。
每個工具的加入都會讓系統明顯變得更聰明,之前無法完成的任務開始可行,勉強能做的事情開始流暢。這個階段的開發體驗通常非常正面,容易讓開發者產生「工具越多越好」的錯覺。
上下文污染的隱性危機
但當工具數量超過某個臨界點後,系統效能會出現持續性下降。這不是模型能力的問題,而是上下文失控導致的注意力分散。每個工具都會帶來大量的說明文件,加上任務輸入、歷史對話等資訊,模型的注意力被平均分散,導致整體表現下降。
上下文失控的典型症狀
- 成功率持續下降
- 準確率忽高忽低
- 模型開始「聽不懂」指令
- 執行過程越來越混亂
Context Engineering:精準的注意力管理
任務導向的上下文隔離
當出現上下文失控問題時,Context Engineering 就成為必需品。其核心思想是讓模型在執行特定任務時只看到相關資訊,避免無關資訊的干擾。
以影片 Agent 為例,設計任務和程式碼實作是兩種完全不同的認知模式。設計需要開放性思維,關注風格、氛圍等抽象概念;程式碼實作需要精確性思維,關注介面、格式等具體規範。如果將這兩類資訊混在一起,會導致相互污染,影響整體效果。
Sub-Agent 架構的引入時機
只有當不同任務明顯需要不同上下文時,Sub-Agent 架構才有意義。這通常表現為需要一個頂層規劃者負責全域協調,多個專項執行者各司其職。但關鍵是,這些 Sub-Agent 必須只看到自己需要的資訊,否則就失去了隔離的意義。
記憶系統:從最佳化項到必需品
資訊傳遞的成本問題
當引入 Sub-Agent 架構後,會立即面對資訊傳遞問題。如果規劃者需要將使用者輸入的程式碼完整傳遞給執行者,就會產生兩個嚴重問題:一是為複製貼上付費,output token 成本高昂;二是無法保證資訊的完整性,模型可能會「善意」地修改內容。
指標式的資訊管理
記憶系統的核心是用指標代替內容傳遞。規劃者將內容儲存到檔案系統中,只向執行者傳遞檔案路徑,執行者根據路徑讀取所需內容。這種方式既降低了 token 成本,又保證了資訊的準確性。
記憶系統的分類邏輯
- 記憶體:單輪對話結束後消失的資訊
- 外部儲存:需要跨輪保存的狀態資訊
- 選擇標準:資訊的生命週期和使用範圍
產業觀點
從這個開發歷程可以看出,AI Agent 的設計哲學與傳統軟體工程存在根本差異。傳統軟體追求的是確定性和可預測性,因此前期的完整架構設計是有益的。但 AI Agent 本身就是非確定性系統,在其上疊加複雜架構等於是在不確定性上再增加不確定性。
這種差異反映了 AI 原生應用的一個重要特徵:需求驅動的演進式開發。與其一開始就設計完美架構,不如從最簡單的方案開始,根據實際問題逐步演進。這不僅能夠降低開發風險,更能確保每個架構決策都有明確的商業價值。
從產業發展角度看,目前市面上的 AI Agent 框架和教學往往展示的是「畢業專題」級別的完整架構,但缺乏對演進過程的描述。這導致許多開發者在實踐中頻頻踩坑,無法理解每個架構元件的真實價值。
未來的 AI Agent 開發工具和平台,應該更加重視漸進式開發的支援,提供從簡單到複雜的平滑升級路徑,而不是一開始就要求開發者掌握所有概念。
結論
AI Agent 的開發是一個需求驅動的演進過程,而非一次性的架構設計。從單一 API 呼叫開始,經歷 Workflow 選擇、Agent 引入、工具擴展、上下文管理、記憶系統等階段,每個階段都有其特定的技術挑戰和適用情境。
關鍵是要抵制過度設計的誘惑,始終以解決實際問題為導向。不要為了使用先進技術而使用,而要在真正需要的時候才引入相應的架構元件。這種實用主義的開發方式,不僅能夠降低開發成本和風險,更能確保最終系統的實用性和可維護性。
對於正在或準備進入 AI Agent 開發領域的團隊來說,理解這個演進邏輯比掌握任何特定框架都更重要。因為框架會變化,但問題的本質和解決思路是相對穩定的。
常見問題 FAQ
Q: 什麼情況下應該選擇 Workflow 而不是 Agent? A: 當任務步驟固定、不需要使用者中途參與、輸入輸出關係確定時,應該選擇 Workflow。典型例子包括資料處理流水線、自動化報告產生等確定性任務。
Q: 如何判斷是否需要引入 Sub-Agent 架構? A: 當不同任務明顯需要不同類型的上下文資訊,且這些資訊會相互干擾時,才需要 Sub-Agent。關鍵判斷標準是上下文的隔離需求,而不是任務的複雜程度。
Q: 記憶系統的記憶體和外部儲存應該如何選擇? A: 根據資訊的生命週期決定。只在當前對話中使用的臨時資訊放入記憶體,需要跨對話保存的狀態資訊放入外部儲存。避免將短期資訊存入外部儲存造成污染。
Q: 工具數量多少算是過多? A: 沒有固定數字,關鍵看系統效能表現。當成功率開始持續下降、模型開始頻繁出現理解錯誤時,就說明工具數量已經超過了上下文的承載能力。
Q: 如何避免過度設計的陷阱? A: 始終從最簡單的方案開始,只有在遇到具體問題時才引入相應的解決方案。每個架構決策都應該有明確的商業驅動因素,而不是為了技術先進性。