본문으로 건너뛰기
Simon Willison조회 2

DSPy를 사용해 Datasette Agent의 SQL 시스템 프롬프트를 평가하고 개선하기

DSPy와 Claude Fable을 활용해 Datasette Agent의 SQL 시스템 프롬프트를 평가해 스키마 표시에 컬럼명을 포함하거나 describe_table 호출 권고를 완화하는 개선안을 도출했다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Datasette Agent의 SQL 실행 기능과 관련해 dspy를 사용한 자동 평가를 Claude Code(Claude Fable 환경)에서 실행해 시스템 프롬프트의 동작을 계량적으로 관찰했다. 실험에서는 GPT 4.1 mini와 GPT 4.1 nano를 테스트 대상으로 삼아 모델별 응답 패턴과 오류 유형을 비교했다. 평가 결과 스키마 목록에 테이블 이름만 포함하는 현재 프롬프트가 컬럼명 추정과 반복적인 에러-재시도 루프를 유발했으며, 스키마에 컬럼명을 포함하거나 'describe_table' 호출 권고 문구를 완화하는 개선책이 제시되었다. 제안된 변경은 불확실한 추정을 줄여 SQL 쿼리 실행의 안정성을 높이고 불필요한 도구 호출을 줄이는 방향으로 작용할 것으로 보인다.

섹션별 상세

01
Datasette Agent의 시스템 프롬프트를 개선하기 위해 dspy를 평가 도구로 사용하고 Claude Code의 비동기 연구 작업을 실행해 프롬프트 행동을 자동으로 관찰했다. 실험 과정에서는 Claude Fable 5 환경에서 작업을 실행했으며, 테스트 대상으로 GPT 4.1 mini와 GPT 4.1 nano를 선택해 다양한 모델 반응을 비교했다. dspy는 입력 프롬프트와 모델 응답을 수집해 오류 유형과 반복 호출 패턴을 파악하도록 구성되었다. 이러한 자동화된 평가가 프롬프트의 약한 지점을 발견하고 구체적 개선 아이디어를 생성하는 기반이 되었다.
bash
Pip install the latest Datasette alpha and datasette-agent and dspy - then figure out how to use dspy to evaluate and improve the main system prompts used by Datasette Agent for the feature where it can execute read only SQL queries to answer user questions about data.

이 코드는 dspy와 Datasette Agent를 설치한 뒤 시스템 프롬프트 평가 작업을 수행하라는 명령어 예시다.

02
자동 평가에서 식별된 구체적 문제는 스키마 목록에 테이블 이름만 포함하는 프롬프트 문구가 모델의 컬럼명 추정과 불필요한 도구 호출로 이어졌다는 점이다. 원문 인용에는 'describe_table을 이미 알고 있으면 호출하지 말라'는 권고가 컬럼명 추정(예: page_count, o.order_id, first_name)과 에러-재시도 루프를 유발했다고 기술되어 있다. 대응 방안으로는 스키마 목록에 컬럼명을 명시적으로 포함하거나 그 권고 문구를 완화하는 두 가지 선택지를 제시했다. 이 개선은 모델이 불확실한 추정을 줄이고 데이터베이스에 대한 읽기 전용 쿼리 실행의 신뢰도를 높여 에러 빈도와 불필요한 호출 비용을 낮출 수 있다는 점에서 중요하다.

용어 해설

dspy
dspy는 LLM 평가·실험을 자동화하도록 설계된 도구로, 테스트 시나리오를 실행하고 출력 비교를 통해 프롬프트 및 모델 동작을 계량적으로 검증한다. 입력으로 프롬프트와 예제 쌍을 받고 모델 응답을 수집해 일관성, 오류 유형, 성능 지표를 산출한다. 시스템 프롬프트 튜닝에서 어떤 표현이 오류나 불필요한 호출을 유발하는지 파악하는 데 중요하다.
Datasette Agent
Datasette Agent는 읽기 전용 SQL 쿼리를 실행해 데이터에 관한 질문에 답하는 에이전트 기능을 제공하는 제품으로, 모델에게 데이터베이스 스키마와 쿼리 권한을 전달해 동작한다. 에이전트는 시스템 프롬프트를 통해 어떤 메서드를 호출할지, 어떤 정보를 포함할지 결정하며 프롬프트 품질이 쿼리 정확도와 안정성에 직접적인 영향을 미친다. 스키마 표현 방식과 외부 도구 호출 가이드라인이 핵심 구성 요소다.
시스템 프롬프트(System Prompt)
시스템 프롬프트는 에이전트나 모델에 대해 작동 규칙과 역할, 외부 도구 호출 규칙을 명시하는 초기 지시문으로, 입력 처리 흐름과 출력 제약을 결정한다. 프롬프트에 스키마 세부정보 포함 여부나 'describe_table' 같은 도구 호출 권고가 들어가면 모델의 행동 패턴과 재시도/추측 경향이 달라진다. SQL 실행 에이전트의 신뢰성과 오류 빈도 조절에 핵심적이다.
describe_table 호출(describe_table)
describe_table은 데이터베이스 테이블의 컬럼명과 타입 같은 메타데이터를 조회하는 동작을 가리키며, 프롬프트 상에서 언급하면 모델이 명시적 컬럼 정보를 요청하거나 호출 흐름을 변경하게 된다. 프롬프트가 이미 필요한 정보를 포함한다고 판단하면 불필요한 describe_table 호출을 억제하도록 설계할 수 있으나, 잘못된 권고는 컬럼명 추정과 오류-재시도 루프를 유발할 수 있다. 따라서 프롬프트 내 호출 권고의 문구 조정이 중요하다.

기술

  • dspy
  • Datasette Agent
  • Claude Fable
  • GPT 4.1 mini
  • GPT 4.1 nano

활용 사례

  • 시스템 프롬프트 자동 평가 및 튜닝
  • 읽기 전용 SQL 실행 에이전트의 신뢰성 개선
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 07. 03.수집 2026. 07. 03.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.