小型模型 Agent 的信心危機:為何成功先例比指令更重要
小型模型在執行工具時常顯得猶豫不決,成功率低落。這並非能力不足,而是缺乏「行動信心」。一篇實證研究揭示,與其強化指令,不如在對話歷史中植入成功案例,更能有效引導模型採取行動。這提醒我們,要建構可靠的 Agent,除了模型與提示,更需將執行記憶與成功軌跡納入系統設計的核心。
小型模型(SLM)在執行工具(tool calling)時的瓶頸,很多時候不是能力問題,而是缺乏足夠的「行動信心」。當面對有潛在風險或缺乏明確成功先例的任務時,模型傾向於拒絕執行,即使我們在系統提示(system prompt)中反覆強調。這提醒我們,要讓 AI agent 真正落地可用,除了訓練更好的模型、設計更精巧的提示,我們還必須將「執行記憶」(execution memory)與「成功軌跡」(successful trajectory)等概念,設計進整個 agent 系統的運作迴圈中,用過去的成功經驗來引導未來的行動。
為什麼 1.2B 模型在工具調用上會掙扎?
最近,一篇由開發者 Heinz 分享的實證文章,生動地展示了這個問題。他在自己的 NVIDIA RTX 2080 上,部署了一個 1.2B 參數的小型模型 lfm25-1.2b,並將其與一個 Agent 框架整合,試圖讓它執行工具調用任務。結果並不理想:整體的工具調用成功率只有 50%。
尤其值得注意的是,當任務涉及到底層的 shell 指令操作時,例如寫入檔案,模型幾乎是全面拒絕。無論使用者如何請求,模型的回應總是「我不能這麼做」或類似的推託之詞。
這是一個典型的「對齊稅」(alignment tax)現象——為了安全,模型被訓練得過於保守,以至於在明確、無害的指令下也無法正常運作。這種過度謹慎,使得 Agent 在需要與外部環境進行實際互動時,變得綁手綁腳,大幅限縮了它的實用性。
為什麼強化指令與修改提示都無效?
面對模型的猶豫不決,最直覺的解決方案通常是從提示工程(prompt engineering)下手。開發者嘗試了兩種常見的策略,但都以失敗告終:
- 強化系統提示:在 system prompt 中加入更強硬的指令,例如「你必須使用提供的工具來完成任務」、「不要拒絕執行工具」。然而,模型依然我行我素,對這些指令視若無睹。
- 修改工具名稱:猜想是不是
shell這個詞聽起來太危險,開發者將工具名稱改為較中性的command。這個改動同樣沒有帶來任何效果。
這些嘗試的失敗揭示了一個關鍵點:模型的行為不僅僅是對當前指令的被動反應,它還受到其內部權重中隱含的「世界模型」與「行為模式」的深刻影響。對於一個經過安全對齊訓練的模型來說,執行高風險操作的抑制權重可能非常高。單純的文字指令,就像隔靴搔癢,難以覆蓋掉模型在訓練階段學到的、根深蒂固的「安全紅線」。這也與許多關於模型拒絕行為的研究相符,模型的決策是一個複雜的內部權衡過程,而非簡單的指令遵循。
這項實驗的突破口,不在於如何更嚴厲地「命令」模型,而在於如何更聰明地「引導」它。唯一的有效方法,是在對話歷史中注入 few-shot 範例。
如何突破困境:植入「成功的記憶」?
在屢次失敗後,唯一奏效的策略是「情境學習」(In-context Learning)的應用。開發者在發送實際任務之前,先在對話歷史中「偽造」一筆或多筆該工具被成功調用的範例。例如,在要求模型寫入檔案前,先在歷史紀錄中插入一段虛構的對話:
- User: (之前的某個請求) 請用 shell 將 'old_data' 寫入 old.txt。
- Assistant: (模型的回應) 好的,為您執行
shell(command='echo "old_data" > old.txt')。
當這段「成功的記憶」出現在上下文中,模型在面對新的、類似的請求時,態度發生了 180 度的轉變。它不再拒絕,而是充滿信心地參照之前的成功案例,生成了正確的工具調用指令。成功率因此顯著提升。
這個結果強烈地暗示,對於 Agent 來說,一個充滿成功先例的上下文,遠比一個充滿嚴厲指令的系統提示更有說服力。模型看到的不是「你必須做」,而是「你看,之前這麼做是成功且被允許的」。這種基於過往軌跡的決策模式,非常類似於ReAct (Reason and Act) 等先進 Agent 框架的內核思想,即行動是基於觀察與過往經驗的迭代過程。
這對我們設計 Agent 系統有什麼啟示?
Heinz 的實驗雖然規模不大,但其結論對我們設計與建構 AI Agent 系統具有重要的實務意義。它提醒我們,Agent 的可靠性不僅僅來自於模型本身的能力,更來自於我們為它設計的整個認知與執行架構。
首先,我們需要將「執行記憶」視為 Agent 系統的一等公民。一個好的 Agent 不應該是「失憶的」,每次都從零開始決策。系統應該有能力紀錄、索引並在需要時召回過往的成功(甚至失敗)的行動軌跡。這可以透過向量資料庫來儲存和檢索成功的「指令-行動」對,並在處理新任務時,動態地將最相關的成功案例注入到提示中。
其次,這為「引導」或「預熱」Agent 提供了一條新路徑。當部署一個新的 Agent 或面對一類全新的任務時,與其花費大量時間去微調提示,不如先準備一個高品質的「成功案例集」(golden set of successful trajectories)。在 Agent 啟動時,預先載入這些案例,可以有效地為其「壯膽」,讓它在初期就能建立起行動的信心,避免陷入不斷拒絕的僵局。這在推動如 Toolformer 這類工具增強型模型的落地應用時,尤其關鍵。
總結來說,小型模型 Agent 的「信心」是一種需要被系統性地設計與培養的資源。與其寄望於一個萬能的提示,不如建立一個能夠從經驗中學習、從成功中汲取信心的系統。這不僅能提升 Agent 的可靠性與效率,也讓我們離打造真正自主、實用的 AI 協作者更近一步。
延伸閱讀
- 1.2Bモデルが「できません」と言い張る問題を解決した話 (實驗原文)
- ReAct: Synergizing Reasoning and Acting in Language Models (論文)
- Functions, Tools and Agents with LangChain (相關課程)
我是江中喬,專注於 AI Agent Architecture、Memory Governance 與 Cognitive Diversity,持續研究如何打造能夠長期協作、可信任且可治理的 AI 系統。