사이먼 윌리슨이 DSPy로 Datasette Agent의 SQL 프롬프트를 점검한 과정을 올렸어. Datasette Agent는 그가 만든 데이터 도구에 붙인 AI 비서고, 사람이 질문하면 SQL을 만들어 데이터베이스에 물어봐. DSPy는 프롬프트를 손으로 고치는 대신 평가 결과를 기준으로 다듬는 프레임워크야.
방식이 재밌어. 그는 연구 작업 자체를 클로드 코드에 맡겼고, GPT 4.1 mini와 nano 모델로 돌렸어. 핵심은 테스트 판이야. DSPy 에이전트가 실제 Datasette Agent 도구를 그대로 불러서, 메모리 안에서 도는 라이브 데이터베이스에 질의하게 했어. 정답 데이터셋은 자동으로 만들어 두고, 커스텀 채점 기준으로 결과를 평가했지.
그렇게 돌려보니 원래 프롬프트의 약점이 하나 잡혔어. 스키마를 나열하는 부분에서 컬럼 이름이 빠져 있었던 거야. 그러니까 모델이 컬럼을 추측하게 되고, 데이터베이스가 ‘그런 컬럼 없다’고 돌려주면 다시 스키마를 뒤져 고치는 재시도 루프에 빠졌어. 그의 결론은 담백해. “스키마 목록에 컬럼 이름을 넣든지, 아니면 그 조언을 누그러뜨리든지.” 다만 개선폭을 수치로 제시하진 않았으니, 얼마나 나아지는지는 각자 확인할 몫이야.
프롬프트를 감으로 만지지 않고 평가 판을 깔아서 고친다는 접근이 이 글의 값이야. SQL을 다루는 에이전트를 운영하고 있다면, 스키마에 컬럼 이름이 들어가 있는지부터 한번 확인해봐도 좋아.