Overview
Base agent runtime for deploying AI agents built on the AWS Strands Agents SDK.
Source: github.com/boozallen/strands-base-agent
Strands Base Agent is a baseline starter repo from the Agent Foundry team. It accelerates AI agent delivery for client engagements and team POCs by providing a FastAPI-based HTTP server wired to the AWS Strands Agents SDK, with shared infrastructure abstracted into published foundry-agent-* packages. Teams fork this repo into their own environment, configure their model and system prompt in config.yaml, add domain-specific tools, and deploy.
Key features
- YAML-first configuration — All agent settings live in
config.yamlwith environment variable overrides using double-underscore nesting - Multi-provider LLM support — AWS Bedrock, Ollama, and LlamaCpp via the Strands Agents SDK
- A2A protocol server — Built-in Agent-to-Agent communication with automatic agent card discovery at
/.well-known/agent-card.json - MCP server integration — Connect external tools via Model Context Protocol with declarative config
- OpenTelemetry observability — OTLP export for tracing and metrics out of the box
Architecture
The application is a FastAPI server (strands_base_agent/server.py) that exposes REST endpoints for query, streaming, and chat history. A composition root (application/factory.py) wires together foundry-agent-config (Pydantic-based configuration), foundry-agent-core (agent lifecycle), foundry-agent-fastapi (route adapters), and foundry-strands-agent (Strands SDK integration). Domain-specific tools are loaded from the tools/ directory at startup. Session state is managed via pluggable backends (file-based or S3).
Security posture
Strands Base Agent inherits its security baseline from the upstream
foundry-agent-* packages — static analysis (Ruff + bandit) runs in
both just lint and CI, and DISA ASD STIG checklists are tracked at
the package level. See Foundry Agent Packages → Security
posture for the
shared checklist surface.
Where to go next
- Quickstart (Local Python) — get a forked agent running in minutes with
uvandjust - Quickstart (Docker Compose) — same agent, containerized, no local Python install required
- Configuration — tune the model, agent identity, and runtime behavior
- Guides — add tools, API endpoints, MCP servers, and guardrails
Extending this baseline
Planning to add a tool, swap a backend, or harden this fork for an engagement? See Spec-Driven Extensions with OpenSpec for the propose-then-implement workflow we recommend — especially useful when a coding agent will do the work.