CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/API & SDK
API & SDK/2026-05-30上級

Claude の品質回帰を eval ハーネスで自動検出する設計

プロンプトを少し直したら、別の入力で出力が静かに悪化していた。本番投入した Claude の品質をプロンプト変更やモデル更新のたびに守るための eval ハーネスを、実装コードと運用での実測値とともに整理しました。

Claude45eval品質保証3LLM-as-judgeAPI26

プレミアム記事

プロンプトを直したら、別の入力で静かに壊れていた

ある分類タスクのプロンプトを「もう少し丁寧に分類させよう」と一行だけ書き換えて本番に出したことがあります。手元で試した数件は確かに良くなっていました。ところが数日後、特定のカテゴリだけ精度が落ちているという報告が届きました。自分が確認した入力では改善していたのに、確認していなかった入力で静かに悪化していたのです。

私は 2014 年から個人でアプリを開発し、累計 5,000 万ダウンロードほどのユーザーに届けてきました。コードであれば、変更が既存の挙動を壊していないかをテストが守ってくれます。ところが Claude を組み込んだ機能では、同じプロンプトでも入力次第で出力が変わるため、従来のアサーション型テストがそのままでは効きません。数件試して良さそうだから出す、という運用は、入力分布の一部しか見ていない賭けでした。

そこで作ったのが、プロンプトやモデルを変えるたびに品質の回帰を機械的に検出する eval ハーネスです。手を動かして作ることが一つの信心だと宮大工だった祖父から教わったのですが、評価基盤こそ地味に手を動かして整えるほど後で効いてきます。実装コードと、私の運用で見えた数値を共有します。

なぜ単体テストではなく eval が要るのか

Claude の出力は決定的ではありません。temperature を 0 にしても、入力がわずかに違えば出力は変わりますし、モデルのマイナー更新でも挙動は動きます。つまり守りたいのは「特定の入力に対する特定の文字列」ではなく、「入力分布全体に対する品質の水準」です。

ここが従来テストとの決定的な違いです。単体テストは一点を固定しますが、eval は分布を測ります。守るべき指標は次の二つに集約できます。第一に、代表的な入力群に対する平均品質スコア。第二に、その分散、とりわけ最低スコア帯の悪化です。冒頭の事故は平均だけ見ていたら見逃していました。特定カテゴリという部分集合での悪化は、層別のスコアを見て初めて表に出ます。

ゴールデンデータセットを最小構成で作る

eval の土台はゴールデンデータセットです。完璧な期待出力を用意する必要はありません。むしろ「合格条件(ルーブリック)」を入力ごとに添えるほうが現実的です。私は最初の一週間で 40 件だけ作り、その後事故やクレームが出るたびに 1 件ずつ足して、半年で 200 件まで育てました。

# golden.jsonl — 1行1ケース。expected は文字列一致ではなくルーブリックで持つ
# {"id": "cat-012", "category": "返金", "input": "...", "rubric": ["返金カテゴリに分類している", "理由を1文で述べている", "個人情報を出力に含めない"]}
 
import json
from pathlib import Path
 
def load_golden(path: str) -> list[dict]:
    cases = []
    for line in Path(path).read_text(encoding="utf-8").splitlines():
        line = line.strip()
        if line:
            cases.append(json.loads(line))
    return cases

ポイントは、ルーブリックを「客観的に YES/NO で判定できる項目」に分解することです。「丁寧であること」のような曖昧な基準は判定がぶれます。「理由を 1 文で述べている」「指定外のカテゴリ名を使っていない」のように、人間が見ても判定が割れない粒度まで落とすのが、後述する判定一致率を上げる最大のコツでした。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
プロンプト変更やモデル更新で品質が静かに落ちたことを push 前に検出する eval ハーネスの完全な実装コード
LLM-as-judge の評価ブレを抑えるルーブリック設計と、人手評価との一致率を 68% から 91% へ引き上げた具体策
CI に組み込んで回帰を止める閾値の決め方と、私の運用での 200 件ゴールデンセットの実測コスト
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API & SDK2026-07-14
ユーザーに届くAI生成の短文を、公開前に二段ゲートで止める
アプリでユーザーに配信するAI生成の短文に、決定的ルール層とClaude分類層の二段公開ゲートを組む設計です。fail-closed・生成時検疫・コスト設計まで、実装コード付きで整理しました。
API & SDK2026-07-12
非ストリーミングの長い応答が10分の壁で黙って二重課金されていた — SDK既定のタイムアウトと自動リトライを設計し直す
Anthropic SDK の既定タイムアウト10分と自動リトライ2回が、長い非ストリーミング応答を裏で二重に走らせて課金することがあります。発生の仕組みと、ストリーミング切替・明示的な timeout/max_retries・ローカル台帳で止める実装を、実測値とともにまとめました。
API & SDK2026-06-22
Claude API の静的キーをやめる — Workload Identity Federation で CI と本番を鍵なしに切り替える
Claude Platform で一般提供が始まった Workload Identity Federation を使い、sk-ant- 形式の静的キーを数分で失効する OIDC トークンへ移行する設計を扱います。GitHub Actions の鍵なし認証、移行手順、トークン更新まで具体的に整理しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →