This article walks through a project I built on Amazon Bedrock AgentCore: an agent that turns campaign briefings into ranked email subject lines, and improves across sessions as it learns from the user. The goal here isn’t to cover every AgentCore primitive, but to show how a few of them (Runtime and Memory) fit together in a real loop, and to be honest about which ones I deliberately left out. The project itself is intentionally small. The interesting part is the architecture around it: where scoring runs, why the optimization loop stays framework-agnostic, what memory actually stores and which tradeoffs come with each decision. *👉 You can access the project on Github . * Contents Agents-to-AgentCore Evolution The use case: briefing in, subject lines out Drafting a solution I. The entrypoint (main.py) II. The imperative shell (agent/builder.py) III. The functional core (agent/iteration.py) IV. Scoring V. The two agents and Bedrock VI. AgentCore Memory: four strategies VII. Observability VIII.…