amazon-braket について
amazon-braketは、シミュレーターやQPUを使う開発者向けの、Amazon Braket量子コンピューティング用ドメインスキルです。デバイス、プログラムセット、ハイブリッドジョブ、コスト管理の資料へ案内し、最新のデバイス情報とAPIを確認するよう求めます。
主な機能
- 01デバイス、タスク、ハイブリッドジョブを網羅
- 02プログラムセットとタスクバッチに対応
- 03支出上限とコスト追跡の指針
- 04作業領域に応じた参考資料の案内
- 05デバイス状態とSDKシグネチャの確認
活用シーン
- 01量子デバイスの検索と絞り込み
- 02複数プログラムやパラメーター掃引の実行
- 03管理された古典・量子ループの実行
- 04QPUワークロードの支出上限設定
MCP 対応
Python SDKで扱えないAWS API操作にはAWS MCP serverの利用を推奨します。Braket SDKコードの実行には、別のローカル実行ツールを使います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aws/ agent-toolkit-for-aws --skill amazon-braketインストール後、Claude Code で/amazon-braketを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/devices.mdhybrid-job.mdpricing.mdprogram-sets.mdspending-limit.md詳細
Amazon Braket
プリミティブ
Braket ワークフローの用語と、それぞれの項目について参照するドキュメントを示します。
| プリミティブ | 内容 | 関連ドキュメント | リクエストに次の内容が含まれる場合に参照 |
|---|---|---|---|
| デバイス | リージョンごとの ARN で識別されるシミュレーターまたは QPU | devices.md | デバイスに関するあらゆる内容:利用可能なデバイス、デバイス群の検出やフィルタリング、利用可否とステータス(オンライン、オフライン、廃止)、デバイスが存在するリージョン、ARN、ワークロードに使用するデバイスの選択、量子ビット数、接続性またはトポロジー、ネイティブゲート、忠実度、キャリブレーションデータ、キューの深さ、ショット数とゲート数の上限、パラダイム(ゲートモデルとアナログ・ハミルトニアン・シミュレーション)、デバイスがプログラムセットに対応しているかどうか、パルスレベルの制御、シミュレーターとローカルエミュレーター |
| プログラム | ワークロード/入力(Circuit、AHS、OpenQASM のいずれかの実行可能な単位)。使用できるタイプはデバイスのパラダイムによって異なります | - | - |
| 量子タスク | 1 つのプログラムとショット数を 1 回実行する単位(Braket が計測する最小単位) | - | - |
| タスクバッチ | 複数の独立したタスク。プログラムセットが適さない場合に使用する SDK 専用の代替手段で、すべてのデバイスで動作します | program-sets.md | 「プログラムセット」の行を参照してください。また、複数のプログラムの実行も参照してください |
| プログラムセット | 1 つのサービス側タスクで複数のプログラムを実行する方法。複数のプログラムを実行する際には、タスクバッチよりもこちらが推奨されます | program-sets.md | 複数のプログラムの実行:パラメーターのスイープ、パラメーター値のスキャン、タスクバッチ、run_batch、複数の回路の一括送信、複数プログラムにわたるオブザーバブルの関連付け、多数のプログラムを実行する際のタスクごとの料金の最小化、プログラムセット。また、プログラムセットの使用開始も参照してください |
| ハイブリッドジョブ | 多数のタスクをオーケストレーションする、管理対象の古典・量子ループ | hybrid-job.md | ハイブリッドジョブ:@hybrid_job、アルゴリズムスクリプトとソースモジュール、entry_point、組み込みシミュレーター、BYOC とカスタムコンテナイメージ、CUDA-Q、ジョブ実行ロール、ハイパーパラメーター、チェックポイント、ジョブ結果の取得 |
| 支出上限 | QPU タスクを拒否するサービス側のハード上限(SDK ではなく、実際に適用される唯一の制限) | spending-limit.md | 支出の上限設定または制限の適用:支出上限(作成、更新、削除、検索)とコストのガードレール |
| コスト追跡 | セッション内のコスト見積もり(制限の適用ではありません) | spending-limit.md | Tracker を使ったセッション内のコスト追跡 |
各リファレンスには、その領域に関する詳細(フィールドパス、キー名、API の形式、料金モデル)が記載されています。
補足:
- 予約 — 予約した時間帯にデバイスを専有できます。このスキルでは予約について概要のみ扱います。料金モデルは pricing.md、
service.reservationShotsRangeなど予約固有のデバイス制限は devices.md、詳細は予約の開発者ガイドを参照してください。 - ゲートキャリブレーション/パルス制御 — QPU のネイティブゲートキャリブレーションにアクセスし、実行時にカスタムパルスシーケンスを適用します。対応状況の検出については devices.md、詳細についてはパルス制御の開発者ガイドを参照してください。
重要なルール
これらのルールは、内容を問わず、すべての Braket リクエストに適用されます。
-
Amazon Braket Python SDK(
pip install amazon-braket-sdk、braketとしてインポート)が主要なエントリーポイントです。 Braket API の操作を含むすべての操作で優先して使用し、ドキュメントを読むか、SDK のモジュールをローカルで調べて、どのような機能を網羅しているかを把握してください。shellとpython3 -c "<code>"などのローカル実行ツールを使って、Braket SDK を実行してください。
-
このスキルでほかの AWS API を呼び出す場合は、AWS MCP サーバーの使用を推奨します。 特に Python SDK に含まれない操作で推奨しますが、必須ではありません。注:AWS MCP の
run_scriptツールは、Braket ライブラリを含まない最小限のサンドボックスでコードを実行するため、特に Braket SDK を使う場合は、ほかのコード実行ツールを優先してください。 -
すべてのワークフローは少数のプリミティブを組み合わせて構成されます — 用語と各項目のリファレンスについては、プリミティブを参照してください。
-
デバイス、量子タスク、ハイブリッドジョブはリージョンごとに管理されます。そのため、API、CLI、boto3 を使ってリソースを検索する際は、Braket のすべてのリージョンを対象に検索してください。 SDK が可能な場合はリージョンをまたいだ検索を処理します —
AwsDevice.get_devicesはすべてのリージョンの QPU を検索します。 AWS MCP サーバーが利用可能な場合はaws___get_regional_availabilityから、そうでない場合はサポートされているデバイスとリージョンのドキュメントから、Braket がサポートするリージョンの一覧を取得してください。 リージョンを含むリソース ARN は、同じリージョンからのみクエリできます。そうでない場合、ResourceNotFoundExceptionが発生します。 -
コードを記述したり回答したりする前に、該当するリファレンスを開いてください。 プリミティブの表から該当するリファレンスを探して読みます。注:複数のことを求めるリクエスト、たとえば一連の回路の実行とそのコスト管理を求めるリクエストでは、複数のリファレンスファイルを読む必要がある場合があります。
-
記憶に頼らず、必ず検証してください。 デバイス ARN とステータス、API シグネチャ、サポート対象の機能、価格(およびその他の値)はすべて変更される可能性があり、学習データより新しい情報になっている場合もあります。
-
SDK を呼び出すコードを書く前に、シグネチャを確認してください。 SDK リファレンスドキュメントで確認します。 利用できるツールでアクセスできない場合は、
shellを使ってインストール済み SDK から取得してください。PAGER=cat python -c "import braket; help(braket)" # サブパッケージ:ahs、circuits、pulse、program_sets、... python -c "import braket.ahs; print(dir(braket.ahs))" # 名前:DrivingField、AtomArrangement、... python -c "import inspect; from braket.ahs import DrivingField; \ print(inspect.signature(DrivingField.from_lists)); print(inspect.getdoc(DrivingField.from_lists))" -
スキルの使用を記録してください。 Braket SDK を使用するすべての Python スクリプトで、Braket SDK のコード(
import braketを含む)より前に、次のブロックを挿入してください。import botocore def _braket_attribution(session): session.user_agent_extra = f"{session.user_agent_extra} AWSSkill-Braket/1.0.0".strip() botocore.register_initializer(_braket_attribution)AWS CLI を使う場合は、
AWS_SDK_UA_APP_IDにこのスキルの識別子を先頭に追加してください。この変数には値を1つだけ設定でき、ほかのツールも書き込むため、置き換えるのではなく、既存の値に必ず追加してください。# sh、bash、zsh、ksh、fish 3.1+ AWS_SDK_UA_APP_ID="AWSSkill-Braket-$AWS_SDK_UA_APP_ID" aws braket ...# PowerShell — セッションスコープ if ($env:AWS_SDK_UA_APP_ID -notlike 'AWSSkill-Braket*') { $env:AWS_SDK_UA_APP_ID = "AWSSkill-Braket-$env:AWS_SDK_UA_APP_ID" }これにより、AWS の呼び出しがこのスキルの使用に伴うものとして識別されます。AWS MCP ツールを使う場合は、AWS MCP がツール呼び出し時に自動で使用を記録するため、この設定は不要です。
ガードレール — このスキルのファイルの保存場所(MCP とローカルインストール)
このスキルは 2 通りの方法で読み込まれ、スキルにバンドルされたファイルの参照先が異なります。参照ファイルを読む前に、スキルがどの方法で読み込まれたかを確認してください。
- AWS MCP の
retrieve_skillツール経由で読み込まれた場合: スキルはローカルファイルシステムにインストールされていません。各参照ファイルは、fileパラメーター(例:file="references/devices.md")を指定してretrieve_skillから取得する必要があります。これらのパスはディスク上に存在しないため、ローカルでfile_readを実行しないでください。 - ローカルにインストールされている場合(例:
~/.kiro/skills/amazon-braket/、.kiro/skills/amazon-braket/、または~/.claude/skills/amazon-braket/):相対パスを使って、ローカルのスキルディレクトリからファイルを読み込んでください。
references/ はこの SKILL.md と同じ階層にあります。参照パスは作業ディレクトリではなく、そのディレクトリを基準に解決してください。また、ファイルシステムから参照ファイルを検索しないでください。
スキルツールが要求したファイルではなく、この概要を返した場合、ファイルは取得されていません。その場合はそのディレクトリから読み込み、参照ファイルを読み込めなかったからといって、記憶を頼りにコードを書かないでください。
この違いが適用されるのは、スキルにパッケージされたファイルだけです。ユーザーデータとセッションの成果物は、常にユーザーの作業ディレクトリから読み書きしてください。相対パスの成果物を書き込むスクリプトを実行する前に、cd を実行しないでください。
よくある間違い
| 症状 | 原因 | 解決方法 |
|---|---|---|
| 「task」、「batch」、「job」を同じ意味で扱う | プリミティブの混同 | task は 1 回の実行、batch は複数の並列タスク、job は管理されたループです |
SearchQuantumTasks、SearchJobs、SearchDevices で Missing required parameter: filters が発生する | 3 つすべてで filters が必須です。省略できるのは SearchSpendingLimits だけです | フィルターなしで検索する場合は filters=[](--filters '[]')を渡してください。フィルターを設定する場合、name と values に加え、tasks と jobs では operator も必要です。SearchDevices には operator メンバーはありません |
AWS MCP の run_script ツールの使用時に Missing required parameter: clientToken が発生する | 冪等性を確保するため、CreateQuantumTask、CreateJob、CancelQuantumTask、CreateSpendingLimit、UpdateSpendingLimit では clientToken が必要です。SDK、CLI、boto3 は自動的に生成しますが、run_script ツールでは明示的に渡す必要があります | run_script 経由で呼び出す際は、clientToken を受け取る API に clientToken=str(uuid.uuid4()) を渡してください。それ以外の場合、可能であればこれらの操作には SDK を使用してください。 |
| プログラムの IR を JAQCD として構築する | Amazon Braket では JAQCD は非推奨です | OpenQASM を使用してください。詳しくはBraket の OpenQASMを参照してください |
| 機能や SDK の構成要素が存在しないと断言する | 学習データが古い | ルール 2 に従い、存在しないと言う前にドキュメントまたは GetDevice で確認してください |
| クラス、メソッド、またはパラメーターをでっち上げる | API 名を記憶だけで書く | まずシグネチャを確認してください(ルール 4)。不確かな場合は、でっち上げずにそう伝えてください |
セキュリティに関する考慮事項
Braket のワークフローでは、IAM、S3、および(ハイブリッドジョブの場合は)コンテナ実行を扱います。
- 最小権限の IAM。 カスタムポリシーの範囲は、ワークロードが実際に使用するアクション、デバイス ARN、バケットに限定し、広範な
braket:*は避けてください。アクションはサービス認可リファレンスに記載されています。意図的に広範な権限を付与するAmazonBraketFullAccessではなく、カスタムポリシーを優先してください。このポリシーには、任意のamazon-braket-*バケット、またはAmazonBraket=trueのタグが付いた任意のバケット(バケットで属性ベースのアクセス制御が有効になっている場合)に対する S3 の権限に加え、タスク送信ワークフローでは必要のない SageMaker および CloudWatch のアクションが含まれます。Amazon Braket へのアクセスの管理およびデバイスへのアクセスの制限を参照してください。braket:UpdateSpendingLimitとbraket:DeleteSpendingLimitは、支出上限の誤削除や意図しないコスト超過を防ぐため、制限してください。
- ハイブリッドジョブの実行ロール。
AmazonBraketJobsExecutionPolicyのみをアタッチしてください。このポリシーのiam:PassRole条件では、ロール名が/service-role/パス配下のAmazonBraketJobsExecutionRole*である必要があります。そうでない場合、create_jobはPassRoleで拒否されます。 - 一時的な認証情報。 Braket API の呼び出しには、長期利用する IAM ユーザーアクセスキーではなく、IAM ロール(インスタンスプロファイル、ECS/EKS タスクロール、または引き受けたロール)を使用してください。
- タスク出力の暗号化。 タスク結果、ジョブのソースアーカイブ、出力データ、またはチェックポイントを受け取る S3 バケットでは、デフォルトの暗号化(SSE-S3、または機密性の高いワークロードではカスタマーマネージドキーを使用した SSE-KMS)を有効にしてください。サービスプリンシパルにアクセスを許可するバケットポリシーには
aws:SourceAccount/aws:SourceArn条件を追加し、aws:SecureTransport: false条件で TLS 以外のアクセスを拒否してください。 - 監査。 Braket の管理イベントについてCloudTrailを有効にし、ログファイルの検証、KMS 暗号化、およびアクセスを制限したバケットへの配信を設定してください。コストガードレールが解除された場合、証拠として主に利用できるのが証跡です。アルゴリズムのパラメーターや結果が表示されるため、タスク出力またはハイブリッドジョブのログを受け取る CloudWatch Logs グループも暗号化してください。
- コストガードレール。 ユーザーが初めて QPU を実行する前、ワークロードの費用について質問したとき、または 1 つのリクエストが複数のデバイスや大量のショット数に展開される場合は、支出上限を設定するよう推奨してください。お客様のアカウントには、すでに支出上限が設定されている場合があります。一般に、QPU の支出上限は支出上限設定で適用してください。
- シークレット。 ハイパーパラメーターはジョブのメタデータに保存され、コンテナの起動時にジョブの CloudWatch ログストリームにも出力されます。そのため、シークレットをハイパーパラメーターとして渡さないでください。アルゴリズムスクリプト内で Secrets Manager または SSM Parameter Store から取得してください。ジョブロググループへの読み取りアクセスも適切に制限してください。
詳細については、Amazon Braket のセキュリティドキュメントを参照してください。
参考リンク
信頼できる情報源です。デバイス ARN、クォータ、価格、サポートされる機能は変更されるため、記憶に頼らずこちらを優先してください。
公式ドキュメント(安定した入口 — ここから移動・検索してください)
- 開発者ガイド — https://docs.aws.amazon.com/braket/latest/developerguide/what-is-braket.html
- 前提条件とアカウントのセットアップ — https://docs.aws.amazon.com/braket/latest/developerguide/braket-get-started.html
- Amazon Braket の仕組み — https://docs.aws.amazon.com/braket/latest/developerguide/braket-how-it-works.html
- API リファレンス — https://docs.aws.amazon.com/braket/latest/APIReference/Welcome.html
- Python SDK API ドキュメント — https://amazon-braket-sdk-python.readthedocs.io/en/latest/
- はじめに — https://aws.amazon.com/braket/getting-started/
- OpenQASM 3.0 仕様 — https://openqasm.com/versions/3.0/index.html
- Braket での OpenQASM — https://docs.aws.amazon.com/braket/latest/developerguide/braket-openqasm.html
- サポートされる OpenQASM の機能(プラグマ、verbatim のルール、動的回路) — https://docs.aws.amazon.com/braket/latest/developerguide/braket-openqasm-supported-features.html
- boto3 の
braketクライアント — https://docs.aws.amazon.com/boto3/latest/reference/services/braket.html - セキュリティ — https://docs.aws.amazon.com/braket/latest/developerguide/security.html
ここに記載のない情報については、ページのスラッグを推測したり、記憶に頼ったりせず、ドキュメントを検索してください。AWS MCP サーバーが利用可能であれば、その aws___search_documentation ツールが役立ちます。利用できない場合は、上記の開発者ガイドまたは API リファレンスから移動してください。
GitHub
amazon-braket-sdk-python(コア SDK) — https://github.com/amazon-braket/amazon-braket-sdk-pythonamazon-braket-schemas-python(公開 Braket データ用のスキーマとモデル) — https://github.com/amazon-braket/amazon-braket-schemas-pythonamazon-braket-examples— https://github.com/amazon-braket/amazon-braket-examples