許多工程師在開發 AI Agent 時,往往陷入一種「用英文寫程式」的興奮感,但如果仔細觀察目前的開發模式,你會發現我們正處於 AI 版本的 1970 年代。當時的 BASIC 語言傾向於將所有邏輯寫在一個巨大的主檔案中,充滿了 GOTO 語句且缺乏結構;而現在的 Agent 開發,大多是將工具描述、提示詞(Prompt)直接「複製並貼上」到系統提示詞中。這種缺乏封裝與介面的做法,在面對企業級規模的複雜度時,將會變成維護噩夢。
本文將探討如何將軟體工程中成熟的「抽象化」與「封裝」概念引入 Agent 開發,從混亂的提示詞拼接轉向結構化的組件開發。
從 MCP 到虛擬工具的必要性
目前業界推崇的 Model Context Protocol (MCP) 解決了工具重複開發的問題,讓 Slack 或 Stripe 等服務提供者定義一次工具,多個 Agent 即可共用。這就像是軟體工程中的共享函式庫(Shared Libraries)。
然而,MCP 目前的實現方式存在缺陷:它本質上是一種「宏(Macro)」,將工具的名稱、描述和 Schema 直接展開並注入到 LLM 的上下文視窗中。這會導致兩個問題:第一,Agent 擁有者無法修改工具的介面以適應特定業務場景(例如將 set_jira_ticket 改名為 update_issue 以符合內部文件);第二,工具提供者可能會暴露過多不必要的參數,佔用 Token 並干擾 LLM 的推理。
為了打破這種僵局,我們需要引入「虛擬工具(Virtual Tools)」的概念。這是在 Agent 與 MCP 伺服器之間增加的一層「間接層(Indirection Layer)」。
虛擬工具的實作能力
透過這層映射層,開發者可以對底層工具進行以下操作:
重新命名與描述:將通用工具名稱修改為符合業務域(Domain)的名稱,並優化描述以提升 LLM 的調用成功率。 Schema 投影(Schema Projection):僅向 LLM 暴露必要的參數,將其餘參數設定為確定性的預設值,減少 LLM 的混淆。 工具組合(Composition):將多個原子工具組合在一起,形成更粗粒度的虛擬工具。例如,將「搜尋 A 庫」、「搜尋 B 庫」與「合併結果」封裝成一個「全域搜尋」工具。
這種設計讓工具提供者與 Agent 開發者解耦:提供者負責功能的正確性,而 Agent 開發者負責定義如何將這些功能呈現給模型,以優化其推理效果(Evals)。
解決安全漏洞:對抗致命三原色(Lethal Trifecta)
在 Agent 安全領域,有一個概念稱為「致命三原色」,指當一個 Agent 同時具備以下三種能力時,會產生極高風險的數據外洩路徑: 讀取不可信內容(例如:讀取外部電子郵件)。 寫入外部世界(例如:發布部落格文章)。 訪問私有內部數據(例如:讀取用戶個資)。
如果這三者共存,攻擊者可以透過提示詞注入(Prompt Injection)誘導 Agent 將私有數據讀出並發布到外部。僅靠系統提示詞告訴模型「請不要這麼做」並非有效的安全策略,因為 LLM 是機率性的,且容易被繞過。
解決方案是引入「污點追蹤(Taint Tracking)」。我們在虛擬工具層對數據進行標記: 如果某個工具返回了個資(PII),則將當前上下文標記為「受污(Tainted)」。 一旦上下文被標記為 PII,系統會觸發確定性的安全策略,動態地從工具列表中移除所有「能訪問外部世界」的工具。 這種做法將安全防線從「依賴模型自律」提升到「基礎設施強制執行」,從根本上消除了致命三原色的形成條件。
建立企業級 Agent 註冊表(Enterprise Registry)
要讓上述的虛擬工具與安全策略規模化,不能依賴隨機的動態發現,而需要一個正式的註冊表。
版本控制與固定(Pinning):MCP 目前的工具列表是動態的,這對生產環境是災難。註冊表應允許 Agent 固定依賴特定版本的虛擬工具(例如 notify_engineering v1.3),確保評測(Evals)的穩定性。 評測包(Eval Packs):將評測數據集、執行器與判定標準(LLM-as-a-judge)封裝在一起。這讓非技術人員也能透過「輸入 A $\rightarrow$ 期望輸出 B」的方式定義 Agent 的行為規範。 依賴圖譜(Dependency Graphs):追蹤 Agent 與工具之間的依賴關係,當底層服務變更時,能快速定位受影響的 Agent。
總結
AI Agent 的開發不應停留在「調教提示詞」的階段。我們需要將過去 50 年軟體工程的精髓——介面、封裝、版本控制與確定性安全策略——重新應用在 LLM 驅動的系統中。透過引入虛擬工具層與集中式註冊表,我們才能將 Agent 從不穩定的小工具,轉化為可維護、可擴展且安全的企業級軟體。
來源:infoq.com (Presentation: From Copy-Paste to Composition: Building Agents Like Real Software)
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。