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智能體,同時保持對智能體行為的精細控制。無論你是構建一個簡單的天氣查詢助手還是一個複雜的自動化工作流,這個庫都能滿足你的需求。