embabel/embabel-agent
Agent framework for the JVM. Pronounced Em-BAY-bel /ɛmˈbeɪbəl/
解決する課題
Embabel は、JVM(Java と Kotlin)上でエージェント型ワークフローを作成するためのフレームワークを提供し、Large Language Model(LLM)との対話を従来のコードやドメインモデルと統合します。固定的な有限状態機や単純なシーケンシャル実行に代えて動的計画を導入することで、LLM 主導のフロー管理の複雑さを解消し、エージェントが新しい情報に適応し、目標達成のための新たな経路を見つけられるようにします。
仕組み
フレームワークはエージェントの振る舞いを以下の 4 つのコア概念でモデル化します:
- Actions:エージェントが取れる個々のステップ。
- Goals:エージェントが達成しようとする望ましい結果。
- Conditions:アクション実行前やゴール達成判定前に行うチェック。
- Domain Model:アクション、ゴール、コンディションに情報を提供する基盤オブジェクト。
硬コード化されたパスの代わりに、Embabel は Plan を使用します――実行時に動的に構成されるアクションのシーケンスです。非 LLM の AI アルゴリズム、具体的には Goal Oriented Action Planning(GOAP)または Utility AI を用いて最適なアクション列を決定します。システムは OODA ループ(Observe, Orient, Decide, Act)に従い、各アクション後に再計画して変化に適応します。
開発者は Spring MVC に似たアノテーションベースのモデル、または慣用的な Kotlin DSL を使ってフローを定義できます。フレームワークは AgentPlatform を介して実行され、Focused(直接メソッド呼び出し)、Closed(インテントに基づく動的エージェント選択)、Open(利用可能なすべてのリソースから動的にゴールとアクションを選択)という 3 つの実行モードをサポートします。
対象者
JVM エコシステム(Java/Kotlin)で働くソフトウェアエンジニアやエンタープライズ開発者で、既存の Spring ベースインフラやドメインモデルを活用しながら、テスト可能で拡張性の高い AI エージェントを構築したい方。
ハイライト
- 動的計画:固定状態機に依存せず、GOAP と Utility AI を用いてゴールへのパスを探索。
- JVM ネイティブ:Spring と JVM 上に構築され、強い型付け、オブジェクト指向の利点、エンタープライズ向けの永続化・トランザクション管理への容易なアクセスを提供。
- LLM ミックス:単一フロー内で複数の LLM(例:高コストの最先端モデルとローカルの低コストモデル)を組み合わせて使用することを簡素化。
- 強い型付け:プロンプトやコード連携に「マジックマップ」を排除し、型付けされたドメインモデルを使用。
- プラガブルな計画:さまざまな計画アルゴリズムをサポートし、将来的な他エージェントフレームワークとの連携を見据えて設計。