Skip to main content

strands-env

Awesome Strands Agents

CI PyPI License Ask DeepWiki

A unified framework for building agent environments for RL training and evaluation with Strands Agents.

Features

An agent environment takes a task and runs the agent to completion over multiple turns, producing a rollout result — the trajectory, reward, and termination reason for that task. With strands-env, you can:

  • Define Environments — Subclass Environment, add @tool functions, plug in RewardFunction; typed Task subclasses carry per-sample fields
  • RL Training — Token-level trajectories (TITO) for on-policy training with strands-sglang
  • Benchmarking — CLI and Evaluator with checkpointing, resume, and custom metrics

Install

pip install strands-env

For development:

git clone https://github.com/strands-rl/strands-env.git && cd strands-env
uv sync

Quick Start

Define an Environment

Subclass Environment and add tools as @tool-decorated functions:

import subprocess
import sys

from strands import tool
from strands_env.core import Environment

@tool
def run_python(code: str) -> str:
    """Run a Python snippet and return its output."""
    proc = subprocess.run([sys.executable, "-c", code], capture_output=True, text=True, timeout=10)
    return proc.stdout + proc.stderr

class CodingEnv(Environment):
    def get_tools(self):
        return [run_python]

Run It

from strands_env.core import Task

env = CodingEnv(model_factory=factory, reward_fn=reward_fn)
result = await env.rollout(Task(
    message="Write Python to compute the 10th Fibonacci number, then run it.",
    ground_truth="55",
))

result.rollout              # Rollout(token_ids=..., loss_mask=..., ...); token-level rollout if using SGLang backend
result.final_response       # "The 10th Fibonacci number is 55"
result.reward_result        # {"reward": 1.0, "info": ...}
result.termination_reason   # TerminationReason.TASK_COMPLETE

See the examples/ directory for complete, runnable demos.

Run Evaluations

python -m strands_env.eval \
    --benchmark terminal-bench-2 \
    --env examples.eval.terminal_bench.terminal_bench_env \
    --backend sglang \
    --base-url http://localhost:30000 \
    --n-samples-per-prompt 4 \
    --max-concurrency 8

Raise --n-samples-per-prompt for more stable pass@k, and --max-concurrency if you're using a hosted sandbox service.

Tip: For a non-agentic benchmark (no tool use), don't override get_tools() — the base class returns [] by default.

Built-in Environments

Ready-to-use environments under src/strands_env/environments/. Each ships with its own README, system prompt, and requirements.txt.

Environment Description
math Chat-only math reasoning with a symbolic-equivalence reward.
agentcore_code Python / shell execution via AWS Bedrock AgentCore Code Interpreter.
web_search Google search + Jina page scraping with optional LLM summarization, enlightened by OpenSeeker.
harbor Run Harbor-format tasks in sandboxes. Supports training like SETA and evaluation like Terminal-Bench and SWE-bench.
tau2_bench tau2-bench customer-service dialogues (airline/retail/telecom) driven by an LLM user-simulator.
mcp_atlas MCP-Atlas benchmark runner across 36 MCP servers with 500 tasks.
agent_world_model AgentWorldModel tasks with 1000 synthetic FastAPI + SQLite environments exposed as MCP tools.

Documentation

Development

# Lint
ruff check src/ && ruff format --check src/

# Unit tests
pytest tests/unit/ -v

# Integration tests (requires running SGLang server)
pytest tests/integration/ -v --sglang-base-url=http://localhost:30000

Or if using Claude Code, just use /run-unit-tests and /run-integration-tests slash commands.

License

Apache License 2.0 — see LICENSE.

Metadata

Release files for strands-env 0.7.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for strands-env 0.7.3
File Size Uploaded
strands_env-0.7.3.tar.gz 153.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for strands-env 0.7.3
File Interpreter ABI Platform
strands_env-0.7.3-py3-none-any.whl Python 3 none any Details

Total release size: 292.8 kB

Release files / strands_env-0.7.3.tar.gz

Download URL strands_env-0.7.3.tar.gz
Size 153.2 kB
Tags Source
SHA-256 checksum
How to use checksums
470f45a09a13a2ed40b949b9c398b2bb898ffc1cca827297cdc56bbc96961a2b
BLAKE2b-256 checksum
How to use checksums
f705495877d938bc5f194f1d24a5fb6696999e752cc7e1d424a53f3ecd1547d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / strands_env-0.7.3-py3-none-any.whl

Download URL strands_env-0.7.3-py3-none-any.whl
Size 139.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0f904b37ef108b0f702236ff6f64504baecdb23d21403e41b6539a7976f968bc
BLAKE2b-256 checksum
How to use checksums
1af7e69c80073da022403ad6f5a32ae57b8b98a6dac06eeb709b4a4e79d641d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.3 This release

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page