Agent Skills by ALSEL
汎用LLM・AI開発⭐ リポ 38品質スコア 80/100

bedrock

AWS Bedrockの基盤モデルを利用した生成AI機能です。基盤モデルの呼び出し、AIアプリケーション開発、埋め込みベクトルの生成、モデルアクセスの設定、RAGパターンの実装が必要な場合に使用します。

description の原文を見る

AWS Bedrock foundation models for generative AI. Use when invoking foundation models, building AI applications, creating embeddings, configuring model access, or implementing RAG patterns.

SKILL.md 本文

AWS Bedrock

Amazon Bedrockは、AI企業の基盤モデル(FM)への統一されたAPIを通じたアクセスを提供します。テキスト生成、埋め込み、画像生成機能を備えた生成AIアプリケーションを構築できます。

目次

コアコンセプト

基盤モデル

Bedrockを通じて利用可能な事前訓練済みモデル:

  • Claude (Anthropic): テキスト生成、分析、コーディング
  • Titan (Amazon): テキスト、埋め込み、画像生成
  • Llama (Meta): オープンウェイトテキスト生成
  • Mistral: 効率的なテキスト生成
  • Stable Diffusion (Stability AI): 画像生成

モデルアクセス

使用する前に、アカウントでモデルを有効化する必要があります:

  • Bedrockコンソールでアクセスをリクエスト
  • 一部のモデルではEULA(最終ユーザーライセンス契約)の受け入れが必要
  • アクセスはリージョン固有です

インファレンスタイプ

タイプユースケース料金
オンデマンド変動するワークロードトークンあたり
プロビジョンド スループット一貫した大量処理時間単位のコミットメント
バッチ インファレンス非同期大規模処理割引済みトークンあたり

一般的なパターン

モデルの呼び出し(テキスト生成)

AWS CLI:

# Claudeを呼び出し
aws bedrock-runtime invoke-model \
  --model-id anthropic.claude-3-sonnet-20240229-v1:0 \
  --content-type application/json \
  --accept application/json \
  --body '{
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Explain AWS Lambda in 3 sentences."}
    ]
  }' \
  response.json

cat response.json | jq -r '.content[0].text'

boto3:

import boto3
import json

bedrock = boto3.client('bedrock-runtime')

def invoke_claude(prompt, max_tokens=1024):
    response = bedrock.invoke_model(
        modelId='anthropic.claude-3-sonnet-20240229-v1:0',
        contentType='application/json',
        accept='application/json',
        body=json.dumps({
            'anthropic_version': 'bedrock-2023-05-31',
            'max_tokens': max_tokens,
            'messages': [
                {'role': 'user', 'content': prompt}
            ]
        })
    )

    result = json.loads(response['body'].read())
    return result['content'][0]['text']

# 使用例
response = invoke_claude('What is Amazon S3?')
print(response)

ストリーミングレスポンス

import boto3
import json

bedrock = boto3.client('bedrock-runtime')

def stream_claude(prompt):
    response = bedrock.invoke_model_with_response_stream(
        modelId='anthropic.claude-3-sonnet-20240229-v1:0',
        contentType='application/json',
        accept='application/json',
        body=json.dumps({
            'anthropic_version': 'bedrock-2023-05-31',
            'max_tokens': 1024,
            'messages': [
                {'role': 'user', 'content': prompt}
            ]
        })
    )

    for event in response['body']:
        chunk = json.loads(event['chunk']['bytes'])
        if chunk['type'] == 'content_block_delta':
            yield chunk['delta'].get('text', '')

# 使用例
for text in stream_claude('Write a haiku about cloud computing.'):
    print(text, end='', flush=True)

埋め込みの生成

import boto3
import json

bedrock = boto3.client('bedrock-runtime')

def get_embedding(text):
    response = bedrock.invoke_model(
        modelId='amazon.titan-embed-text-v2:0',
        contentType='application/json',
        accept='application/json',
        body=json.dumps({
            'inputText': text,
            'dimensions': 1024,
            'normalize': True
        })
    )

    result = json.loads(response['body'].read())
    return result['embedding']

# 使用例
embedding = get_embedding('AWS Lambda is a serverless compute service.')
print(f'Embedding dimension: {len(embedding)}')

履歴を含む会話

import boto3
import json

bedrock = boto3.client('bedrock-runtime')

class Conversation:
    def __init__(self, system_prompt=None):
        self.messages = []
        self.system = system_prompt

    def chat(self, user_message):
        self.messages.append({
            'role': 'user',
            'content': user_message
        })

        body = {
            'anthropic_version': 'bedrock-2023-05-31',
            'max_tokens': 1024,
            'messages': self.messages
        }

        if self.system:
            body['system'] = self.system

        response = bedrock.invoke_model(
            modelId='anthropic.claude-3-sonnet-20240229-v1:0',
            contentType='application/json',
            accept='application/json',
            body=json.dumps(body)
        )

        result = json.loads(response['body'].read())
        assistant_message = result['content'][0]['text']

        self.messages.append({
            'role': 'assistant',
            'content': assistant_message
        })

        return assistant_message

