本文へ移動

AI Buildersのための最新のニュース、知見、事例を毎日お届け

運営会社
ループエンジニアリングを学ぶ

許可と確認を記録して減らすループ Claude Codeのフックで作る

Claude Codeには、許可の確認や自動の拒否が起きた時に動くフックがある。SAGUSはこれを使い、エージェントが人に求めた許可と確認、受けた拒否を台帳に記録し、仕分けて直すループを自社の開発に入れた。最初の7日の基準値と、まだ判定していない効果を書く。

記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談

毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

積み上げた木の判と朱肉、開いた帳面に押された円い朱の印
Created with Grok

Claude Codeには、許可の確認が出る時や、自動の判定が操作を拒んだ時に動くフックがあり、フックの公式の説明は記録や設定の調整に使えると書く。このフックで許可と確認と拒否を台帳に記録し、種類ごとに数えれば、消せる物から1つずつ消せる。SAGUSが7日分を台帳にすると、人に届いた許可と確認は143件、エージェントが受けた拒否は775件で、拒否の55%はSAGUS自身の検査によるものだった。SAGUSはこの台帳を仕分けて直すループを自社の開発に入れた。

確認を減らす部品は製品の中にある

Claude Codeは、操作ごとの許可を人に求める代わりに、別のモデルが操作を判定する自動のモードを用意している。権限のモードの公式の説明は、このモードについて「権限の確認を減らすが、安全は保証しない」と書き、慎重な操作ではレビューの代わりにしないよう求めている。

フックの側にも部品がそろった。許可の確認を出す時に動くフックは、Claude Codeが提案する許可の規則の候補を受け取れる。自動のモードで操作が拒まれた時に動くフックは、拒否の理由を受け取り、記録や設定の調整に使える。つまり、人に届く確認と、エージェントが受けた拒否の両方を、仕組みの側で数えられる。

1つのフックで全部を拾えるわけではない。公式の説明によると、自動のモードの拒否のフックは、人が画面で拒んだ時や、拒否の規則に当たった時には動かない。許可の確認のフックも、サンドボックスの中のネットワークの要求には動かず、その時は通知のフックで信号を取る。SAGUSも、フックと自社の検査の仕組みの記録を組み合わせて入口をそろえた。

ただし、数える部品があっても、数えた後にどう減らすかは製品が決めてくれない。規則を緩めれば確認は減るが、守るべき確認まで消える。どの確認を残し、どれを消すかの線引きが要る。

ループの5段のどこに効くか

  1. 発見: 許可・確認・拒否を台帳に1行ずつ記録し、新しい種類を見つける。
  2. 引き渡し: 新しい種類ごとに課題を起こし、直す役に渡す。
  3. 検証: 緩めた規則を、週に1回、別のモデルが監査する。
  4. 永続化: 台帳と課題管理に残し、種類ごとに1回だけ扱う。
  5. スケジュール: 30分ごとに仕分け、週ごとに監査する。

SAGUSで試した結果

SAGUSは11月2日から9日の7日分を、会話の記録から遡って台帳にした。人に届いた許可と確認は143件で、うち許可の確認が93件、選択式の質問が50件だった。エージェントが受けた拒否は775件で、SAGUS自身の検査の仕組みによる拒否が428件と55%を占めた。種類は115あった。多い順では、変更を取り込む前にレビューの記録を求める検査が158件、課題管理への書き込みを見張る検査が113件、シェルのコマンドを見張る検査が84件だった。4位は、レビューの待ちを見張る検査の62件だった。

仕分けは5つに分ける。設定で消せる物、やり方で消せる物、物理的に残る物、残すべき物、エージェントの誤りである。やり方で消せる物とエージェントの誤りは、エージェントが自動で直す。外への送信、お金、契約、取り消せない操作、資格情報、検査を緩める変更は、課題を起こすまでにとどめ、人が決める。台帳には操作の原文を残さず、種類と要約の値だけを書く。

直した例はこうだ。禁じた読み取りを含む複数のコマンドを1行につなぎ、全体が止まる誤りが多かったので、全セッションが毎回読む規約に1行を足した。レビューの待ちを見張る検査が、自分の子のエージェントまで数えて拒んでいた誤検知は、検査の側を直した。ある端末の17件を調べると、8件はエージェントの誤りではなくこの誤検知だった。どちらも禁止は緩めていない。最初の仕分けでは10の種類を登録して課題を起こし、エージェントに一度に渡すのは3件までに絞った。

失敗もあった。開いたままのセッションは新しいフックを読み直さず、配った直後の記録は0件だった。自動のモードの拒否のように、実機でまだ1度も記録されていない入口もある。種類の名前が先頭のコマンドで割れ、同じ原因が別の課題に分かれた。11月10日の時点で、起こした課題のうち34件を重複か取り消しで閉じている。週ごとの監査は、緩めすぎた規則を見つけ、戻す課題を起こした。届く確認と拒否が基準値の半分以下になったかの判定は11月12日で、今は未測定で、SAGUSは半分以下になる見込みを60%と置いている。

自分のループに入れる手順

  1. 許可の確認と拒否が起きた時に動くフックで、ツールの名前と理由を1行ずつ記録する。
  2. 1週間分を種類ごとに数え、多い順に並べる。
  3. 種類ごとに、設定で消せるか、やり方で消せるか、残すべきかを決める。
  4. 外への送信やお金や取り消せない操作に当たる確認は、減らす対象から外す。
  5. 緩めた規則は、作った役とは別の役に定期的に見直させる。

効くかどうかの判定はまだ先だが、規則を一度に緩めるより、確認を生む種類を数えて1つずつ消す方が、残すべき確認を守りやすい。

編集部の見方

編集部は、許可と確認の多さを、エージェントの性能ではなく仕組みの設計の問題として読むべきだと見る。確認や拒否の多くは、モデルではなく、使う側が置いた規則と検査から生まれるからだ。読者は、自動のモードを入れる前に、1週間分の確認と拒否を種類ごとに数えるとよい。数を減らした後に、残すべき確認まで消えていないかを確かめる手段は、まだ固まっていない。ループの設計を自社で試したい時は、スプリント0で相談を受けている。

出典

に確認(日本時間)

  1. フックの公式の説明(code.claude.com)
  2. 権限のモードの公式の説明(code.claude.com)
  3. スプリント0(sagus.io)

この記事をシェア

この記事は役に立ちましたか