できること
エンドカスタマーの識別
各 API リクエストがどのエンドカスタマー向けかを、プロファイル ID によって Anthropic に伝えられます。
措置の範囲を顧客単位に
制限や禁止などの安全上の執行措置を、組織全体ではなく 1 つのエンドカスタマーに適用させられます。リクエストにプロファイルが無い場合は、1 つのエンドカスタマーが組織全体に及ぶ措置のきっかけになる場合があります。
制限・禁止の状況確認
プロファイルの enforcement_status と enforcement_actions フィールドで、Anthropic がエンドカスタマーを制限または禁止しているかを確認できます。enforcement_status[] フィルターで、該当するプロファイルを一覧できます。
機能解説
概要
プラットフォームやゲートウェイを運営する事業者、API アクセスを再販する事業者は、プロファイルを使うことで、制限や禁止といった安全上の執行措置を組織全体ではなく 1 つのエンドカスタマーに適用させることができます。
プロファイルは、自社のエンドカスタマーを Anthropic に対して識別するための仕組みです。プロファイルは組織に属し、その ID は組織内のどのワークスペースからのリクエストでも使えます。
プロファイルが表すものは、Claude をどのように提供しているかで決まります。access_type フィールドが、自社製品を使う個人 (application) か、API アクセスを再販する先の企業 (passthrough) かを示します。
データの扱いは次のとおりです。
- プロファイルに含まれるのは、エンドカスタマーについて自社が送った情報と、Anthropic が設定するプログラムの状態や執行措置の状態だけです。会話の内容は含まれません。
- Anthropic は、プロファイルで送られた情報の真偽を検証しません。
- プロファイルそれ自体は、請求や料金を変更しません。
対象プランについては、公式のリリースノートには記載がありません。
送る情報とリクエストへの付与
プロファイルで送れるフィールドは、すべて任意です。name、metadata に加え、external_user_details の中で次のフィールドを送れます。
entity_typecountryreference_idonboarded_ataccount_statusname_hashemail_hash
passthrough のプロファイルでは、リクエストが特定できる 1 人の人物から来ている場合、Messages リクエストの metadata.user_id フィールドにその人物の識別子も送れます。これは、1 人による不正利用を Anthropic が検出する助けになります。
anthropic-user-profile-id ヘッダーは、トークンカウント、Message Batches、OpenAI SDK 互換のリクエストでも同じように機能します。バッチに付けた場合は、バッチ内のすべてのリクエストに適用されます。プロファイル ID の形式が不正な場合や、リクエストを送った組織に属さない場合、API は 400 invalid_request_error を返します。
Claude in Amazon Bedrock では、リクエストボディの最上位にある user_profile_id フィールドにプロファイル ID を入れます。AWS アカウントや Google Cloud プロジェクトの紐付けは、組織の admin または owner が Verification Portal の Linked accounts (リンク済みアカウント) から開始し、AWS アカウントや Google Cloud プロジェクトで IAM を管理できる担当者がポータルの示すコマンドを実行したうえで、admin または owner がポータルで検証を完了します。
制限・禁止の確認
プロファイルの enforcement_status と enforcement_actions フィールドは、Anthropic がそのエンドカスタマーにかけている継続中の制限や禁止を示します。執行措置が継続している間、Anthropic はそのプロファイル ID が付いた推論リクエストの一部またはすべてを拒否します。
- 個別のプロファイルを確認するには、
GET /v1/user_profiles/{id}で取得します。 - 継続中の措置があるプロファイルを探すには、
enforcement_status[]=restrictedとenforcement_status[]=bannedを指定してプロファイルを一覧します。
作成・更新・削除の注意点
POST /v1/user_profilesは冪等ではありません。reference_idが既存のプロファイルと一致していても、呼び出すたびに新しいプロファイルが作成されます。POST /v1/user_profiles/{id}でプロファイルを更新すると、送ったフィールドだけが変更されます。metadataはキー単位でマージされ、空文字列を送るとそのキーが削除されます。DELETE /v1/user_profiles/{id}は、プロファイルと、そのために自社が提供した情報を完全に削除します。ただし、そのプロファイル ID について Anthropic が保持する trust and safety の記録は削除されません。- 削除の前に、そのエンドカスタマーのリクエストでプロファイル ID を送るのをやめます。削除でサーバーエラーが返った場合は再試行し、再試行で
404が返れば最初の削除は完了しています。
使い方
SDK と ant CLI は /v1/user_profiles エンドポイントに対応しています。
- 顧客オンボーディングの流れの中で、Claude にトラフィックを送るエンドカスタマーごとに 1 回、
POST /v1/user_profilesでプロファイルを作成します。 - ゲートウェイ経由で API アクセスを購入する企業の場合は
access_typeをpassthroughにします。applicationのプロファイルの場合はaccess_typeを省略し、企業ではなく 1 人のエンドユーザーをnameとexternal_user_detailsに記述します。 - 返された
idを自社の顧客レコードに保存します。各サービスインスタンスは独自にプロファイルを作らず、顧客レコードから ID を読み取るようにします。 - エンドカスタマーの代わりに行うすべてのリクエストで、
anthropic-user-profile-idヘッダーにプロファイル ID を付けて送ります。SDK と CLI には、このヘッダーを付ける引数user_profile_id(CLI では--user-profile-id) があります。
利用シーン
API アクセスを再販する事業で、顧客企業ごとに passthrough のプロファイルを作り、リクエストを顧客企業に紐付ける場面に使えます。
自社アプリの利用者ごとに application のプロファイルを作り、安全上の措置の適用範囲を利用者単位に分ける場面に向いています。
enforcement_status[] フィルターでプロファイルを一覧し、制限・禁止中のエンドカスタマーを把握する運用に使えます。
エンドカスタマーとの取引終了時に、ID の送信を止めてからプロファイルを削除する手続きに使えます。
ChatGPT・OpenAI の対応する機能
比較の単位となる業務: API 再販・プラットフォーム事業者によるエンドカスタマー単位の識別と安全措置状況の確認
Responses API では、生成リクエストに moderation オブジェクトを渡すと、モデルの入力と生成出力の両方のモデレーション結果を同じレスポンスで受け取れます。これはリクエスト単位で結果を受け取る仕組みです。
User profiles では、リクエストにエンドカスタマーのプロファイル ID を付けます。Anthropic がそのエンドカスタマーにかけている継続中の制限や禁止は、プロファイルの enforcement_status と enforcement_actions フィールドで確認できます。
これまでの変更
プロファイルに
enforcement_statusとenforcement_actionsフィールドが追加されました。あわせて、継続中の制限や禁止があるプロファイルを探すためのenforcement_status[]フィルターが追加されました。User profiles がリリースされ、各 API リクエストがどのエンドカスタマー向けかを Anthropic に伝えられるようになりました。SDK と ant CLI が
/v1/user_profilesエンドポイントに対応しました。