エージェントワークフロー · 2026年9月21日
AIエージェントに安全なメール送信権限を与える方法
AIエージェントにAPIキーを渡すことはリスクそのものです。スコープ付きの認証情報、承認の境界、冪等性を実装して、エージェントが引き起こすメール事故を防ぐ方法を解説します。
エージェントによるメール送信の核心的な課題
AIエージェントに安全なメールアクセスを与えるには、メール送信を高リスクな外部への副作用として扱う必要があります。エージェントにルートAPIキーを渡してはいけません。代わりに、ワークスペース単位の認証情報を使い、大量送信や機密性の高い送信にはヒューマン・イン・ザ・ループの承認境界を設け、LLMの再試行時の重複送信を防ぐために冪等キーを強制してください。このアーキテクチャにより、送信されるすべてのメッセージを監査できる状態を保ちつつ、エージェントによる被害範囲を限定できます。
インシデント対応を担うエンジニアとして、エージェントがループに陥ったり、配信リストをハルシネーションで作り出したりしたときに何が起こるかを見てきました。エージェントがトランザクションメールのプロバイダーに無制限にアクセスできると、たった1つのロジックエラーで、ドメインのレピュテーションが数分で失われかねません。エージェントがメッセージを作成する能力と、システムがそれを送出する権限とを切り離す必要があります。
AIメールエージェントのリスク特性
LLMをメールのワークフローに組み込むと、主に3つの障害モードが生じます。
- 無限ループ:エージェントが送信を実行し、バウンスや返信を受け取って即座に応答し、再帰的なループが生じます。その結果、送信量が急増し、レート制限に達します。
- ハルシネーションによる受信者:エージェントがもっともらしいものの誤ったメールアドレスを生成し、バウンス率が上がり、送信者レピュテーションが損なわれます。
- コンテキストのずれ:エージェントが会話の本来の意図を見失い、顧客に無関係な内容や不適切な内容を送り始めます。
こうしたリスクをさらに大きくしているのが、従来のメールAPIの多くが、確率的なAIのロジックではなく、決定的なアプリケーションロジックを前提に設計されているという事実です。標準的なAPIキーを使っていると、プロバイダーは正当なシステム通知と、暴走したエージェントとを区別できません。
スコープ付きの認証情報を実装する
最初の防御線は最小権限の原則です。アカウント全体に有効なグローバルキーを使ってはいけません。エージェントを特定のドメインやテンプレートに制限する、ワークスペース単位のAPIキーを使ってください。
たとえばSendHQを使っている場合、ワークスペース単位のAPIキーを利用して、エージェントが特定の検証済みドメインからしか送信できないようにできます。これにより、エージェントが誤って他の社内ドメインになりすましたり、管理設定にアクセスしたりするのを防げます。
ペイロードの構造
エージェントが送信を要求する際、ペイロードには監査用のメタデータを含めるべきです。エージェントにfromアドレスを動的に決めさせないでください。fromアドレスはバックエンドにハードコードし、エージェントにはto、subject、body(またはテンプレート変数)だけを指定させます。
{
"to": "customer@example.com",
"template_id": "welcome-email-01",
"variables": {
"first_name": "Jane",
"onboarding_step": "API Integration"
},
"idempotency_key": "req_agent_88234_step_1",
"metadata": {
"agent_id": "support-bot-v2",
"conversation_id": "conv_9912"
}
}
重複送信の問題を解決する
LLMはタイムアウトや再試行を起こしがちです。エージェントがメールAPIを呼び出し、リクエストが応答しなくなってエージェントが再試行すると、同じメールを2回送信するおそれがあります。これはユーザー体験を損なうだけでなく、送信パターンが不安定であることを迷惑メールフィルターに示すシグナルにもなります。
そこで冪等キーが必須になります。冪等キーとは、クライアント(エージェントのオーケストレーター)が生成する一意の値で、APIはこれを使って同じリクエストの再試行を識別します。すでに処理したキーを受け取った場合、APIはメールを再送せずに、元の成功レスポンスを返します。
承認の境界とヒューマン・イン・ザ・ループ(HITL)
すべてのメールに人間の目による確認が必要なわけではありませんが、高リスクなメールには必要です。エージェントの信頼度スコアや受信者の重要度に基づく、段階的な承認の仕組みをおすすめします。
レベル1:自動(低リスク)
- トランザクションの通知(例:パスワードリセット)。
- 確定済みの予約のリマインダー。
- これらは承認キューを経由しません。
レベル2:要確認(中リスク)
- カスタマーサポートの返信。
- リードデータに基づくアウトリーチ。
- これらはダッシュボードのキューに入り、人間が「承認」または「編集」をクリックします。
レベル3:ブロック(高リスク)
- 経営幹部宛てのメール。
- 一斉告知。
- これらは手作業での作成か、厳格なテンプレートによる上書きが必要です。
インフラコストのトレードオフ
エージェント用のプロバイダーを選ぶ際は、コストと、安全性に必要な機能(細かく設定できるAPIキーや配信イベントなど)とのバランスをとる必要があります。
Amazon SESの料金によると、à-la-carteでの送信は1,000通あたり0.10 USDです。ただし、2026年7月21日に導入された新しい料金プランでは計算が変わります。Essentialsは1,000通あたり0.16 USD、Proは1,000通あたり0.22 USDに加えてリージョンごとに月額105 USD、Enterpriseは1,000通あたり0.23 USDに加えて月額500 USDです。
他のプロバイダーと比べてみましょう。
- Resendは月3,000通(1日100通まで)の無料プランを提供しており、Proプランは月額20 USDで50,000通、超過分は1,000通あたり0.90 USDです。
- SendGridの無料プランは現在60日間のトライアルで、Essentialsは月額19.95 USDからです。
- Mailgunは月額15 USDで10,000通からで、超過分は1,000通あたり1.80〜1.10 USDです。
- Postmarkは月額15 USDで10,000通からで、超過分は1,000通あたり1.80〜1.20 USDです。
純粋にコストだけを見れば、50,000通の送信はSESのà-la-carteで約5 USD、Postmarkのプランで約66 USDです。しかし、コストだけが指標ではありません。AIエージェントの場合、エージェントが無効なアドレスに繰り返しメールを送るのを防ぐため、堅牢な配信イベントと管理しやすいサプレッションが必要です。
監査証跡とテレメトリー
エージェントが問題のあるメールを送信した場合、その理由を正確に把握する必要があります。ログでは、メールIDを、LLMのプロンプトと、エージェントのシステム指示の特定のバージョンに関連付けておくべきです。
監査ログに不可欠なフィールド
message_id:プロバイダーが付与する一意のID。agent_version:使用したプロンプトの具体的なバージョン。prompt_hash:LLMに与えた入力コンテキストのハッシュ。approval_timestamp:人間が送信を承認した日時。delivery_status:受信側サーバーがメールを受け付けたかどうか。
プロバイダーによる受け付けは配信と同じではなく、配信は受信トレイへの到達と同じではないことを覚えておいてください。エージェントがAPIから202 Acceptedを受け取っても、SPFやDKIMの失敗によって、受信者のサーバーでメールが破棄される可能性があります。エージェントに1通でも送信させる前に、SendHQのメールDNSチェッカーのようなツールを使って、レコードが正しいことを確認してください。
AIエージェントのための到達率チェックリスト
エージェントを本番環境にデプロイする前に、次のチェックリストを確認してください。
- DNSの検証:SPF、DKIM、DMARCは設定されていますか?(詳細はDKIM、SPF、DMARCのガイドを参照してください)。
- スコープ付きキー:エージェントには、特定のワークスペースまたはドメインに限定されたキーがありますか?
- 冪等性:重複を防ぐため、リクエストごとに一意のキーがありますか?
- レート制限:エージェントが1時間に送信できるメール数に厳格な上限がありますか?
- サプレッションの同期:エージェントは送信を試行する前にサプレッションリストを確認しますか?
- ヒューマンインザループ:高リスクのメールを介入して止める仕組みがありますか?
エラーケースへの対処
エージェントのオーケストレーターは、APIエラーを適切に処理する必要があります。401 Unauthorizedや429 Too Many Requestsのエラーを、エージェントがペイロードを変えて「修正しようとする」ことがないようにしてください。これらはコンテンツの問題ではなく、インフラの問題です。
エラーコード | 意味 | エージェントの対応
400 Bad Request | 無効なペイロード | エラーをログに記録し、開発者に通知し、エージェントを停止
401 Unauthorized | 無効なAPIキー | 直ちにサーキットブレーカーを作動させ、管理者に通知
429 Too Many Requests | レート制限に到達 | 指数バックオフ。直ちに再試行しない
500 Internal Error | プロバイダー側の問題 | 後で処理するためキューに入れる。エージェントに再試行ループをさせない
まとめ
AIエージェントに顧客とやり取りする能力を与えることは、強力な戦力の増強になりますが、同時にリスクでもあります。メールを副作用として扱い、認証情報のスコープを厳格に制限し、冪等性を実装することで、ドメインのレピュテーションを危険にさらさずにAIのスピードを活かせます。プロンプトだけでなく、境界に目を向けてください。
SendHQで、安心してエージェントのワークフローを構築しましょう。