Spotify simply shipped “Prompted Playlists” in beta. I constructed a couple of playlists and found that the LLM behind the agent tries to meet your request, however fails as a result of it doesn’t know sufficient however received’t admit it. Right here’s what I imply: one in all my first playlist prompts was “songs in a minor key inside rock”. The playlist was swiftly created. I then added the caveat “and no music ought to have greater than 10 million performs”. The AI agent bubbled up an error explaining that it didn’t have entry to complete play counts. It additionally surprisingly defined that it didn’t have entry to a couple different issues like musical keys, regardless that it had claimed to make use of that within the playlist’s development. The agent was utilizing its LLM’s data of what key a sure music was in and including songs accordingly to its reminiscence. An in depth inspection of the playlist confirmed a couple of songs that weren’t in a minor key in any respect. The LLM had, after all, hallucinated this data and proudly displayed it as a sound match to a playlist’s immediate.

Clearly, a playlist creator is a reasonably low-stakes AI agent functionality. The playlist it made was nice! The difficulty is it solely actually used about 25% of my constraints as validated enter. The remaining 75% of my constraints had been simply guessed by the LLM and the system by no means informed me till I dug in deeper. This isn’t a Spotify drawback; it’s an every-agent drawback.
Three Propositions
To display this idea of immediate constancy extra broadly, I need to make these three propositions:
- Any AI agent’s verified information layer has a restricted or finite capability. An agent can solely question the instruments it’s been given, and people instruments expose a hard and fast set of fields with finite decision. You possibly can enumerate each area within the schema and measure how a lot every one narrows the search. A reputation rating eliminates some fraction of candidates. A launch date eliminates one other. A style tag eliminates extra. Add up how a lot narrowing all of the fields can do collectively and also you get a tough quantity: the utmost quantity of filtering the agent can show it did. I’ll name that quantity I_max.
- Consumer intent expressed in pure language is successfully unbounded. An individual can write a immediate of arbitrary specificity. “Create a playlist with songs which are bass-led in minor key, post-punk from Manchester, recorded in studios with analog tools between 1979 and 1983 that influenced the gothic rock motion however by no means charted.” Each clause narrows the search. Each adjective provides precision. There is no such thing as a ceiling on how particular a person’s request will be, as a result of pure language wasn’t designed round database schemas.
- Following immediately from the primary two: for any AI agent, there exists a degree the place the person’s immediate asks for greater than the info layer can confirm. As soon as a immediate calls for extra narrowing than the verified fields can present, the remaining work has to come back from someplace. That someplace is the LLM’s normal data, sample matching, and inference. The agent will nonetheless ship a assured outcome. It simply can’t show all of it. Not as a result of the mannequin is poorly constructed, however as a result of the mathematics doesn’t permit the rest.
This isn’t a top quality drawback, however a structural one. A greater mannequin doesn’t increase the ceiling. Higher fashions do get higher at inferring and filling in the remainder of the person’s wants. Nonetheless, solely including extra verified information fields raises this ceiling, and even then, every new area affords diminishing returns as a result of fields are correlated (style and power aren’t unbiased, launch date and tempo developments aren’t unbiased). The hole between what language can categorical and what information can confirm is everlasting.
The Drawback: Brokers Don’t Report Their Compression Ratio
Each AI agent with entry to instruments and abilities does the identical factor: it takes your request, decomposes that request right into a set of actions, executes these actions, infers in regards to the output of these actions, after which presents a unified response.

This decomposition from request to motion truly erodes the which means between what it’s you’re asking for and what the AI agent responds with. The narration layer of the AI agent flattens what it’s you requested and what was inferred right into a single response.
The issue is that as a person of an AI agent, you don’t have any technique to know what fraction of your enter was used to set off an motion, what fraction of the response was grounded in actual information, and what fraction was inferred from the actions that the agent took. This can be a drawback for playlists as a result of there have been songs that had been in a significant key, once I had explicitly requested it to solely include songs in a minor key. That is much more of an issue when your AI agent is classifying monetary receipts and transactions.
We’d like a metric for measuring this. I’m calling it Immediate Constancy.
The Metric: Immediate Constancy
Immediate Constancy for AI brokers is outlined by the constraints you give to the agent when asking it to carry out some motion. Every constraint inside a immediate narrows the potential paths that the agent can take by some measurable quantity. A naïve method to calculating constancy can be to rely every constraint, add up those which are verifiable, and those which are inferred. The issue with that method is that every constraint is weighted the identical. Nonetheless, information is usually skewed closely inside actual life datasets. A constraint that eliminates 95% of the catalog is doing vastly extra work than one which eliminates 20%. Counting every constraint the identical is incorrect.
Due to this fact, we have to correctly weight every constraint in line with the work it does filtering the dataset. Logarithms obtain that weighting. The bits of knowledge in a immediate will be outlined as “-log2(p)” bits the place p is the surviving fraction of knowledge from the constraints or fillers you’ve utilized.

