Bedrock
Installation
Section titled “Installation”npm i llamaindex @llamaindex/aws
import { BEDROCK_MODELS, Bedrock } from "@llamaindex/aws";
Settings.llm = new Bedrock({ model: BEDROCK_MODELS.ANTHROPIC_CLAUDE_3_HAIKU, region: "us-east-1", // can be provided via env AWS_REGION credentials: { accessKeyId: "...", // optional and can be provided via env AWS_ACCESS_KEY_ID secretAccessKey: "...", // optional and can be provided via env AWS_SECRET_ACCESS_KEY },});
Supported models are listed below (accessible by BEDROCK_MODELS).
AMAZON_TITAN_TG1_LARGE = "amazon.titan-tg1-large";AMAZON_TITAN_TEXT_EXPRESS_V1 = "amazon.titan-text-express-v1";AI21_J2_GRANDE_INSTRUCT = "ai21.j2-grande-instruct";AI21_J2_JUMBO_INSTRUCT = "ai21.j2-jumbo-instruct";AI21_J2_MID = "ai21.j2-mid";AI21_J2_MID_V1 = "ai21.j2-mid-v1";AI21_J2_ULTRA = "ai21.j2-ultra";AI21_J2_ULTRA_V1 = "ai21.j2-ultra-v1";COHERE_COMMAND_TEXT_V14 = "cohere.command-text-v14";
ANTHROPIC_CLAUDE_INSTANT_1 = "anthropic.claude-instant-v1";ANTHROPIC_CLAUDE_2 = "anthropic.claude-v2";ANTHROPIC_CLAUDE_2_1 = "anthropic.claude-v2:1";ANTHROPIC_CLAUDE_3_SONNET = "anthropic.claude-3-sonnet-20240229-v1:0";ANTHROPIC_CLAUDE_3_HAIKU = "anthropic.claude-3-haiku-20240307-v1:0";ANTHROPIC_CLAUDE_3_OPUS = "anthropic.claude-3-opus-20240229-v1:0"; // available on us-west-2ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic.claude-3-5-sonnet-20240620-v1:0";ANTHROPIC_CLAUDE_3_5_SONNET_V2 = "anthropic.claude-3-5-sonnet-20241022-v2:0";ANTHROPIC_CLAUDE_3_5_HAIKU = "anthropic.claude-3-5-haiku-20241022-v1:0";ANTHROPIC_CLAUDE_3_7_SONNET = "anthropic.claude-3-7-sonnet-20250219-v1:0";ANTHROPIC_CLAUDE_4_SONNET = "anthropic.claude-sonnet-4-20250514-v1:0";ANTHROPIC_CLAUDE_4_OPUS = "anthropic.claude-opus-4-20250514-v1:0";
META_LLAMA2_13B_CHAT = "meta.llama2-13b-chat-v1";META_LLAMA2_70B_CHAT = "meta.llama2-70b-chat-v1";META_LLAMA3_8B_INSTRUCT = "meta.llama3-8b-instruct-v1:0";META_LLAMA3_70B_INSTRUCT = "meta.llama3-70b-instruct-v1:0";META_LLAMA3_1_8B_INSTRUCT = "meta.llama3-1-8b-instruct-v1:0"; // available on us-west-2META_LLAMA3_1_70B_INSTRUCT = "meta.llama3-1-70b-instruct-v1:0"; // available on us-west-2META_LLAMA3_1_405B_INSTRUCT = "meta.llama3-1-405b-instruct-v1:0"; // available on us-west-2, tool calling supportedMETA_LLAMA3_2_1B_INSTRUCT = "meta.llama3-2-1b-instruct-v1:0"; // only available via inference endpoints (see below)META_LLAMA3_2_3B_INSTRUCT = "meta.llama3-2-3b-instruct-v1:0"; // only available via inference endpoints (see below)META_LLAMA3_2_11B_INSTRUCT = "meta.llama3-2-11b-instruct-v1:0"; // only available via inference endpoints (see below), multimodal and function call supportedMETA_LLAMA3_2_90B_INSTRUCT = "meta.llama3-2-90b-instruct-v1:0"; // only available via inference endpoints (see below), multimodal and function call supportedMETA_LLAMA3_3_70B_INSTRUCT = "meta.llama3-3-70b-instruct-v1:0";
MISTRAL_7B_INSTRUCT = "mistral.mistral-7b-instruct-v0:2";MISTRAL_MIXTRAL_7B_INSTRUCT = "mistral.mixtral-8x7b-instruct-v0:1";MISTRAL_MIXTRAL_LARGE_2402 = "mistral.mistral-large-2402-v1:0";
AMAZON_NOVA_PREMIER_1 = "amazon.nova-premier-v1:0";AMAZON_NOVA_PRO_1 = "amazon.nova-pro-v1:0";AMAZON_NOVA_LITE_1 = "amazon.nova-lite-v1:0";AMAZON_NOVA_MICRO_1 = "amazon.nova-micro-v1:0";
You can also use Bedrock’s Inference endpoints by using the model names (accessible by INFERENCE_BEDROCK_MODELS). Note that the region must be set correctly.
//USUS_ANTHROPIC_CLAUDE_3_HAIKU = "us.anthropic.claude-3-haiku-20240307-v1:0";US_ANTHROPIC_CLAUDE_3_5_HAIKU = "us.anthropic.claude-3-5-haiku-20241022-v1:0";US_ANTHROPIC_CLAUDE_3_OPUS = "us.anthropic.claude-3-opus-20240229-v1:0";US_ANTHROPIC_CLAUDE_3_SONNET = "us.anthropic.claude-3-sonnet-20240229-v1:0";US_ANTHROPIC_CLAUDE_3_5_SONNET = "us.anthropic.claude-3-5-sonnet-20240620-v1:0";US_ANTHROPIC_CLAUDE_3_5_SONNET_V2 = "us.anthropic.claude-3-5-sonnet-20241022-v2:0";US_ANTHROPIC_CLAUDE_3_7_SONNET = "us.anthropic.claude-3-7-sonnet-20250219-v1:0";US_ANTHROPIC_CLAUDE_4_SONNET = "us.anthropic.claude-sonnet-4-20250514-v1:0";US_ANTHROPIC_CLAUDE_4_OPUS = "us.anthropic.claude-opus-4-20250514-v1:0";US_META_LLAMA_3_2_1B_INSTRUCT = "us.meta.llama3-2-1b-instruct-v1:0";US_META_LLAMA_3_2_3B_INSTRUCT = "us.meta.llama3-2-3b-instruct-v1:0";US_META_LLAMA_3_2_11B_INSTRUCT = "us.meta.llama3-2-11b-instruct-v1:0";US_META_LLAMA_3_2_90B_INSTRUCT = "us.meta.llama3-2-90b-instruct-v1:0";US_META_LLAMA_3_3_70B_INSTRUCT = "us.meta.llama3-3-70b-instruct-v1:0";US_AMAZON_NOVA_PREMIER_1 = "us.amazon.nova-premier-v1:0";US_AMAZON_NOVA_PRO_1 = "us.amazon.nova-pro-v1:0";US_AMAZON_NOVA_LITE_1 = "us.amazon.nova-lite-v1:0";US_AMAZON_NOVA_MICRO_1 = "us.amazon.nova-micro-v1:0";
//EUEU_ANTHROPIC_CLAUDE_3_HAIKU = "eu.anthropic.claude-3-haiku-20240307-v1:0";EU_ANTHROPIC_CLAUDE_3_5_HAIKU = "eu.anthropic.claude-3-5-haiku-20240307-v1:0";EU_ANTHROPIC_CLAUDE_3_SONNET = "eu.anthropic.claude-3-sonnet-20240229-v1:0";EU_ANTHROPIC_CLAUDE_3_5_SONNET = "eu.anthropic.claude-3-5-sonnet-20240620-v1:0";EU_ANTHROPIC_CLAUDE_3_7_SONNET = "eu.anthropic.claude-3-7-sonnet-20250219-v1:0";EU_ANTHROPIC_CLAUDE_4_SONNET = "eu.anthropic.claude-sonnet-4-20250514-v1:0";EU_ANTHROPIC_CLAUDE_4_OPUS = "eu.anthropic.claude-opus-4-20250514-v1:0";EU_META_LLAMA_3_2_1B_INSTRUCT = "eu.meta.llama3-2-1b-instruct-v1:0";EU_META_LLAMA_3_2_3B_INSTRUCT = "eu.meta.llama3-2-3b-instruct-v1:0";EU_AMAZON_NOVA_PREMIER_1 = "eu.amazon.nova-premier-v1:0";EU_AMAZON_NOVA_PRO_1 = "eu.amazon.nova-pro-v1:0";EU_AMAZON_NOVA_LITE_1 = "eu.amazon.nova-lite-v1:0";EU_AMAZON_NOVA_MICRO_1 = "eu.amazon.nova-micro-v1:0";
//APACAPAC_ANTHROPIC_CLAUDE_3_5_SONNET = "apac.anthropic.claude-3-5-sonnet-20240620-v1:0";APAC_ANTHROPIC_CLAUDE_3_5_SONNET_V2 = "apac.anthropic.claude-3-5-sonnet-20241022-v2:0";APAC_ANTHROPIC_CLAUDE_3_7_SONNET = "apac.anthropic.claude-3-7-sonnet-20250219-v1:0";APAC_ANTHROPIC_CLAUDE_4_SONNET = "apac.anthropic.claude-sonnet-4-20250514-v1:0";APAC_ANTHROPIC_CLAUDE_3_HAIKU = "apac.anthropic.claude-3-haiku-20240307-v1:0";APAC_ANTHROPIC_CLAUDE_3_SONNET = "apac.anthropic.claude-3-sonnet-20240229-v1:0";APAC_AMAZON_NOVA_PRO_1 = "apac.amazon.nova-pro-v1:0";APAC_AMAZON_NOVA_LITE_1 = "apac.amazon.nova-lite-v1:0";APAC_AMAZON_NOVA_MICRO_1 = "apac.amazon.nova-micro-v1:0";
Sonnet, Haiku and Opus are multimodal, image_url only supports base64 data url format, e.g. data:image/jpeg;base64,SGVsbG8sIFdvcmxkIQ==
Full Example
Section titled “Full Example”import { INFERENCE_BEDROCK_MODELS, Bedrock } from "@llamaindex/aws";
Settings.llm = new Bedrock({ model: INFERENCE_BEDROCK_MODELS.US_ANTHROPIC_CLAUDE_3_SONNET, region: "us-east-1",});
async function main() { const document = new Document({ text: essay, id_: "essay" });
// Load and index documents const index = await VectorStoreIndex.fromDocuments([document]);
// Create a query engine const queryEngine = index.asQueryEngine({ retriever, });
const query = "What is the meaning of life?";
// Query const response = await queryEngine.query({ query, });
// Log the response console.log(response.response);}
Agent Example
Section titled “Agent Example”import { BEDROCK_MODELS, Bedrock } from "@llamaindex/aws";import { tool } from "llamaindex";import { agent } from "@llamaindex/workflow";import { z } from "zod";
const sumNumbers = tool( { name: "sumNumbers", description: "Use this function to sum two numbers", parameters: z.object({ a: z.number({ description: "The first number", }), b: z.number({ description: "The second number", }), }), execute: ({ a, b }: { a: number; b: number }) => `${a + b}`, },);
const divideNumbers = tool( { name: "divideNumbers", description: "Use this function to divide two numbers", parameters: z.object({ a: z.number({ description: "The dividend a to divide", }), b: z.number({ description: "The divisor b to divide by", }), }), execute: ({ a, b }: { a: number; b: number }) => `${a / b}`, },);
const bedrock = new Bedrock({ model: BEDROCK_MODELS.META_LLAMA3_1_405B_INSTRUCT, ...});
async function main() { const myAgent = agent({ llm: bedrock, tools: [sumNumbers, divideNumbers], });
const response = await myAgent.run( "How much is 5 + 5? then divide by 2", );
console.log(response);}