Model or dataset
strands-agents/samples avatar
strands-agents/samples

Strands Agents samples: eight Python tracks, two TypeScript, and a requirements file without the SDK

Agent samples built using the Strands Agents SDK.

939 stars466 forksPythonApache-2.0

At a glance

What is it?
This repository holds agent examples for the Strands Agents SDK, split across eight numbered Python tracks and two TypeScript tracks, with a Quick Start that hands model credential setup to an external site. Its root requirements file does not contain the SDK the Quick Start tells you to install.
Who is it for?
This repository suits someone evaluating the Strands SDK who wants a worked example per problem shape and who is already willing to read the SDK repository and the documentation site alongside it. It does not suit someone who needs a deployable starting point, since the samples carry an explicit not-for-production notice and the Quick Start stops before model credentials.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • strands-agents/samples939 ★ · +95
Star history
Repository2026-09-112026-11-14
strands-agents/samples844939

95 Stars in the last 64 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The repository states its own samples are not production code

One paragraph sits above the Quick Start and it is unambiguous. The examples are for demonstration and educational purposes only, they demonstrate concepts and techniques but are not intended for direct use in production, and readers should apply proper security and testing procedures before using them in production environments. Most sample repositories hedge this language or leave it out. Here it is a flat statement with an instruction attached, which changes how a reader should treat everything below it. It also means the deployment tracks, including the ones for Lambda, Fargate and AgentCore, are showing the shape of a deployment rather than offering one, and that the evaluation track exists to teach testing patterns rather than to provide a harness.

Eight Python tracks against two TypeScript tracks

The Explore section lists eight numbered Python directories and two TypeScript ones. Python has 01-learn for fundamentals, multi-agent systems and streaming, then 02-deploy, 03-integrate for AWS services, databases and third-party tools, 04-industry-use-cases for finance, healthcare, retail and productivity, 05-technical-use-cases including Agentic RAG, 06-evaluate, 07-ux-demos for full-stack applications with interfaces, and 08-edge for edge devices including physical AI and robotics. TypeScript has 01-learn and 02-deploy, and nothing else. The deployment track narrows further: Python's covers Lambda, Fargate and AgentCore, while the TypeScript one covers AgentCore only.

The two first-agent snippets are not the same shape

The Quick Start is a two-column table with the same joke prompt on both sides, which invites the reader to assume the APIs mirror each other. They do not. The Python snippet is three lines and takes no arguments:

python
from strands import Agent

agent = Agent()
response = agent("Hello! Tell me a joke.")

The TypeScript snippet takes a configuration object with a system prompt, awaits the call, and stringifies the result to print it. So the first thing a reader copies from the Python column has no system prompt at all, while the TypeScript one does, and the two differ on whether a call is awaited and whether the response needs converting before output. For a repository whose purpose is teaching an API, the two introductory snippets are the least consistent part.

The root requirements file does not install the SDK

The repository root carries a file named requirements.txt, which is the first thing a Python reader looks for. It has six entries: boto3 at 1.26.0 or newer, botocore at 1.29.0 or newer, watchdog, jsonschema, mcp at 1.6.0 or newer, and retrying. None of them is strands-agents. The SDK the Quick Start installs is a separate pip command in the instructions, and what this file describes is the integration surface the AWS and MCP samples reach for. Three of the six entries carry no version constraint at all. The naming is unfortunate rather than wrong, but a reader who installs from it and then runs a tutorial gets an import error that sends them back to the Quick Start.

Quick Start stops exactly where credentials are needed

After the two columns there is a section titled model provider setup, and its entire content is a link: follow the instructions there to configure your model provider and model access. So the Quick Start installs the package, constructs an agent, calls it, and then stops at the one step that makes any of it function. Nothing in the repository explains where the key or token is read from, and the agent is constructed with no arguments and no configuration file is named in the top-level listing. The same pattern holds at the edges of the documentation: six sibling repositories are linked in the navigation, including the Python SDK, the TypeScript SDK, a tools repository, an Agent Builder and an MCP server, so the samples cannot be used in isolation from the rest of the organisation's repositories.

The logo has a dark-mode source and no fallback image

The header is built from HTML rather than Markdown, and two details in it are worth knowing about. The wordmark is a picture element containing a single source tagged for the dark colour scheme, with no img element inside it as a fallback, so the element has no image to fall back to when the preferred scheme is not the dark one. Below it sits a row of five anchors pointing at commit activity, issues, pull requests, the licence file and a Discord invite. All five are empty, having no content between their tags, so the row reserves the space of a badge row and renders nothing. Neither breaks the README, but both are the residue of tooling that emitted markup for an image and a badge set that the repository does not carry.

The two install commands do not match each other

Python is installed with two packages in one command, `pip install strands-agents strands-agents-tools`, while TypeScript is installed with one, `npm install @strands-agents/sdk`. The extra Python package is the tools set, and the TypeScript column has no equivalent step, so the two languages do not offer the same capability set out of the box even though both are described as complete first agents. The prerequisites are also stated separately: Python 3.10 or higher with pip, and Node.js 18 or higher with npm or yarn. The virtual environment step exists only on the Python side, using the built-in venv module and the platform-specific activate path.

Security reporting is a link into the contributing guide

The repository has no security policy file. The Security section at the bottom of the README points instead at an anchor inside the contributing guide, on security issue notifications. Alongside it in the top-level listing there is a code of conduct, a contributors file, a contributing guide, a licence and a NOTICE file, which is the set Apache-2.0 projects carry, and no dedicated security document. For a repository whose samples touch AWS credentials, an MCP client and browser-facing applications, that routing is workable, since the contributing guide is the file a security researcher would already open, but it means the reporting instructions are not discoverable from the repository's own security surface.

Editorial conclusion

This repository suits someone evaluating the Strands SDK who wants a worked example per problem shape and who is already willing to read the SDK repository and the documentation site alongside it. It does not suit someone who needs a deployable starting point, since the samples carry an explicit not-for-production notice and the Quick Start stops before model credentials. Check three things first. Read the not-for-production paragraph, because the project says it plainly and there is no second line of defence. Check whether the track you need exists in TypeScript at all, since only two are provided against eight in Python. And check where your model credentials come from, because the repository does not say and points outward instead.

Frequently asked questions

Are the Strands Agents samples meant for production use?

No. The README states the examples are for demonstration and educational purposes only, are not intended for direct use in production, and that proper security and testing procedures should be applied before production use.

How many sample tracks does the Strands Agents repository have?

Eight for Python, numbered 01-learn through 08-edge, and two for TypeScript, 01-learn and 02-deploy. The Python deployment track covers Lambda, Fargate and AgentCore, while the TypeScript one covers AgentCore only.

What does the root requirements.txt in strands-agents/samples install?

boto3, botocore, watchdog, jsonschema, mcp and retrying. It does not include strands-agents itself, which the Quick Start installs with a separate pip command.

How do I install Strands Agents from the samples repository?

For Python, create a virtual environment, activate it, then run pip install strands-agents strands-agents-tools. For TypeScript, run npm install @strands-agents/sdk on Node.js 18 or higher.

Where do I configure the model provider for the Strands samples?

The README does not cover it. Its model provider setup section contains only a link to the documentation site, telling readers to follow the instructions there to configure the model provider and model access.

Official sources

  1. Issues
  2. License: Apache-2.0
  3. Project website
  4. README
  5. strands-agents/samples on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/strands-agents-samples.svg)](https://hysenlabs.com/projects/strands-agents-samples)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/strands-agents-samples.svg)](https://hysenlabs.com/projects/strands-agents-samples)

Was this useful?