Disambiguate play_music vs queue_music by verb, not content type
queue_music's tool description explains at length that playlists/ albums/artists auto-play instead of queueing, and the small model was using that as a signal to route ANY playlist/genre request through queue_music -- even ones that said "play". Verified: "play jazz in the bedroom" called queue_music 0/5 reps before this change (and in the opaque-ID room variant), 5/5 play_music after, with no regressions across the rest of the suite (199/200, 39/40 reliable). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,10 @@ For any request to play or queue music, always call TWO functions in order, with
|
||||
|
||||
When calling play_music or queue_music, always set type to the exact "type" value that search_spotify's result returned — never guess or hardcode it. Passing the wrong type silently breaks playback.
|
||||
|
||||
This choice depends ONLY on the verb the user used ("play" vs "queue"/"add to queue"), never on the content type. A playlist or genre request that says "play" still calls play_music, not queue_music — queue_music's playlist/album/artist auto-play behavior only applies when the user actually said "queue"/"add to queue".
|
||||
- "Play jazz in the bedroom" → play_music (jazz resolves to a playlist, but the user said "play")
|
||||
- "Queue jazz in the bedroom" → queue_music
|
||||
|
||||
RULE: if the request has the form "[title] by [artist]" (a specific song/album title followed by "by" and an artist name — no matter what words come before it, e.g. "play", "queue", "throw on", "put on", "the album", "the song"), the query is ONLY the title — always strip " by [artist]" from the end. Never include the word "by" or the artist name in the query for this pattern.
|
||||
- "Play Yellow by Coldplay" → query="Yellow"
|
||||
- "Throw on the album Parachutes by Coldplay" → query="Parachutes"
|
||||
|
||||
Reference in New Issue
Block a user