From aws-dev-toolkit
Scaffold and build AI agents using the Strands Agents SDK with Bedrock AgentCore. Use when creating new agent projects, building greenfield AgentCore applications, prototyping agents with Strands, or when asked about the Strands framework. Covers both TypeScript and Python.
npx claudepluginhub aws-samples/sample-claude-code-plugins-for-startups --plugin aws-dev-toolkitThis skill uses the workspace's default tool permissions.
You are building an AI agent using the **Strands Agents SDK** deployed on **Amazon Bedrock AgentCore**.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
You are building an AI agent using the Strands Agents SDK deployed on Amazon Bedrock AgentCore.
Before writing any code, ask the user:
TypeScript or Python? (TypeScript is recommended for new projects — it has strong typing, good DX, and first-class Strands support. Python is fully supported too.)
Default to TypeScript if the user doesn't have a preference.
For the fastest path to a working deployed agent, use the AgentCore Starter Toolkit CLI. It handles configuration, deployment, memory provisioning, and invocation.
# Install the toolkit
pip install bedrock-agentcore-starter-toolkit
# Configure your agent
agentcore configure --entrypoint agent.py --name my-agent
# Deploy to AWS (uses CodeBuild, no Docker needed)
agentcore deploy
# Invoke it
agentcore invoke '{"prompt": "Hello!"}'
# Check status
agentcore status
# Tear down when done
agentcore destroy --force
See references/agentcore-cli.md for the full CLI reference.
mkdir my-agent && cd my-agent
npm init -y
npm pkg set type=module
npm install @strands-agents/sdk
npm install --save-dev @types/node typescript
See references/typescript-patterns.md for complete TypeScript agent patterns.
mkdir my-agent && cd my-agent
python -m venv .venv && source .venv/bin/activate
pip install strands-agents bedrock-agentcore
See references/python-patterns.md for complete Python agent patterns.
Strands has OpenTelemetry built in. Every agent invocation, model call, and tool execution emits OTel spans automatically. You just configure where to send them.
OTEL_EXPORTER_OTLP_ENDPOINT to route to Jaeger, Grafana, Langfuse, etc.agentcore configure --disable-otelSee references/agentcore-integrations.md for full setup, third-party backends, and trace attribute configuration.
Ship evals from day one. Strands Evals provides LLM-as-a-Judge evaluation with 9+ built-in evaluators:
pip install strands-agents-evals
Evals are Python-only. Even for TypeScript agents, write your eval suite in Python.
See references/agentcore-integrations.md for eval code patterns, trace-based evaluation, multi-turn simulation, and auto-generated test cases.
| Scenario | Memory Mode | Notes |
|---|---|---|
| Stateless tool-calling agent | NO_MEMORY | Simplest, cheapest |
| Multi-turn conversation within a session | STM_ONLY | 30-day retention, stores conversation history |
| Personalization across sessions | STM_AND_LTM | Extracts preferences, facts, summaries across sessions |
Memory is opt-in. Start without it, add when you need it.
agentcore CLI itself is a Python tool. Your TS agent runs in a container.--deployment-type container when configuring TS agents with the AgentCore CLIglobal.anthropic.claude-sonnet-4-5-20250929-v1:0 via Bedrock. You need model access enabled in your AWS account.AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY are set, or use IAM roles.@strands-agents/sdk bundles Zod for TypeScript tool input validation. No separate install needed.agentcore destroy deletes everything — including memory resources. Use --dry-run first.--idle-timeout and --max-lifetime during configure if you need longer sessions.--disable-otel if you don't want it.callback_handler=None in eval task functions to suppress console output.batch_size > 1, you MUST use a with block or call close() or buffered messages are lost.When scaffolding a new agent project, generate:
evals/ directory with at least one test case using Strands Evals — Python, even for TS agents).gitignore appropriate for the language