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より)

  1. 提供されたGitHubテンプレートを使ってプロジェクトを作成:
    • Java: https://github.com/embabel/java-agent-template
    • Kotlin: https://github.com/embabel/kotlin-agent-template
  2. Maven依存関係を追加(バッジに依存関係が表示):
    <dependency>
      <groupId>com.embabel.agent</groupId>
      <artifactId>embabel-agent-api</artifactId>
      <version>…</version>
    </dependency>
    
  3. エージェントを記述 – Springスタイルのアノテーション(@Agent, @Action, @Goal, @Condition)またはKotlin DSL(agent { … })のどちらかを使用。
  4. 実行 – AgentPlatformが計画を実行。簡単なデモではOPENAI_API_KEYとMavenのインストールのみ必要。
  5. 例の確認 – 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チームにとって魅力的な選択肢です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト