amazon-braket

Original🇺🇸 English
Translated

Runs quantum computing workflows on AWS through Amazon Braket — discovering devices (QPUs and simulators) and their availability, building gate-model circuits and analog Hamiltonian programs, submitting quantum tasks, program sets and hybrid jobs, looking up prices, and capping spend with spending limits. Applies to any request about quantum computing, quantum hardware, quantum simulation, AHS, OpenQASM, or running a quantum algorithm on AWS.

6installs
Added on

NPX Install

npx skill4agent add aws/agent-toolkit-for-aws amazon-braket

Tags

Translated version includes tags in frontmatter

Amazon Braket

Primitives

The vocabulary of a Braket workflow, and which reference to open for each.
PrimitiveWhat it isRelated ReferencesOpen it when the request involves
DeviceA simulator or QPU, identified by a region-scoped ARNdevices.mdanything about a device: what exists, discovering or filtering the fleet, availability and status (online, offline, retired), which region a device lives in, ARNs, choosing a device for a workload, qubit count, connectivity or topology, native gates, fidelities, calibration data, queue depth, shot and gate limits, paradigm (gate-model vs analog Hamiltonian simulation), whether a device supports program sets, pulse-level control, simulators and local emulators
ProgramThe workload/input — one executable (Circuit, AHS, OpenQASM). Which type is legal depends on the device's paradigm--
Quantum taskOne program + shots, run once (the atomic unit Braket meters)--
Task batchMany independent tasks — SDK-only fallback for when a program set does not fit; works on all devicesprogram-sets.mdsee the Program set row; also running multiple programs
Program setMany programs in one service-side task — preferred way to run multiple programs instead of task batchprogram-sets.mdrunning more than one program: parameter sweeps, scanning parameter values, task batches,
run_batch
, several circuits submitted together, attaching observables across programs, and minimizing per-task fees when many programs run, program sets. Also getting started with program sets
Hybrid jobManaged classical-quantum loop that orchestrates many taskshybrid-job.mdhybrid jobs:
@hybrid_job
, algorithm scripts and source modules,
entry_point
, embedded simulators, BYOC and custom container images, CUDA-Q, job execution roles, hyperparameters, checkpoints, and retrieving job results
Spending limitService-side hard cap that rejects QPU tasks — the only true enforcement (not SDK)spending-limit.mdcapping or enforcing spend: spending limits (create, update, delete, search), and cost guardrails
Cost trackingIn-session cost estimate (not enforcement)spending-limit.mdin-session cost tracking with
Tracker
Each reference carries the domain detail for its own area — field paths, key names, API shapes, and billing models.
Additional notes:
  • Reservation — exclusive device access for a booked window. This skill covers reservations at pointer depth only: the billing model is in pricing.md, reservation-specific device limits such as
    service.reservationShotsRange
    are in devices.md, and the full model is in the reservations developer guide.
  • Gate calibrations / pulse control — access native gate calibrations on QPUs and attach custom pulse sequences at run time. See devices.md for detecting support, and the pulse control developer guide for the full model.

Critical Rules

These rules apply to every Braket request, whatever it involves.
  1. The Amazon Braket Python SDK (
    pip install amazon-braket-sdk
    , imported as
    braket
    ) is the primary entry point.
    Prefer it for every operation including Braket API operations, and understand what it covers by reading the docs or inspecting the SDK's modules locally.
    • Use local execution tools for running the Braket SDK, such as
      shell
      with
      python3 -c "<code>"
      .
  2. The AWS MCP server is recommended for executing any other AWS API calls in this skill, especially operations not present in the Python SDK, although not required. Note: the AWS MCP's
    run_script
    tool executes code in a minimal sandbox without Braket libraries, so prefer using other tools for code execution, especially when using the Braket SDK.
  3. A small set of primitives composes every workflow — see Primitives for the vocabulary and the reference for each.
  4. Devices, quantum tasks, and hybrid jobs are region-scoped, so fan out across every Braket region whenever you use the API, CLI, or boto3 to search for resources. The SDK handles fanout for you where it can —
    AwsDevice.get_devices
    searches QPUs in all regions. Get the list of regions Braket supports from
    aws___get_regional_availability
    when the AWS MCP server is available, or from the supported devices and regions documentation. Resource ARNs containing a region may only be queried from that same region, otherwise you will see a
    ResourceNotFoundException
    .
  5. Open the matching reference before you write code or answer. Use the Primitives table to find and read references. Note: A request that asks for several things, e.g. executing a series of circuits and controlling the cost thereof, may require reading multiple reference files.
  6. Verify, never recall. Device ARNs and statuses, API signatures, supported features, and prices (and other values) all change and may post-date training data.
  7. Confirm an SDK signature before you write code that calls it. Read it from the SDK reference docs. If no available tool can reach them, get it from the installed SDK with
    shell
    :
bash
PAGER=cat python -c "import braket; help(braket)"       # subpackages: ahs, circuits, pulse, program_sets, ...
python -c "import braket.ahs; print(dir(braket.ahs))"   # names: DrivingField, AtomArrangement, ...
python -c "import inspect; from braket.ahs import DrivingField; \
print(inspect.signature(DrivingField.from_lists)); print(inspect.getdoc(DrivingField.from_lists))"

Guardrail — where this skill's own files live (MCP vs local install)

