An open source library for interacting with quantum computing devices on Amazon Braket
npx @tessl/cli install tessl/pypi-amazon-braket-sdk@1.101.0An open source library for interacting with quantum computing devices on Amazon Braket.
The Amazon Braket SDK provides a comprehensive Python interface for quantum computing, offering support for quantum circuits, AWS quantum devices, local simulation, analog Hamiltonian simulation, quantum annealing, and advanced features like pulse control and error mitigation.
pip install amazon-braket-sdk# Core SDK components
from braket._sdk import __version__
# Circuit construction and gates
from braket.circuits import Circuit, Gate, AngledGate, DoubleAngledGate
from braket.circuits.gates import H, CNot, Rx, Ry, Rz, X, Y, Z
from braket.circuits.observables import X as ObsX, Y as ObsY, Z as ObsZ, TensorProduct
from braket.circuits.result_types import StateVector, Expectation, Sample, Probability
# AWS integration
from braket.aws import AwsDevice, AwsQuantumTask, AwsSession, AwsDeviceType
# Local simulation
from braket.devices import LocalSimulator
# Quantum information utilities
from braket.quantum_information import PauliString
# Job management
from braket.jobs import hybrid_job
# Cost tracking
from braket.tracking import Tracker
# Parametric circuits and free parameters
from braket.circuits import FreeParameter, FreeParameterExpression, Parameterizable
# Program sets and parameter binding
from braket.program_sets import ProgramSet, ParameterSets, CircuitBinding
# Registers and qubit management
from braket.circuits import Qubit, QubitInput, QubitSet, QubitSetInput
# Circuit emulation and compilation
from braket.emulation import PassManager
# Timing data structures
from braket.timings import TimeSeries, TimeSeriesItemfrom braket.circuits import Circuit
from braket.circuits.gates import H, CNot
from braket.devices import LocalSimulator
from braket.aws import AwsDevice
# Create a Bell state circuit
def create_bell_circuit() -> Circuit:
"""
Creates a Bell state quantum circuit.
Returns:
Circuit: A quantum circuit that creates a Bell state
"""
circuit = Circuit()
circuit.h(0)
circuit.cnot(0, 1)
return circuit
# Run on local simulator
def run_local_simulation(circuit: Circuit, shots: int = 1000) -> dict:
"""
Run circuit on local simulator.
Args:
circuit: The quantum circuit to execute
shots: Number of measurement shots
Returns:
dict: Measurement results
"""
device = LocalSimulator()
task = device.run(circuit, shots=shots)
return task.result().measurement_counts
# Run on AWS device
def run_aws_device(circuit: Circuit, device_arn: str, shots: int = 1000) -> dict:
"""
Run circuit on AWS quantum device.
Args:
circuit: The quantum circuit to execute
device_arn: AWS device ARN
shots: Number of measurement shots
Returns:
dict: Measurement results from AWS task
"""
device = AwsDevice(device_arn)
task = device.run(circuit, shots=shots)
return task.result().measurement_countsThe Amazon Braket SDK is organized into 20 major modules:
Build quantum circuits with a comprehensive gate library:
from braket.circuits import Circuit
from braket.circuits.gates import H, CNot, Rx, Ry, Rz, U
from braket.circuits.observables import Z, X
from braket.circuits.result_types import Expectation
import numpy as np
# Parameterized quantum circuit
def variational_circuit(params: list[float]) -> Circuit:
"""
Creates a parameterized variational quantum circuit.
Args:
params: List of rotation parameters
Returns:
Circuit: Variational quantum circuit
"""
circuit = Circuit()
# Layer of Hadamard gates
for qubit in range(2):
circuit.h(qubit)
# Parameterized rotation layers
for i, param in enumerate(params):
qubit = i % 2
circuit.ry(qubit, param)
# Entangling layer
circuit.cnot(0, 1)
# Observable measurement
circuit.expectation(observable=Z(0) @ Z(1))
return circuitConnect to quantum processors and simulators on AWS:
from braket.aws import AwsDevice, AwsDeviceType, AwsSession
from braket.circuits import Circuit
# Device discovery and selection
def get_available_devices() -> dict[str, AwsDevice]:
"""
Get all available AWS Braket devices.
Returns:
dict: Mapping of device names to AwsDevice instances
"""
# Get QPU devices
qpu_devices = AwsDevice.get_devices(device_types=[AwsDeviceType.QPU])
# Get simulator devices
sim_devices = AwsDevice.get_devices(device_types=[AwsDeviceType.SIMULATOR])
devices = {}
for device in qpu_devices + sim_devices:
devices[device.name] = device
return devices
# Session management
def create_aws_session(region: str = "us-east-1") -> AwsSession:
"""
Create authenticated AWS session for Braket.
Args:
region: AWS region for quantum computing resources
Returns:
AwsSession: Authenticated session
"""
return AwsSession(boto_session=None, braket_user_agents=None)Execute hybrid quantum-classical algorithms:
from braket.jobs import hybrid_job, save_job_result, get_job_device_arn
from braket.aws import AwsDevice
from braket.circuits import Circuit
@hybrid_job(device="ml.m5.large")
def quantum_optimization_job():
"""
Hybrid job for quantum optimization algorithm.
This job runs a variational quantum algorithm combining
quantum circuit execution with classical optimization.
"""
# Get the quantum device for this job
device_arn = get_job_device_arn()
device = AwsDevice(device_arn)
# Define cost function using quantum circuits
def cost_function(params: list[float]) -> float:
circuit = variational_circuit(params)
task = device.run(circuit, shots=1000)
result = task.result()
return result.values[0] # Expectation value
# Classical optimization loop
import scipy.optimize
initial_params = [0.1, 0.2]
result = scipy.optimize.minimize(cost_function, initial_params)
# Save results
save_job_result({
"optimal_params": result.x.tolist(),
"optimal_value": float(result.fun)
})Monitor quantum computing usage and costs:
from braket.tracking import Tracker
from braket.aws import AwsDevice
from braket.circuits import Circuit
def tracked_quantum_execution(circuit: Circuit, device_arn: str) -> dict:
"""
Execute quantum circuit with cost tracking.
Args:
circuit: Quantum circuit to execute
device_arn: AWS device ARN
Returns:
dict: Results including cost information
"""
with Tracker() as tracker:
# Execute quantum task
device = AwsDevice(device_arn)
task = device.run(circuit, shots=1000)
result = task.result()
# Get cost information
cost_info = {
"quantum_tasks_cost": tracker.quantum_tasks_cost(),
"simulator_tasks_cost": tracker.simulator_tasks_cost(),
"total_cost": tracker.quantum_tasks_cost() + tracker.simulator_tasks_cost()
}
return {
"measurement_counts": result.measurement_counts,
"cost_tracking": cost_info
}This documentation is organized into focused capability areas:
Each documentation section provides complete API coverage with type definitions, usage patterns, and practical examples for AI agent consumption.