In every agent motion, every constraint can solely be a) verified by instrument calls or b) inferred by the LLM. Immediate constancy measures the ratio of constraints between these two choices.

Immediate Constancy has a spread of 0 to 1. An ideal 1.0 signifies that each a part of your request was backed by actual information. A constancy of 0.0 signifies that the complete output of the AI agent was pushed by its inner reasoning or vibes.

Spotify’s system above at all times studies an ideal 1.0 on this state of affairs. In actuality, the immediate constancy of the playlist creation was round 25% – two constraints (below 4 minutes and recorded earlier than 2005) had been fulfilled by the agent, the remainder had been inferred from the agent’s present (and probably defective) data and recall. At scale and utilized to extra impactful issues, falsely reporting a excessive immediate constancy turns into an enormous drawback.
What Constancy Truly Means (and Doesn’t Imply)
In audio programs, “constancy” is a measure of how faithfully the system reproduces the unique sign. Excessive constancy doesn’t assure that the music itself is sweet. Excessive constancy solely ensures that the music sounds the way it did when it was recorded. Immediate constancy is similar concept: how a lot of your unique intent (sign) was faithfully fulfilled by the agentic system.
Excessive immediate constancy signifies that the system did what you requested and you may PROVE it. A low immediate constancy means the system in all probability did one thing shut to what you needed, however you’ll should overview it (listening to the entire playlist) to make sure that it’s true.
Immediate Constancy is NOT an accuracy rating. It can not inform you that “75% of the songs in a playlist match your immediate”. A playlist with a 0.25 constancy might be 100% excellent. The LLM may need nailed each single inference about every music it added. Or, half the songs might be incorrect. You don’t know. You possibly can’t know till you hearken to all of the songs. That’s the purpose of a measurable immediate constancy.
As a substitute immediate constancy measures how a lot of the outcome you may TRUST WITHOUT CHECKING. In a monetary audit, if 25% of the road gadgets have receipts and 75% of the road gadgets are estimates, the full invoice would possibly nonetheless be 100% correct, however your CONFIDENCE in that complete is basically completely different than an audit with each single line merchandise supported by a receipt. The excellence issues as a result of there are domains the place ‘simply belief the vibes’ is okay (music) and domains the place it isn’t (medical recommendation, monetary steering, authorized compliance).
Immediate constancy is extra like a measurement of the documentation price given numerous constraints, not the error price of the response itself.
Virtually in our Spotify instance: as you add extra constraints to your playlist immediate, the immediate constancy drops, the playlist turns into much less of a exact report and extra of a advice. That’s completely wonderful, however the person needs to be knowledgeable about which they’re getting. Is that this playlist precisely what I requested for? Or did you make one thing work to meet the objective that I gave you? Surfacing that metric to the person is important for constructing belief in these agentic programs.
The Case Examine: Reverse-Engineering Spotify’s AI Playlist Agent
Spotify’s Prompted Playlists characteristic is what began this exploration into immediate constancy. Let’s dive deeper into how these work and what I did to discover this functionality simply from the usual immediate enter area.
Prompted Playlists allow you to describe what you need in pure language. For instance, on this playlist, the immediate is solely “rock songs in minor keys, below 4 minutes, recorded earlier than 2005, that includes bass traces as a lead melodic ingredient”.
Usually, to make a playlist, you’d must comb by means of hours of music to land on precisely what you needed to make. This playlist is 52 minutes lengthy and took solely a minute to generate. The attraction right here is apparent and I actually take pleasure in this characteristic. With out having to know all the important thing rock artists, I will be launched to the music and discover it extra rapidly and extra simply.
Sadly, the official documentation from Spotify may be very mild. There are nearly no particulars about what the system can or can’t do, what metadata it keys off of, neither is there any information mapping obtainable.
Utilizing a easy approach, nonetheless, I used to be capable of map what I consider is the complete information contract obtainable to the agent over the course of 1 night (all from my sofa watching the Sopranos, naturally).
The Approach: Unimaginable Constraints as a Forcing Perform
On account of how Spotify architected this playlist-building agent, when the agent can not fulfill a request, the error messages will be influenced to disclose architectural particulars which are in any other case not obtainable. While you discover a constraint that the agent can’t construct off of, it should error and you may leverage that to know what it CAN do. I’ll use this because the fixed to probe the system.
In our instance playlist above, Minor Keys & Bass Strains, including the unlock phrase “with lower than 10 million streams” acts as a circuit breaker for the agent, signalling that it can not fulfill the customers’ request. With this phrase, you may discover the chances by altering different points of the immediate time and again till you may see what the agent has entry to. Accumulating the responses, asking overlapping questions, and reviewing the responses permits you to construct a foundational understanding of what’s obtainable for the agent.

