View a markdown version of this page

ツールの説明のレコメンデーションを開始する - Amazon Bedrock AgentCore

ツールの説明のレコメンデーションを開始する

エージェント用に最適化されたツールの説明を生成するレコメンデーションを開始します。このサービスは、エージェントトレースを分析してツール選択の混乱を特定し、エージェントがツール間で選択する際のあいまいさを軽減する詳細な説明を生成します。

注記

レコメンデーションは LLMs。適用する前に確認してテストします。

コードサンプル

AgentCore CLI
注記

1 つの のみを必要とするシステムプロンプトのレコメンデーションとは異なり-e/--evaluator、ツールの説明は-e/--evaluator完全に省略されます。

CloudWatch トレースを使用したインラインツールの説明:

agentcore run recommendation \ --type tool-description \ --run my-tool-rec \ --runtime MyAgent \ --tools "lookup_order:Look up an order by ID" \ --tools "initiate_return:Initiate a return for an order" \ --lookback 7

スパンファイルを使用したインラインツールの説明:

agentcore run recommendation \ --type tool-description \ --run my-tool-rec \ --runtime MyAgent \ --tools "lookup_order:Look up an order by ID" \ --tools "initiate_return:Initiate a return for an order" \ --spans-file agent-traces.json

特定のセッション IDs を含むインラインツールの説明:

agentcore run recommendation \ --type tool-description \ --run my-tool-rec \ --runtime MyAgent \ --tools "lookup_order:Look up an order by ID" \ --tools "initiate_return:Initiate a return for an order" \ --session-id 12345678-1234-1234-1234-123456789012

CloudWatch トレースを含む設定バンドル:

agentcore run recommendation \ --type tool-description \ --run my-tool-rec \ --runtime MyAgent \ --bundle-name <bundle-name> \ --bundle-version <bundle-version> \ --tool-desc-json-path "lookup_order:lookup_order" \ --tool-desc-json-path "initiate_return:initiate_return" \ --lookback 7

スパンファイルを含む設定バンドル:

agentcore run recommendation \ --type tool-description \ --run my-tool-rec \ --runtime MyAgent \ --bundle-name <bundle-name> \ --bundle-version <bundle-version> \ --tool-desc-json-path "lookup_order:lookup_order" \ --tool-desc-json-path "initiate_return:initiate_return" \ --spans-file agent-traces.json

--lookback、、および に加えて--session-id、 はさらに 2 --spans-fileつのトレースソースagentcore run recommendationを受け入れます。--from-insights <id>(ローカルインサイトをトレースソースとして使用し、CLI はバッチ評価 ARN を解決します) と --batch-evaluation-arn <arn> (バッチ評価 ARN を直接使用します)。すべてのトレースソースの概要については、「推奨事項のトレースソース」を参照してください。カスタマーマネージド KMS キーを使用してレコメンデーション結果を暗号化--kms-key <arn>するために を追加することもできます。

レコメンデーションが終了状態になるまでブロックするには、 を追加します--wait

agentcore run recommendation \ --type tool-description \ --run my-tool-rec \ --runtime MyAgent \ --tools "lookup_order:Look up an order by ID" \ --tools "initiate_return:Initiate a return for an order" \ --lookback 7 \ --wait

を使用して、最適化されたツールの説明を含む完成した結果を取得しますagentcore view recommendation

agentcore view recommendation <recommendation-id> --json
AWS SDK (boto3)

CloudWatch トレースを使用したインラインツールの説明:

import boto3 import json import uuid from datetime import datetime, timedelta, timezone client = boto3.client("bedrock-agentcore", region_name="us-west-2") now = datetime.now(timezone.utc) response = client.start_recommendation( name="my-tool-rec", type="TOOL_DESCRIPTION_RECOMMENDATION", recommendationConfig={ "toolDescriptionRecommendationConfig": { "toolDescription": { "toolDescriptionText": { "tools": [ { "toolName": "lookup_order", "toolDescription": {"text": "Look up an order by ID"}, }, { "toolName": "initiate_return", "toolDescription": {"text": "Initiate a return for an order"}, }, ] } }, "agentTraces": { "cloudwatchLogs": { "logGroupArns": [ "arn:aws:logs:us-west-2:123456789012:log-group:/aws/bedrock-agentcore/runtimes/MyAgent-abc123-DEFAULT" ], "serviceNames": ["MyAgent.DEFAULT"], "startTime": now - timedelta(days=7), "endTime": now, } }, } }, clientToken=str(uuid.uuid4()), ) recommendation_id = response["recommendationId"] print(f"Started recommendation: {recommendation_id}") print(f"Status: {response['status']}")

インラインスパンを使用したインラインツールの説明:

with open("agent-traces.json") as f: spans = json.load(f) response = client.start_recommendation( name="my-tool-rec-spans", type="TOOL_DESCRIPTION_RECOMMENDATION", recommendationConfig={ "toolDescriptionRecommendationConfig": { "toolDescription": { "toolDescriptionText": { "tools": [ { "toolName": "lookup_order", "toolDescription": {"text": "Look up an order by ID"}, }, { "toolName": "initiate_return", "toolDescription": {"text": "Initiate a return for an order"}, }, ] } }, "agentTraces": { "sessionSpans": spans }, } }, clientToken=str(uuid.uuid4()), )

CloudWatch トレースを含む設定バンドル:

