Inspiration

The average household bleeds hundreds of dollars a year on subscriptions it forgot about — free trials that quietly convert, "new pricing" emails nobody reads, charges that continue after a cancellation. Detecting those leaks means reading receipts and price-change notices by hand, every month. That's an everyday problem that an everyday agent should own.

What it does

SubSentinel is a personal audit agent built with the Strands Agents SDK. On every run it:

  1. read_inbox — parses receipts, renewals, trial notices and price-change emails
  2. recall_subscriptions — loads the subscription picture it memorized last run
  3. compare_with_memory — surfaces NEW subscriptions, PRICE HIKES (>5%), and apparent cancellations
  4. save_email_draft — writes the reply for you: a cancellation, a loyalty-discount negotiation, or a refund request
  5. remember_subscriptions — stores the updated picture so the next run is smarter
  6. save_audit_report — a markdown report with estimated monthly spend and every change

The differentiator is agent memory across runs: run it monthly and it reasons about change — exactly where the money leaks.

How we built it

  • Python + Strands Agents SDK for the tool-use loop (6 tools, fully autonomous chaining)
  • Model layer via [OI]Model — any [OI]-compatible endpoint works; the demo runs on a free tool-calling model through OpenRouter
  • JSON-file-backed tool state (subscriptions, drafts, reports) — a deliberate demo-friendly memory store that maps 1:1 to a DynamoDB adapter
  • Seeded demo inbox ships in-repo so python agent.py is a complete demo with zero credentials, including a 38% price hike and a trial converting in 3 days
  • Demo video produced programmatically from an HTML composition

Challenges we ran into

Strands' async event loop requires an Async[OI] client (a one-line fix that cost us a traceback); making the audit stateful rather than stateless forced the memory design; and keeping the agent honest — it may not invent charges that aren't in the emails — is enforced in the system prompt.

Accomplishments that we're proud of

A complete, runnable agent that finds real problems in a real mailbox shape, drafts ready-to-send emails, and gets smarter on every run — end to end in a single day, on a zero-cost model backend.

What we learned

Strands' tool loop, agent memory patterns, and that the hard part of an "everyday agent" isn't the model — it's giving it a truthful, persistent picture of the user's world.

What's next for SubSentinel

Gmail API adapter, weekly digest scheduling, one-click send from the drafts dashboard, and negotiation follow-up tracking.

Built With

Share this project:

Updates

Submission history