Overview
A working notebook for turning a question into a thing that can be tested, felt, and improved.
Problem
A music companion can deepen a listener's relationship with a song, but an unconstrained model can invent context, compete with the music, or control playback unpredictably.
Goals
- Separate verified artist context, catalog metadata, model inference, and unknown information.
- Use deterministic tools for search and playback commands.
- Make streaming, interruption, cancellation, ducking, resume, and errors visible and recoverable.
Architecture
Artist-approved context and catalog metadata → retrieval and structured tools → streaming model response → explicit voice state → canonical playback commands.
Design
The companion should feel like a layer of liner notes around the music, not a chat product placed on top of it.
Implementation
Prototype with fixture context first. Add tool calls, interruption, and evaluation cases before expanding memory or personality.
Lessons
- Grounding is an interface problem as much as a retrieval problem.
- Voice needs visible state and predictable silence.
Future improvements
Explore artist-facing tools and shared listening only after trust, interruption, and recovery are dependable.