This skill can be loaded two ways, and they resolve the skill's own bundled files from different places. Determine how the skill was loaded before reading a reference:
  • Loaded through the AWS MCP
    retrieve_skill
    tool:
    The skill is not installed on the local filesystem. You MUST fetch each reference via
    retrieve_skill
    with the
    file
    parameter (e.g.
    file="references/devices.md"
    ). Do NOT
    file_read
    these paths locally — they do not exist on disk.
  • Installed locally (e.g.
    ~/.kiro/skills/amazon-braket/
    ,
    .kiro/skills/amazon-braket/
    , or
    ~/.claude/skills/amazon-braket/
    ): Read files from the local skill directory using relative paths.
references/
is a sibling of this
SKILL.md
— resolve reference paths against that directory, not your working directory, and do not search the filesystem for them. If a skill tool returns this overview instead of the file you asked for, it did not fetch it: read it from that directory instead, and do not write code from memory because a reference read failed. This distinction applies only to the skill's own packaged files. User data and session artifacts are always read from and written to the user's working directory — do not
cd
before running a script that writes a relative artifact path.

Common mistakes

SymptomCauseFix
Treats "task", "batch", "job" as interchangeablePrimitive confusionTask = one run; batch = many parallel tasks; job = managed loop
Missing required parameter: filters
on
SearchQuantumTasks
,
SearchJobs
, or
SearchDevices
filters
is required on all three — only
SearchSpendingLimits
lets you omit it
Pass
filters=[]
(
--filters '[]'
) for an unfiltered search. A populated filter needs
name
and
values
, plus
operator
on tasks and jobs;
SearchDevices
has no
operator
member
Missing required parameter: clientToken
when using AWS MCP
run_script
tool
CreateQuantumTask
,
CreateJob
,
CancelQuantumTask
,
CreateSpendingLimit
,
UpdateSpendingLimit
require a
clientToken
for idempotency. The SDK, CLI, and boto3 generate one automatically; the
run_script
tool requires explicit passing
Pass
clientToken=str(uuid.uuid4())
on APIs taking
clientToken
when calling through
run_script
. Otherwise, prefer the SDK for these operations when possible.
Builds program IR as JAQCDJAQCD is deprecated on Amazon BraketUse OpenQASM — see OpenQASM on Braket
Denies a feature or SDK construct existsTraining data outdatedRule 2 — verify against the docs or
GetDevice
before saying it does not exist
Invents a class, method, or parameterWriting API names from memoryConfirm the signature first (rule 4). If uncertain, say so rather than inventing

Security considerations

Braket workflows touch IAM, S3, and (for hybrid jobs) container execution.
  • Least-privilege IAM. Scope custom policies to the actions, device ARNs, and buckets a workload actually uses, and avoid broad
    braket:*
    . Actions are listed at the Service Authorization Reference. Prefer a custom policy over
    AmazonBraketFullAccess
    , which is deliberately broad: S3 on any
    amazon-braket-*
    bucket or any bucket tagged
    AmazonBraket=true
    (if the bucket is enabled for Attribute-Based Access Control), plus SageMaker and CloudWatch actions a task-submission workflow never needs. See Managing access to Amazon Braket and Restricting access to devices.
    • braket:UpdateSpendingLimit
      and
      braket:DeleteSpendingLimit
      should be restricted to prevent accidental removal of a spending limit and accidental cost overruns.
  • Hybrid-job execution role. Attach only
    AmazonBraketJobsExecutionPolicy
    . Its
    iam:PassRole
    condition requires the role be named
    AmazonBraketJobsExecutionRole*
    under the
    /service-role/
    path, or
    create_job
    is denied at
    PassRole
    .
  • Ephemeral credentials. Call Braket APIs with IAM roles (instance profiles, ECS/EKS task roles, or assumed roles), not long-lived IAM user access keys.
  • Encrypt task output. Enable default encryption (SSE-S3, or SSE-KMS with a customer-managed key for sensitive workloads) on any S3 bucket receiving task results, job source archives, output data, or checkpoints. Add
    aws:SourceAccount
    /
    aws:SourceArn
    conditions to the bucket policy where a service principal is granted access, and deny non-TLS access with an
    aws:SecureTransport: false
    condition.
  • Auditing. Enable CloudTrail for Braket management events, with log-file validation, KMS encryption, and delivery to an access-restricted bucket — the trail is the primary evidence if a cost guardrail is removed. Encrypt any CloudWatch Logs group receiving task output or hybrid-job logs, since algorithm parameters and results appear there.
  • Cost guardrail. Recommend a spending limit before the user's first QPU run, when the user asks what a workload costs, or when one request fans out across several devices or a large shot count. Spending limits may already exist in the customer's account. In general, enforce QPU spend caps with spending limits.
  • Secrets. Hyperparameters are stored in job metadata and echoed into the job's CloudWatch log stream at container boot, so never pass a secret as a hyperparameter — fetch it from Secrets Manager or SSM Parameter Store inside the algorithm script. Restrict read access to the job log groups accordingly.

Reference links

Authoritative sources — prefer these over recalled details, since device ARNs, quotas, prices, and supported features change.
Official documentation (stable entry points — navigate/search from here)
For anything not covered here, search the documentation rather than guessing page slugs or recalling details: if the AWS MCP server is available, its
aws___search_documentation
tool can help; otherwise start from the Developer Guide or API Reference above and navigate.
GitHub