◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/API / SDK
◈ API / SDK/2026-04-24上級

Gemini API Safety Settings の本番運用設計 — 誤ブロックを最小化しつつ悪意ある入力を止めるレイヤード・モデレーション

Gemini API の Safety Settings だけに依存すると、正当な質問が誤ブロックされたり、プロンプトを工夫した悪意のある入力が通ったりします。本番で耐えられる 4 層モデレーション設計を解説します。

gemini-api288safety-settingscontent-moderationproduction105harm-categoryguardrail

✦ プレミアム記事

Gemini API を使った医療相談アプリに「妊娠中に飲める頭痛薬」を入力したら、finishReason: SAFETY で空文字が返ってきた — そんな経験をされた方は少なくないのではないでしょうか。かといってすべての HARM_CATEGORY を BLOCK_NONE に下げると、今度は悪意のある利用者のプロンプトが素通りしてしまいます。この二律背反は、Safety Settings を「単一のスイッチ」として捉えているうちは解決しません。

私はここ半年ほど、Gemini API を組み込んだいくつかのサービスで、入力と出力の両方に別々のモデレーションを重ねる「レイヤード・モデレーション」という設計に落ち着きました。ここでは公式ドキュメントの API リファレンスには載っていない、運用上の勘所と具体的な実装パターンを共有します。読み終えたときには、誤ブロック率を下げながら、プロンプトインジェクションのような悪意ある入力も止められる、本番で使える設計が手に入るはずです。

なぜ Safety Settings 単体では本番運用に耐えないのか

Gemini API の safetySettings は、HARM_CATEGORY_HARASSMENT など 5 カテゴリ(モデルによっては 4 カテゴリ)に対して BLOCK_LOW_AND_ABOVE から BLOCK_NONE までの 4 段階の閾値を設定する仕組みです。一見シンプルですが、本番でこれだけに頼ると以下の問題が必ず表面化します。

第一に、Gemini のセーフティ分類器は「潜在的にリスクのある表現」を確率的にスコアリングしているため、医療・法律・歴史・創作・教育といった正当なトピックでも誤検知が発生します。たとえば「戦国時代の合戦の戦術」や「抗がん剤の副作用」「離婚に伴う財産分与」のような、専門家に質問すれば 10 秒で答えが返ってくる内容でもブロックされることがあります。特にエンタープライズ用途では、この誤ブロックがそのままユーザーからの問い合わせに直結します。

第二に、Safety Settings を緩めても防げない攻撃があります。プロンプトインジェクション、Jailbreak、PII 抽出、システムプロンプト露出などは、HARM_CATEGORY のどれにも明確には該当しないため、閾値をどう調整しても防ぎきれません。別途専用のガードレールを用意する必要があります。

第三に、Safety Settings は「応答をブロックする」か「応答させる」かの二択しか提供しません。本番運用では「応答はさせるが、ログを残して人間がレビューする」「ユーザーには曖昧に返し、運営には詳細通知する」といった中間的な制御が必要になる場面が頻出しますが、これを API レベルで実現することはできません。

この 3 つの制約を踏まえると、Safety Settings は「第一の防波堤」として使いつつ、入力側と出力側にそれぞれ独立した検査レイヤーを配置し、最後にヒューマン・イン・ザ・ループを組み込む、というのが現実的な構成だと私は考えています。

レイヤード・モデレーションの全体像

本番運用に耐える構成は、次の 4 層に分解できます。

  • Layer 1 — Input Filter: ユーザー入力を Gemini に渡す前に、軽量な分類器または正規表現で明らかな有害・悪意・PII 含有入力を弾きます。ここで止まった入力は Gemini を呼ばないため、コストも削減できます
  • Layer 2 — Model Safety Settings: safetySettings をユースケース別にチューニングします。医療アプリならハラスメントは厳しめ、創作アプリなら性表現を緩めにする、といった具合に、トピックごとの既定値を定義します
  • Layer 3 — Output Filter: Gemini からの応答を、別モデル(安価な gemini-2.5-flash-lite など)で二次分類し、危険な情報漏洩やハルシネーションを検出します
  • Layer 4 — Human Review Loop: スコアが閾値付近のケースや、ユーザーからの報告ケースをキューに溜め、人間がレビューしてモデレーションのルールを継続的に更新します

重要なのは、各層が独立しているため、たとえ 1 層を回避されても他の層で捕捉できるという多重防御の発想です。また、それぞれの層で扱う「誤ブロック」と「見逃し」のトレードオフが異なるため、層ごとに最適化ができます。

✦

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

この記事の続きを読む

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

この記事で得られること
✦Safety Settings の誤ブロックで問い合わせが急増していた開発者が、ユーザー体験を壊さずに安全側を担保できる
✦入力前処理・モデル設定・出力後処理・ヒューマン介入の 4 層モデレーションを動くコードで習得できる
✦医療・法律・創作など正当トピックが引っかかる案件で、本番運用に耐える緩和と強化の使い分けが実装できる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

◈ API / SDK2026-07-04
Gemini API の英語出力に日本語が『たまに』混ざるとき — 混入率を計測して段階的に締める運用メモ
英語出力を指示したGemini APIが、100回に数回だけ日本語を混ぜてくる——この『たまに』を止められない本当の理由と、混入率をSLOとして計測し、段階的リカバリで本番品質まで締める運用パターンを実装コード付きで整理します。
◈ API / SDK2026-05-20
Gemini API 構造化出力スキーマを本番アプリで安全に進化させる設計記録
本番アプリで Gemini API の JSON 出力スキーマを変えるとき、何を契約として守り、何を段階的に切り替えるか。旧版と新版を同時に返す Dual-Emit パターン、旧スキーマ利用箇所を見積もる compatibility checker、Sunset プロトコルの実装記録です。
◈ API / SDK2026-05-02
Gemini API を個人アプリに組み込む時の 7 つの設計判断 — エラー設計から品質モニタリングまで
Gemini API を個人アプリに本番導入した時に直面する設計判断を、私自身の運用記録から 7 つに絞ってまとめました。コストとレイテンシのトレードオフ、エラー時のフォールバック設計、品質モニタリングまで、教科書には載っていない実戦的な判断軸を共有します。