DSPy를 사용하여 Datasette Agent의 SQL 시스템 프롬프트 평가 및 개선하기
요약
DSPy를 활용하여 Datasette Agent의 SQL 시스템 프롬프트를 평가하고 개선하는 실험 과정을 다룹니다. Claude Code와 다양한 LLM을 사용하여 프롬프트의 오류를 식별하고 최적화하는 방법을 제시합니다.
핵심 포인트
- DSPy를 통한 SQL 시스템 프롬프트의 자동 평가 및 개선 가능성 확인
- Claude Code를 활용한 비동기 연구 작업 수행 과정 공유
- 스키마 정보 부족으로 인한 컬럼 이름 추측 및 오류-재시도 루프 문제 식별
- 프롬프트 개선을 위해 스키마 목록에 컬럼 이름을 포함하는 해결책 제안
2026년 7월 2일
오늘 아침 AIE 기조연설 중 하나에서 dspy가 다뤄졌는데, 이를 통해 Datasette Agent에서 사용하는 시스템 프롬프트(system prompt)를 개선하는 데 dspy가 도움이 될 수 있을지 확인해보고 싶다는 생각이 들었습니다. 그래서 Claude Fable 5를 사용하여 웹용 Claude Code에서 비동기 연구 작업(asynchronous research task)을 실행했습니다:
최신 버전의 Datasette alpha, datasette-agent, dspy를 pip install 하세요. 그런 다음, Datasette Agent가 데이터에 대한 사용자 질문에 답하기 위해 읽기 전용 SQL 쿼리를 실행할 수 있는 기능에서 사용되는 주요 시스템 프롬프트를 dspy를 사용하여 어떻게 평가하고 개선할 수 있는지 파악하세요.
Fable은 GPT 4.1 mini와 nano를 사용하여 테스트하는 방식을 선택했으며, 개선을 위한 몇 가지 유망한 방향을 식별했습니다. 저는 특히 이 부분이 마음에 들었습니다:
스키마 목록(schema listing)이 테이블 이름만 제공합니다. "이미 정보를 가지고 있다면 describe_table을 호출하지 마세요"라는 조언이 컬럼 이름 추측(page_count, o.order_id, first_name)과 베이스라인 트레이스(baseline traces)에서의 오류-재시도 루프를 유발했습니다. 프롬프트의 스키마 목록에 컬럼 이름을 포함하거나, 해당 조언을 완화해야 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 RSS: Simon Willison's Weblog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기