Inbound:
- tg-ingest detects document/photo/audio/video/voice attachments
- Downloads files via Telegram Bot API (getFile + download)
- Inlines small text files (<50KB) directly in the prompt
- Stores binary/large files to S3 (attachments/{chat_id}/{update_id}/{filename})
- agent-runner appends file context to the AgentCore prompt
Outbound:
- New send_file tool for the agent to send documents back to users
- TelegramAdapter.send_document uses multipart/form-data POST
- CDK grants tg-ingest S3 write access and passes bucket name env var
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.