# 使用例
conv = Conversation(system_prompt='You are an AWS solutions architect.')
print(conv.chat('What database should I use for a chat application?'))
print(conv.chat('What about for time-series data?'))

利用可能なモデルの一覧表示

# すべての基盤モデルをリスト
aws bedrock list-foundation-models \
  --query 'modelSummaries[*].[modelId,modelName,providerName]' \
  --output table

# プロバイダーでフィルタリング
aws bedrock list-foundation-models \
  --by-provider anthropic \
  --query 'modelSummaries[*].modelId'

# モデルの詳細を取得
aws bedrock get-foundation-model \
  --model-identifier anthropic.claude-3-sonnet-20240229-v1:0

モデルアクセスのリクエスト

# モデルアクセスステータスをリスト
aws bedrock list-foundation-model-agreement-offers \
  --model-id anthropic.claude-3-sonnet-20240229-v1:0

CLIリファレンス

Bedrock(コントロールプレーン)

コマンド説明
aws bedrock list-foundation-models利用可能なモデルをリスト
aws bedrock get-foundation-modelモデルの詳細を取得
aws bedrock list-custom-modelsファインチューニング済みモデルをリスト
aws bedrock create-model-customization-jobファインチューニングを開始
aws bedrock list-provisioned-model-throughputsプロビジョンド容量をリスト

Bedrock Runtime(データプレーン)

コマンド説明
aws bedrock-runtime invoke-modelモデルを同期的に呼び出し
aws bedrock-runtime invoke-model-with-response-streamストリーミングで呼び出し
aws bedrock-runtime converseマルチターン会話API
aws bedrock-runtime converse-streamストリーミング会話

Bedrock Agent Runtime

コマンド説明
aws bedrock-agent-runtime invoke-agentBedrockエージェントを呼び出し
aws bedrock-agent-runtime retrieveナレッジベースをクエリ
aws bedrock-agent-runtime retrieve-and-generateRAGクエリ

ベストプラクティス

コスト最適化

  • 適切なモデルの使用: シンプルなタスクには小さいモデルを使用
  • max_tokensの設定: 可能な限り出力長を制限
  • レスポンスのキャッシング: 同じクエリの繰り返しに対応
  • バッチ処理の活用: バルク処理にはバッチインファレンスを使用
  • 使用量の監視: CloudWatchアラームでコストを管理

パフォーマンス

  • ストリーミングの使用: 長い出力でのユーザー体験向上
  • 接続プーリング: boto3クライアントを再利用
  • リージョンデプロイメント: レイテンシを減らすため最も近いリージョンを使用
  • プロビジョンド スループット: 一貫した大量ワークロードに対応

セキュリティ

  • 最小権限IAM: 必要なモデルアクセスのみを付与
  • VPCエンドポイント: トラフィックをプライベートに保つ
  • ガードレール: コンテンツフィルタリングを実装
  • CloudTrailで監査: モデル呼び出しを追跡

IAM権限

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:InvokeModelWithResponseStream"
      ],
      "Resource": [
        "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
        "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v2:0"
      ]
    }
  ]
}

トラブルシューティング

AccessDeniedException

原因:

  • コンソールでモデルアクセスが有効化されていない
  • IAMポリシーにbedrock:InvokeModelがない
  • 間違ったモデルIDまたはリージョン

デバッグ:

# モデルアクセスステータスを確認
aws bedrock list-foundation-models \
  --query 'modelSummaries[?modelId==`anthropic.claude-3-sonnet-20240229-v1:0`]'

# IAM権限をテスト
aws iam simulate-principal-policy \
  --policy-source-arn arn:aws:iam::123456789012:role/my-role \
  --action-names bedrock:InvokeModel \
  --resource-arns "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0"

ModelNotReadyException

原因: モデルがプロビジョニング中または一時的に利用不可。

解決策: 指数バックオフでリトライを実装:

import time
from botocore.exceptions import ClientError

def invoke_with_retry(bedrock, body, max_retries=3):
    for attempt in range(max_retries):
        try:
            return bedrock.invoke_model(
                modelId='anthropic.claude-3-sonnet-20240229-v1:0',
                body=json.dumps(body)
            )
        except ClientError as e:
            if e.response['Error']['Code'] == 'ModelNotReadyException':
                time.sleep(2 ** attempt)
            else:
                raise
    raise Exception('Max retries exceeded')

ThrottlingException

原因:

  • オンデマンドクォータを超過
  • 同時リクエストが多すぎる

解決策:

  • クォータ増加をリクエスト
  • 指数バックオフを実装
  • プロビジョンド スループットを検討

ValidationException

一般的な問題:

  • 無効なモデルID
  • リクエストボディの形式が不正
  • max_tokensがモデルの上限を超過

デバッグ:

# モデル固有の要件を確認
aws bedrock get-foundation-model \
  --model-identifier anthropic.claude-3-sonnet-20240229-v1:0 \
  --query 'modelDetails.inferenceTypesSupported'

参考資料

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
ComeOnOliver
リポジトリ
ComeOnOliver/skillshub
ライセンス
MIT
最終更新
2026/5/11

Source: https://github.com/ComeOnOliver/skillshub / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: ComeOnOliver · ComeOnOliver/skillshub · ライセンス: MIT