response = client.start_recommendation( name="my-bundle-tool-rec", type="TOOL_DESCRIPTION_RECOMMENDATION", recommendationConfig={ "toolDescriptionRecommendationConfig": { "toolDescription": { "configurationBundle": { "bundleArn": "<bundle-arn>", "versionId": "<bundle-version>", "tools": [ { "toolName": "lookup_order", "toolDescriptionJsonPath": "$.configuration.tools.lookup_order.description", }, { "toolName": "initiate_return", "toolDescriptionJsonPath": "$.configuration.tools.initiate_return.description", }, ], } }, "agentTraces": { "cloudwatchLogs": { "logGroupArns": [ "arn:aws:logs:us-west-2:123456789012:log-group:/aws/bedrock-agentcore/runtimes/MyAgent-abc123-DEFAULT" ], "serviceNames": ["MyAgent.DEFAULT"], "startTime": now - timedelta(days=7), "endTime": now, } }, } }, clientToken=str(uuid.uuid4()), )

インラインスパンを含む設定バンドル:

response = client.start_recommendation( name="my-bundle-tool-rec-spans", type="TOOL_DESCRIPTION_RECOMMENDATION", recommendationConfig={ "toolDescriptionRecommendationConfig": { "toolDescription": { "configurationBundle": { "bundleArn": "<bundle-arn>", "versionId": "<bundle-version>", "tools": [ { "toolName": "lookup_order", "toolDescriptionJsonPath": "$.configuration.tools.lookup_order.description", }, { "toolName": "initiate_return", "toolDescriptionJsonPath": "$.configuration.tools.initiate_return.description", }, ], } }, "agentTraces": { "sessionSpans": spans }, } }, clientToken=str(uuid.uuid4()), )

リクエストパラメータ

パラメータ タイプ 必須 説明

name

文字列

はい

レコメンデーションの名前。最大 48 文字。パターン: [a-zA-Z][a-zA-Z0-9_-]{0,47}

type

String

はい

TOOL_DESCRIPTION_RECOMMENDATION を指定してください。

recommendationConfig

オブジェクト

はい

レコメンデーションの設定toolDescriptionRecommendationConfigに が含まれます。

description

String

いいえ

オプションの説明。最大 4096 文字。

clientToken

String

いいえ

べき等性トークン。同じクライアントトークンを使用してリクエストを再試行すると、サービスは新しいレコメンデーションを作成する代わりに既存のレコメンデーションを返します。

toolDescriptionRecommendationConfig フィールド

フィールド Type 必須 説明

toolDescription

Union

はい

最適化する現在のツールの説明。(ツール名と説明のペアのtoolDescriptionTextインラインリスト) または configurationBundle (各ツールの説明への JSON パスを含む参照をバンドル) を指定します。

agentTraces

Union

はい

分析用のトレースソース。推奨事項については、「トレースソース」を参照してください。

注記

ツールの説明に関する推奨事項には、 は必要ありませんevaluationConfig。評価者を最適化シグナルとして使用するシステムプロンプトレコメンデーションとは異なり、ツールの説明レコメンデーションは、エージェントトレースから直接ツール選択パターンを分析してツール間のあいまいさを特定し、詳細な説明を生成します。

ツールの説明の入力モード

モード CLI フラグ API フィールド

インラインテキスト

--tools "name:description" (ツールごとに繰り返す)

toolDescription.toolDescriptionText.toolstoolName および を持つオブジェクトのリスト toolDescription

設定バンドル

--bundle-name <bundle-name> + --bundle-version <bundle-version> + --tool-desc-json-path "name:field" (ツールごとに繰り返す)

toolDescription.configurationBundle と を含む bundleArnversionId、および toolsリスト toolName toolDescriptionJsonPath

設定バンドルを使用する場合、結果には、最適化されたツールの説明が適用された新しいバンドルバージョンが含まれます。

[応答]

フィールド タイプ 説明

recommendationId

文字列

レコメンデーションの一意の識別子。

recommendationArn

String

レコメンデーションの ARN。

name

String

指定した名前。

type

String

TOOL_DESCRIPTION_RECOMMENDATION.

status

String

初期ステータス: PENDINGまたは IN_PROGRESS

createdAt

タイムスタンプ

レコメンデーションが作成された日時。

updatedAt

タイムスタンプ

レコメンデーションが最後に更新された日時。

レコメンデーション結果

レコメンデーションがCOMPLETEDステータス (レコメンデーションの取得を介して取得) に達すると、結果には以下が含まれます。

フィールド タイプ 説明

tools

[List] (リスト)

ツールごとの結果。各エントリには、toolNamerecommendedToolDescription、および が含まれますexplanation

configurationBundle

オブジェクト

入力が設定バンドルであった場合に表示されます。最適化された説明が適用された新しいバンドルバージョンが含まれ、bundleArnversionIdそれを指しています。

errorCode

String

レコメンデーションが失敗したかどうかを示します。失敗を説明するエラーコード。

errorMessage

String

レコメンデーションが失敗したかどうかを示します。人間が読めるエラーの説明。

エラー

エラー HTTP ステータス 説明

ValidationException

400

リクエストパラメータが無効です。フィールドの制約と必須フィールドを確認します。

AccessDeniedException

403

アクセス許可が不十分です。IAM ポリシーを確認します。

ConflictException

409

同じクライアントトークンを持つレコメンデーションは、異なるパラメータで既に存在します。

ServiceQuotaExceededException

402

同時レコメンデーションの最大数を超えました。

ThrottlingException

429

リクエストレートを超えました。エクスポネンシャルバックオフを使用して再試行してください。

InternalServerException

500

サービス側のエラー。リクエストを再試行します。