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.


Table of contents