embabel/embabel-agent
Agent framework for the JVM. Pronounced Em-BAY-bel /ɛmˈbeɪbəl/
Embabel Agent Framework – クイック概要
何であるか – JVM上でエージェント型アプリケーションを構築するためのJava/Kotlinライブラリ。目標、アクション、条件、およびドメインモデルを記述することで、フレームワークが自動的に計画し、実行するアクションのシーケンス(LLM呼び出しを含む)を生成し、それらの目標を達成します。
なぜ重要か – 既存のLLM中心のコードは、HTTP呼び出しとビジネスロジックを混在させがちで、テスト性、再利用性、拡張性が急速に低下します。Embabelは計画層をコードから分離し、強型のSpring互換コンポーネントを提供し、GOAPやUtility AIといった高度なAI計画アルゴリズムを標準でサポートします。
コアコンセプト
| コンセプト | 役割 |
|---|---|
| エージェント | ドメインモデル上で動作する一連のアクション、目標、条件を保持するコンテナ。 |
| アクション | 1ステップの処理。純粋なJava/Kotlinコード、LLMプロンプト、またはツール対応操作が可能。 |
| 目標 | エージェントが到達しようとする望ましい終状態。 |
| 条件 | 各アクション実行後に再評価される事前条件/事後条件。再計画を促進する。 |
| 計画 | 動的に生成されるアクションのシーケンス。各ステップ後に再生成(OODAループ)。 |
| AgentPlatform | 3つのモードでエージェントを実行するランタイム – Focused(明示的呼び出し)、Closed(意図に応じてエージェントを選択)、Open(目標を発見し、即座にカスタムエージェントを構築)。 |
主な機能(READMEに記載)
- 動的計画 – GOAPまたはUtility AIを使用。単なる静的ステートマシンではなく、柔軟な計画が可能。
- 強型 – アクション、目標、条件は通常のKotlin/Javaクラス。IDEのリファクタリングやコンパイル時チェックが有効。
- Spring統合 – エージェントはSpringビーンとして扱え、DI、AOP、トランザクション管理などの利点を享受可能。
- LLMの混在 –
Aiラッパーを介して任意のLLM(OpenAI、ローカルモデルなど)を呼び出し可能。シンプルなステップには安価なローカルモデル、創造的な処理には大規模モデルを組み合わせられる。 - 拡張可能な計画 – 計画アルゴリズムはプラグイン可能。GOAP、Utility AI、または独自のアルゴリズムを交換可能。
- テスト性 – アクションは通常のメソッドと同様にユニットテスト可能。エンドツーエンドのエージェントテストもサポート。
- 複数の実行モード – 確定的な「Focused」呼び出しから、エージェント間のアクションを組み合わせる探求的「Open」モードまで。
- 将来への対応 – ロードマップには他のEmbabelインスタンスとの連携、マルチゴールプロセスの進化が含まれる。
一般的な利用事例
- LLMによる要約や分類など、プロセスの一部にLLMを活用する必要があるエンタープライズワークフロー(既存のJava/Kotlinサービスと併用)。
- ユーザーの意図を目標にマッピングし、システムが動的に計画を構成するチャット指向アシスタント。
- Web検索、データベースアクセス、LLM推論を組み合わせるツール拡張エージェント。
- コスト意識のあるAIパイプライン – 単純な変換には安価なローカルモデル、必要に応じて大規模モデルに切り替え可能。
セットアップ手順(READMEより)
- 提供されたGitHubテンプレートを使ってプロジェクトを作成:
- Java:
https://github.com/embabel/java-agent-template - Kotlin:
https://github.com/embabel/kotlin-agent-template
- Java:
- Maven依存関係を追加(バッジに依存関係が表示):
<dependency> <groupId>com.embabel.agent</groupId> <artifactId>embabel-agent-api</artifactId> <version>…</version> </dependency> - エージェントを記述 – Springスタイルのアノテーション(
@Agent,@Action,@Goal,@Condition)またはKotlin DSL(agent { … })のどちらかを使用。 - 実行 –
AgentPlatformが計画を実行。簡単なデモではOPENAI_API_KEYとMavenのインストールのみ必要。 - 例の確認 – Embabel Agent ExamplesリポジトリとTripper旅行計画デモ(フルスタックアプリ)を参照。
エコシステムとツール
- ドキュメント –
https://docs.embabel.com/embabel-agent/guide/…でライブドキュメント - ビルド&CI – Maven、GitHub Actions、SonarCloud品質ゲート、Dockerイメージ
- プロファイリング – YourKitおよびJProfilerとの統合(バッジで開発で使用中を示す)
- コミュニティ – サポート・議論用Discordサーバー(
discord.gg/t6bjkyj93q) - 関連プロジェクト – Spring AIに基づき、既存のSpring Bootサービスと相互運用可能
ライセンス
Apache 2.0 – 商用利用を許可する許容性の高いオープンソースライセンス。
結論 – Embabelは、JVM上でLLM拡張型、目標指向のエージェントを構築する本格的で生産環境対応のフレームワークです。計画を抽象化し、コードを強型化し、Springエコシステムにスムーズに統合されるため、既存のスタックを捨てずに知能的で再利用可能なエージェントフローを実現したいJava/Kotlinチームにとって魅力的な選択肢です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト