covonaut這個面向生產環境的Go語言Agent框架,又一次把自己打磨得更像一位靠譜的同事。最新放出的v1.1.4版本帶來滾動工具執行池、多模態讀取能力,以及一連串圍繞安全與隔離的增強,而且全程純Go實現、採用MIT協議,覆蓋Agent主循環、工具調用、圖編排與多協議互操作。最體貼的一點是,開發者升級到v1.1.4無需改動任何接口代碼,新特性開箱即用。
調度是這次改動的核心。過去的並行執行像個不講策略的包工頭——一次性拉起全部調用,再靠併發上限排隊,一個慢工具就能長期佔住槽位,堵住後面所有活。v1.1.4改成單一滾動池調度:調用嚴格按模型給出的順序啓動,一旦有空槽立即補位,慢調用不再拖累後續可以並行的任務;遇到不允許並行的調用,會先排空池中在跑的任務再單獨內聯執行,形成一道串行屏障。模型看到的返回順序始終與串行執行完全一致,每個調用還獨立捕獲panic,單個工具崩潰不會拖垮同批其他調用。調度寬嚴由工具自身的併發安全聲明和執行模式共同決定:並行模式最寬鬆,只有明確聲明非併發安全的工具才被隔離串行;本次新增的混合模式則保守得多,未聲明或聲明不明確的任務一律串行,開發者可按工具生態的可信程度二選一。配套而來的是工具結果的多模態內容通道,截圖等富內容能和文本一起透傳給支持多部分返回的模型,不支持的服務則自動降級爲純文本。
讀取工具這次徹底長出了多面手屬性。它不再只認文本,而是按擴展名和內容特徵自動分流到文本、圖片、PDF、Jupyter Notebook、視頻五條處理路徑,本地路徑和網絡鏈接都能直接喂進去。文本與Notebook支持按行或按單元格分頁,Notebook會被渲染成可讀文本;圖片單次最多提交8個目標用於對比,還能附帶提問聚焦描述;PDF支持頁碼範圍、最大頁數和僅取元數據三種用法;視頻則可指定抽幀數量與時間窗口。富媒體處理邏輯以可插拔回調形式提供,沒接入時給出明確提示而非靜默失敗;文本被截斷時,末尾會附帶續讀位置提示,模型可自行接着讀不丟內容;真正的二進制文件也不再被硬塞進上下文,而是老老實實返回格式識別結果。
最讓運維放心的,是刪除操作被統一關進了系統回收站。刪除工具和shell裏的刪除命令不再永久銷燬文件,而是按平臺移入回收站:macOS走訪達回收站、異常時回退用戶廢紙簍;Linux優先用freedesktop回收站接口、回退手工回收目錄;Windows移入系統回收站。同名衝突會自動追加時間戳後綴避免覆蓋,內置安全護欄更堅定拒絕文件系統根目錄、當前工作目錄與用戶主目錄,並且任何情況下都不會退化成永久刪除。命令側通過解析shell語法樹,只攔截頂層、單條、路徑爲字面量的刪除命令,複合命令、含變量拼接的路徑和帶重定向的語句一律放行交給真實shell;清空、粉碎這類不可恢復命令則被直接阻斷並提示改用可恢復方式。
隔離與增強同樣到位。shell子進程與聊天界面徹底分家,不再繼承控制終端、搶鼠標焦點和作業控制,在界面裏跑vim、less這類交互程序也不會打亂渲染。框架新增了按JSON Schema校驗結構化輸出的能力,供模型的JSON模式返回與工具出參複用。網絡搜索的免密鑰後端按運行區域自適應,中文環境優先Bing、其他環境優先DuckDuckGo,區域可從環境變量、系統語言或時區推斷。此外新增需顯式開啓的持久終端工具族,基於僞終端讓工作目錄、導出變量和後臺作業跨多次調用保留,區別於每次新建進程的做法,並默認限制併發會話數量、爲每個會話維護滾動輸出緩衝。
升級只需把模塊版本指到v1.1.4,本次無破壞性接口變更。唯一要留意的是,並行模式的調度語義從全量併發調整爲滾動池加寬鬆准入,若想保持保守調度,請改用新增的混合模式併爲工具補齊併發安全聲明。
VIP會員