1. プロジェクト概要
AgentScope Javaは、本番環境に対応したJavaフレームワークであり、長時間実行・安全に制御された実行を標準でサポートする、分散型・エンタープライズ級のAIエージェントを構築するためのものです。エージェント開発をプロトタイピングの域を超え、運用可能なマルチテナント本番環境へと引き上げます。
2. 背景と位置づけ
- 中核ミッション: ほとんどのエージェントフレームワークは、デモで単一のエージェントを「動かす」ことに焦点を当てています。AgentScope Java(バージョン2.0)は、動作するプロトタイプと、本番環境で確実に稼働できるシステム(可観測性、権限制御、サンドボックス化、分散セッション復旧を後付けではなく第一級の関心事とする)との間のギャップを埋めるために構築されました。
- 類似プロジェクトとの違い: LLM呼び出しの単なる薄いラッパーではなく、AgentScope Javaは古典的なReAct(推論-行動)ループの上に「ハーネス」層を重ね、ミドルウェアフック、型付きイベントストリーム、人間参加型の承認ゲート、プラグ可能なサンドボックス(ローカル、Docker、Kubernetes、クラウド)を追加しています。JVMエコシステム向けにネイティブ設計されているため、すでにJava/Springベースのバックエンド基盤を運用しており、そのエコシステムから離れることなくエンタープライズ級のエージェント機能を求めるチームに自然に適合します。
3. 機能カテゴリ
- ⚙️ 基盤フレームワーク — エージェント構築のためのコアプリミティブ。代表例: エージェント状態をストリーミングするための28種類の型付きイベント、統合コンテンツブロック(テキスト/ファイル/画像/音声/動画)、ReAct実行ループ、組み込みの対話パターンとしての人間参加型。目的: アドホックなJSONペイロードではなく、エージェントの動作に対して一貫性のある型付きボキャブラリを開発者に提供します。
- 🧩 ハーネスエンジニアリング — コアループの上に重ねるミドルウェア。代表例: 自己進化型スキルリポジトリ、階層型メモリ(会話履歴+キュレーション済みマークダウン+ファクトログ)、サブエージェント生成、自動コンテキスト管理、マルチステップタスクのための「プランモード」。目的: コアフレームワークコードを変更せずに、エージェントの推論と行動の方法を拡張・カスタマイズします。
- 🏢 エンタープライズ展開 — エージェントを大規模に実行するための機能。代表例: マルチテナント分離、セキュアなサンドボックス化、きめ細かな権限制御、ゼロダウンタイムのローリングアップデートのためのクロスレプリカセッション復旧。目的: 実際の本番トラフィックの背後でエージェントを安全かつ回復力のあるものにします。
- 🔌 インテグレーション — 外部世界へのモジュール式コネクタ。代表例: LLMプロバイダー(OpenAI、Anthropic、DashScope、Gemini、DeepSeek、Ollama)、エンタープライズIMチャネル(DingTalk、Feishu、WeCom)、相互運用プロトコル(A2A、AG-UI)。目的: カスタムグルーコードなしで、エージェントを既存のモデルベンダーやコミュニケーションツールに接続できるようにします。
- 💾 状態と永続化 — エージェントとセッション状態を保存するためのバックエンド。代表例: インメモリ、JSONファイル、MySQL、Redis、PostgreSQL。目的: エージェントが再起動やレプリカ間で状態を再開・復旧できるようにします。
4. 主なハイライト
- 型付きイベントストリーム — 28種類の明確なイベントタイプにより、フロントエンドとオーケストレーターは、フリーテキストのログを解析するのではなく、エージェントがリアルタイムで何をしているかを正確かつ構造化された形で可視化できます。
- 設計による人間参加型 — 権限システムにより、オペレーターは個々のツール呼び出しを実行前に選択的に承認または拒否できます。これは、現実世界でアクションを起こす可能性のあるエージェントにとって重要です。
- ミドルウェアベースの拡張性 — AOPスタイルのフックが、推論-行動ループを5つの異なる段階でインターセプトするため、チームはコアをフォークせずにロギング、ガードレール、カスタムロジックを追加できます。
- 柔軟なサンドボックス化 — ツール実行は、ローカル、Docker、Kubernetes、またはAgentRunクラウド環境で分離でき、ワークロードの機密性に合わせて分離レベルを調整できます。
- マルチエージェントオーケストレーション — ネイティブの
agent_spawnおよびagent_sendプリミティブが、親子エージェント間のリアルタイムイベント転送を備えたサブエージェントパターンをサポートします。 - 分散セッション復旧 — セッション状態は、Redis、MySQL、PostgreSQL、OSS、またはCOSをバッキングストアとして使用することで、レプリカの再起動やローリングデプロイを生き延びることができます。
5. 役割別のユースケース
- 一般開発者: Pythonサービスへのブリッジではなく、使い慣れたMaven依存関係を使用して、Java/Springアプリケーションで直接エージェント機能(チャットボット、タスク自動化、ツール使用アシスタント)を構築します。
- DevOps/SRE: セッション状態と進行中のタスクは再デプロイ時に失われるのではなくレプリカ間で復旧できるため、ローリングアップデートの背後にエージェントを自信を持ってデプロイできます。
- プロジェクトマネージャー: 権限システムとイベントストリームを使用して、機密性の高いエージェントアクションに人間によるレビューゲートを強制し、エージェントが行動する前に何をしているかを監視できます。
6. はじめに
- 必要なものの見つけ方: リポジトリ内のモジュール構成(
agentscope-core、agentscope-harness、agentscope-extensions、agentscope-examples)を参照するか、java.agentscope.ioで完全なドキュメントを読んでください。 - インストール/統合方法: JDK 17+が必要です。ハーネスモジュールをMaven依存関係として追加します:
次にエージェントを作成します:<dependency> <groupId>io.agentscope</groupId> <artifactId>agentscope-harness</artifactId> <version>2.0.1</version> </dependency>HarnessAgent agent = HarnessAgent.builder() .name("assistant") .model("dashscope:qwen-plus") .workspace(Paths.get(".agentscope/workspace")) .build(); agent.call(new UserMessage("Hello!"), ctx).block(); - 貢献方法: github.com/agentscope-ai/agentscope-javaでリポジトリをフォークし、貢献ガイドラインを確認し、プルリクエストを開いてください。大規模な貢献の前に、Discord、DingTalk、またはWeChatでコミュニティに参加して議論してください。
7. プロジェクト構造
agentscope-java/
├── agentscope-core/ # コアフレームワーク: イベント、コンテンツブロック、ReActループ
├── agentscope-harness/ # 本番ハーネス: ミドルウェア、メモリ、プランモード
├── agentscope-extensions/ # LLMプロバイダーとチャネル統合
├── agentscope-service/ # コントロールプレーンとダッシュボード
├── agentscope-distribution/ # 配布パッケージング
├── agentscope-dependencies-bom/ # 集中依存関係バージョン管理
├── agentscope-examples/ # 実装例とクイックスタートコード
└── docs/ # ドキュメントソース
主要ディレクトリ: agentscope-coreはすべてのエージェントが構築される基礎的な抽象化を保持し、agentscope-harnessはコアを本番グレードのミドルウェアでラップするため、ほとんどのアプリケーション開発者が直接依存するものです。agentscope-extensionsは新しいLLMプロバイダーやチャネル統合が追加される場所です。
8. 関連エコシステム
- 上流依存関係: LLMプロバイダー — OpenAI、Anthropic、DashScope(Alibaba Cloud)、Google Gemini、DeepSeek、Ollama(ローカルモデル用)。
- デプロイターゲット: サンドボックス化用のDockerとKubernetes。状態永続化用のRedis、MySQL、PostgreSQL。分散復旧データ用のOSSとCOS(クラウドオブジェクトストレージ)。
- 補完ツール: チャットベースのエージェントデプロイ用のエンタープライズIMプラットフォームDingTalk、Feishu、WeCom。他のエージェントエコシステムとの相互運用のためのA2AおよびAG-UIプロトコル。
- 姉妹プロジェクト: AgentScope(Python)。このJava実装が概念的に対応している元のフレームワークで、両方の言語エコシステムで作業するチーム向けです。
9. ライセンス
Apache License 2.0の下でライセンスされています。
- ✅ 商用およびプロプライエタリ製品を含む、使用、変更、配布は自由です。
- ✅ 貢献者からの特許使用権の付与を許可します。
- ❌ 保証はありません — ソフトウェアは「現状のまま」提供されます。
- ℹ️ 変更したファイルは帰属表示を保持し、再配布時にはライセンスのコピーを含める必要があります。
10. FAQ
Q: AgentScope Javaを使用するにはPythonの知識が必要ですか?
A: いいえ。AgentScope JavaはネイティブのJVMフレームワーク(JDK 17+)であり、独自のMavenアーティファクトを持っています。Pythonランタイムやブリッジは不要です。
Q: 標準でサポートされているLLMプロバイダーはどれですか?
A: OpenAI、Anthropic、DashScope(Alibaba)、Gemini、DeepSeek、Ollamaがモジュール式拡張統合としてサポートされています。
Q: 信頼できない、またはリスクの高いツール呼び出しをエージェントに安全に実行させられますか?
A: はい。組み込みの権限システムにより、個々のツール呼び出しを手動承認のためにゲートでき、ワークスペース/サンドボックス層により、Docker、Kubernetes、またはクラウドサンドボックス(AgentRun)で実行を分離できます。
Q: サービスインスタンスが再起動またはロールアウトされた場合、エージェントの状態はどうなりますか?
A: セッションはRedis、MySQL、またはPostgreSQLに永続化でき、ローリングデプロイ中に進行中の作業を失うことなくクロスレプリカ復旧が可能です。
Q: 複数のエージェントが連携するにはどうすればよいですか?
A: agent_spawnおよびagent_sendプリミティブを使用してサブエージェントを作成し、それらの間でイベントをリアルタイムに転送します。
11. クイックリンク
- リポジトリ: github.com/agentscope-ai/agentscope-java
- 公式ドキュメント: java.agentscope.io
- 貢献: プルリクエストとイシューの規約については、リポジトリの貢献ガイドラインを参照してください。
- コミュニティ: リポジトリのREADMEからリンクされているDiscord、DingTalk、WeChatチャネル。
12. まとめ
AgentScope Javaは、本番グレードのエージェント基盤(型付きイベント、権限ゲート、サンドボックス化、分散セッション復旧)をJVMエコシステムにネイティブにもたらします。別のPythonベースのスタックを採用せずに、長時間実行されるエンタープライズ級のAIエージェントを構築したいJavaおよびSpringチーム、そして初日からエージェントの周りに人間による監視やゼロダウンタイムデプロイなどの運用保証を必要とする組織に最適です。