Amazon Bedrock

Amazon Bedrock は、AWS を介して基盤モデルのマネージド推論を提供します。 Agent Framework では、Bedrock IChatClientをラップするか、標準のエージェント、セッション、ミドルウェア、およびツール API を維持しながら、Python BedrockChatClientを使用できます。

Important

Amazon Bedrock はサードパーティのシステムです。 アプリケーション データを送信する前に、AWS サービスの用語、データ処理、リージョンの可用性、モデル アクセス、および使用コストを確認します。

パッケージをインストールする

dotnet add package AWSSDK.Extensions.Bedrock.MEAI
dotnet add package Microsoft.Agents.AI --prerelease

Configuration

AWS_REGION="us-east-1"
BEDROCK_MODEL_ID="anthropic.claude-3-5-sonnet-20241022-v2:0"

認証では、環境変数、共有プロファイル、ワークロード ID、IAM ロールなど、標準の AWS 資格情報チェーンが使用されます。

AWS Bedrock ランタイム クライアントを作成し、 IChatClientに変換してから、Agent Framework エージェントを作成します。

var awsRegion = Environment.GetEnvironmentVariable("AWS_REGION") ?? "us-east-1";
var modelId = Environment.GetEnvironmentVariable("BEDROCK_MODEL_ID") ?? "anthropic.claude-3-5-sonnet-20241022-v2:0";
// Create the Bedrock runtime client.
var bedrockRuntime = new AmazonBedrockRuntimeClient(RegionEndpoint.GetBySystemName(awsRegion));
IChatClient chatClient = bedrockRuntime.AsIChatClient(modelId);
AIAgent agent = chatClient.AsAIAgent(
    instructions: "You are a helpful assistant.",
    name: "BedrockAgent");

AWS 認証情報は、標準の AWS 認証情報チェーンに従います。 アプリケーションに必要な Bedrock モデルアクションのみを付与します。

パッケージをインストールする

pip install agent-framework-bedrock --pre

Configuration

BEDROCK_REGION="us-east-1"
BEDROCK_CHAT_MODEL="anthropic.claude-3-5-sonnet-20241022-v2:0"
AWS_ACCESS_KEY_ID="<access-key>"
AWS_SECRET_ACCESS_KEY="<secret-key>"
# Optional temporary credentials:
AWS_SESSION_TOKEN="<session-token>"
# Optional shared profile:
AWS_PROFILE="<profile>"

BedrockChatClient は、設定または明示的なコンストラクター値からモデル、リージョン、および AWS の資格情報を読み取ります。

async def main() -> None:
    """Run a Bedrock-backed agent with one tool call."""
    # 1. Create an agent with Bedrock chat client and one tool.
    agent = Agent(
        client=BedrockChatClient(),
        instructions="You are a concise travel assistant.",
        name="BedrockWeatherAgent",
        tools=[get_weather],
        default_options=BedrockChatOptions(tool_choice="auto"),
    )

    # 2. Run a query that uses the weather tool.
    query = "Use the weather tool to check the forecast for New York."
    print(f"User: {query}")
    response = await agent.run(query)
    print(f"Assistant: {response.text}")

デプロイで Bedrock ガードレールを使用する場合は、Bedrock 固有の要求オプションとBedrockGuardrailConfigBedrockChatOptionsを使用します。

埋め込みの生成

BedrockEmbeddingClient は、Amazon Titan 埋め込みモデルを使用して埋め込みを生成します。 BEDROCK_EMBEDDING_MODELBEDROCK_REGIONを構成し、BedrockChatClientと同じ AWS 資格情報チェーンを使用します。

現在、このクライアントに対して実行可能な Agent Framework 埋め込みサンプルは発行されません。

Note

現在、Amazon Bedrock 統合は Agent Framework Go では使用できません。 最新の状態については、 Agent Framework Go リポジトリ を参照してください。

Tools

Bedrock はローカルで呼び出された Agent Framework ツールをサポートしますが、プロバイダーホスト型ツール ファクトリは公開しません。

ツール C# Python Notes
関数ツール モデルのサポートは、選択した Bedrock モデルによって異なります。
ツールの承認 Agent Framework 関数呼び出しループによって適用されます。
コード インタープリター Bedrock でホストされるコード インタープリターの統合はありません。
ファイル検索 Bedrock でホストされるファイル検索の統合はありません。
Web 検索 Bedrock でホストされる Web 検索の統合はありません。
ホストされている MCP ツール Bedrock でホストされる MCP 統合はありません。
ローカル MCP ツール アプリケーション プロセスで実行されます。

次のステップ