Inspiration
Money admin is never hard, just relentless. A non-autopay bill sneaks past and costs a late fee; a promo price quietly doubles; a subscription nobody has used since spring keeps billing. Watching for all of it every week is exactly the dull, repetitive vigilance an agent should own.
What it does
Runs on a nightly schedule, does a full deterministic scan of bills, amount history and recent charges, and surfaces only what needs a decision: payment risks on non-autopay bills, charge anomalies (spikes, duplicates, unrecognized merchants), subscription price creep, and stale subscriptions — each with the real dollar figure. If nothing is off, the output is one sentence.
How we built it
- Strands Agents SDK — a single
Agentwith six@toolfunctions and a system prompt built around restraint. - Amazon Bedrock — Claude Haiku 4.5 via a cross-region inference profile.
- Amazon Bedrock AgentCore —
BedrockAgentCoreAppentrypoint, deployed with the AgentCore CLI, invoked on an EventBridge cron. - A deterministic core — all money logic (
billwatch/core.py) is pure Python with 9 tests and zero model calls. The LLM never does arithmetic.
Challenges
Getting the agent to not talk. Early versions dutifully listed every bill that
was fine. The fix was a system prompt that treats silence as the success case
and a needs_attention flag from the core that gives it permission to say
"nothing to do".
Accomplishments
The correctness layer is fully testable without AWS — make test and
make demo run offline. The agent is a thin, swappable judgement layer on top.
What we learned
For anything involving money or dates, keep the math in tested code and let the model own tone and triage. That split is also what makes the demo trustworthy.
What's next
Real bank data via Plaid; receipt-photo intake; AgentCore Memory for household preferences; SES/SNS delivery.
Built With
- amazon-bedrock-agentcore
- boto3
- claude-haiku-4.5
- python
- strands-agents
Log in or sign up for Devpost to join the conversation.