Bedrock
Installation
Section titled “Installation”npm i llamaindex @llamaindex/awsimport { 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";ANTHROPIC_CLAUDE_4_1_OPUS = "anthropic.claude-opus-4-1-20250805-v1:0";ANTHROPIC_CLAUDE_4_5_SONNET = "anthropic.claude-sonnet-4-5-20250929-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_ANTHROPIC_CLAUDE_4_1_OPUS = "us.anthropic.claude-opus-4-1-20250805-v1:0";US_ANTHROPIC_CLAUDE_4_5_SONNET = "us.anthropic.claude-sonnet-4-5-20250929-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_ANTHROPIC_CLAUDE_4_1_OPUS = "eu.anthropic.claude-opus-4-1-20250805-v1:0";EU_ANTHROPIC_CLAUDE_4_5_SONNET = "eu.anthropic.claude-sonnet-4-5-20250929-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);}