Bedrock¶
最終更新日:2025/08/17
まだまだ情報収集中なので参考程度で・・・
パッケージ¶
作成したエージェントを呼び出して使う場合は、「AWSSDK.BedrockAgentRuntime」を使用する。
エージェント自体を作成したりするのは多分「AWSSDK.BedrockAgent」の方。
・NuGet
NuGet Gallery | AWSSDK.BedrockAgentRuntime
https://www.nuget.org/packages/AWSSDK.BedrockAgentRuntime/
using Amazon.BedrockAgentRuntime;
エージェント操作¶
クライアント¶
クライアントから操作するので生成する。
AmazonBedrockAgentRuntimeClient bedrockAgentClient;
AmazonBedrockAgentRuntimeConfig bedrockAgentConfig = new()
{
RegionEndpoint = Amazon.RegionEndpoint.APNortheast1
};
bedrockAgentClient = new AmazonBedrockAgentRuntimeClient(bedrockAgentConfig);
呼び出し¶
とりあえずソースから。
InvokeAgentRequest request = new()
{
AgentId = "12345",
AgentAliasId = "ABCDE",
SessionId = "new-session-2025-08-17-001",
InputText = "AWSについて教えてください。"
};
using InvokeAgentResponse invokeAgent = await bedrockAgentClient.InvokeAgentAsync(request);
StringBuilder outputText = new();
invokeAgent.Completion.ChunkReceived += (sender, e) =>
{
outputText.Append(Encoding.UTF8.GetString(e.EventStreamEvent.Bytes.ToArray()));
};
await invokeAgent.Completion.StartProcessingAsync();
return outputText.ToString();
・InvokeAgentRequest
呼び出し用のパラメータ。
「AgentId」はエージェント自体のIDを、「AgentAliasId」にはそのエージェントで作成したエイリアスのIDを設定する。
「SessionId」は会話を識別するID、同じものを指定すればエージェントが過去の会話の履歴を拾ってくれる・・・と思う。(試してないw)
「InputText」はエージェントへの入力文字列。
・bedrockAgentClient.InvokeAgentAsync
エージェントを呼び出すための準備。
このタイミングではエージェントの処理は行われない。
・invokeAgent.Completion.ChunkReceived
チャンク受信イベント。
このイベントにエージェントからの出力が返される。
ChatGPTとかみたいに一定の文字の塊で順々に返ってくるので、上の例ではそのまま結合している。
・invokeAgent.Completion.StartProcessingAsync
これを呼び出すことで実際にエージェントが処理される。
エージェントの処理が完了すると、非同期処理が完了する。
リンク¶
公式ガイド・・・だけど現状JSしかない。
・AWS SDKs を使用する Amazon Bedrock エージェントのコード例
https://docs.aws.amazon.com/ja_jp/code-library/latest/ug/bedrock-agent_code_examples.html
プレリリースだけどMicrosoftが提供しているパッケージ。
正式リリースになったら試したい。
・セマンティック カーネル BedrockAgent の探索
https://learn.microsoft.com/ja-jp/semantic-kernel/frameworks/agent/agent-types/bedrock-agent?pivots=programming-language-csharp