Aclif Agent CLI Framework 概述
Aclif 提供了 AI 代理與 SaaS 提供商互動的統一抽象
Aclif 是一個專為解決 AI 代理中「工具泛濫」問題而設計的代理 CLI 框架。與要求代理為每個 SaaS 提供商管理多個不同的 API、登入方式和語法不同,Aclif 提供單一工具,具有統一語法和標準名稱。這使得代理能使用相同的名稱在不同平台間存取相同記錄,大幅降低跨平台操作的複雜性。
解決 LLM 上下文視窗問題
傳統的 Model Context Protocol (MCP) 伺服器會在每次互動中發布固定工具清單,佔用代理的上下文視窗。這導致了覆蓋範圍(提供所有 API 操作)與成本(token 消耗)之間的權衡。
"發布每個操作(典型的 API 有數百個定義)能確保整個 API 可達,但每次互動都會消耗所有操作的 token。"
Aclif 透過僅在代理明確請求時才載入命令定義來解決此問題。這確保了每個提供者的完整 API 始終可達,且不會在上下文視窗中產生持續成本,無論代理是與一個平台還是五個平台互動,token 數量都保持穩定。
核心技術能力
統一語法與標準命名
Aclif 在所有提供者中實現單一命令結構、JSON 包裝和錯誤詞彙。它使用別名集將標準名稱映射到提供者特定的術語(例如,將 customer 映射到 Salesforce 的 Account 和 ServiceNow 的 core_company)。在部署時捕獲的租戶目錄讓 CLI 能處理自訂物件和欄位,而無需更改提供者程式碼。
詢問優先的工作流程
代理可以在不執行命令或消耗 API 配額的情況下發現和學習可用工具。使用 --schema、--examples 和 --shape 等旗標,代理可以在進行實際 API 呼叫前,檢視命令的需求並預覽回應。
可操作的錯誤恢復
Aclif 中的錯誤設計用於代理恢復。每個錯誤都會識別失敗原因,建議用以修復的命令,並在存在重寫規則時提供修正後的輸入。此分類由純程式碼處理,而非模型,確保設計時 shell 驗證與執行時行為的一致性。
聲明式安全與可審計性
Aclif 中的每個命令都聲明其可變性、影響範圍、可逆性和冪等性。這使得策略檢查能在程式碼載入前拒絕命令。此外,所有變更都支援 --dry-run,並可根據元資料要求 --confirm,每次執行都會產生審計記錄。
部署與執行模式
Aclif 支援三種不同的執行模式,以平衡信任與安全性:
- 由代理執行:代理直接啟動二進位檔。憑證透過旗標、環境變數或本地設定檔管理。這適用於單一操作員環境,其中代理與操作員共享信任邊界。
- 由主應用程式執行:主應用程式位於模型與 Aclif 之間,持有憑證並以內部執行或 CLI 方式執行命令。這可防止模型持有憑證,並讓工具定義不進入上下文視窗。
- 由閘道執行:一個長時間執行的程序服務多個代理。閘道根據請求從企業金庫解析憑證,強制執行集中式策略,並維持單一審計記錄。這確保代理無法擴大自身範圍,且每次呼叫都可歸因於特定的人類使用者。
支援的提供者與可擴充性
Aclif 原生支援 Salesforce、ServiceNow、DocuSign 和 Agentforce,並有貢獻支援 Google Workspace(Gmail、Calendar)。該框架採用 MIT 授權,允許使用者使用架構指令建立自己的 CLI,僅包含特定提供者。新提供者可透過將平台的 API 規格轉譯至 Aclif 命令介面來新增。
開發者洞察
關於工具選擇的可靠性,作者指出,允許模型在執行時動態選擇工具可能導致錯誤和安全風險:
"在部署許多企業代理後,我們發現讓模型在執行時選擇工具會造成問題。代理持有憑證,有時會選擇錯誤的工具。每次使用相同工具可防止此類問題。"
此洞察驅動了 Aclif 的做法:允許人員或撰寫工具在設計時定義精確的命令字串,代理在執行時以普通程式碼執行,無需進一步推論。
Sources
相關
- 專案
- 專案
- 專案
- Dispatch
- 專案