はじめに

Agent2Agent (A2A) は、不透明なエージェント アプリケーション間の通信と相互運用性を可能にするオープン プロトコルです。Parasoft SOAtest は、組み込みの JSON 処理ツール、LLM 統合、そして幅広い基盤トランスポート向けの拡張機能を備えており、A2A のテストに最適です。

A2A テスト シナリオの例

以下の例は、SOAtest で A2A テストシナリオを作成する方法を示しています。

  1. 新しい .tst ファイルと、エージェント カードへの URL を含む環境を作成します。
    • エージェント カードは、公開され、機械可読な JSON メタデータ ドキュメントとして機能します。エージェントのデジタル「名刺」として機能し、潜在的な顧客にエージェントの身元と能力を宣伝します。
    • 通常、よく知られた URI (多くの場合、/.well-known/agent-card.json) で公開されます。
    • エージェント カードは、エージェントが互いにやり取りする方法を見つけ、理解するために不可欠です。
  2. セットアップ テストとして、リソースの環境変数 ${AGENT_CARD} を使用してエージェント カードを取得 (GET) する REST クライアントを作成します。
    • テストを 1 回実行し、レスポンス トラフィックに JSON データバンクをアタッチして、url プロパティを BASE_URL というカスタム列に抽出します。
    • XPath を使用します:   /root/url[1]/text()

  3. JRPC_REQUEST_ID および A2A_MESSAGE_ID の 2 つのランダムで一意の ID 文字列を生成する、別のセットアップテストとしてデータ生成ツールを作成します。
    • パターンを使用します: JRPC_REQUEST_ID に &&&&&&&&-&&&&-&&&&-&&&&-&&&&&&&&&&&& を使用。
    • パターンを使用します: A2A_MESSAGE_ID に &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& を使用。
    • 文字マップを使用します:  両方に A2A_MESSAGE_ID を使用。
    • 各文字列に対応するデータ ソース列を必ず構成してください。

  4. エージェントにメッセージを送信するための標準テストとして、Messaging Client を作成します。
    • [トランスポート] タブで HTTP/1.1 を設定し、ルーター エンドポイント ${BASE_URL} に POST します。
    • または、A2A サーバーが gRPC を使用している場合は、Parasoft Marketplace から gRPC 拡張機能をインストールし、メッセージングクライアントが gRPC トランスポートを使用するように設定します。Parasoft Marketplace からの入手については、Parasoft テクニカル サポート センター ([email protected]) にお問い合わせください。

  5. メッセージリクエストを設定します。入力モードを Literal に変更し、MIMEタイプを application/json に設定します。以下のコードを貼り付け、エージェントへのプロンプトを設定します。
    {
        "id" : "${JRPC_REQUEST_ID}",
        "jsonrpc" : "2.0",
        "method" : "message/send",
        "params" : {
            "message" : {
                "kind" : "message",
                "messageId" : "${A2A_MESSAGE_ID}",
                "parts" : [               
                    {
                         "kind" : "text",
                         "text" : "<your prompt here>"
                    }
                ],
                "role" : "user"
            }
        }
    }
  6. レスポンス トラフィックに JSON アサーターを追加して、エラーをチェックし、結果状態が完了していることをアサートします。
    • エラーをチェックするには、XPath: /root/error のオカレンス アサーション (構造アサーションの下) を追加し、要素のオカレンスが期待値: [固定] 0 と等しくなるように設定します。 これにより、エラーがある場合にテストが失敗します。
    • 結果状態が完了したことをアサートするには、XPath: /root/result/status/state/string() の値アサーションを追加し、期待値: [固定] 完了 を設定します。ユーザーによる追加入力が必要な場合など、A2Aサーバーがタスクを完了できない場合、このアサーションは失敗します。

  7. レスポンス トラフィックに JSON データ バンクを追加して、結果テキストを RESULT_TEXT という名前のカスタム列に抽出します。
    • XPath を使用します: /root/result[1]/artifacts[1]/item[1]/parts[1]/item[1]/text[1]/text()

  8. Messaging Client の後に、標準テストとして AI アサーターを追加します。SOAtest の AI アサーターは、LLM 統合を使用して、結果テキストが受け入れ基準を満たしているかどうかを判断します。
    • 結果テキストは AI によって生成されるため非決定論的であるため、標準の diff ツールや XPath ベースのアサーターではなく AI アサーターが必要です。
    • AI アサーターの入力で、データソース列 RESULT_TEXT を使用するように設定します。
    • 自然言語プロンプトを含むアサーションを追加します。


  • No labels