Inspiration

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for MetroMuse — music practice on Ring

Inspiration

For amateur musicians, practice is unstructured and progress stalls after the first year. We wanted something that just handled it instead of adding another dashboard. Ring was the obvious place to put it because event triggered by the doorbell is already how this audience works.

What it does

MetroMuse does three things. It builds a plan for coaching daily instrument practice, keeps state so the second week is better than the first, and runs unattended on a schedule. The user only sees the result — plus a short digest — delivered through the doorbell and cameras.

How we built it

The agent is written in Go with Strands Agents SDK and runs on AWS Lambda, calling Amazon Bedrock for the reasoning steps. State lives in OpenSearch Serverless, EventBridge and SES glue the scheduled and event paths together, and the whole stack deploys from a single CDK/CloudFormation app.

Challenges we ran into

The interesting bug was state drift: two tools were each partially right, and the merged answer was wrong in a way neither could see. We ended up with an explicit conflict step. Separately, AWS Lambda concurrency limits bit us once under load, which is what moved the scheduled work onto EventBridge.

Accomplishments that we're proud of

The feedback loop closed properly: the assistant adapts rather than repeating itself, and amateur musicians noticed within a few days. Getting a Strands Agents SDK tool graph to stay coherent under real state was the part we were least sure about and it held up.

What we learned

Agent graphs are cheap to build and expensive to debug — structured traces were the single highest-return thing we added. And designing the evaluation rubric first would have saved us a week of arguing about vibes.

What's next for MetroMuse

Next we want shared use so two people can edit the same plan, a cost estimate driven by live pricing, and a second surface — moving from the doorbell and cameras to a companion view so the same agent is usable in more than one room.

Built With

  • amazon-bedrock
  • amazon-ring
  • aws-lambda
  • metromuse
  • music
  • strands-agents-sdk
Share this project:

Updates

Submission history