{"id":49127555,"url":"https://github.com/strands-compose/bedrock-agentcore","last_synced_at":"2026-05-24T23:08:19.021Z","repository":{"id":351034289,"uuid":"1208880548","full_name":"strands-compose/bedrock-agentcore","owner":"strands-compose","description":"Bedrock AgentCore deployment adapter for strands-compose","archived":false,"fork":false,"pushed_at":"2026-05-22T08:11:21.000Z","size":493,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T15:41:52.019Z","etag":null,"topics":["agentcore","agentcore-cli","agents","aws","aws-cdk","bedrock","deployment","strands-agents","strands-compose"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/strands-compose.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-12T21:30:33.000Z","updated_at":"2026-05-22T08:11:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/strands-compose/bedrock-agentcore","commit_stats":null,"previous_names":["strands-compose/bedrock-agentcore"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/strands-compose/bedrock-agentcore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strands-compose%2Fbedrock-agentcore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strands-compose%2Fbedrock-agentcore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strands-compose%2Fbedrock-agentcore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strands-compose%2Fbedrock-agentcore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strands-compose","download_url":"https://codeload.github.com/strands-compose/bedrock-agentcore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strands-compose%2Fbedrock-agentcore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33453592,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-24T19:21:36.376Z","status":"ssl_error","status_checked_at":"2026-05-24T19:21:10.562Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentcore","agentcore-cli","agents","aws","aws-cdk","bedrock","deployment","strands-agents","strands-compose"],"created_at":"2026-04-21T16:30:47.513Z","updated_at":"2026-05-24T23:08:19.015Z","avatar_url":"https://github.com/strands-compose.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/strands-compose/.github/main/img/bedrock-agentcore.png\" alt=\"strands-compose-agentcore\" width=\"600\"\u003e\n\n---\n\n**Deploy [strands-compose](https://github.com/strands-compose/sdk-python) agent systems on [AWS Bedrock AgentCore Runtime](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/) — YAML in, managed cloud agents out**\n\n\u003cp\u003e\n  \u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.11+-blue.svg\" alt=\"Python 3.11+\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/strands-compose-agentcore/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/strands-compose-agentcore.svg\" alt=\"PyPI version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/strands-compose/sdk-python\"\u003e\u003cimg src=\"https://img.shields.io/badge/strands--compose-0.3.0+-green.svg\" alt=\"strands-compose\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-Apache--2.0-blue.svg\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n\u003e [!IMPORTANT]\n\u003e Community project — not affiliated with AWS or the strands-agents team. Bugs here? [Open an issue](https://github.com/strands-compose/bedrock-agentcore/issues). Bugs in the underlying SDK? Head to [strands-agents](https://github.com/strands-agents/sdk-python).\n\n## What is this?\n\nYou built your agent system with [strands-compose](https://github.com/strands-compose/sdk-python) — models, tools, orchestrations, all described in YAML. It works locally. Now you want it running on AWS with per-session isolation, auto-scaling, and zero infrastructure management.\n\n**strands-compose-agentcore** fills the gap between strands-compose and [AWS Bedrock AgentCore Runtime](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/). It wraps your YAML config as the ASGI app that AgentCore expects, provides a CLI for local development with a built-in REPL, and ships a client for invoking deployed agents — from the terminal or from your own apps.\n\nSame config you already have. Same agents. Test locally, deploy, invoke — all from the command line.\n\n## See it in action\n\nYou have your strands-compose `config.yaml`. Here's how fast you go from zero to deployed:\n\n**Create the app** — one function call wraps your config as a `BedrockAgentCoreApp`:\n\n```python\n# main.py\nfrom pathlib import Path\nfrom strands_compose_agentcore import create_app\n\napp = create_app(Path(__file__).parent / \"config.yaml\")\n```\n\n**Run locally** — dev server + interactive REPL in one terminal:\n\n```bash\nsca dev --config config.yaml\n```\n\n**Deploy to AWS** — register and ship it to AgentCore Runtime:\n\n```bash\nagentcore add agent \\\n  --type byo \\\n  --name my_agent \\\n  --code-location my_agent \\\n  --entrypoint main.py \\\n  --language Python \\\n  --framework Strands \\\n  --model-provider Bedrock\nagentcore deploy\n```\n\n**Invoke the deployed agent** — interactive REPL or programmatic client:\n\n```bash\nsca client remote --arn \u003cARN\u003e --region us-west-2\n```\n\nYour `config.yaml` never changed. Your agents never changed. You just moved from laptop to managed cloud infrastructure.\n\n## What this package gives you\n\n### 🏭 `create_app()` — the core value\n\nThe real value of this package is a single factory function. AgentCore Runtime expects a specific ASGI app with `/invocations` and `/ping` endpoints, session-aware lifecycle management, event streaming, concurrency guards, and health reporting. `create_app()` handles all of that — you pass your YAML config and get a production-ready `BedrockAgentCoreApp` with zero knowledge of the runtime contract required:\n\n```python\nfrom strands_compose_agentcore import create_app\napp = create_app(\"config.yaml\")  # that's it\n```\n\nWithout this factory, you'd need to manually wire `load_config`, `resolve_infra`, `load_session`, ASGI lifespan, MCP lifecycle, session caching, event queue plumbing, streaming serialization, and concurrency guards. `create_app()` does all of that in one call.\n\n### 🛠️ CLI for strands-compose streaming events\n\nThe [AgentCore CLI](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-cli.html) provides `create`, `add`, `deploy`, `status`, `logs`, and more — we recommend it and don't replace or abstract any of it.\n\nstrands-compose-agentcore CLI tools `dev` and `client` use `AnsiRenderer` from strands-compose to render stream events with color, formatting, and progressive typewriter output. This is the only reason we ship our own CLI — we don't duplicate or replace the AgentCore CLI, we complement it for the streaming use case it doesn't cover.\n\n### 📡 A client for your apps\n\n`AgentCoreClient` is an async boto3 wrapper that streams SSE events from deployed agents — embed it in FastAPI, Django, Lambda, or background workers. One client instance, safe for concurrent multi-tenant use, with typed errors and a dedicated thread pool.\n\n## How you deploy\n\n**For individual developers and small teams**, we recommend the [AgentCore CLI](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-cli.html). It handles project scaffolding, packaging, and deployment in a few commands. Use `sca dev` for local iteration, `agentcore deploy` to ship.\n\n**For enterprise teams**, you likely have your own infrastructure-as-code (Terraform, CDK, CloudFormation) and CI/CD pipelines. In that case, `create_app()` is all you need from this package — build a Docker image with your `main.py` and `config.yaml`, push it to ECR, and let your pipeline update the agent runtime. Or ship as a CodeZip artifact to S3. The AgentCore CLI is optional — it's a convenient tool, not a requirement.\n\nSee [Chapter 09 — Deployment Strategies](docs/Chapter_09.md) for a deep dive on both paths.\n\n## How it works\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  config.yaml                                                │  ← You write this\n│  (models, agents, tools, orchestrations)                    │\n├─────────────────────────────────────────────────────────────┤\n│  strands-compose                                            │  ← Parses YAML,\n│  (load_config, resolve_infra, load_session)                 │     resolves agents\n├─────────────────────────────────────────────────────────────┤\n│  strands-compose-agentcore       ◄── THIS PACKAGE           │  ← Wraps as ASGI app,\n│  (app factory, CLI toolkit, AgentCoreClient)                │     CLI, client\n├─────────────────────────────────────────────────────────────┤\n│  AgentCore CLI + bedrock-agentcore SDK                      │  ← Project scaffold,\n│  (agentcore create/deploy, BedrockAgentCoreApp)             │     deploy, ASGI server\n├─────────────────────────────────────────────────────────────┤\n│  AWS Bedrock AgentCore Runtime                              │  ← Managed compute\n│  (per-session microVM, auto-scaling, CloudWatch)            │     (you deploy here)\n└─────────────────────────────────────────────────────────────┘\n```\n\nEach layer does one thing. strands-compose parses your YAML and builds agents. This package wraps them as an ASGI app and provides the CLI glue. The AgentCore CLI and SDK handle project scaffolding, deployment, and the `/invocations` wire protocol. AgentCore Runtime runs it all on managed infrastructure. You only touch the top two layers.\n\n## Getting started\n\n### Install\n\n```bash\npip install strands-compose-agentcore\n```\n\n\u003e This pulls in `strands-compose` and `bedrock-agentcore` automatically. The [AgentCore CLI](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agentcore-cli.html) is a separate Node.js tool: `npm install -g @aws/agentcore`\n\n### Required files\n\nEvery agent needs three files:\n\n**`config.yaml`** — your strands-compose agent definition:\n\n```yaml\nmodels:\n  default:\n    provider: bedrock\n    model_id: openai.gpt-oss-20b-1:0\n\nagents:\n  assistant:\n    model: default\n    system_prompt: \"You are a helpful assistant.\"\n\nentry: assistant\n```\n\n**`main.py`** — the entry script:\n\n```python\nfrom pathlib import Path\nfrom strands_compose_agentcore import create_app\n\napp = create_app(Path(__file__).parent / \"config.yaml\")\n```\n\n**`pyproject.toml`** — declares dependencies for deployment:\n\n```toml\n[project]\nname = \"my-agent\"\nversion = \"0.1.0\"\nrequires-python = \"\u003e=3.11\"\ndependencies = [\n    \"strands-compose-agentcore\",\n]\n```\n\n### The full workflow\n\n```bash\n# 1. Create an AgentCore project (AgentCore CLI)\nagentcore create --name project --no-agent --skip-git\ncd project\n\n# 2. Create your agent files (main.py, config.yaml, pyproject.toml)\nmkdir my_agent\n# → Add the three files shown above to my_agent/\n\n# 3. Test locally (dev server + REPL in one terminal)\nsca dev --config my_agent/config.yaml\n\n# 4. Register the agent and deploy to AWS\nagentcore add agent \\\n  --type byo \\\n  --name my_agent \\\n  --code-location my_agent \\\n  --entrypoint main.py \\\n  --language Python \\\n  --framework Strands \\\n  --model-provider Bedrock\nagentcore deploy\n\n# 5. Connect to the live agent\nsca client remote --arn \u003cARN\u003e --region us-west-2\n```\n\nThat's the entire journey — from an empty directory to a deployed, production-ready agent system. The `dev` command runs the exact same ASGI app that will run in production, so what works locally works deployed.\n\n## The CLI toolkit\n\n| Command | What it does |\n|---------|-------------|\n| `dev` | Start the ASGI server + interactive REPL in one terminal — iterate without leaving the shell |\n| `client local` | Connect a REPL to a local dev server |\n| `client remote` | Connect a REPL to a deployed agent on AgentCore Runtime |\n\n## Examples\n\nEvery example is self-contained with a `README.md` and everything you need to run it:\n\n| # | Example | What you'll learn |\n|---|---------|-------------------|\n| 01 | [Quick Start](examples/01_quick_start/README.md) | Multi-agent orchestration with tools and the `dev` CLI — run and test locally |\n| 02 | [Deploy](examples/02_deploy/README.md) | End-to-end deployment: create files → test → deploy → connect remotely |\n| 03 | [Multimodal](examples/03_multimodal/README.md) | Sending images and documents alongside text prompts |\n\n```bash\n# Try the quick start example right now\nsca dev --config examples/01_quick_start/config.yaml\n```\n\n## Documentation\n\nDeep dives into every component — architecture, API reference, deployment patterns, and advanced topics:\n\n| Chapter | What it covers |\n|---------|----------------|\n| [01 — What Is This?](docs/Chapter_01.md) | The problem, the solution, the tech stack |\n| [02 — Getting Started](docs/Chapter_02.md) | Install, configure, run your first agent |\n| [03 — The App Factory](docs/Chapter_03.md) | `create_app()` deep dive |\n| [04 — Session \u0026 Streaming](docs/Chapter_04.md) | Per-session lifecycle, event queues, SSE wire protocol |\n| [05 — The CLI](docs/Chapter_05.md) | Every command, every flag, explained |\n| [06 — Deployment](docs/Chapter_06.md) | CodeZip and container paths to AgentCore Runtime |\n| [07 — The Client](docs/Chapter_07.md) | `AgentCoreClient` and `LocalClient` API + integration patterns |\n| [08 — Advanced Topics](docs/Chapter_08.md) | VPC, logging, timeouts, health checks, CDK |\n| [09 — Deployment Strategies](docs/Chapter_09.md) | Individual developers vs enterprise teams — AgentCore CLI, IaC, CI/CD |\n| [Quick Recipes](docs/Quick_Recipes.md) | AWS services reference — tools, packages, and patterns at a glance |\n\n## Developer setup\n\n```bash\ngit clone https://github.com/strands-compose/bedrock-agentcore\ncd bedrock-agentcore\nuv run just install      # install deps + wire git hooks (run once after clone)\n\nuv run just check        # lint + type check + security scan\nuv run just test         # pytest with coverage\nuv run just format       # auto-format (Ruff)\n```\n\n\u003e Re-install hooks after a fresh clone or if hooks stop running: `uv run just install-hooks`\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for the full contribution guide, [AGENTS.md](AGENTS.md) for coding standards, and [CHANGELOG.md](CHANGELOG.md) for release history.\n\n---\n\n## License\n\nApache-2.0 — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrands-compose%2Fbedrock-agentcore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrands-compose%2Fbedrock-agentcore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrands-compose%2Fbedrock-agentcore/lists"}