[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aws-labs-strands-agent":3,"mdc--269cjg-key":37,"related-org-aws-labs-strands-agent":1306,"related-repo-aws-labs-strands-agent":1486},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"strands-agent","scaffold AI agents with Strands SDK","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"aws-labs","AWS Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Faws-labs.png","awslabs",[13,17,20,23],{"name":14,"slug":15,"type":16},"Agents","agents","tag",{"name":18,"slug":19,"type":16},"SDK","sdk",{"name":21,"slug":22,"type":16},"AWS","aws",{"name":24,"slug":25,"type":16},"Multi-Agent","multi-agent",14,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fstartups","2026-07-12T08:41:11.369233",null,15,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Official AWS Startups repository that hosts plugins, skills, tools and resources to support startup builders on AWS","https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fstartups\u002Ftree\u002FHEAD\u002Fsolution-architecture\u002Fplugins\u002Faws-dev-toolkit\u002Fskills\u002Fstrands-agent","---\nname: strands-agent\ndescription: 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.\ndisable-model-invocation: true\nargument-hint: [description of the agent to build]\n---\n\nYou are building an AI agent using the **Strands Agents SDK** deployed on **Amazon Bedrock AgentCore**.\n\n## First: Clarify Language\n\nBefore writing any code, ask the user:\n\n> **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.)\n\nDefault to TypeScript if the user doesn't have a preference.\n\n## Process\n\n1. Clarify the agent's purpose — one sentence. If it needs \"and\", consider multiple agents.\n2. Clarify language preference (TS preferred, Python supported)\n3. Identify the tools the agent needs (keep to 3-5 for a PoC)\n4. Decide on memory needs: no memory, STM only, or STM+LTM\n5. Scaffold the project using the patterns in [references\u002F](references\u002F)\n6. Include observability setup (OTel tracing is built in — just configure the endpoint)\n7. Include an eval scaffold using Strands Evals (even for TS agents, evals are Python)\n8. Include deployment instructions using the AgentCore CLI\n\n## Quick PoC Path: AgentCore CLI\n\nFor the fastest path to a working deployed agent, use the **AgentCore Starter Toolkit CLI**. It handles configuration, deployment, memory provisioning, and invocation.\n\n```bash\n# Install the toolkit\npip install bedrock-agentcore-starter-toolkit\n\n# Configure your agent\nagentcore configure --entrypoint agent.py --name my-agent\n\n# Deploy to AWS (uses CodeBuild, no Docker needed)\nagentcore deploy\n\n# Invoke it\nagentcore invoke '{\"prompt\": \"Hello!\"}'\n\n# Check status\nagentcore status\n\n# Tear down when done\nagentcore destroy --force\n```\n\nSee [references\u002Fagentcore-cli.md](references\u002Fagentcore-cli.md) for the full CLI reference.\n\n## TypeScript Project Setup\n\n```bash\nmkdir my-agent && cd my-agent\nnpm init -y\nnpm pkg set type=module\nnpm install @strands-agents\u002Fsdk\nnpm install --save-dev @types\u002Fnode typescript\n```\n\nSee [references\u002Ftypescript-patterns.md](references\u002Ftypescript-patterns.md) for complete TypeScript agent patterns.\n\n## Python Project Setup\n\n```bash\nmkdir my-agent && cd my-agent\npython -m venv .venv && source .venv\u002Fbin\u002Factivate\npip install strands-agents bedrock-agentcore\n```\n\nSee [references\u002Fpython-patterns.md](references\u002Fpython-patterns.md) for complete Python agent patterns.\n\n## Observability & Tracing\n\nStrands has OpenTelemetry built in. Every agent invocation, model call, and tool execution emits OTel spans automatically. You just configure where to send them.\n\n- **AgentCore deployed agents**: OTel is enabled by default → CloudWatch Logs, X-Ray traces, GenAI dashboard\n- **Local development**: Set `OTEL_EXPORTER_OTLP_ENDPOINT` to route to Jaeger, Grafana, Langfuse, etc.\n- **Disable**: `agentcore configure --disable-otel`\n\nSee [references\u002Fagentcore-integrations.md](references\u002Fagentcore-integrations.md) for full setup, third-party backends, and trace attribute configuration.\n\n## Evaluation with Strands Evals\n\nShip evals from day one. Strands Evals provides LLM-as-a-Judge evaluation with 9+ built-in evaluators:\n\n- **OutputEvaluator**: Custom rubric-based quality scoring\n- **TrajectoryEvaluator**: Did the agent use the right tools in the right order?\n- **HelpfulnessEvaluator**: 7-point helpfulness scale\n- **FaithfulnessEvaluator**: Is the response grounded in context? (anti-hallucination)\n- **HarmfulnessEvaluator**: Safety check\n- **ToolSelectionAccuracyEvaluator** \u002F **ToolParameterAccuracyEvaluator**: Tool-level correctness\n- **GoalSuccessRateEvaluator**: Did the user achieve their goal across a full session?\n- **ActorSimulator**: Simulates realistic multi-turn users for conversation testing\n\n```bash\npip install strands-agents-evals\n```\n\n> Evals are Python-only. Even for TypeScript agents, write your eval suite in Python.\n\nSee [references\u002Fagentcore-integrations.md](references\u002Fagentcore-integrations.md) for eval code patterns, trace-based evaluation, multi-turn simulation, and auto-generated test cases.\n\n## Memory Decision Guide\n\n| Scenario                                 | Memory Mode | Notes                                                  |\n| ---------------------------------------- | ----------- | ------------------------------------------------------ |\n| Stateless tool-calling agent             | NO_MEMORY   | Simplest, cheapest                                     |\n| Multi-turn conversation within a session | STM_ONLY    | 30-day retention, stores conversation history          |\n| Personalization across sessions          | STM_AND_LTM | Extracts preferences, facts, summaries across sessions |\n\nMemory is opt-in. Start without it, add when you need it.\n\n## Gotchas\n\n- **AgentCore CLI is Python-only for deployment** — even if your agent is TypeScript, the `agentcore` CLI itself is a Python tool. Your TS agent runs in a container.\n- **TypeScript agents need containerized deployment** — use `--deployment-type container` when configuring TS agents with the AgentCore CLI\n- **Default model is Claude Sonnet** — Strands defaults to `global.anthropic.claude-sonnet-4-5-20250929-v1:0` via Bedrock. You need model access enabled in your AWS account.\n- **AWS credentials required** — Strands uses Bedrock by default. Ensure `AWS_ACCESS_KEY_ID`\u002F`AWS_SECRET_ACCESS_KEY` are set, or use IAM roles.\n- **Tool count matters** — more tools = more reasoning steps = slower + more expensive. Keep PoCs to 3-5 tools.\n- **Zod is included** — `@strands-agents\u002Fsdk` bundles Zod for TypeScript tool input validation. No separate install needed.\n- **Memory provisioning takes time** — STM: ~30-90s, LTM: ~120-180s. The CLI waits for ACTIVE status.\n- **`agentcore destroy` deletes everything** — including memory resources. Use `--dry-run` first.\n- **Session lifecycle** — idle timeout defaults to 900s (15min). Set `--idle-timeout` and `--max-lifetime` during configure if you need longer sessions.\n- **VPC config is immutable** — once deployed with VPC settings, you can't change them. Create a new agent config instead.\n- **OTel is on by default in AgentCore** — traces go to CloudWatch\u002FX-Ray. Disable with `--disable-otel` if you don't want it.\n- **Strands Evals is Python-only** — even for TypeScript agents, write evals in Python. The eval framework uses the same Bedrock models as your agent.\n- **Evals cost money** — each LLM-as-a-Judge evaluation invokes a model. Use `callback_handler=None` in eval task functions to suppress console output.\n- **Memory batching requires close()** — if using `batch_size > 1`, you MUST use a `with` block or call `close()` or buffered messages are lost.\n\n## Output\n\nWhen scaffolding a new agent project, generate:\n\n1. Complete project structure with all files\n2. Agent entrypoint with at least one custom tool\n3. Observability setup (OTel endpoint config, env vars)\n4. Eval scaffold (`evals\u002F` directory with at least one test case using Strands Evals — Python, even for TS agents)\n5. README with setup, deployment, observability, and eval instructions\n6. `.gitignore` appropriate for the language\n7. Deployment commands (local dev + AgentCore cloud)\n",{"data":38,"body":42},{"name":4,"description":6,"disable-model-invocation":39,"argument-hint":40},true,[41],"description of the agent to build",{"type":43,"children":44},"root",[45,68,75,80,94,99,105,156,162,174,410,422,428,545,556,562,650,661,667,672,720,731,737,742,832,855,863,873,879,966,971,977,1237,1243,1248,1300],{"type":46,"tag":47,"props":48,"children":49},"element","p",{},[50,53,59,61,66],{"type":51,"value":52},"text","You are building an AI agent using the ",{"type":46,"tag":54,"props":55,"children":56},"strong",{},[57],{"type":51,"value":58},"Strands Agents SDK",{"type":51,"value":60}," deployed on ",{"type":46,"tag":54,"props":62,"children":63},{},[64],{"type":51,"value":65},"Amazon Bedrock AgentCore",{"type":51,"value":67},".",{"type":46,"tag":69,"props":70,"children":72},"h2",{"id":71},"first-clarify-language",[73],{"type":51,"value":74},"First: Clarify Language",{"type":46,"tag":47,"props":76,"children":77},{},[78],{"type":51,"value":79},"Before writing any code, ask the user:",{"type":46,"tag":81,"props":82,"children":83},"blockquote",{},[84],{"type":46,"tag":47,"props":85,"children":86},{},[87,92],{"type":46,"tag":54,"props":88,"children":89},{},[90],{"type":51,"value":91},"TypeScript or Python?",{"type":51,"value":93}," (TypeScript is recommended for new projects — it has strong typing, good DX, and first-class Strands support. Python is fully supported too.)",{"type":46,"tag":47,"props":95,"children":96},{},[97],{"type":51,"value":98},"Default to TypeScript if the user doesn't have a preference.",{"type":46,"tag":69,"props":100,"children":102},{"id":101},"process",[103],{"type":51,"value":104},"Process",{"type":46,"tag":106,"props":107,"children":108},"ol",{},[109,115,120,125,130,141,146,151],{"type":46,"tag":110,"props":111,"children":112},"li",{},[113],{"type":51,"value":114},"Clarify the agent's purpose — one sentence. If it needs \"and\", consider multiple agents.",{"type":46,"tag":110,"props":116,"children":117},{},[118],{"type":51,"value":119},"Clarify language preference (TS preferred, Python supported)",{"type":46,"tag":110,"props":121,"children":122},{},[123],{"type":51,"value":124},"Identify the tools the agent needs (keep to 3-5 for a PoC)",{"type":46,"tag":110,"props":126,"children":127},{},[128],{"type":51,"value":129},"Decide on memory needs: no memory, STM only, or STM+LTM",{"type":46,"tag":110,"props":131,"children":132},{},[133,135],{"type":51,"value":134},"Scaffold the project using the patterns in ",{"type":46,"tag":136,"props":137,"children":139},"a",{"href":138},"references\u002F",[140],{"type":51,"value":138},{"type":46,"tag":110,"props":142,"children":143},{},[144],{"type":51,"value":145},"Include observability setup (OTel tracing is built in — just configure the endpoint)",{"type":46,"tag":110,"props":147,"children":148},{},[149],{"type":51,"value":150},"Include an eval scaffold using Strands Evals (even for TS agents, evals are Python)",{"type":46,"tag":110,"props":152,"children":153},{},[154],{"type":51,"value":155},"Include deployment instructions using the AgentCore CLI",{"type":46,"tag":69,"props":157,"children":159},{"id":158},"quick-poc-path-agentcore-cli",[160],{"type":51,"value":161},"Quick PoC Path: AgentCore CLI",{"type":46,"tag":47,"props":163,"children":164},{},[165,167,172],{"type":51,"value":166},"For the fastest path to a working deployed agent, use the ",{"type":46,"tag":54,"props":168,"children":169},{},[170],{"type":51,"value":171},"AgentCore Starter Toolkit CLI",{"type":51,"value":173},". It handles configuration, deployment, memory provisioning, and invocation.",{"type":46,"tag":175,"props":176,"children":181},"pre",{"className":177,"code":178,"language":179,"meta":180,"style":180},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Install the toolkit\npip install bedrock-agentcore-starter-toolkit\n\n# Configure your agent\nagentcore configure --entrypoint agent.py --name my-agent\n\n# Deploy to AWS (uses CodeBuild, no Docker needed)\nagentcore deploy\n\n# Invoke it\nagentcore invoke '{\"prompt\": \"Hello!\"}'\n\n# Check status\nagentcore status\n\n# Tear down when done\nagentcore destroy --force\n","bash","",[182],{"type":46,"tag":183,"props":184,"children":185},"code",{"__ignoreMap":180},[186,198,219,228,237,271,279,288,301,309,318,347,355,364,376,383,392],{"type":46,"tag":187,"props":188,"children":191},"span",{"class":189,"line":190},"line",1,[192],{"type":46,"tag":187,"props":193,"children":195},{"style":194},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[196],{"type":51,"value":197},"# Install the toolkit\n",{"type":46,"tag":187,"props":199,"children":201},{"class":189,"line":200},2,[202,208,214],{"type":46,"tag":187,"props":203,"children":205},{"style":204},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[206],{"type":51,"value":207},"pip",{"type":46,"tag":187,"props":209,"children":211},{"style":210},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[212],{"type":51,"value":213}," install",{"type":46,"tag":187,"props":215,"children":216},{"style":210},[217],{"type":51,"value":218}," bedrock-agentcore-starter-toolkit\n",{"type":46,"tag":187,"props":220,"children":222},{"class":189,"line":221},3,[223],{"type":46,"tag":187,"props":224,"children":225},{"emptyLinePlaceholder":39},[226],{"type":51,"value":227},"\n",{"type":46,"tag":187,"props":229,"children":231},{"class":189,"line":230},4,[232],{"type":46,"tag":187,"props":233,"children":234},{"style":194},[235],{"type":51,"value":236},"# Configure your agent\n",{"type":46,"tag":187,"props":238,"children":240},{"class":189,"line":239},5,[241,246,251,256,261,266],{"type":46,"tag":187,"props":242,"children":243},{"style":204},[244],{"type":51,"value":245},"agentcore",{"type":46,"tag":187,"props":247,"children":248},{"style":210},[249],{"type":51,"value":250}," configure",{"type":46,"tag":187,"props":252,"children":253},{"style":210},[254],{"type":51,"value":255}," --entrypoint",{"type":46,"tag":187,"props":257,"children":258},{"style":210},[259],{"type":51,"value":260}," agent.py",{"type":46,"tag":187,"props":262,"children":263},{"style":210},[264],{"type":51,"value":265}," --name",{"type":46,"tag":187,"props":267,"children":268},{"style":210},[269],{"type":51,"value":270}," my-agent\n",{"type":46,"tag":187,"props":272,"children":274},{"class":189,"line":273},6,[275],{"type":46,"tag":187,"props":276,"children":277},{"emptyLinePlaceholder":39},[278],{"type":51,"value":227},{"type":46,"tag":187,"props":280,"children":282},{"class":189,"line":281},7,[283],{"type":46,"tag":187,"props":284,"children":285},{"style":194},[286],{"type":51,"value":287},"# Deploy to AWS (uses CodeBuild, no Docker needed)\n",{"type":46,"tag":187,"props":289,"children":291},{"class":189,"line":290},8,[292,296],{"type":46,"tag":187,"props":293,"children":294},{"style":204},[295],{"type":51,"value":245},{"type":46,"tag":187,"props":297,"children":298},{"style":210},[299],{"type":51,"value":300}," deploy\n",{"type":46,"tag":187,"props":302,"children":304},{"class":189,"line":303},9,[305],{"type":46,"tag":187,"props":306,"children":307},{"emptyLinePlaceholder":39},[308],{"type":51,"value":227},{"type":46,"tag":187,"props":310,"children":312},{"class":189,"line":311},10,[313],{"type":46,"tag":187,"props":314,"children":315},{"style":194},[316],{"type":51,"value":317},"# Invoke it\n",{"type":46,"tag":187,"props":319,"children":321},{"class":189,"line":320},11,[322,326,331,337,342],{"type":46,"tag":187,"props":323,"children":324},{"style":204},[325],{"type":51,"value":245},{"type":46,"tag":187,"props":327,"children":328},{"style":210},[329],{"type":51,"value":330}," invoke",{"type":46,"tag":187,"props":332,"children":334},{"style":333},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[335],{"type":51,"value":336}," '",{"type":46,"tag":187,"props":338,"children":339},{"style":210},[340],{"type":51,"value":341},"{\"prompt\": \"Hello!\"}",{"type":46,"tag":187,"props":343,"children":344},{"style":333},[345],{"type":51,"value":346},"'\n",{"type":46,"tag":187,"props":348,"children":350},{"class":189,"line":349},12,[351],{"type":46,"tag":187,"props":352,"children":353},{"emptyLinePlaceholder":39},[354],{"type":51,"value":227},{"type":46,"tag":187,"props":356,"children":358},{"class":189,"line":357},13,[359],{"type":46,"tag":187,"props":360,"children":361},{"style":194},[362],{"type":51,"value":363},"# Check status\n",{"type":46,"tag":187,"props":365,"children":366},{"class":189,"line":26},[367,371],{"type":46,"tag":187,"props":368,"children":369},{"style":204},[370],{"type":51,"value":245},{"type":46,"tag":187,"props":372,"children":373},{"style":210},[374],{"type":51,"value":375}," status\n",{"type":46,"tag":187,"props":377,"children":378},{"class":189,"line":30},[379],{"type":46,"tag":187,"props":380,"children":381},{"emptyLinePlaceholder":39},[382],{"type":51,"value":227},{"type":46,"tag":187,"props":384,"children":386},{"class":189,"line":385},16,[387],{"type":46,"tag":187,"props":388,"children":389},{"style":194},[390],{"type":51,"value":391},"# Tear down when done\n",{"type":46,"tag":187,"props":393,"children":395},{"class":189,"line":394},17,[396,400,405],{"type":46,"tag":187,"props":397,"children":398},{"style":204},[399],{"type":51,"value":245},{"type":46,"tag":187,"props":401,"children":402},{"style":210},[403],{"type":51,"value":404}," destroy",{"type":46,"tag":187,"props":406,"children":407},{"style":210},[408],{"type":51,"value":409}," --force\n",{"type":46,"tag":47,"props":411,"children":412},{},[413,415,420],{"type":51,"value":414},"See ",{"type":46,"tag":136,"props":416,"children":418},{"href":417},"references\u002Fagentcore-cli.md",[419],{"type":51,"value":417},{"type":51,"value":421}," for the full CLI reference.",{"type":46,"tag":69,"props":423,"children":425},{"id":424},"typescript-project-setup",[426],{"type":51,"value":427},"TypeScript Project Setup",{"type":46,"tag":175,"props":429,"children":431},{"className":177,"code":430,"language":179,"meta":180,"style":180},"mkdir my-agent && cd my-agent\nnpm init -y\nnpm pkg set type=module\nnpm install @strands-agents\u002Fsdk\nnpm install --save-dev @types\u002Fnode typescript\n",[432],{"type":46,"tag":183,"props":433,"children":434},{"__ignoreMap":180},[435,463,481,503,519],{"type":46,"tag":187,"props":436,"children":437},{"class":189,"line":190},[438,443,448,453,459],{"type":46,"tag":187,"props":439,"children":440},{"style":204},[441],{"type":51,"value":442},"mkdir",{"type":46,"tag":187,"props":444,"children":445},{"style":210},[446],{"type":51,"value":447}," my-agent",{"type":46,"tag":187,"props":449,"children":450},{"style":333},[451],{"type":51,"value":452}," &&",{"type":46,"tag":187,"props":454,"children":456},{"style":455},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[457],{"type":51,"value":458}," cd",{"type":46,"tag":187,"props":460,"children":461},{"style":210},[462],{"type":51,"value":270},{"type":46,"tag":187,"props":464,"children":465},{"class":189,"line":200},[466,471,476],{"type":46,"tag":187,"props":467,"children":468},{"style":204},[469],{"type":51,"value":470},"npm",{"type":46,"tag":187,"props":472,"children":473},{"style":210},[474],{"type":51,"value":475}," init",{"type":46,"tag":187,"props":477,"children":478},{"style":210},[479],{"type":51,"value":480}," -y\n",{"type":46,"tag":187,"props":482,"children":483},{"class":189,"line":221},[484,488,493,498],{"type":46,"tag":187,"props":485,"children":486},{"style":204},[487],{"type":51,"value":470},{"type":46,"tag":187,"props":489,"children":490},{"style":210},[491],{"type":51,"value":492}," pkg",{"type":46,"tag":187,"props":494,"children":495},{"style":210},[496],{"type":51,"value":497}," set",{"type":46,"tag":187,"props":499,"children":500},{"style":210},[501],{"type":51,"value":502}," type=module\n",{"type":46,"tag":187,"props":504,"children":505},{"class":189,"line":230},[506,510,514],{"type":46,"tag":187,"props":507,"children":508},{"style":204},[509],{"type":51,"value":470},{"type":46,"tag":187,"props":511,"children":512},{"style":210},[513],{"type":51,"value":213},{"type":46,"tag":187,"props":515,"children":516},{"style":210},[517],{"type":51,"value":518}," @strands-agents\u002Fsdk\n",{"type":46,"tag":187,"props":520,"children":521},{"class":189,"line":239},[522,526,530,535,540],{"type":46,"tag":187,"props":523,"children":524},{"style":204},[525],{"type":51,"value":470},{"type":46,"tag":187,"props":527,"children":528},{"style":210},[529],{"type":51,"value":213},{"type":46,"tag":187,"props":531,"children":532},{"style":210},[533],{"type":51,"value":534}," --save-dev",{"type":46,"tag":187,"props":536,"children":537},{"style":210},[538],{"type":51,"value":539}," @types\u002Fnode",{"type":46,"tag":187,"props":541,"children":542},{"style":210},[543],{"type":51,"value":544}," typescript\n",{"type":46,"tag":47,"props":546,"children":547},{},[548,549,554],{"type":51,"value":414},{"type":46,"tag":136,"props":550,"children":552},{"href":551},"references\u002Ftypescript-patterns.md",[553],{"type":51,"value":551},{"type":51,"value":555}," for complete TypeScript agent patterns.",{"type":46,"tag":69,"props":557,"children":559},{"id":558},"python-project-setup",[560],{"type":51,"value":561},"Python Project Setup",{"type":46,"tag":175,"props":563,"children":565},{"className":177,"code":564,"language":179,"meta":180,"style":180},"mkdir my-agent && cd my-agent\npython -m venv .venv && source .venv\u002Fbin\u002Factivate\npip install strands-agents bedrock-agentcore\n",[566],{"type":46,"tag":183,"props":567,"children":568},{"__ignoreMap":180},[569,592,629],{"type":46,"tag":187,"props":570,"children":571},{"class":189,"line":190},[572,576,580,584,588],{"type":46,"tag":187,"props":573,"children":574},{"style":204},[575],{"type":51,"value":442},{"type":46,"tag":187,"props":577,"children":578},{"style":210},[579],{"type":51,"value":447},{"type":46,"tag":187,"props":581,"children":582},{"style":333},[583],{"type":51,"value":452},{"type":46,"tag":187,"props":585,"children":586},{"style":455},[587],{"type":51,"value":458},{"type":46,"tag":187,"props":589,"children":590},{"style":210},[591],{"type":51,"value":270},{"type":46,"tag":187,"props":593,"children":594},{"class":189,"line":200},[595,600,605,610,615,619,624],{"type":46,"tag":187,"props":596,"children":597},{"style":204},[598],{"type":51,"value":599},"python",{"type":46,"tag":187,"props":601,"children":602},{"style":210},[603],{"type":51,"value":604}," -m",{"type":46,"tag":187,"props":606,"children":607},{"style":210},[608],{"type":51,"value":609}," venv",{"type":46,"tag":187,"props":611,"children":612},{"style":210},[613],{"type":51,"value":614}," .venv",{"type":46,"tag":187,"props":616,"children":617},{"style":333},[618],{"type":51,"value":452},{"type":46,"tag":187,"props":620,"children":621},{"style":455},[622],{"type":51,"value":623}," source",{"type":46,"tag":187,"props":625,"children":626},{"style":210},[627],{"type":51,"value":628}," .venv\u002Fbin\u002Factivate\n",{"type":46,"tag":187,"props":630,"children":631},{"class":189,"line":221},[632,636,640,645],{"type":46,"tag":187,"props":633,"children":634},{"style":204},[635],{"type":51,"value":207},{"type":46,"tag":187,"props":637,"children":638},{"style":210},[639],{"type":51,"value":213},{"type":46,"tag":187,"props":641,"children":642},{"style":210},[643],{"type":51,"value":644}," strands-agents",{"type":46,"tag":187,"props":646,"children":647},{"style":210},[648],{"type":51,"value":649}," bedrock-agentcore\n",{"type":46,"tag":47,"props":651,"children":652},{},[653,654,659],{"type":51,"value":414},{"type":46,"tag":136,"props":655,"children":657},{"href":656},"references\u002Fpython-patterns.md",[658],{"type":51,"value":656},{"type":51,"value":660}," for complete Python agent patterns.",{"type":46,"tag":69,"props":662,"children":664},{"id":663},"observability-tracing",[665],{"type":51,"value":666},"Observability & Tracing",{"type":46,"tag":47,"props":668,"children":669},{},[670],{"type":51,"value":671},"Strands has OpenTelemetry built in. Every agent invocation, model call, and tool execution emits OTel spans automatically. You just configure where to send them.",{"type":46,"tag":673,"props":674,"children":675},"ul",{},[676,686,704],{"type":46,"tag":110,"props":677,"children":678},{},[679,684],{"type":46,"tag":54,"props":680,"children":681},{},[682],{"type":51,"value":683},"AgentCore deployed agents",{"type":51,"value":685},": OTel is enabled by default → CloudWatch Logs, X-Ray traces, GenAI dashboard",{"type":46,"tag":110,"props":687,"children":688},{},[689,694,696,702],{"type":46,"tag":54,"props":690,"children":691},{},[692],{"type":51,"value":693},"Local development",{"type":51,"value":695},": Set ",{"type":46,"tag":183,"props":697,"children":699},{"className":698},[],[700],{"type":51,"value":701},"OTEL_EXPORTER_OTLP_ENDPOINT",{"type":51,"value":703}," to route to Jaeger, Grafana, Langfuse, etc.",{"type":46,"tag":110,"props":705,"children":706},{},[707,712,714],{"type":46,"tag":54,"props":708,"children":709},{},[710],{"type":51,"value":711},"Disable",{"type":51,"value":713},": ",{"type":46,"tag":183,"props":715,"children":717},{"className":716},[],[718],{"type":51,"value":719},"agentcore configure --disable-otel",{"type":46,"tag":47,"props":721,"children":722},{},[723,724,729],{"type":51,"value":414},{"type":46,"tag":136,"props":725,"children":727},{"href":726},"references\u002Fagentcore-integrations.md",[728],{"type":51,"value":726},{"type":51,"value":730}," for full setup, third-party backends, and trace attribute configuration.",{"type":46,"tag":69,"props":732,"children":734},{"id":733},"evaluation-with-strands-evals",[735],{"type":51,"value":736},"Evaluation with Strands Evals",{"type":46,"tag":47,"props":738,"children":739},{},[740],{"type":51,"value":741},"Ship evals from day one. Strands Evals provides LLM-as-a-Judge evaluation with 9+ built-in evaluators:",{"type":46,"tag":673,"props":743,"children":744},{},[745,755,765,775,785,795,812,822],{"type":46,"tag":110,"props":746,"children":747},{},[748,753],{"type":46,"tag":54,"props":749,"children":750},{},[751],{"type":51,"value":752},"OutputEvaluator",{"type":51,"value":754},": Custom rubric-based quality scoring",{"type":46,"tag":110,"props":756,"children":757},{},[758,763],{"type":46,"tag":54,"props":759,"children":760},{},[761],{"type":51,"value":762},"TrajectoryEvaluator",{"type":51,"value":764},": Did the agent use the right tools in the right order?",{"type":46,"tag":110,"props":766,"children":767},{},[768,773],{"type":46,"tag":54,"props":769,"children":770},{},[771],{"type":51,"value":772},"HelpfulnessEvaluator",{"type":51,"value":774},": 7-point helpfulness scale",{"type":46,"tag":110,"props":776,"children":777},{},[778,783],{"type":46,"tag":54,"props":779,"children":780},{},[781],{"type":51,"value":782},"FaithfulnessEvaluator",{"type":51,"value":784},": Is the response grounded in context? (anti-hallucination)",{"type":46,"tag":110,"props":786,"children":787},{},[788,793],{"type":46,"tag":54,"props":789,"children":790},{},[791],{"type":51,"value":792},"HarmfulnessEvaluator",{"type":51,"value":794},": Safety check",{"type":46,"tag":110,"props":796,"children":797},{},[798,803,805,810],{"type":46,"tag":54,"props":799,"children":800},{},[801],{"type":51,"value":802},"ToolSelectionAccuracyEvaluator",{"type":51,"value":804}," \u002F ",{"type":46,"tag":54,"props":806,"children":807},{},[808],{"type":51,"value":809},"ToolParameterAccuracyEvaluator",{"type":51,"value":811},": Tool-level correctness",{"type":46,"tag":110,"props":813,"children":814},{},[815,820],{"type":46,"tag":54,"props":816,"children":817},{},[818],{"type":51,"value":819},"GoalSuccessRateEvaluator",{"type":51,"value":821},": Did the user achieve their goal across a full session?",{"type":46,"tag":110,"props":823,"children":824},{},[825,830],{"type":46,"tag":54,"props":826,"children":827},{},[828],{"type":51,"value":829},"ActorSimulator",{"type":51,"value":831},": Simulates realistic multi-turn users for conversation testing",{"type":46,"tag":175,"props":833,"children":835},{"className":177,"code":834,"language":179,"meta":180,"style":180},"pip install strands-agents-evals\n",[836],{"type":46,"tag":183,"props":837,"children":838},{"__ignoreMap":180},[839],{"type":46,"tag":187,"props":840,"children":841},{"class":189,"line":190},[842,846,850],{"type":46,"tag":187,"props":843,"children":844},{"style":204},[845],{"type":51,"value":207},{"type":46,"tag":187,"props":847,"children":848},{"style":210},[849],{"type":51,"value":213},{"type":46,"tag":187,"props":851,"children":852},{"style":210},[853],{"type":51,"value":854}," strands-agents-evals\n",{"type":46,"tag":81,"props":856,"children":857},{},[858],{"type":46,"tag":47,"props":859,"children":860},{},[861],{"type":51,"value":862},"Evals are Python-only. Even for TypeScript agents, write your eval suite in Python.",{"type":46,"tag":47,"props":864,"children":865},{},[866,867,871],{"type":51,"value":414},{"type":46,"tag":136,"props":868,"children":869},{"href":726},[870],{"type":51,"value":726},{"type":51,"value":872}," for eval code patterns, trace-based evaluation, multi-turn simulation, and auto-generated test cases.",{"type":46,"tag":69,"props":874,"children":876},{"id":875},"memory-decision-guide",[877],{"type":51,"value":878},"Memory Decision Guide",{"type":46,"tag":880,"props":881,"children":882},"table",{},[883,907],{"type":46,"tag":884,"props":885,"children":886},"thead",{},[887],{"type":46,"tag":888,"props":889,"children":890},"tr",{},[891,897,902],{"type":46,"tag":892,"props":893,"children":894},"th",{},[895],{"type":51,"value":896},"Scenario",{"type":46,"tag":892,"props":898,"children":899},{},[900],{"type":51,"value":901},"Memory Mode",{"type":46,"tag":892,"props":903,"children":904},{},[905],{"type":51,"value":906},"Notes",{"type":46,"tag":908,"props":909,"children":910},"tbody",{},[911,930,948],{"type":46,"tag":888,"props":912,"children":913},{},[914,920,925],{"type":46,"tag":915,"props":916,"children":917},"td",{},[918],{"type":51,"value":919},"Stateless tool-calling agent",{"type":46,"tag":915,"props":921,"children":922},{},[923],{"type":51,"value":924},"NO_MEMORY",{"type":46,"tag":915,"props":926,"children":927},{},[928],{"type":51,"value":929},"Simplest, cheapest",{"type":46,"tag":888,"props":931,"children":932},{},[933,938,943],{"type":46,"tag":915,"props":934,"children":935},{},[936],{"type":51,"value":937},"Multi-turn conversation within a session",{"type":46,"tag":915,"props":939,"children":940},{},[941],{"type":51,"value":942},"STM_ONLY",{"type":46,"tag":915,"props":944,"children":945},{},[946],{"type":51,"value":947},"30-day retention, stores conversation history",{"type":46,"tag":888,"props":949,"children":950},{},[951,956,961],{"type":46,"tag":915,"props":952,"children":953},{},[954],{"type":51,"value":955},"Personalization across sessions",{"type":46,"tag":915,"props":957,"children":958},{},[959],{"type":51,"value":960},"STM_AND_LTM",{"type":46,"tag":915,"props":962,"children":963},{},[964],{"type":51,"value":965},"Extracts preferences, facts, summaries across sessions",{"type":46,"tag":47,"props":967,"children":968},{},[969],{"type":51,"value":970},"Memory is opt-in. Start without it, add when you need it.",{"type":46,"tag":69,"props":972,"children":974},{"id":973},"gotchas",[975],{"type":51,"value":976},"Gotchas",{"type":46,"tag":673,"props":978,"children":979},{},[980,997,1015,1033,1059,1069,1087,1097,1121,1147,1157,1175,1185,1203],{"type":46,"tag":110,"props":981,"children":982},{},[983,988,990,995],{"type":46,"tag":54,"props":984,"children":985},{},[986],{"type":51,"value":987},"AgentCore CLI is Python-only for deployment",{"type":51,"value":989}," — even if your agent is TypeScript, the ",{"type":46,"tag":183,"props":991,"children":993},{"className":992},[],[994],{"type":51,"value":245},{"type":51,"value":996}," CLI itself is a Python tool. Your TS agent runs in a container.",{"type":46,"tag":110,"props":998,"children":999},{},[1000,1005,1007,1013],{"type":46,"tag":54,"props":1001,"children":1002},{},[1003],{"type":51,"value":1004},"TypeScript agents need containerized deployment",{"type":51,"value":1006}," — use ",{"type":46,"tag":183,"props":1008,"children":1010},{"className":1009},[],[1011],{"type":51,"value":1012},"--deployment-type container",{"type":51,"value":1014}," when configuring TS agents with the AgentCore CLI",{"type":46,"tag":110,"props":1016,"children":1017},{},[1018,1023,1025,1031],{"type":46,"tag":54,"props":1019,"children":1020},{},[1021],{"type":51,"value":1022},"Default model is Claude Sonnet",{"type":51,"value":1024}," — Strands defaults to ",{"type":46,"tag":183,"props":1026,"children":1028},{"className":1027},[],[1029],{"type":51,"value":1030},"global.anthropic.claude-sonnet-4-5-20250929-v1:0",{"type":51,"value":1032}," via Bedrock. You need model access enabled in your AWS account.",{"type":46,"tag":110,"props":1034,"children":1035},{},[1036,1041,1043,1049,1051,1057],{"type":46,"tag":54,"props":1037,"children":1038},{},[1039],{"type":51,"value":1040},"AWS credentials required",{"type":51,"value":1042}," — Strands uses Bedrock by default. Ensure ",{"type":46,"tag":183,"props":1044,"children":1046},{"className":1045},[],[1047],{"type":51,"value":1048},"AWS_ACCESS_KEY_ID",{"type":51,"value":1050},"\u002F",{"type":46,"tag":183,"props":1052,"children":1054},{"className":1053},[],[1055],{"type":51,"value":1056},"AWS_SECRET_ACCESS_KEY",{"type":51,"value":1058}," are set, or use IAM roles.",{"type":46,"tag":110,"props":1060,"children":1061},{},[1062,1067],{"type":46,"tag":54,"props":1063,"children":1064},{},[1065],{"type":51,"value":1066},"Tool count matters",{"type":51,"value":1068}," — more tools = more reasoning steps = slower + more expensive. Keep PoCs to 3-5 tools.",{"type":46,"tag":110,"props":1070,"children":1071},{},[1072,1077,1079,1085],{"type":46,"tag":54,"props":1073,"children":1074},{},[1075],{"type":51,"value":1076},"Zod is included",{"type":51,"value":1078}," — ",{"type":46,"tag":183,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":51,"value":1084},"@strands-agents\u002Fsdk",{"type":51,"value":1086}," bundles Zod for TypeScript tool input validation. No separate install needed.",{"type":46,"tag":110,"props":1088,"children":1089},{},[1090,1095],{"type":46,"tag":54,"props":1091,"children":1092},{},[1093],{"type":51,"value":1094},"Memory provisioning takes time",{"type":51,"value":1096}," — STM: ~30-90s, LTM: ~120-180s. The CLI waits for ACTIVE status.",{"type":46,"tag":110,"props":1098,"children":1099},{},[1100,1111,1113,1119],{"type":46,"tag":54,"props":1101,"children":1102},{},[1103,1109],{"type":46,"tag":183,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":51,"value":1108},"agentcore destroy",{"type":51,"value":1110}," deletes everything",{"type":51,"value":1112}," — including memory resources. Use ",{"type":46,"tag":183,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":51,"value":1118},"--dry-run",{"type":51,"value":1120}," first.",{"type":46,"tag":110,"props":1122,"children":1123},{},[1124,1129,1131,1137,1139,1145],{"type":46,"tag":54,"props":1125,"children":1126},{},[1127],{"type":51,"value":1128},"Session lifecycle",{"type":51,"value":1130}," — idle timeout defaults to 900s (15min). Set ",{"type":46,"tag":183,"props":1132,"children":1134},{"className":1133},[],[1135],{"type":51,"value":1136},"--idle-timeout",{"type":51,"value":1138}," and ",{"type":46,"tag":183,"props":1140,"children":1142},{"className":1141},[],[1143],{"type":51,"value":1144},"--max-lifetime",{"type":51,"value":1146}," during configure if you need longer sessions.",{"type":46,"tag":110,"props":1148,"children":1149},{},[1150,1155],{"type":46,"tag":54,"props":1151,"children":1152},{},[1153],{"type":51,"value":1154},"VPC config is immutable",{"type":51,"value":1156}," — once deployed with VPC settings, you can't change them. Create a new agent config instead.",{"type":46,"tag":110,"props":1158,"children":1159},{},[1160,1165,1167,1173],{"type":46,"tag":54,"props":1161,"children":1162},{},[1163],{"type":51,"value":1164},"OTel is on by default in AgentCore",{"type":51,"value":1166}," — traces go to CloudWatch\u002FX-Ray. Disable with ",{"type":46,"tag":183,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":51,"value":1172},"--disable-otel",{"type":51,"value":1174}," if you don't want it.",{"type":46,"tag":110,"props":1176,"children":1177},{},[1178,1183],{"type":46,"tag":54,"props":1179,"children":1180},{},[1181],{"type":51,"value":1182},"Strands Evals is Python-only",{"type":51,"value":1184}," — even for TypeScript agents, write evals in Python. The eval framework uses the same Bedrock models as your agent.",{"type":46,"tag":110,"props":1186,"children":1187},{},[1188,1193,1195,1201],{"type":46,"tag":54,"props":1189,"children":1190},{},[1191],{"type":51,"value":1192},"Evals cost money",{"type":51,"value":1194}," — each LLM-as-a-Judge evaluation invokes a model. Use ",{"type":46,"tag":183,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":51,"value":1200},"callback_handler=None",{"type":51,"value":1202}," in eval task functions to suppress console output.",{"type":46,"tag":110,"props":1204,"children":1205},{},[1206,1211,1213,1219,1221,1227,1229,1235],{"type":46,"tag":54,"props":1207,"children":1208},{},[1209],{"type":51,"value":1210},"Memory batching requires close()",{"type":51,"value":1212}," — if using ",{"type":46,"tag":183,"props":1214,"children":1216},{"className":1215},[],[1217],{"type":51,"value":1218},"batch_size > 1",{"type":51,"value":1220},", you MUST use a ",{"type":46,"tag":183,"props":1222,"children":1224},{"className":1223},[],[1225],{"type":51,"value":1226},"with",{"type":51,"value":1228}," block or call ",{"type":46,"tag":183,"props":1230,"children":1232},{"className":1231},[],[1233],{"type":51,"value":1234},"close()",{"type":51,"value":1236}," or buffered messages are lost.",{"type":46,"tag":69,"props":1238,"children":1240},{"id":1239},"output",[1241],{"type":51,"value":1242},"Output",{"type":46,"tag":47,"props":1244,"children":1245},{},[1246],{"type":51,"value":1247},"When scaffolding a new agent project, generate:",{"type":46,"tag":106,"props":1249,"children":1250},{},[1251,1256,1261,1266,1279,1284,1295],{"type":46,"tag":110,"props":1252,"children":1253},{},[1254],{"type":51,"value":1255},"Complete project structure with all files",{"type":46,"tag":110,"props":1257,"children":1258},{},[1259],{"type":51,"value":1260},"Agent entrypoint with at least one custom tool",{"type":46,"tag":110,"props":1262,"children":1263},{},[1264],{"type":51,"value":1265},"Observability setup (OTel endpoint config, env vars)",{"type":46,"tag":110,"props":1267,"children":1268},{},[1269,1271,1277],{"type":51,"value":1270},"Eval scaffold (",{"type":46,"tag":183,"props":1272,"children":1274},{"className":1273},[],[1275],{"type":51,"value":1276},"evals\u002F",{"type":51,"value":1278}," directory with at least one test case using Strands Evals — Python, even for TS agents)",{"type":46,"tag":110,"props":1280,"children":1281},{},[1282],{"type":51,"value":1283},"README with setup, deployment, observability, and eval instructions",{"type":46,"tag":110,"props":1285,"children":1286},{},[1287,1293],{"type":46,"tag":183,"props":1288,"children":1290},{"className":1289},[],[1291],{"type":51,"value":1292},".gitignore",{"type":51,"value":1294}," appropriate for the language",{"type":46,"tag":110,"props":1296,"children":1297},{},[1298],{"type":51,"value":1299},"Deployment commands (local dev + AgentCore cloud)",{"type":46,"tag":1301,"props":1302,"children":1303},"style",{},[1304],{"type":51,"value":1305},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1307,"total":1485},[1308,1327,1348,1358,1371,1384,1394,1404,1425,1440,1455,1470],{"slug":1309,"name":1309,"fn":1310,"description":1311,"org":1312,"tags":1313,"stars":1324,"repoUrl":1325,"updatedAt":1326},"agentcore-investigation","investigate Bedrock AgentCore runtime sessions","Investigate Bedrock AgentCore runtime sessions via CloudWatch Logs Insights — resolve session\u002Ftrace IDs, query OTEL spans, filter noise, build timelines. Use when debugging AgentCore agent sessions, tracing tool calls, or analyzing latency.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1314,1315,1318,1321],{"name":21,"slug":22,"type":16},{"name":1316,"slug":1317,"type":16},"Debugging","debugging",{"name":1319,"slug":1320,"type":16},"Logs","logs",{"name":1322,"slug":1323,"type":16},"Observability","observability",9427,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fmcp","2026-07-12T08:37:22.601527",{"slug":1328,"name":1329,"fn":1330,"description":1331,"org":1332,"tags":1333,"stars":1324,"repoUrl":1325,"updatedAt":1347},"amazon-aurora-dsql","amazon aurora dsql","build applications with Aurora DSQL","Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, FK replacement code generation, OCC retry patterns, ORM migration (Django\u002FHibernate\u002FRails), DDL operations, query plan explainability, SQL compatibility validation, and bulk data loading. Triggers on phrases like: DSQL, Aurora DSQL, create DSQL table, DSQL schema, migrate to DSQL, distributed SQL database, serverless PostgreSQL-compatible database, DSQL query plan, DSQL EXPLAIN ANALYZE, why is my DSQL query slow, DSQL foreign key, DSQL OCC retry, DSQL multi-region, load into DSQL, load CSV into DSQL, bulk load DSQL, aurora-dsql-loader.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1334,1337,1338,1341,1344],{"name":1335,"slug":1336,"type":16},"Aurora","aurora",{"name":21,"slug":22,"type":16},{"name":1339,"slug":1340,"type":16},"Database","database",{"name":1342,"slug":1343,"type":16},"Serverless","serverless",{"name":1345,"slug":1346,"type":16},"SQL","sql","2026-07-12T08:36:45.053393",{"slug":1349,"name":1350,"fn":1330,"description":1331,"org":1351,"tags":1352,"stars":1324,"repoUrl":1325,"updatedAt":1357},"aurora-dsql","aurora dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1353,1354,1355,1356],{"name":21,"slug":22,"type":16},{"name":1339,"slug":1340,"type":16},{"name":1342,"slug":1343,"type":16},{"name":1345,"slug":1346,"type":16},"2026-07-12T08:36:42.694299",{"slug":1359,"name":1360,"fn":1330,"description":1331,"org":1361,"tags":1362,"stars":1324,"repoUrl":1325,"updatedAt":1370},"aws-dsql","aws dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1363,1364,1365,1368,1369],{"name":21,"slug":22,"type":16},{"name":1339,"slug":1340,"type":16},{"name":1366,"slug":1367,"type":16},"Migration","migration",{"name":1342,"slug":1343,"type":16},{"name":1345,"slug":1346,"type":16},"2026-07-12T08:36:38.584057",{"slug":1372,"name":1373,"fn":1330,"description":1331,"org":1374,"tags":1375,"stars":1324,"repoUrl":1325,"updatedAt":1383},"distributed-postgres","distributed postgres",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1376,1377,1378,1381,1382],{"name":21,"slug":22,"type":16},{"name":1339,"slug":1340,"type":16},{"name":1379,"slug":1380,"type":16},"PostgreSQL","postgresql",{"name":1342,"slug":1343,"type":16},{"name":1345,"slug":1346,"type":16},"2026-07-12T08:36:46.530743",{"slug":1385,"name":1386,"fn":1330,"description":1331,"org":1387,"tags":1388,"stars":1324,"repoUrl":1325,"updatedAt":1393},"distributed-sql","distributed sql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1389,1390,1391,1392],{"name":21,"slug":22,"type":16},{"name":1339,"slug":1340,"type":16},{"name":1342,"slug":1343,"type":16},{"name":1345,"slug":1346,"type":16},"2026-07-12T08:36:48.104182",{"slug":1395,"name":1395,"fn":1330,"description":1331,"org":1396,"tags":1397,"stars":1324,"repoUrl":1325,"updatedAt":1403},"dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1398,1399,1400,1401,1402],{"name":21,"slug":22,"type":16},{"name":1339,"slug":1340,"type":16},{"name":1366,"slug":1367,"type":16},{"name":1342,"slug":1343,"type":16},{"name":1345,"slug":1346,"type":16},"2026-07-12T08:36:36.374512",{"slug":1405,"name":1405,"fn":1406,"description":1407,"org":1408,"tags":1409,"stars":1422,"repoUrl":1423,"updatedAt":1424},"cost-efficiency-analyzer","analyze cost efficiency and expenses","Analyzes cost structure, cost efficiency, and expense management from P&L data. Use when the user asks about costs, expenses, COGS, operating expenses, cost ratios, cost control, spending efficiency, margin compression from cost side, or wants to understand where money is going. Also use for \"are we spending too much\", \"cost breakdown\", \"expense analysis\", or \"how efficient are our operations\". NOT for revenue or top-line analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1410,1413,1416,1419],{"name":1411,"slug":1412,"type":16},"Accounting","accounting",{"name":1414,"slug":1415,"type":16},"Analytics","analytics",{"name":1417,"slug":1418,"type":16},"Cost Optimization","cost-optimization",{"name":1420,"slug":1421,"type":16},"Finance","finance",3176,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fagentcore-samples","2026-07-12T08:40:03.29555",{"slug":1426,"name":1426,"fn":1427,"description":1428,"org":1429,"tags":1430,"stars":1422,"repoUrl":1423,"updatedAt":1439},"executive-financial-briefing","generate executive financial briefings","Generates a concise executive-level financial briefing or summary suitable for a CEO, CFO, or board presentation. Use when the user asks for a summary, briefing, executive summary, board update, financial overview, financial health check, or \"how is the business doing\". Covers the full P&L picture in one page. Also use for \"give me the highlights\", \"what do I need to know\", or \"quick financial update\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1431,1432,1433,1436],{"name":21,"slug":22,"type":16},{"name":1420,"slug":1421,"type":16},{"name":1434,"slug":1435,"type":16},"Management","management",{"name":1437,"slug":1438,"type":16},"Reporting","reporting","2026-07-12T08:40:02.066471",{"slug":1441,"name":1441,"fn":1442,"description":1443,"org":1444,"tags":1445,"stars":1422,"repoUrl":1423,"updatedAt":1454},"multi-quarter-trend-analysis","analyze multi-quarter financial trends","Analyzes financial trends across multiple quarters by comparing P&L metrics over time. Use when the user wants to see trends, patterns, trajectories, or directional movement across 3 or more quarters. Also use for \"how are we trending\", \"show me the trend\", \"track performance over time\", \"quarter over quarter comparison across all quarters\", or any multi-period longitudinal analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1446,1447,1448,1451],{"name":1414,"slug":1415,"type":16},{"name":1420,"slug":1421,"type":16},{"name":1449,"slug":1450,"type":16},"Financial Statements","financial-statements",{"name":1452,"slug":1453,"type":16},"Variance Analysis","variance-analysis","2026-07-12T08:40:00.79141",{"slug":1456,"name":1456,"fn":1457,"description":1458,"org":1459,"tags":1460,"stars":1422,"repoUrl":1423,"updatedAt":1469},"pdf","process and manipulate PDF documents","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1461,1464,1467],{"name":1462,"slug":1463,"type":16},"Automation","automation",{"name":1465,"slug":1466,"type":16},"Documents","documents",{"name":1468,"slug":1456,"type":16},"PDF","2026-07-12T08:41:44.135656",{"slug":1471,"name":1471,"fn":1472,"description":1473,"org":1474,"tags":1475,"stars":1422,"repoUrl":1423,"updatedAt":1484},"quarterly-kpi-calculator","calculate quarterly financial KPIs","Calculates quarterly financial KPIs from P&L data. P&L figures can be provided directly by the user or fetched from the financial data MCP server. Use when the user wants KPI calculations such as Gross Margin %, EBITDA Margin %, Operating Expense Ratio, or Revenue Growth % QoQ. Also use for quarterly performance review, P&L analysis, or interpreting financial ratios against benchmarks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1476,1477,1480,1481],{"name":1411,"slug":1412,"type":16},{"name":1478,"slug":1479,"type":16},"Data Analysis","data-analysis",{"name":1420,"slug":1421,"type":16},{"name":1482,"slug":1483,"type":16},"KPI","kpi","2026-07-12T08:39:59.54971",150,{"items":1487,"total":1579},[1488,1499,1514,1526,1538,1551,1564],{"slug":245,"name":245,"fn":1489,"description":1490,"org":1491,"tags":1492,"stars":26,"repoUrl":27,"updatedAt":1498},"design Amazon Bedrock AgentCore architectures","Deep-dive into Amazon Bedrock AgentCore platform design, service selection, deployment, and production operations. This skill should be used when the user asks to \"design an AgentCore architecture\", \"deploy agents on AgentCore\", \"configure AgentCore Runtime\", \"set up AgentCore Memory\", \"use AgentCore Gateway\", \"configure AgentCore Identity\", \"set up AgentCore Policy\", \"plan agent observability\", \"evaluate agent quality\", \"move agent PoC to production\", or mentions AgentCore, AgentCore Runtime, AgentCore Memory, AgentCore Gateway, AgentCore Identity, AgentCore Policy, AgentCore Evaluations, AgentCore Code Interpreter, AgentCore Browser, A2A protocol, or multi-agent orchestration on AWS.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1493,1494,1497],{"name":14,"slug":15,"type":16},{"name":1495,"slug":1496,"type":16},"Architecture","architecture",{"name":21,"slug":22,"type":16},"2026-07-12T08:40:11.108951",{"slug":1500,"name":1500,"fn":1501,"description":1502,"org":1503,"tags":1504,"stars":26,"repoUrl":27,"updatedAt":1513},"aidlc-lite","develop AI applications on AWS","Lightweight AI development lifecycle for building on AWS. A simplified take on the AI-DLC philosophy — think together, then build fast. Acts as a design partner that understands intent, proposes alternatives with trade-offs, and ships working code without the ceremony of full requirements\u002Fdesign\u002Fspec documents. Use when a founder says \"build X on AWS\", \"add Y to my stack\", \"scaffold an API\", or \"write the CDK for Z\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1505,1506,1509,1510],{"name":14,"slug":15,"type":16},{"name":1507,"slug":1508,"type":16},"AI Infrastructure","ai-infrastructure",{"name":21,"slug":22,"type":16},{"name":1511,"slug":1512,"type":16},"Engineering","engineering","2026-07-12T08:40:40.204103",{"slug":1515,"name":1515,"fn":1516,"description":1517,"org":1518,"tags":1519,"stars":26,"repoUrl":27,"updatedAt":1525},"architect-for-startups","advise on AWS architecture for startups","AWS architecture advisor tailored specifically for startups. Alters AWS architecture recommendations based on startup stage (pre-revenue through Series B+), team size, runway, and credits. ALWAYS use when asked about building on AWS, choosing services, planning infrastructure, managing costs with credits, or preparing architecture for fundraising.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1520,1521,1522],{"name":1495,"slug":1496,"type":16},{"name":21,"slug":22,"type":16},{"name":1523,"slug":1524,"type":16},"Strategy","strategy","2026-07-12T08:41:33.557354",{"slug":1527,"name":1527,"fn":1528,"description":1529,"org":1530,"tags":1531,"stars":26,"repoUrl":27,"updatedAt":1537},"aws-architect","design and review AWS architectures","Design and review AWS architectures following Well-Architected Framework principles. Use when planning new infrastructure, reviewing existing architectures, evaluating trade-offs between AWS services, or when asked about AWS best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1532,1533,1534],{"name":1495,"slug":1496,"type":16},{"name":21,"slug":22,"type":16},{"name":1535,"slug":1536,"type":16},"Infrastructure","infrastructure","2026-07-12T08:40:57.630086",{"slug":1539,"name":1539,"fn":1540,"description":1541,"org":1542,"tags":1543,"stars":26,"repoUrl":27,"updatedAt":1550},"aws-compare","compare AWS architecture options","Compare 2-3 AWS architecture options side-by-side across cost, complexity, performance, security, and operational burden. Use when evaluating trade-offs between approaches or when the user is deciding between options.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1544,1545,1546,1547],{"name":1495,"slug":1496,"type":16},{"name":21,"slug":22,"type":16},{"name":1417,"slug":1418,"type":16},{"name":1548,"slug":1549,"type":16},"Security","security","2026-07-12T08:40:23.960287",{"slug":1552,"name":1552,"fn":1553,"description":1554,"org":1555,"tags":1556,"stars":26,"repoUrl":27,"updatedAt":1563},"aws-debug","debug AWS infrastructure and deployment failures","Debug AWS infrastructure issues, deployment failures, and runtime errors. Use when troubleshooting CloudFormation stack failures, Lambda errors, ECS task failures, permission issues, networking problems, or any AWS service misbehavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1557,1558,1559,1562],{"name":21,"slug":22,"type":16},{"name":1316,"slug":1317,"type":16},{"name":1560,"slug":1561,"type":16},"Deployment","deployment",{"name":1322,"slug":1323,"type":16},"2026-07-12T08:40:16.767171",{"slug":1565,"name":1565,"fn":1566,"description":1567,"org":1568,"tags":1569,"stars":26,"repoUrl":27,"updatedAt":1578},"aws-diagram","generate AWS architecture diagrams","Generate AWS architecture diagrams in Mermaid or ASCII from a description, existing IaC, or conversation context. Use when the user wants to visualize an architecture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1570,1571,1572,1575],{"name":1495,"slug":1496,"type":16},{"name":21,"slug":22,"type":16},{"name":1573,"slug":1574,"type":16},"Diagrams","diagrams",{"name":1576,"slug":1577,"type":16},"Visualization","visualization","2026-07-12T08:40:43.26341",42]