What I Discovered: The Three-Tier Structure
Spotify Prompted Playlist agent has a wealth of information obtainable to it. I’ve separated it into three tiers: musical metadata, user-based information, and LLM inference. Past that, it seems that Spotify has excluded varied information sources from its agent both as a product alternative or as a “get this out the door” alternative.
- Tier 1
- Verified observe metadata: length, launch date, reputation, tempo, power, specific, style, language
- Tier 2
- Verified person behavioral information: play counts, skip counts, timestamps, recency flags, ms performed, supply, interval analytics (40+ fields complete)
- Tier 3
- LLM inference: key/mode, danceability, valence, acousticness, temper, instrumentation — all inferred from normal data, narrated as if verified
- Deliberate exclusion:
- Spotify’s public API has audio options (danceability, valence, and so on.) however the agent doesn’t have entry. Maybe a product alternative, not technical limitation.
A full checklist of accessible fields is included on the backside of this submit.

The Behavioral Findings
The agent demonstrated surprisingly resilient conduct to ambiguous requests and conflicting directions. It generally reported that it was doublechecking varied constraints and fulfilling the customers’ request. Nonetheless, whether or not these constraints had been truly checked towards a validated dataset or not was not uncovered.

When the playlist agent can get a detailed, however not actual, match to the constraints listed within the immediate, it runs a “associated” question and silently substitutes the outcomes from that question as legitimate outcomes for the unique request. This dilutes the belief within the system since a immediate requesting ONLY bass-driven rock music in a playlist would possibly collect non-bass-driven rock music in a playlist, seemingly dissatisfying the person.
There does look like a “certainty threshold” that the agent shouldn’t be comfy crossing. For instance, this whole exploration was based mostly on the “lower than 10 million performs” unlock phrase. When this occurs, the agent would reveal only a handful of fields it had entry to each time. This checklist of fields would change from immediate to immediate, even when the immediate was the identical between runs of the immediate. That is basic LLM non-determinism. With a purpose to increase belief within the system, exposing what the agent DOES have entry to in an easy approach tells the human precisely what they’ll and can’t ask about.
Lastly, when these two varieties of information are blended, the agent shouldn’t be clear about which songs it has used verified information for and which it has used inferred information for. Each verified and inferred selections are blended and offered with equivalent authority within the music notes. For instance, when you craft a prompted playlist about your individual person data (“songs I’ve skipped greater than 30 instances with a punchy bass-driven melody”), the agent will add actual information (“you skipped this music 83 instances final yr!”) proper subsequent to inferred data (“John Deacon’s bass line instructions consideration all through this music”). To be clear, I’ve not skipped any Queen songs 83 instances to my data. However the AI agent doesn’t have a “bass_player” area anyplace in its obtainable information to question towards. The AI is aware of that Queen generally has a powerful bass line of their songs and the data of John Deacon as Queen’s bass guitarist permits its LLM to deduce that it’s his bass line that prompted the music to be added to the playlist.
Making use of the Math: Two Playlists, Two Constancy Scores
Let’s apply this immediate constancy idea to instance playlists. I don’t have full entry to the Spotify music catalog so I’ll be utilizing instance survivorship numbers from our standards filters in our constancy bit computations. The method is similar at each step: bits = −log₂(p) the place p is the estimated fraction of the catalog that survives the filter being utilized.
“Minor Bass Melodies” — The Assured Phantasm
This playlist is the one with Queen. “A playlist of rock music, all in minor key, below 4 minutes of playtime, launched pre-2005, and bass-led”. I’ll apply our method and use the bits of knowledge I’ve from every step to assist compute the immediate constancy.
Period < 4 minutes
- Estimate: ~80% of tracks are below 4 minutes → p = 0.80

