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 固有の要求オプションとBedrockGuardrailConfigにBedrockChatOptionsを使用します。
埋め込みの生成
BedrockEmbeddingClient は、Amazon Titan 埋め込みモデルを使用して埋め込みを生成します。
BEDROCK_EMBEDDING_MODELとBEDROCK_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 ツール | ✅ | ✅ | アプリケーション プロセスで実行されます。 |