Tips 2026.04.23

Claude Code内でプロンプトをA/Bテストするn Pythonモジュールの使い方

タグ:Claude / ClaudeCode / Python / プロンプト / 生成AI

TL;DR

  • Claude Code の中でプロンプト(生成AIへの質問文)を複数パターン一気に試し、結果を比較できるPythonモジュールが公開された
  • 同じタスクに対して「どの聞き方が一番いい結果を出すか」を自動で測定できる
  • コードは自分のプロジェクトにそのままコピーして使える構成になっている

変更内容の詳細

このモジュールが解決する問題

生成AIを使っていると「この聞き方のほうがいい答えが返ってくるかな?」という場面がよくあります。でも実際には、何度か試してみてなんとなく決める、という進め方になりがちです。

dev.to に掲載されたこの記事(著者: frank_brsrk)では、Claude Code の中で動くPythonモジュールを自作し、複数のプロンプトを並べてA/Bテストする仕組みを紹介しています。ソフトウェア開発でいう「A/Bテスト」とは、AパターンとBパターンを同じ条件で試して、どちらが優れているかを数値で比べる手法のことです。

モジュールの基本的な動き

記事で紹介されているモジュールは、以下のような流れで動作します。

  1. テストしたいプロンプトを複数定義する
  2. 各プロンプトをClaude Code経由でモデルに送信する
  3. 返ってきた結果を並べて表示・比較する

記事内で示されているコードの核心部分は次のような構造です(記事に掲載されたコードを要約)。

# プロンプトのバリエーションを定義
prompts = [
    "以下のコードのバグを修正してください:\n{code}",
    "次のコードに問題があります。原因を特定して修正案を示してください:\n{code}",
]

# 各プロンプトで結果を取得して比較
for i, prompt in enumerate(prompts):
    result = run_claude(prompt.format(code=your_code))
    print(f"--- バリエーション {i+1} ---")
    print(result)

実際のモジュール全体は記事のリポジトリ(記事内リンク)から取得できます。

評価の仕組み

記事によると、このモジュールは単に複数の回答を並べて表示するだけでなく、評価基準(メトリクス)を設定して数値で比べる機能も持っています。たとえば「回答の長さ」「特定のキーワードが含まれているか」「コードブロックの数」などを基準にできると説明されています。

これにより、「なんとなくこっちが良さそう」という感覚的な判断から、「この指標ではAが優れている」という客観的な判断に切り替えられます。


既存ユーザーへの影響と対応

Claude Code を日常的に使っている開発者向け

すでにClaude Code をコーディング補助に使っている場合、このモジュールを導入することで次のような場面で役立ちます。

  • コードレビューの質問文を最適化したい:「バグを見つけて」と「セキュリティ上の問題を指摘して」のどちらが有益な回答を引き出すかを比べられる
  • ドキュメント生成の精度を上げたい:関数の説明を書かせるときの聞き方を複数試して、読みやすい出力を選べる
  • チームで使う質問文のテンプレートを作りたい:何度もテストして「チームの標準プロンプト」として固める、という使い方ができる

注意点

記事では「自分のプロジェクトで動かせる」と説明されていますが、Claude Code の API(連携機能)の利用にはAnthropicのアカウントと利用料金が発生します。大量のテストを走らせると送受信する文字数が増え、コストが上がる可能性がある点には注意が必要です(※利用料金の詳細はAnthropicの公式サイトを確認してください)。

また、評価基準の設計はユーザー自身が行う必要があるため、「何をもって良い回答とするか」を事前に明確にしておくと、テスト結果がより意味のあるものになります。


試し方(手順)

前提条件

  • Python 3.x がインストールされていること
  • Claude Code がセットアップ済みであること
  • Anthropic の APIキーが取得済みであること

基本的な手順

記事の内容をもとに、導入の大まかな流れをまとめます。

ステップ1: モジュールを自分のプロジェクトに追加する

記事で公開されているコードをコピーし、プロジェクト内に prompt_ab_test.py などの名前で保存します。

ステップ2: テストしたいプロンプトを定義する

# prompt_ab_test.py を使う例(記事の構造を参考に簡略化)
from prompt_ab_test import ABTester

tester = ABTester()

tester.add_variant(
    name="シンプル版",
    prompt="このコードを改善してください:\n{code}"
)
tester.add_variant(
    name="詳細版",
    prompt="以下のコードについて、パフォーマンス・可読性・セキュリティの観点から改善点を挙げてください:\n{code}"
)

ステップ3: テストを実行して結果を確認する

results = tester.run(code=your_target_code)
tester.report(results)

実行後、各バリエーションの出力と設定した評価指標の結果が並べて表示されます。

ステップ4: 結果を見て質問文を絞り込む

複数回実行して安定して良い結果を出すプロンプトをチームの標準として採用する、という流れが記事では推奨されています。


関連リンク

参考ソース