- This barely narrows something, which is why it contributes so little
Launch date earlier than 2005
- Estimate: ~30% of Spotify’s catalog is pre-2005 (the catalog skews closely towards latest releases) → p = 0.30

- Extra selective — eliminates 70% of the catalog
Minor key
- Estimate: ~40% of common music is in a minor key → p = 0.40

- Reasonable selectivity, however that is totally inferred — the agent confirmed key/mode shouldn’t be a verified area
Bass-led melodic ingredient
- Estimate: ~5% of tracks characteristic bass because the lead melodic ingredient → p = 0.05

- By far probably the most selective constraint. This single filter does extra work than the opposite three mixed. And it’s 100% inferred.
Totals:




These survival fractions are estimates. Nonetheless, the structural level holds no matter actual numbers: probably the most selective constraint is the least verifiable, and that’s not a coincidence. The issues that make a immediate fascinating are nearly at all times the issues an agent has to guess at.

“Skipped Songs” — The Trustworthy Playlist
This immediate may be very straight ahead: “A playlist of songs I’ve skipped greater than 5 instances”. That is very straightforward to confirm and the agent will lean into the info it has entry to.
Skip rely > 5
- Estimate: ~10% of tracks in your library have been skipped greater than 5 instances → p = 0.10

- That is the one constraint, and it’s a verified area (user_skip_count)
Totals:




The Structural Perception
The fascinating half about immediate constancy is clear in every playlist: the “most fascinating” immediate is the least verifiable. A playlist with all my skipped songs is trivially straightforward to implement however Spotify doesn’t need to present it. In spite of everything, these are all songs I typically don’t choose to hearken to, therefore the skips. Equally, publish date being earlier than 2005 may be very straightforward to confirm, however the resultant playlist is unlikely to be fascinating to the typical person.
The bass-line constraint although may be very fascinating for a person. Constraints like these are the place the Prompted Playlist idea will shine. Already at present I’ve created and listened to 2 such playlists generated from only a idea of a music that I needed to listen to extra of.
Nonetheless, the idea of a “bass-driven” music is difficult to quantify, particularly at Spotify’s scale. Even when they did quantify it, I’d ask for “clarinet jazz” the following day and so they’d all should get again to work discovering and labeling these songs. And that is after all the magic of the Prompted Playlist characteristic.
Validation: A Managed Agent
The Spotify examples are compelling, however I don’t have direct entry to the schema, the instruments, and the agentic harness itself. So I constructed a film advice agent as a way to take a look at this principle inside a extra managed surroundings.
The film advice agent is constructed with the TMDB API that gives the verified layer. Fields within the schema are style, yr, ranking, runtime, language, forged, and director. All the opposite constraints like temper, tone, and pacing usually are not verified information and are as an alternative sourced from the LLM’s personal data of films. Because the agent fulfills a person’s request, the agent data its information sources as both verified or inferred and scores its personal response.
The Boring Immediate (F = 1.0)
We’ll begin with a “boring” immediate: “Motion motion pictures from the Eighties rated above 7.0”. This affords the agent three constraints to work with: style, date vary, and ranking. All these constraints correspond to verified information values inside the database.
If I run this by means of the take a look at agent, I see the excessive constancy pops out naturally as a result of every constraint is tied to verified information.

Each outcome right here is verifiably right. The LLM made zero judgement calls as a result of it had information it may base its response on for every constraint.
The Vibes Immediate (F = 0.0)
On this case, I’ll search for “motion pictures that really feel like a wet Sunday afternoon”. No constraints on this immediate align to any verified information in our dataset. The work required of the agent falls totally on its LLM reasoning off its present data of films.

The suggestions are defensible and are definitely good motion pictures however they aren’t verifiable in line with the info we’ve got entry to. With no verified constraints to anchor the search, the candidate pool was the complete TMDb catalog, and the LLM needed to do all of the work. Some picks are nice; others are the mannequin reaching for obscure movies it isn’t assured about.
The Takeaway
This take a look at film advice agent verifies the immediate constancy framework as a strong technique to expose how an agent’s interpretation of a customers’ intent pushes its response right into a precision instrument or a advice engine. The place the response lands between these two choices is important for informing customers and constructing belief in agentic programs.
The Constancy Frontier
To make this concrete: Spotify’s catalog comprises roughly 100 million tracks. How a lot complete data your immediate wants to hold to slender the catalog right down to your playlist I’ll name I_required.

To pick a 20-song playlist from that catalog, you want roughly 22 bits of selectivity (log₂ of 100 million divided by 20).

The verified fields (length, launch date, reputation, tempo, power, style, specific flag, language, and the complete suite of person behavioral information) have a mixed capability that tops out at roughly 10 to 12 bits, relying on the way you estimate the selectivity of every area. After that, the verified layer is exhausted. Each extra little bit of specificity your immediate calls for has to come back from LLM inference. I’ll name this most, I_max

That offers you a constancy ceiling for any immediate:

And the constancy ceiling for any playlist:

For the Spotify agent, a maximally particular immediate that absolutely defines a playlist can not exceed roughly 55% constancy. The opposite 45% is structurally assured to be inference. For less complicated prompts that don’t push previous the verified layer’s capability, constancy can attain 1.0. However as prompts get extra particular, constancy drops, not step by step however by necessity.

