AWS Bedrock
目次
Hermes Agent は Amazon Bedrock をネイティブのプロバイダーとして扱います。そのため Bedrock のエコシステムをそのまま使えます。IAM 認証、Guardrails、クロスリージョン推論プロファイル、そしてすべての基盤モデルが対象です。
Hermes は、モデルの系統ごとに最も適した API へ振り分けます。
| モデルの系統 | 使う API | 理由 |
|---|---|---|
| Anthropic Claude | Anthropic SDK(AnthropicBedrock) |
プロンプトキャッシュ、思考の予算、状況に応じた思考など、Converse では使えない機能があるため |
| OpenAI GPT-5.5 / GPT-5.6(Sol、Terra、Luna) | Bedrock Mantle の OpenAI Responses エンドポイント(bedrock-mantle.<region>.api.aws/openai/v1) |
これらは Mantle でしか動きません。モデルカードでも bedrock-runtime / Converse は非対応と書かれています |
| それ以外すべて(Nova、DeepSeek、Llama、GPT-OSS など) | ネイティブの Converse API(bedrock-runtime) |
Guardrails、推論プロファイル、逐次配信など Bedrock の機能を一通り使えるため |
3 つの経路はどれも同じ AWS の認証情報チェーンとリージョンの決め方を共有するので、別々に設定する必要はありません。Mantle のエンドポイントへのリクエストは、AWS_BEARER_TOKEN_BEDROCK が設定されていればそれで認証され、なければ通常の boto3 の認証情報チェーンを使って SigV4 で署名されます。
事前に必要なもの
- AWS の認証情報 — boto3 の認証情報チェーンが対応しているものならどれでも使えます。
- IAM インスタンスロール(EC2・ECS・Lambda なら設定は不要です)
AWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEYの環境変数- SSO や名前付きプロファイルを使う場合の
AWS_PROFILE - ローカル開発なら
aws configure
- boto3 —
cd ~/.hermes/hermes-agent && uv pip install -e ".[bedrock]"を実行すると入ります。 - IAM の権限 — 最低限、次のものが必要です。
- 推論のための
bedrock:InvokeModelとbedrock:InvokeModelWithResponseStream - モデル検出のための
bedrock:ListFoundationModelsとbedrock:ListInferenceProfiles
- 推論のための
すぐ使い始める
# Install with Bedrock support
cd ~/.hermes/hermes-agent && uv pip install -e ".[bedrock]"
# Select Bedrock as your provider
hermes model
# → Choose "More providers..." → "AWS Bedrock"
# → Select your region and model
# Start chatting
hermes chat設定
hermes model を実行したあと、~/.hermes/config.yaml は次のような内容になります。
model:
default: us.anthropic.claude-sonnet-4-6
provider: bedrock
base_url: https://bedrock-runtime.us-east-2.amazonaws.com
bedrock:
region: us-east-2リージョン
AWS のリージョンは次のいずれかの方法で指定します(上にあるものほど優先されます)。
config.yamlのbedrock.region- 環境変数
AWS_REGION - 環境変数
AWS_DEFAULT_REGION - 既定値の
us-east-1
Guardrails
すべてのモデル呼び出しに Amazon Bedrock Guardrails を適用するには、次のように書きます。
bedrock:
region: us-east-2
guardrail:
guardrail_identifier: "abc123def456" # From the Bedrock console
guardrail_version: "1" # Version number or "DRAFT"
stream_processing_mode: "async" # "sync" or "async"
trace: "disabled" # "enabled", "disabled", or "enabled_full"モデルの自動検出
Hermes は Bedrock のコントロールプレーン経由で、使えるモデルを自動的に見つけます。この動きは次のように調整できます。
bedrock:
discovery:
enabled: true
provider_filter: ["anthropic", "amazon"] # Only show these providers
refresh_interval: 3600 # Cache for 1 hourプロンプトキャッシュ(cachePoint)
Hermes は Bedrock の Converse API 経路で、システムプロンプト・ツール定義・最新メッセージのあとに cachePoint マーカーを差し込み、プロンプトキャッシュを自動で効かせます。ただし cachePoint ブロックに対応していないモデルへ送ると ValidationException が返るため、マーカーを付けるのは動作が確認済みの許可リストにあるモデル(Anthropic Claude と Amazon Nova のモデル ID)だけです。知らないモデルにはキャッシュマーカーを付けません。Claude のモデルは通常 AnthropicBedrock SDK の経路を通り、そちらは独自のプロンプトキャッシュを持っています。Converse の cachePoint 経路が受け持つのは Nova と、ベアラートークンを使う Claude のフォールバックです。設定は不要で、キャッシュの読み書きは使用量の集計に現れます。
コンテキストウィンドウの実測
コンテキストウィンドウが Hermes の静的な一覧に載っていないモデルについては、わざと大きすぎるリクエストを決まった段階(およそ 130 万トークンと 220 万トークン)で送り、Bedrock の長さ検証エラーに含まれる maximum の値を読み取って、実際の上限を調べられます。こうして得た値は静的な一覧と同じメタデータキャッシュに入ります。古いキャッシュがモデルの実際のウィンドウより小さい値を報告している場合(たとえば 100 万トークンのウィンドウが正式提供される前に作られた項目など)は、自動的に破棄されて大きいほうの既知の値が使われます。
使えるモデル
Bedrock のモデルは、オンデマンド呼び出しでは推論プロファイル ID を使います。hermes model のピッカーがこれを自動で表示し、おすすめのモデルが上に並びます。
| モデル | ID | 備考 |
|---|---|---|
| Claude Sonnet 4.6 | us.anthropic.claude-sonnet-4-6 |
おすすめ。速度と能力のバランスが最も良い |
| Claude Opus 4.6 | us.anthropic.claude-opus-4-6-v1 |
最も高性能 |
| Claude Haiku 4.5 | us.anthropic.claude-haiku-4-5-20251001-v1:0 |
Claude の中で最速 |
| OpenAI GPT-5.6 Sol | openai.gpt-5.6-sol |
OpenAI の最前線のモデル(Bedrock Mantle 経由) |
| OpenAI GPT-5.6 Terra | openai.gpt-5.6-terra |
バランス型(Bedrock Mantle 経由) |
| OpenAI GPT-5.6 Luna | openai.gpt-5.6-luna |
高速で安価(Bedrock Mantle 経由) |
| OpenAI GPT-5.5 | openai.gpt-5.5 |
一世代前の OpenAI の主力(Bedrock Mantle 経由) |
| Amazon Nova Pro | us.amazon.nova-pro-v1:0 |
Amazon の主力 |
| Amazon Nova Micro | us.amazon.nova-micro-v1:0 |
最速・最安 |
| DeepSeek V3.2 | deepseek.v3.2 |
性能の高いオープンモデル |
| Llama 4 Scout 17B | us.meta.llama4-scout-17b-instruct-v1:0 |
Meta の最新モデル |
会話の途中でモデルを切り替える
会話中に /model コマンドを使います。
/model us.amazon.nova-pro-v1:0
/model deepseek.v3.2
/model us.anthropic.claude-opus-4-6-v1診断
hermes doctordoctor は次の点を調べます。
- AWS の認証情報が使える状態か(環境変数・IAM ロール・SSO)
boto3が入っているか- Bedrock API に到達できるか(ListFoundationModels)
- 自分のリージョンで使えるモデルがいくつあるか
ゲートウェイ(メッセージングの各サービス)
Bedrock は Hermes のゲートウェイが対応するすべてのサービス(Telegram・Discord・Slack・Feishu など)で使えます。プロバイダーとして Bedrock を設定したうえで、いつもどおりゲートウェイを起動してください。
hermes gateway setup
hermes gateway startゲートウェイは config.yaml を読み、同じ Bedrock プロバイダーの設定を使います。
うまくいかないとき
「No API key found」「No AWS credentials」と出る
Hermes は次の順に認証情報を探します。
AWS_BEARER_TOKEN_BEDROCKAWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEYAWS_PROFILE- EC2 のインスタンスメタデータ(IMDS)
- ECS のコンテナ認証情報
- Lambda の実行ロール
どれも見つからない場合は、aws configure を実行するか、実行中のインスタンスに IAM ロールをアタッチしてください。
「Invocation of model ID ... with on-demand throughput isn't supported」と出る
素の基盤モデル ID ではなく、推論プロファイル ID(us. または global. で始まるもの)を使ってください。たとえば次のようになります。
- ❌
anthropic.claude-sonnet-4-6 - ✅
us.anthropic.claude-sonnet-4-6
「ThrottlingException」と出る
Bedrock のモデルごとのレート上限に達しています。Hermes は間隔を空けながら自動で再試行します。上限を上げたい場合は、AWS Service Quotas コンソールから引き上げを申請してください。
AWS へのワンクリック展開
CloudFormation を使って EC2 上に自動で構築したい場合はこちらです。
sample-hermes-agent-on-aws-with-bedrock — VPC・IAM ロール・EC2 インスタンスを作り、Bedrock の設定まで自動で済ませます。どのリージョンにもワンクリックで展開できます。