DSPyを活用してDatasette AgentのSQLシステムプロンプトを評価・改善する
サマリー
DSPyを用いてDatasette AgentのSQLプロンプトを評価し、改善の方向性を探る研究が行われました。特に、スキーマリストにカラム名を含めることが提案されています。これにより、エラーの発生を減少させることが期待されます。
本文
今朝のAIE基調講演の一つで、DSPyについての話がありました。これを機に、Datasette Agentが使用するシステムプロンプトの改善に役立つかどうかを調べることにしました。Claude Codeを使って非同期の研究タスクを実行し、最新のDatasetteアルファ、datasette-agent、DSPyをインストールしました。その後、Datasette Agentがデータに関するユーザーの質問に答えるために実行する読み取り専用SQLクエリの主なシステムプロンプトを評価・改善する方法を模索しました。
FableはGPT 4.1 miniとnanoを使用してテストを行い、いくつかの改善の方向性を特定しました。特に注目したのは、スキーマリストがテーブル名のみを提供している点です。「すでに情報がある場合はdescribe_tableを呼び出さない」というアドバイスが、カラム名の推測(page_count、o.order_id、first_name)やエラー再試行ループを引き起こしていることが分かりました。プロンプトのスキーマリストにカラム名を含めるか、そのアドバイスを緩和することが必要です。
FableはGPT 4.1 miniとnanoを使用してテストを行い、いくつかの改善の方向性を特定しました。特に注目したのは、スキーマリストがテーブル名のみを提供している点です。「すでに情報がある場合はdescribe_tableを呼び出さない」というアドバイスが、カラム名の推測(page_count、o.order_id、first_name)やエラー再試行ループを引き起こしていることが分かりました。プロンプトのスキーマリストにカラム名を含めるか、そのアドバイスを緩和することが必要です。