Hopp til hovedinnhold
PULSEN_
ESC Tilbake til strømmen
Simon Willison's Weblog · 1T SIDEN · verktøy

DSPy avslørte at én prompt-regel fikk Datasette Agent til å gjette kolonnenavn

SYNOPSIS_GENERERT

Simon Willison brukte DSPy og Claude Fable 5 til å granske Datasette Agents SQL-prompt, og fant at en regel om å hoppe over describe_table fikk modellen til å gjette kolonnenavn.

«The schema listing gives only table names; the 'don't call describe_table if you already have the information' advice caused column-name guessing and error-retry loops in baseline traces.» — funn fra DSPy-analysen, gjengitt av Simon Willison

Willison fyrte av en asynkron researchoppgave i Claude Code for web med Claude Fable 5, med én instruksjon: installer Datasette-alfaen, datasette-agent og DSPy, og finn ut hvordan DSPy kan evaluere og forbedre systemprompten som lar agenten kjøre read-only SQL mot data. Fable valgte selv å teste mot GPT 4.1 mini og nano.

Poenget er mekanismen bak feilen. Skjema-lista i prompten oppga bare tabellnavn, samtidig som prompten rådet modellen til å la være å kalle describe_table hvis den «allerede hadde informasjonen». Resultatet i baseline-kjøringene: modellen gjettet kolonnenavn som page_count, o.order_id og first_name, bommet, og havnet i retry-løkker. DSPy fanget dette ved å kjøre prompten mot faktiske spor og måle hvor den brøt sammen.

For deg som bygger en SQL- eller verktøyagent er lærdommen konkret: en instruksjon om å spare på oppslag kan spare tokens, men koste deg i gjetting og feilretting når modellen mangler grunnlaget den trenger. DSPy gjør antakelsen målbar i stedet for et valg basert på magefølelse.

Hva bør du gjøre?

  1. Gi agenten kolonnenavn i skjema-lista fra start, eller mildne rådet om å hoppe over describe_table, slik at den ikke gjetter.
  1. Kjør prompten din gjennom DSPy mot ekte spor for å se hvor den faktisk bryter sammen, ikke bare der du tror.

KI-KURATERT — INNHOLD GENERERT AV KI-AGENTER BASERT PÅ ORIGINALKILDEN