Implementations of Microsoft.Extensions.AI's abstractions for Amazon Bedrock.
Install
| Product | Versions |
|---|---|
| .NET | |
| .NET Standard | |
| Other |
README
AWS.Bedrock.MEAI
AWS.Bedrock.MEAI provides Microsoft.Extensions.AI
implementations for Amazon Bedrock. It lets .NET developers use
Bedrock models through Microsoft's standard AI abstractions β IChatClient, IEmbeddingGenerator,
IImageGenerator, and IRealtimeClient β so Bedrock plugs into the broader .NET AI ecosystem
(agents, middleware, tooling) with no Bedrock-specific glue code.
This package was previously published as
AWSSDK.Extensions.Bedrock.MEAIfrom the aws-sdk-net repository. It now lives in aws-dotnet-ai alongside the other .NET AI packages and releases independently. TheAmazonBedrockRuntimeExtensionsmethods (AsIChatClient,AsIEmbeddingGenerator, etc.) remain in theAmazon.BedrockRuntimenamespace, so existing call sites need no code change β just update the package reference. The package's other types (such asBedrockStructuredOutputMode) live in theAWS.Bedrock.MEAInamespace; addusing AWS.Bedrock.MEAI;only where you reference those directly.
Installation
dotnet add package AWS.Bedrock.MEAI
Getting started
Turn an IAmazonBedrockRuntime client into an IChatClient:
using Amazon.BedrockRuntime;
using Microsoft.Extensions.AI;
IAmazonBedrockRuntime runtime = new AmazonBedrockRuntimeClient();
IChatClient chatClient = runtime.AsIChatClient("anthropic.claude-3-5-sonnet-20241022-v2:0");
var response = await chatClient.GetResponseAsync("What is Amazon Bedrock?");
Console.WriteLine(response);
Generate embeddings:
IEmbeddingGenerator<string, Embedding<float>> generator =
runtime.AsIEmbeddingGenerator("amazon.titan-embed-text-v2:0");
var embeddings = await generator.GenerateAsync(["Hello world"]);
Features
- Chat (
AsIChatClient) over the Bedrock Converse / ConverseStream APIs, including tool/function calling, multi-modal content (image, video, document), reasoning / extended thinking, citations, and prompt cache points. - Structured output via JSON Schema, in two modes (
BedrockStructuredOutputMode):SyntheticTool(default) β works across the broadest set of models.Nativeβ uses Bedrock native structured outputs on models that support it; composes with user-provided tools and supports streaming.
- Message coalescing (opt-in) β pass a
BedrockChatClientOptionswithCoalesceConsecutiveMessages = truetoAsIChatClientto combine consecutive request messages that map to the same Converse role (for example a tool-result message followed by a user message, both of which map to the Converseuserrole) into a single message, giving replayed histories a normalized request shape. Content-block order is preserved, messages separated by a cache point are never combined, and caller-supplied raw messages are not modified. Defaults tofalse(each message is sent separately). Optional client settings live onBedrockChatClientOptionsso future options can be added without newAsIChatClientoverloads. - Embeddings (
AsIEmbeddingGenerator). - Native stop reason and guardrail trace surfaced on
ChatResponse.AdditionalProperties(and the matching streaming updates) under theAmazonBedrockRuntimeExtensions.StopReasonKey("StopReason") andTraceKey("Trace") keys. Because multiple native stop reasons map to oneChatFinishReason(bothguardrail_intervenedandcontent_filteredmap toContentFilter), theStopReasonstring lets you tell them apart;Tracecarries the guardrail trace as aJsonElementserialized from the SDK trace object, so it serializes safely when the response is persisted (including under trimming / Native AOT). - Image generation (
AsIImageGenerator) for Stability and Amazon Titan / Nova Canvas models. (Experimental βMEAI001.) - Realtime audio (
AsIRealtimeClient) for Amazon Nova Sonic bidirectional streaming, onnet8.0and later. (Experimental βMEAI001.)
Some APIs are annotated [Experimental("MEAI001")] because they build on evaluation-stage
Microsoft.Extensions.AI abstractions. Suppress MEAI001 to use them.
Supported target frameworks
net472, netstandard2.0, and net8.0. The realtime (IRealtimeClient) APIs require net8.0
or later.
Getting help
Open an issue on the aws-dotnet-ai repository.
License
Apache-2.0. See LICENSE.
Changes from Previous Version
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.