Show HN: dart_agent_core – 在Flutter應用中執行AI智慧體,支援生命週期鉤子
dart_agent_core是一個移動優先、本地優先的Dart庫,用於構建和評估有狀態、使用工具的AI智慧體。它支援多LLM提供商(OpenAI、Gemini、Claude等),提供工具使用、流式傳輸、技能系統、上下文壓縮、子智慧體委託和智慧體評估等功能。適用於Flutter應用,無需Python或Node.js後端。
dart_agent_core是一個專為Flutter應用設計的Dart庫,旨在讓開發者能夠輕鬆構建和執行具備工具使用能力的AI智慧體。該庫完全採用Dart編寫,實現了完整的智慧體迴圈,包括工具呼叫、狀態持久化、多輪記憶、技能系統、上下文壓縮以及智慧體評估等功能。它整合了多個主流LLM提供商的客戶端,如OpenAI、Google Gemini和Anthropic Claude,並且支援任何相容OpenAI的API。這意味著開發者無需搭建Python或Node.js後端,即可在Flutter應用中整合AI智慧體。
該庫的核心特性之一是工具使用。開發者可以將任何Dart函式封裝為一個工具,併為其定義JSON Schema引數。智慧體能夠自動解析LLM返回的函式呼叫JSON,將引數對映到函式,執行後返回結果。工具支援函式模式和物件模式,並且可以返回包含多模態內容、後設資料或停止訊號的AgentToolResult。此外,dart_agent_core還支援多模態輸入,包括文本、影像、音訊和影片。
技能系統是dart_agent_core的另一大亮點。它支援兩種技能型別:純Dart技能和檔案系統技能。純Dart技能是模組化的能力單元,包含系統提示和可選工具,智慧體可以根據任務動態啟用或停用它們以節省上下文視窗。檔案系統技能則從本地目錄中的SKILL.md檔案載入,並且可選配JavaScript執行時,允許執行JavaScript指令碼。開發者還可以註冊橋接通道,讓JavaScript呼叫原生功能。
dart_agent_core提供了豐富的智慧體生命週期管理能力。透過AgentController,開發者可以監聽執行、模型、工具、計劃、重試、取消和錯誤等生命週期事件。智慧體鉤子(AgentHook)允許在模型輸入、流式輸出、工具呼叫等環節進行修改或攔截。此外,還支援子智慧體委託,可以註冊專門的子智慧體來處理特定任務,每個子智慧體擁有獨立的上下文。
在評估方面,dart_agent_core提供了一個完整的評估套件。開發者可以定義任務、評分器、記錄回放等,並計算pass@k和pass^k等指標。這有助於測試和迭代智慧體的表現。
平臺相容性方面,dart_agent_core支援所有六個Dart/Flutter平臺(Android、iOS、Web、Windows、macOS和Linux),並且與WebAssembly(WASM)相容。它使用條件匯出在編譯時處理平臺特定問題,確保公共API在原生和Web上一致。
總之,dart_agent_core為Flutter開發者提供了一個強大的工具,使他們能夠在移動裝置上本地執行AI智慧體,同時保持對智慧體行為的精細控制。無論你是構建一個簡單的天氣查詢助手還是一個複雜的自動化工作流,這個庫都能滿足你的需求。