SDK Reference
agent-core is the foundational Python library for the AWS Agent Platform. It provides a configuration-driven, domain-agnostic runtime that lets you declare AI agents in YAML and run them on Amazon Bedrock AgentCore.
agent-core is built as an abstraction layer over the Strands Agents SDK and Amazon Bedrock AgentCore. Both are hard dependencies — the package fails loudly if either is missing.
Guides vs. Reference — This section is the terse API reference (classes, signatures, parameters). For the architectural “why” and configuration patterns, see the topic guide sections: Inference Providers, Observability & Evaluation, Identity, Policy & IAM, Tools, MCP & Gateway, and Runtime & Memory.
Installation
pip install agent-core
For development (editable install with all extras):
pip install -e "core/[dev]"
Subsystem Index
| Subsystem | Key Classes / Functions | Guide |
|---|---|---|
| Runtime | AgentCoreApp, GenericHandler, @app.entrypoint | Runtime & Memory |
| Gateway | GatewayClient, TargetRegistry | Tools, MCP & Gateway |
| Identity | IdentityWiring, CredentialCache, requires_access_token, requires_api_key | Identity, Policy & IAM |
| Memory | MemoryManager, MemoryHookProvider, MemoryBranchManager, MemoryToolProvider | Runtime & Memory |
| Built-in Tools | CodeInterpreterProvider, BrowserProvider, BuiltinToolWiring | Tools, MCP & Gateway |
| Observability | LangfuseHook, AuditLogWriter, CostTracker, CompositeObservabilityHook, create_observability_hooks() | Observability & Evaluation |
| Evaluation | EvaluationClient, LangfuseEvaluationClient, BUILTIN_EVALUATORS | Observability & Evaluation |
| Policy | PolicyClient, CedarPolicyBuilder, translate_rule(), translate_rules() | Identity, Policy & IAM |
| A2A | A2AServerWrapper, A2AClient, A2AWiring | Runtime & Memory |
| MCP Base Classes | BaseMCPServer, cache_get(), cache_set(), resolve_provider() | Tools, MCP & Gateway |
| Prompt Registry | PromptRegistryClient | Runtime & Memory |
| Artifacts | create_artifact, get_artifact, list_artifacts, poll_artifact | Tools, MCP & Gateway |
Standard Wiring Pattern
Every production agent follows this five-line pattern. BlueprintLoader.build_entrypoint() reads the blueprint, wires all subsystems (memory, observability, gateway, policy, identity), and returns an AgentCoreApp ready to serve /invocations and /ping:
from agent_core.blueprints import BlueprintLoader
loader = BlueprintLoader("blueprints/")
app = loader.build_entrypoint("my-agent")
if __name__ == "__main__":
app.run()
Alternatively, AgentCoreApp.from_blueprint(loader, agent_id) is a thin alias for the same operation:
from agent_core.blueprints import BlueprintLoader
from agent_core.runtime import AgentCoreApp
loader = BlueprintLoader("blueprints/")
app = AgentCoreApp.from_blueprint(loader, "my-agent")
if __name__ == "__main__":
app.run()
Blueprint YAML drives all resource names, model IDs, feature flags, and provider choices. Nothing is hardcoded in the SDK. See the Blueprints reference for the full schema.