- New memory_manager.py with:
- check_and_compact: runs compaction on flagged sessions (extracts LTM via
Claude Haiku, stores as AgentCore Memory event, deletes old events)
- check_window_and_flag: sets DynamoDB flag when session > 100 events
- load_ltm: retrieves LTM extractions and formats as system prompt block
- Wired into main.py:
- Compaction runs before session_manager creation (trims old events)
- LTM block injected into system prompt
- Window check runs after session close
- SESSION_WINDOW_SIZE = 100 (named constant)
- Compaction is idempotent (uses event timestamps as cursor)
- LTM retrieval failure is non-fatal (logs and continues)
This is a project generated by the AgentCore CLI!
Layout
The generated application code lives at the agent root directory. At the root, there is a .gitignore file, an
agentcore/ folder which represents the configurations and state associated with this project. Other agentcore
commands like deploy, dev, and invoke rely on the configuration stored here.
Agent Root
The main entrypoint to your app is defined in main.py. Using the AgentCore SDK @app.entrypoint decorator, this
file defines a Starlette ASGI app with the chosen Agent framework SDK running within.
model/load.py instantiates your chosen model provider.
Environment Variables
| Variable | Required | Description |
|---|---|---|
LOCAL_DEV |
No | Set to 1 to use .env.local instead of AgentCore Identity |
Developing locally
If installation was successful, a virtual environment is already created with dependencies installed.
Run source .venv/bin/activate before developing.
agentcore dev will start a local server on 0.0.0.0:8080.
In a new terminal, you can invoke that server with:
agentcore invoke --dev "What can you do"
Deployment
After providing credentials, agentcore deploy will deploy your project into Amazon Bedrock AgentCore.
Use agentcore invoke to invoke your deployed agent.