0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Duet の権限表を自前エージェントに写す

0
Posted at

AI 生成のイメージ図です。製品画面のスクリーンショットではありません。

4 分類と拒否リストで、承認と禁止をコードに固定する

背景

プロアクティブ型のエージェントを自前で作ると、最初に詰まるのはモデルの選定ではなく「どこまで許可するか」の設計です。何を確認なしで実行させ、何を毎回止めて人に聞き、何を承認があっても実行させないのか。この三つを決めないまま実装すると、あとから設定を足すことになり、設定は外せるので禁止になりません。

Anthropic の Claude Duet は 2026 年 10 月 21 日に研究プレビューを開始し、米国の Pro/Max 購読者にウェイトリストで順次招待しています。この製品は承認ルールと禁止事項を公式文書でかなり具体的に書いているため、権限設計の参照実装として読めます。以下では、公開されている仕様を「権限表」の形に整理し、自前のエージェントに写すときの実装メモとしてまとめます。

前提

項目 内容
対象 Claude Duet 研究プレビュー(2026 年 10 月 21 日開始)
提供範囲 米国の Pro/Max 購読者、ウェイトリスト招待制(Team/Enterprise は対象外)
参照した一次資料 発表記事、安全性・プライバシー・セキュリティ文書、製品ページ、ヘルプセンター(いずれも 2026 年 10 月 26 日閲覧)
検証範囲 公式の公開資料に記載された仕様(プレビューは米国の招待対象者に限定)
コード Python 3.11 の構文による設計用の擬似コード

権限の 4 分類

公開仕様を読むと、操作は次の四つに分かれます。分類の境目は「取り消せるか」ではなく「取り返しがつくか」です。

分類 例 承認 補足
1. 読むだけ 受信トレイの要約、問い合わせの下書き、カレンダーの確認 不要 外部への送信を含まないもの
2. 取り消せる操作 下書きの作成、社内メモの整理、検索 不要 実行ログは残す
3. 取り返しがつかない操作 メッセージ送信、支払い、署名、削除、アカウント作成 毎回必要 承認カードに「操作・対象・内容・宛先すべて」を表示
4. 恒久禁止 有価証券の売買、口座間の送金、他人のアカウントへのアクセス 承認しても不可 設定で解除できない

この表で実務上いちばん重要なのは 4 行目です。公式文書には、支払い・送金・注文の削除・アカウント作成について「今後は確認しない」設定が存在しないと明記されています。つまり禁止事項は制御ではなく仕様として固定されている。自前実装でここを設定ファイルに置くと、誰かが一行消した瞬間に禁止が消えます。

承認フローの実画面です。操作・対象・内容・宛先がカードに並びます(公式ページのスクリーンショット、2026 年 10 月 26 日取得)。

実装メモ

権限表をコードに落とすとき、判定を三つの関数に分けると見通しが良くなります。

# 設計用の擬似コード(Python 3.11 の構文)。
IRREVERSIBLE = {"send_message", "pay", "sign", "delete", "create_account"}

# 分類 4: 承認があっても実行しない。設定ファイルではなくコードに固定する。
DENY_ALWAYS = {
    "trade_securities",
    "transfer_between_accounts",
    "access_third_party_account",
}


def classify(action: str) -> str:
    if action in DENY_ALWAYS:
        return "denied"          # 恒久禁止
    if action in IRREVERSIBLE:
        return "needs_approval"  # 毎回確認
    return "allowed"             # 読むだけ/取り消せる操作


def approval_card(action, target, content, recipients) -> dict:
    # 宛先を必ず含める。あとから「誰に送ったか」を説明できるようにするため。
    return {
        "action": action,
        "target": target,
        "content": content,
        "recipients": list(recipients),
    }

DENY_ALWAYS を環境変数やデータベースに置きたくなる気持ちは分かりますが、置くと「運用で回避できる禁止」になります。禁止は定数、承認はフラグ、記録は追記専用ログ、と役割を分けておくと事故が減ります。

実装後の確認

権限表は書いた時点では正しさを保証しません。稼働後に見るべき数字を三つ決めておくと、表が機能しているかを判断できます。

見る数字 何が分かるか 異常の例
承認までの時間 内容を読んでいるか 中央値が数秒(読まずに押している)
却下率 提案の質 ほぼ 0%(確認が形骸化)または 50% 超(提案が雑)
分類 3 の発生回数 運用負荷 1 日数十件(分類 2 に寄せられないか再検討)

却下率が極端に低い状態は、制御が効いている証拠ではなく、確認が読まれていない可能性を示します。ここを測らずに「承認制にしたので安全」と結論づけるのが、いちばんよくある間違いです。

つまずきやすい点

承認の回数を減らしすぎる。 公式文書は、承認を求める頻度の調整に多くの時間をかけたと書いています。理由は承認疲れで、確認が多すぎると利用者が内容を読まずに承認するからです。つまり承認の回数は UX の都合ではなく制御の強度そのものです。自前実装で「面倒だから確認をまとめる」と決めると、まとめた瞬間に制御が弱くなります。

承認カードに宛先を入れない。 操作・対象・内容だけだと、送信後に「誰に届いたか」を説明できません。ログと承認の両方に宛先の配列を持たせます。

重複検知をタイムスタンプでやる。 定期実行型のエージェントは、同じ案件を毎回見つけます。既読の管理を時刻でやると、次回のスキャンで時刻が変わるため重複が消えません。対象 ID と内容ハッシュの組を鍵にします。

拒否リストを後から足す。 分類 4 は最初に決めておかないと、あとから追加した項目が既存の自動化を止めます。逆向き(最初に厳しく、必要なら分類 3 に移す)の方が安全です。

エージェントの実行環境と権限の境界についての公式説明(2026 年 10 月 26 日取得)。

まとめ

  • 権限は「読むだけ/取り消せる/取り返しがつかない/恒久禁止」の 4 分類で書き、4 行目だけは設定ではなくコードに固定します。
  • 承認カードには操作・対象・内容・宛先の 4 項目を必ず入れ、宛先はログにも残します。
  • 承認の頻度は制御の強度です。まとめると制御が弱くなります。

公開資料の範囲では、承認が実際に読まれているかどうかは分かりません。ここは自前実装でも同じで、承認の品質を測る仕組み(承認までの時間、却下率、内容のスクロール量など)を別途用意しないと、制御が機能しているかは判断できません。

参考資料:Anthropic の発表記事、Claude Duet の安全性・プライバシー・セキュリティ文書、製品ページ、ヘルプセンター(2026 年 10 月 26 日閲覧)。複数のモデル提供元を一つの製品にまとめる場合、鍵とモデル名をコードに散らさず一つのゲートウェイに寄せる構成が一般的で、Crazyrouter はその選択肢の一つです。採否は呼び出し量と社内の規約で決めてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?