AI News HubLIVE
サイト内リライト2 分で読了

Show HN: dart_agent_core – FlutterアプリでAIエージェントをライフサイクルフック付きで実行

dart_agent_coreは、モバイルファースト、ローカルファーストのDartライブラリで、ステートフルでツールを使用するAIエージェントの構築と評価を可能にします。OpenAI、Gemini、Claudeなどの主要LLMプロバイダーをサポートし、ツール使用、ストリーミング、スキルシステム、コンテキスト圧縮、サブエージェント委任、エージェント評価機能を提供します。FlutterアプリにPythonやNode.jsバックエンドは不要です。

ソースHacker News AI著者: sparkleMing

dart_agent_coreは、Flutterアプリケーション向けに設計されたDartライブラリで、ツールを使用できるAIエージェントを簡単に構築・実行できるようにします。このライブラリは完全にDartで記述されており、ツール呼び出し、状態の永続化、マルチターンの記憶、スキルシステム、コンテキスト圧縮、エージェント評価といった完全なエージェントループを実装しています。OpenAI、Google Gemini、Anthropic Claudeなどの主要なLLMプロバイダーに対応しており、OpenAI互換のAPIもサポートしています。これにより、開発者はPythonやNode.jsのバックエンドを用意することなく、FlutterアプリにAIエージェントを統合できます。

dart_agent_coreの中心的な機能の一つがツール使用です。開発者は任意のDart関数をツールとしてラップし、JSON Schemaでパラメータを定義できます。エージェントはLLMから返された関数呼び出しJSONを解析し、関数に引数をマッピングして実行し、結果を返します。ツールは関数モードとオブジェクトモードの2つのパラメータモードをサポートし、マルチモーダルコンテンツやメタデータ、停止シグナルを含むAgentToolResultを返すこともできます。また、テキスト、画像、音声、動画などのマルチモーダル入力もサポートしています。

スキルシステムもdart_agent_coreの大きな特徴です。純Dartスキルとファイルシステムスキルの2種類があります。純Dartスキルはシステムプロンプトとオプションのツールをバンドルしたモジュール式の能力ユニットで、エージェントはタスクに応じて動的にアクティブ化/非アクティブ化できます。ファイルシステムスキルはローカルディレクトリのSKILL.mdファイルから読み込まれ、JavaScriptランタイムをオプションで設定することでJavaScriptスクリプトの実行も可能です。さらに、ネイティブ機能をJavaScriptから呼び出すためのブリッジチャネルも登録できます。

ライフサイクル管理も充実しています。AgentControllerを使用すると、実行、モデル、ツール、計画、リトライ、キャンセル、エラーなどのライフサイクルイベントを監視できます。AgentHookパイプラインでは、モデル入力の書き換え、ストリーミングチャンクや最終応答の変換、ツール呼び出しの拒否/遅延/書き換え、フォローアップコンテキストの挿入、実行の中断などが可能です。また、サブエージェント委任機能により、独立したコンテキストを持つワーカーエージェントにタスクを委任できます。

評価面では、dart_agent_coreは完全な評価スイートを提供します。タスク、採点者、トランスクリプト、記録再生、レポート、pass@k/pass^kメトリクスを備えており、エージェントのパフォーマンスをテスト・反復できます。

プラットフォーム互換性については、dart_agent_coreはAndroid、iOS、Web、Windows、macOS、Linuxの全6つのDart/Flutterプラットフォームをサポートし、WebAssembly(WASM)にも対応しています。条件付きエクスポートを使用してコンパイル時にプラットフォーム固有の問題を処理するため、公開APIはネイティブとWebで同一です。

要約すると、dart_agent_coreはFlutter開発者に、モバイルデバイス上でローカルにAIエージェントを実行し、エージェントの動作を細かく制御するための強力なツールを提供します。シンプルな天気照会アシスタントから複雑な自動化ワークフローまで、このライブラリは幅広いニーズに対応します。