Hermes Agent Wiki 非公式・日本語wiki

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 APIbedrock-runtime Guardrails、推論プロファイル、逐次配信など Bedrock の機能を一通り使えるため

3 つの経路はどれも同じ AWS の認証情報チェーンとリージョンの決め方を共有するので、別々に設定する必要はありません。Mantle のエンドポイントへのリクエストは、AWS_BEARER_TOKEN_BEDROCK が設定されていればそれで認証され、なければ通常の boto3 の認証情報チェーンを使って SigV4 で署名されます。

事前に必要なもの

  • AWS の認証情報boto3 の認証情報チェーンが対応しているものならどれでも使えます。
    • IAM インスタンスロール(EC2・ECS・Lambda なら設定は不要です)
    • AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY の環境変数
    • SSO や名前付きプロファイルを使う場合の AWS_PROFILE
    • ローカル開発なら aws configure
  • boto3cd ~/.hermes/hermes-agent && uv pip install -e ".[bedrock]" を実行すると入ります。
  • IAM の権限 — 最低限、次のものが必要です。
    • 推論のための bedrock:InvokeModelbedrock:InvokeModelWithResponseStream
    • モデル検出のための bedrock:ListFoundationModelsbedrock: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 のリージョンは次のいずれかの方法で指定します(上にあるものほど優先されます)。

  1. config.yamlbedrock.region
  2. 環境変数 AWS_REGION
  3. 環境変数 AWS_DEFAULT_REGION
  4. 既定値の 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 doctor

doctor は次の点を調べます。

  • 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 は次の順に認証情報を探します。

  1. AWS_BEARER_TOKEN_BEDROCK
  2. AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  3. AWS_PROFILE
  4. EC2 のインスタンスメタデータ(IMDS)
  5. ECS のコンテナ認証情報
  6. Lambda の実行ロール

どれも見つからない場合は、aws configure を実行するか、実行中のインスタンスに IAM ロールをアタッチしてください。

「Invocation of model ID ... with on-demand throughput isn't supported」と出る

素の基盤モデル ID ではなく、推論プロファイル IDus. または 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 の設定まで自動で済ませます。どのリージョンにもワンクリックで展開できます。