DuckDBチームは10月9日、v2.0のコマンドラインにエージェントモードを追加したとブログで説明した。Claude Code、Codex、Cursor、Gemini CLI、GitHub Copilotなどが設定する環境変数が立っていて、標準出力が端末ではなく、コマンドラインで出力形式を指定していなければ有効になる。-csvや-json、-markdownを渡すと、その形式指定が優先されてモードは入らない。-agentで強制でき、-no-agentで止められる。
人が読む枠線付きの表は、モデルには余白のトークンになり、省略も見落としやすい。モード中は型をヘッダに入れたMarkdownの表になる。結果は1,000行かつ10,000バイトまでを全文出し、それを超えると先頭と末尾の各20行、省略した行数、結果全体のハッシュをフッターに出す。ハッシュは上限を超えた行も対象で、行の順序には依存しない。さらに10万行を数えた時点で問い合わせを止め、件数は下限として報告する。10億行のrangeは、ブログの例では30ミリ秒で戻る。エラーはstderrへJSONで出し、プランナが100万行以上の読み取りを見込む文は、実行前に見積もりをstderrへ出す。
Claude CodeにTPC-Hの22問(スケールファクタ100、SQLなしの英語)を、モードありと-no-agentで各3回、合計132回解かせた実験では、すべて正解だった。モデルが読んだDuckDBの出力は123.6kトークンから50.8kトークンへ減り、減少率は59%だ。システムプロンプトが出力より大きいため、入力全体に占める削減は約0.5%で、ターン数は237と224でモードありの方がわずかに多かった。上がるのは正しさの方で、省略結果を全件と扱わせないことが主目的だ。自動で切り替わるのは、エージェントのPATHにあるduckdbがv2.0以降のときだけである。