AiSpect コア設計理念とアーキテクチャ概要

AiSpect コア設計理念とアーキテクチャ概要

Java 17+ およびマルチアーキテクチャのサポートを目指し、AiSpect はマルチモジュール (Multi-Module) エンジニアリング構造を採用し、コアロジックと外部コンテナ (Spring など) との厳密な分離を確保しています。その中核となる目標は、クロスアーキテクチャでアノテーション駆動の AI Agent 注入システムを実装することです。AOP (アスペクト指向プログラミング) のプロキシパターンを通じて、実行前後の固定化されたビジネスロジックと柔軟な AI 大規模モデルの推論をシームレスに接続し、最終的に Agent オーケストレーションプロセスのシステムアシスタントとして機能します。

1. コアドメインとアーキテクチャの階層

アーキテクチャ全体は、主に 4 つの階層に分かれています。

  • 統合レイヤー (Integration Layer): さまざまな Engine アダプター (Spring や純粋な SE エンジンなど) を介して、コンテナ起動時に @AiAgent を持つターゲットクラスをスキャンし、プロキシオブジェクトの生成と置換をトリガーします。
  • ウィービング&プロキシレイヤー (Weaving & Proxy Layer): 特定のコンテナに依存しないコアプロキシロジック。ProxyFactory を通じてプロキシオブジェクトを生成し、Interceptor を通じてビジネスメソッドの実行をインターセプトし、実行コンテキスト (AiInvocationContext) を構築します。
  • Agent オーケストレーションレイヤー (Agent Orchestration Layer): すべての AI 処理ロジックの基盤 (Agent コントラクト)。実行前後にパラメータをどのように修正し、結果を分析し、コンテキストを維持するかを決定します。
  • 基盤レイヤー (Foundation Layer): 特定の基盤モデルの AiClient、および統一されたルーティングとスケジューリング機能を提供する Core Engine と接続します。

コア実行フロー

  1. インターセプトトリガー: ユーザーがプロキシオブジェクトのメソッドを呼び出します。
  2. 前処理 (Before): アノテーション設定を抽出し、Agent.preProcess(Context) を呼び出します。AI 推論を通じて修正された入力パラメータを生成します。
  3. ターゲット実行 (Invoke): 修正されたパラメータを使用して、実際のターゲットオブジェクトの元のメソッドを呼び出します。
  4. 後処理 (After): Agent.postProcess(Result, Context) を呼び出します。AI が戻り値を再度要約または処理します。
  5. リターン: 最終的に処理された結果を呼び出し元に返します。

2. モジュール分割と依存関係トポロジ

AiSpect は厳密な単方向依存性の原則に従い、外部モジュール (Spring アダプターなど) が内部のコアロジックを逆方向に汚染することを絶対に防ぎます。基盤ベース、ネットワークレイヤー、およびインターセプトエンジンは、統合された Core ランタイムの巨大モジュールにマージされます。

  • aispect-agents: 組み込み AI Agent ライブラリ (純粋なビジネスコントラクト、依存関係ゼロ)。
  • aispect-core: 統合基盤 (Common 例外とモデル、AI Client ネットワーク通信、プロキシエンジンを含む)。依存関係チェーンの最下層に位置し、いかなる環境や特定のビジネスコンポーネントにも依存しません。
  • engines:*: ユーザー統合のための唯一のエントリポイント (例: aispect-engine-spring, aispect-engine-se)。環境ライフサイクルのマウントと自動ウィービングを提供するために aispect-core に依存しています。
  • 周辺モジュール: aispect-bom (依存関係管理), aispect-test (専用テスト), examples (ベストプラクティス), aispect-website (ポータルサイト)。

3. Unit Agent から Graph ワークフローへ

AiSpect は、ローカルな連携とグローバルなオーケストレーションという 2 つの Agent の役割を明確に区別しています。

Unit Agent

中核となる責任は、Java プログラムとの連携です。AI の介入は主にアノテーションのインターセプトによって実現され、関数の入力パラメータと戻り値を変更します。このアプローチにより、全体のプロセス構造を破壊することなく、AI をワークフローの特定のステップに限定し、ローカルなインテリジェントな強化に焦点を当てます。

Graph Agent とワークフロー

複雑なシナリオでは、静的なアノテーションのみに依存して動的なオーケストレーションのニーズを満たすことはできません。AiSpect は、ワークフローのオーケストレーションにグラフアルゴリズム (Graph Algorithms) ロジックを導入しています。 Graph Agent の中核となる責任は、Java プログラムの編成です。

  • メインプロセスまたはルーティングエントリポイントをインターセプトし、ワークフローを開始するための命令を認識します。
  • グラフ内のノード (Node) は、Graph Agent によって割り当てられるリソースになります。基盤となるシステムは、グラフエンジンを介してこれらのノードを動的に解析、スケジュール、および実行し、単一ポイントとグローバルのインテリジェンスの統一されたアーキテクチャを実現します。