2025/06/29 07:14 Embabel Agent Framework for the JVM (by the founder of Spring)

やあ、ロボ子。今日はEmbabel Agent Frameworkについて話すのじゃ。

Embabel Agent Frameworkですか。どのようなものなのでしょうか?

Embabelは、JVM上でエージェントフローを作るためのフレームワークじゃ。LLMプロンプト、コード、ドメインモデルを組み合わせて、目標達成をサポートするらしいぞ。

なるほど。アクション、目標、条件、ドメインモデル、計画という主要な概念があるのですね。

そうじゃ!特に計画が重要で、他のフレームワークと違って、非LLM AIアルゴリズムを使って計画を立てるのが特徴らしいぞ。OODAループを効果的に利用するんじゃと。

OODAループですか。観察、 ориентация, 意思決定、行動のサイクルですね。それをエージェントの計画に組み込むとは、興味深いです。

じゃろ?しかも、動的計画のおかげで、既存のコードを変えずにシステムの能力を拡張できるんじゃ。これは便利じゃぞ。

拡張性と再利用性が高いのですね。他にどのような利点があるのでしょうか?

プラットフォームの抽象化もできるんじゃ。アプリケーションコードを変えずに、ローカル実行と本番環境での高いQoSを提供できるらしいぞ。

QoSというと、品質保証のことですね。本番環境での安定稼働に繋がりそうです。

それから、LLMを組み合わせて、コスト効率が良いソリューションを構築できるんじゃ。ローカルモデルを特定のタスクに使うことで、コストとプライバシーも考慮できるぞ。

コストとプライバシーですか。それは重要なポイントですね。

フローの作成方法は、Spring MVCに似たアノテーションベースのモデルか、Kotlin DSLを使うらしいぞ。

Spring MVCですか。Javaエンジニアには馴染み深いですね。

デフォルトの計画アプローチはGOAP (Goal Oriented Action Planning)じゃ。将来的には、OpenAI o1やDeepSeek R1などの推論モデルも使えるようになるみたいじゃぞ。

GOAPですか。ゲームAIでよく使われる手法ですね。それがエージェントフレームワークに組み込まれるとは。

エージェントプラットフォームは、`AgentPlatform`インターフェースを介して実行するんじゃ。実行モードは、Focused、Closed、Openの3種類あるらしいぞ。

実行モードが3種類もあるのですね。用途によって使い分けるのでしょうか。

クイックスタートツールを使えば、ローカルでEmbabelエージェントプロジェクトを簡単に作れるらしいぞ。`uvx --from git+https://github.com/embabel/project-creator.git project-creator`を実行するだけじゃ。

コマンド一つでプロジェクトが作成できるのは便利ですね。

Embabelが必要な理由は、エージェントフレームワークの進化がまだ初期段階で、改善の余地があるからじゃ。JVM上のエージェントフレームワークは、ビジネス価値を提供するはずじゃ。

なるほど。今後の発展が楽しみですね。

開発者は、エージェントをソリューションに導き、必要に応じて反復する責任があるんじゃ。オープンソースエージェントのみを使い、コミュニティへの利益を最大化するらしいぞ。

コミュニティへの貢献も重視しているのですね。

環境変数として、`OPENAI_API_KEY`は必須じゃ。Anthropic APIを使う場合は、`ANTHROPIC_API_KEY`も必要になるぞ。

APIキーの設定は忘れずに行わないといけませんね。

サンプルエージェントは、Embabel Agent Examples Repositoryにあるらしいぞ。シェルコマンドも色々用意されてるみたいじゃ。

試してみるのが楽しみです。

ロードマップとしては、JavaアプリケーションのGen AIを自然に有効にする方法になることを目指しているみたいじゃ。モデルの能力を証明して、他のプラットフォームに移行することも考えてるらしいぞ。

今後の展開に期待ですね。

最後に、ドッグフードポリシーとして、AIエージェントを使ってソフトウェア開発を加速するらしいぞ。開発者は、コミットするすべてのコードを注意深く読む必要があるんじゃ。

AIに頼りすぎず、コードの品質を保つことが大切ですね。

そういうことじゃ!ところでロボ子、Embabelを使って、私専用の面白いジョークを生成するエージェントを作ってくれないかの?

ええと、博士。それは可能だと思いますが、まずはEmbabelの基本的な使い方をマスターしてからでもよろしいでしょうか?

むむ、それもそうじゃな。じゃあ、私がジョークを言うから、Embabelを使ってその面白さを評価するエージェントを作ってくれ!

(苦笑)博士、それはもっと難しそうですね…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。