Spring AI Alibaba は、AI エージェントを構築するための Java フレームワークである。jimmysong.io で公開されている AI 原生应用架构白皮书(AI ネイティブアプリケーションアーキテクチャ白書)の第 3 章は、エージェント開発の実例としてこのフレームワークを用いている。同章は、エージェント開発のエコシステムが主に Python から始まり、その後 Java などの言語へ広がったと述べ、Spring AI Alibaba のような Java フレームワークが開発者に幅広いエージェント構築機能を提供するものとして紹介している。

同章はこのフレームワークを使って 3 つの開発パラダイムを説明している。1 つ目は単一エージェントで、LLM アプリケーションに検索・ツール・メモリを加えたものである(同章はこれを Augmented LLM Application と呼んでいる。拡張 LLM を参照)。2 つ目はワークフローで、サブエージェントが事前定義されたフローに沿ってオーケストレーションされる。3 つ目はマルチエージェントシステムで、エージェント間のフローはモデルによって決定され、サブエージェントはより高い自律性をもって協調する(LLM ベースのマルチエージェントシステム を参照)。

機能

このフレームワークのエージェントは ReactAgent として定義される。これは ReAct パターン(ReAct を参照)の典型的な実装であり、思考・行動・観察のループからなる。思考ではエージェントが目標、既知の情報、利用可能なツールを分析し、行動では構造化された指示によって外部ツールを呼び出し、観察ではツールの結果がフィードバックされる。これをタスクが完了するまで繰り返す。同章の説明によれば、エージェントを定義するには、一意の識別子として使われる名前、マルチエージェント環境でエージェントを区別できるようにするための能力の説明、そしてモデル(例として「qwen-max」が挙げられている)が必要である。instruction パラメーターはその振る舞いを導くもので、中核となるタスクや目標、ペルソナ、振る舞いの制約、ツールの使用に関する指示、求められる出力形式を指定する。ツールは、ネイティブ関数、API、あるいは他のエージェントのインスタンスとして与えることができる。

同章による、フレームワークに組み込まれたエージェント型の比較は次のとおりである。

型中核となる振る舞いフローのオーケストレーション決定性
ReactAgent推論、生成、ツール利用なし不確実性が比較的高い
FlowAgent複数のエージェントのフローを制御事前定義されたフロー(逐次、並列など)決定性が比較的高い
MultiAgent複数のエージェントのフローを制御モデルによる決定をサポートするフロー制御ReactAgent と FlowAgent の中間

ワークフロー向けには 3 つのエージェント型が説明されている。SequentialAgent はサブエージェントを順番に実行し、各エージェントの出力が次のエージェントの入力になる。例として、ライターエージェントとレビュアーエージェントからなる執筆アシスタントが挙げられている。ParallelAgent はサブエージェントを並列に実行し、複数のドメインにまたがるタスクに適している。例は検索アシスタントで、ドメイン固有のサブエージェントが並列に動作し、マージエージェントがそれらの出力を統合し、全体は SequentialAgent によってつなげられる。LoopAgent は、複数回の反復を必要とするタスクのためにサブエージェントを繰り返し実行する。モデル駆動のマルチエージェントシステム向けには、LlmRoutingAgent が、次にどのサブエージェントへフローを進めるかをモデルに決定させ、動的なフロー制御を実現する。

採用とエコシステム

同章はさらに、Agent2Agent プロトコル(A2A) を通じてエージェントを単一プロセスから分散デプロイへ移行させることを扱っており、Nacos がエージェントのレジストリとして機能し、エージェント間のメッセージ駆動型の通信は RocketMQ 上に構築される。同章はこれらを、フレームワーク自体の機能としてではなく、上記のプロセス内パターンの次の段階として提示している。