This defines what I’m calling the constancy frontier: the curve of most achievable constancy as a operate of immediate specificity. Each agent has one. It’s computable prematurely from the instrument schema. Easy prompts sit on the left of the curve the place constancy is excessive. Inventive, particular, fascinating prompts sit on the correct the place constancy is structurally bounded under 1.0.
The uncomfortable implication is that the prompts customers care about most (those that really feel private, particular, and tailor-made) are precisely those that push previous the verified layer’s capability. Probably the most fascinating outputs come from the least trustworthy execution. And probably the most boring prompts are probably the most reliable. That tradeoff is baked into the mathematics. It doesn’t go away with scale, higher fashions, or larger databases. It solely shifts.
For anybody constructing brokers, the sensible takeaway is that this: you may compute your individual I_max by auditing your instrument schema. You possibly can estimate the standard specificity of your customers’ prompts. The ratio tells you the way a lot of your agent’s output is structurally assured to be inference. That’s a quantity you may put in entrance of a product staff or a danger committee. And for brokers dealing with coverage questions, medical data, or monetary recommendation, it means there’s a provable decrease certain on how a lot of any response can’t be grounded in retrieved information. You possibly can shrink it. You can not remove it.
The Broader Utility: Each Agent Has This Drawback
This isn’t a Spotify drawback. This can be a drawback for any system the place an LLM orchestrates instrument calls to reply a person’s query.
Think about Retrieval Augmented Era (RAG) programs, which energy most enterprise AI knowledge-base deployments at present. When an worker asks an inner assistant a coverage query, a part of the reply comes from retrieved paperwork and half comes from the LLM synthesizing throughout them, filling gaps, and smoothing the language into one thing readable. The retrieval is verified. The synthesis is inferred. And the response reads as one seamless paragraph with no indication of the place the seams are. A compliance officer studying that reply has no technique to know which sentence got here from the enterprise coverage doc and which sentence the mannequin invented to attach two paragraphs that didn’t fairly match collectively. The constancy query is equivalent to the playlist query, simply with larger stakes.
Coding brokers face the identical decomposition. When an AI generates a operate, a few of it might reference established patterns from its coaching information or documentation lookups, and a few of it’s novel technology. As extra manufacturing code is written by AI, surfacing that ratio turns into an actual engineering concern. A operate that’s 90% grounded in well-tested patterns carries completely different dangers than one which’s 90% novel technology, even when each go the identical take a look at suite at present.
Customer support bots would be the highest-stakes instance. When a bot tells a buyer what their refund coverage is, that reply needs to be drawn immediately from coverage paperwork, full cease. Any inferred or synthesized content material in that response is a legal responsibility. The silent substitution conduct noticed in Spotify (the place the agent ran a close-by question and narrated it as if it fulfilled the unique request) can be genuinely harmful in a customer support context. Think about a bot confidently stating a return window or protection time period that it inferred moderately than retrieved.
The overall type of immediate constancy applies to all of those:
Constancy = bits of response grounded in instrument calls / complete bits of response
The arduous half, and more and more the core problem of AI engineering work, is defining what “bits” means in every context. For a playlist with discrete constraints, it’s clear. At no cost-text technology, you’d must decompose a response into particular person claims and assess every one, which is nearer to what factuality benchmarks already attempt to do, simply reframed as an information-theoretic measure. That’s a tough measurement drawback, and I don’t declare to have solved it right here.
However I feel the framework has worth even when actual measurement is impractical. If the folks constructing these programs are occupied with constancy as a design constraint (what fraction of this response can I floor in instrument calls, and the way do I talk that to the person?) the outputs will likely be extra reliable whether or not or not anybody computes a exact rating. The objective isn’t a quantity on a dashboard. The objective is a psychological mannequin that shapes how we construct.
The Complexity Ceiling
Each agent has a complexity ceiling. Easy lookups (what’s the play rely for this observe?) are primarily free. Filtering the catalog towards a set of field-level predicates (present me every thing below 4 minutes, pre-2005, reputation under 40) scales linearly and runs quick. However the second a immediate requires cross-referencing entities towards one another (does this observe seem in additional than three of my playlists? was there a year-long hole someplace in my listening historical past?) the price jumps quadratically, and the agent both refuses outright or silently approximates.
That silent approximation is the fascinating failure mode. The agent follows a type of precept of least computational motion: when the precise question is simply too costly, it relaxes your constraints till it finds a model it may afford to run. You requested for a selected valley within the search area; it rolled downhill to the closest one as an alternative. The result’s a neighborhood minimal, shut sufficient to look proper, low-cost sufficient to serve, nevertheless it’s not what you requested for, and it doesn’t inform you the distinction.
This ceiling isn’t distinctive to Spotify. Any agent constructed on listed database lookups will hit the identical wall. The boundary sits proper the place queries cease being decomposable into unbiased WHERE clauses and begin requiring joins, full scans, or aggregations throughout your whole historical past. Under that line, the agent is a precision instrument. Above it, it’s a advice engine sporting a precision instrument’s garments. The query for anybody constructing these programs isn’t whether or not the ceiling exists (it at all times does) however whether or not your customers know the place it’s.
What to Do About It: Design Suggestions
If immediate constancy is an actual and measurable property of agentic programs, the pure query is what to do about it. Listed below are 5 suggestions for anybody constructing or deploying AI brokers with instrument entry.
- Report constancy, even roughly. Spotify already exhibits audio high quality as a easy indicator (low, regular, excessive, very excessive) while you’re streaming music. The identical sample works for immediate constancy. You don’t want to point out the person a decimal rating. A easy label (“this playlist intently matches your immediate” versus “this playlist is impressed by your immediate”) can be sufficient to set expectations accurately. The distinction between a precision instrument and a advice engine is okay, so long as the person is aware of which one they’re holding.
- Distinguish grounded claims from inferred ones within the UX. This may be delicate. A small icon, a slight shade shift, a footnote. When Spotify’s playlist notes say “86 skips” that’s a reality from a database. Once they say “John Deacon’s bass line drives the entire observe” that’s the LLM’s normal data. Each are offered identically at present. Even a minimal visible distinction would let customers calibrate their belief per declare moderately than trusting or distrusting the complete output as a block.
- Disclose substitutions explicitly. When an agent can’t fulfill a request precisely however can get shut, it ought to say so. “I couldn’t filter on obtain standing, so I discovered songs from albums you’ve saved however haven’t preferred” preserves belief excess of silently serving a close-by outcome and narrating it as if the unique request was fulfilled. Customers are forgiving of limitations. They’re much much less forgiving of being misled.
- Present deterministic functionality discovery. Once I requested the Spotify agent to checklist each area it may filter on, it produced a special reply every time relying on the context of the immediate. The LLM was reconstructing the sector checklist from reminiscence moderately than studying from a hard and fast reference. Any agent that exposes filtering or querying capabilities to customers ought to have a steady, deterministic technique to uncover these capabilities. A “present me what you are able to do” command that returns the identical reply each time is desk stakes for person belief.
- Audit your individual agent with this method earlier than your customers do. The methodology on this piece (pairing unattainable constraints with goal fields to drive informative refusals) is a general-purpose audit approach that works on any agent with instrument entry. It took one night and a couple of dozen prompts to map Spotify’s full information contract. Your customers will do the identical factor, whether or not you invite them to or not. The query is whether or not you perceive your individual system’s boundaries earlier than they do.
Closing
Each AI agent has a constancy rating. Most are decrease than you’d anticipate. None of them report it.
The methodology right here (utilizing unattainable constraints to drive informative refusals) isn’t particular to music or playlists. It really works on any agent that calls instruments. If the system can refuse, it may leak. If it may leak, you may map it. A dozen well-crafted prompts and a night of curiosity is all it takes to know what a manufacturing agent can truly do versus what it claims to do.
The maths generalizes too. Weighting constraints by their selectivity moderately than simply counting them reveals one thing {that a} naïve audit misses: the constraints that make a immediate really feel private and particular are nearly at all times those the system can’t confirm. Probably the most fascinating outputs come from the least trustworthy execution. That pressure doesn’t go away with higher fashions or larger databases. It’s structural.
As AI brokers turn into the first approach folks work together with information programs (their music libraries at present, their monetary accounts and medical data tomorrow) customers will probe boundaries. They’ll discover the gaps between what was promised and what was delivered. They’ll uncover that the assured, well-narrated response was partially grounded and partially invented, with no technique to inform which components had been which.
The query isn’t whether or not your agent’s constancy will likely be measured. It’s whether or not you measured it first.
Bonus: Prompts Price Making an attempt (If You Have Spotify Premium)
As soon as you recognize the schema, you may write prompts that floor genuinely stunning issues about your listening historical past. These all labored for me with various levels of tweaking:
The Relationship Post-mortem
- “Songs the place my skip rely is larger than my play rely”
- Honest warning: this one could trigger existential discomfort (you skip these songs for a cause!)
Love at First Hear
- “Songs the place I saved them inside 24 hours of my first play, sorted by oldest first”
- A chronological timeline of tracks that grabbed you instantly
The Lifecycle
- “Songs I first ever performed, sorted by most performs”
- Your origin story on the platform
The Marathon
- “Songs the place my complete ms_played is highest, convert to hours”
- Not most performs — most complete time. A unique and infrequently stunning checklist
The Longest Relationship
- “Songs with the smallest hole between first play and most up-to-date play, with not less than 50 performs, ordered by earliest first hear”
The One-Week Obsessions
- “Songs I performed greater than 10 instances in a single week after which by no means touched once more”
- Your former obsessions, fossilized. This was like a time machine for me.
The Time Capsule
- “One music from every year I’ve been on Spotify — the music with probably the most performs from that yr”
The Earlier than and After
- “Two units: my 10 most-played songs within the 6 months earlier than [milestone date] and my 10 most-played within the 6 months after”
- Plug in any date that mattered — a transfer, a brand new job, a breakup, and even Covid-19 lockdown
The Soundtrack to a 12 months
- “Choose the yr the place my complete ms_played was highest. Construct a playlist of my high songs from that yr”
What Didn’t Work (and Why)
- Comeback Story (year-long hole detection): “Songs I rediscovered after a year-long hole in listening”
- agent can’t scan full play historical past for gaps. Snapshot queries work, timeline scans don’t.
- Seasonal patterns (solely performed in December): “Songs I solely performed in December however by no means every other month”
- proving common negation requires full scan. Similar elementary limitation.
- Derived math (ms_played / play_count): “Songs the place my common hear time is below 30 seconds per play”
- agent struggles with computed fields. Keep on with uncooked comparisons.
- These failures map on to the complexity ceiling — they require O(n²) or full-scan operations the agent can’t or isn’t allowed to carry out.
Suggestions
- Reference area names immediately when the agent misinterprets pure language
- Begin broad and tighten. Free constraints succeed extra typically
- “In case you can’t do X, inform me what you CAN do” is the common audit immediate
Observe Metadata
| Subject | Standing | Description |
| album | ✅ Verified | Album title |
| album_uri | ✅ Verified | Spotify URI for the album |
| artist | ✅ Verified | Artist title |
| artist_uri | ✅ Verified | Spotify URI for the artist |
| duration_ms | ✅ Verified | Observe size in milliseconds |
| release_date | ✅ Verified | Launch date, helps arbitrary cutoffs |
| reputation | ✅ Verified | 0–100 index. Proxy for streams, not a exact rely |
| specific | ✅ Verified | Boolean flag for specific content material |
| style | ✅ Verified | Style tags for observe/artist |
| language_of_performance | ✅ Verified | Language code. “zxx” (no linguistic content material) used as instrumentalness proxy |
Audio Options (Partial)
| Subject | Standing | Description |
| power | ✅ Verified | Obtainable as filterable area |
| tempo | ✅ Verified | BPM, obtainable as filterable area |
| key / mode | ❌ Unavailable | “Must infer from data; no verified area” |
| danceability | ❌ Unavailable | Not uncovered regardless of present in Spotify’s public API |
| valence | ❌ Unavailable | Not uncovered regardless of present in Spotify’s public API |
| acousticness | ❌ Unavailable | Not uncovered regardless of present in Spotify’s public API |
| speechiness | ❌ Unavailable | Not uncovered regardless of present in Spotify’s public API |
| instrumentalness | ❌ Unavailable | Changed by language_of_performance == “zxx” workaround |
Consumer Behavioral Information
| Subject | Standing | Description |
| user_play_count | ✅ Verified | Complete performs per observe. Noticed: 122, 210, 276 |
| user_ms_played | ✅ Verified | Complete milliseconds streamed per observe, album, artist |
| user_skip_count | ✅ Verified | Complete skips per observe. Noticed: 64, 86 |
| user_saved | ✅ Verified | Whether or not observe is in Appreciated Songs |
| user_saved_album | ✅ Verified | Whether or not the album is saved to library |
| user_saved_date | ✅ Verified | Timestamp of when the observe/album was saved |
| user_first_played | ✅ Verified | Timestamp of first play |
| user_last_played | ✅ Verified | Timestamp of most up-to-date play |
| user_days_since_played | ✅ Verified | Pre-computed comfort area for recency filtering |
| user_streamed_track | ✅ Verified | Boolean: ever streamed this observe |
| user_streamed_track_recently | ✅ Verified | Boolean: streamed in approx. final 6 months |
| user_streamed_artist | ✅ Verified | Boolean: ever streamed this artist |
| user_streamed_artist_recently | ✅ Verified | Boolean: streamed this artist not too long ago |
| user_added_at | ✅ Verified | When a observe was added to a playlist |
Supply & Context
| Subject | Standing | Description |
| supply | ✅ Verified | Play supply: playlist, album, radio, autoplay, and so on. |
| source_index | ✅ Verified | Place inside the supply |
| matched_playlist_name | ✅ Verified | Which playlist a observe belongs to. No cross-playlist aggregation. |
Interval Analytics (Time-Windowed)
| Subject | Standing | Description |
| period_ms_played | ✅ Verified | Milliseconds performed inside a rolling time window |
| period_plays | ✅ Verified | Play rely inside a rolling time window |
| period_skips | ✅ Verified | Skip rely inside a rolling time window |
| period_total | ✅ Verified | Complete engagement metric inside a rolling time window |
Question / Search Fields
| Subject | Standing | Description |
| title_query | ✅ Verified | Fuzzy textual content matching on observe titles |
| artist_query | ✅ Verified | Fuzzy textual content matching on artist names |
Confirmed Unavailable
| Subject | Standing | Notes |
| World stream counts | ❌ Unavailable | Can not filter by actual play rely (e.g., “below 10M streams”) |
| Cross-playlist rely | ❌ Unavailable | Can not rely what number of playlists a observe seems in |
| Household/family information | ❌ Unavailable | Can not entry different customers’ listening information |
| Obtain standing | ⚠️ Unreliable | Agent served outcomes however most tracks lacked obtain indicators. Probably device-local. |


