Amazon Bedrock
Maven 依存関係
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bedrock</artifactId>
<version>1.18.1</version>
</dependency>
AWS 認証情報
Amazon Bedrock モデルを使用するには、AWS 認証情報を設定する必要があります。
選択肢のひとつは、AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY 環境変数を設定することです。詳細はこちらを参照してください。あるいは、API キー認証のためにローカルで AWS_BEARER_TOKEN_BEDROCK 環境変数を設定することもできます。API キーの詳細については、ドキュメントを参照してください。
BedrockChatModel
現在の実装では Guardrails はサポートされていません。
サポートされているモデルとその機能はこちらで確認できます。
モデル ID はこちらで確認できます。
設定
ChatModel model = BedrockChatModel.builder()
.client(BedrockRuntimeClient)
.region(...)
.modelId("us.amazon.nova-lite-v1:0")
.returnThinking(...)
.sendThinking(...)
.timeout(...)
.maxRetries(...)
.logRequests(...)
.logResponses(...)
.listeners(...)
.defaultRequestParameters(BedrockChatRequestParameters.builder()
.modelName(...)
.temperature(...)
.topP(...)
.maxOutputTokens(...)
.stopSequences(...)
.toolSpecifications(...)
.toolChoice(...)
.additionalModelRequestFields(...)
.additionalModelRequestField(...)
.enableReasoning(...)
.promptCaching(...)
.build())
.build();
例
BedrockStreamingChatModel
現在の実装では Guardrails はサポートされていません。
サポートされているモデルとその機能はこちらで確認できます。
モデル ID はこちらで確認できます。
設定
StreamingChatModel model = BedrockStreamingChatModel.builder()
.client(BedrockRuntimeAsyncClient)
.region(...)
.modelId("us.amazon.nova-lite-v1:0")
.returnThinking(...)
.sendThinking(...)
.timeout(...)
.logRequests(...)
.logResponses(...)
.listeners(...)
.defaultRequestParameters(BedrockChatRequestParameters.builder()
.modelName(...)
.temperature(...)
.topP(...)
.maxOutputTokens(...)
.stopSequences(...)
.toolSpecifications(...)
.toolChoice(...)
.additionalModelRequestFields(...)
.additionalModelRequestField(...)
.enableReasoning(...)
.promptCaching(...)
.build())
.build();
例
Additional Model Request Fields
BedrockChatRequestParameters の additionalModelRequestFields フィールドは Map<String, Object> です。
こちらで説明されているように、
共通の InferenceConfiguration ではカバーされない特定モデル向けの推論パラメータを追加できます。
Thinking / Reasoning
Claude の思考プロセスを有効にするには、BedrockChatRequestParameters で enableReasoning を呼び出し、モデル構築時に
defaultRequestParameters 経由で設定します:
BedrockChatRequestParameters parameters = BedrockChatRequestParameters.builder()
.enableReasoning(1024) // token budget
.build();
ChatModel model = BedrockChatModel.builder()
.modelId("us.anthropic.claude-sonnet-4-20250514-v1:0")
.defaultRequestParameters(parameters)
.returnThinking(true)
.sendThinking(true)
.build();
次のパラメータも思考の挙動を制御します:
returnThinking:利用可能な場合にAiMessage.thinking()内に思考内容を返すかどうか、 およびBedrockStreamingChatModel使用時にStreamingChatResponseHandler.onPartialThinking()とTokenStream.onPartialThinking()コールバックを呼び出すかどうかを制御します。 デフォルトでは無効です。有効にすると、思考シグネチャもAiMessage.attributes()内に保存・返却されます。sendThinking:後続リクエストでAiMessageに保存された思考内容とシグネチャを LLM に送信するかどうかを制御します。 デフォルトでは有効です。
Prompt Caching
AWS Bedrock は、類似したプロンプトで API を繰り返し呼び出す際のパフォーマンス向上とコスト削減のためにプロンプトキャッシュをサポートしています。この機能により、キャッシュされたコンテンツのレイテンシを最大 85%、コストを最大 90% 削減できます。
仕組み
プロンプトキャッシュでは、会話内の特定のポイントをキャッシュ対象としてマークできます。同じキャッシュ済みコンテンツで後続の API 呼び出しを行うと、Bedrock はキャッシュされた部分を再利用でき、処理時間とコストを大幅に削減します。キャッシュの TTL(有効期間)は 5 分で、キャッシュヒットのたびにリセットされます。
サポートされているモデル
プロンプトキャッシュは次のモデルでサポートされています:
- Claude Opus 4.5
- Claude Opus 4.1
- Claude Opus 4
- Claude Sonnet 4.5
- Claude Haiku 4.5
- Claude Sonnet 4
- Claude 3.7 Sonnet
- Claude 3.5 Sonnet
- Claude 3.5 Haiku
- Amazon Nova models