Claude Agent SDKで「止める場所」を考える
最初に思ったのは、これはかなり地味だけど、実際にはいちばん事故る種類の話だな、ということだった。AI agent の hook って聞くと、つい「どこで処理を差し込むか」くらいに見えてしまうけれど、この記事はその先にある「そのチェックは本当に止血になっているのか」を見ている。ここを曖昧にすると、見た目は通っていても、裏で side effect が起きる。そこが怖い。 とくに腑に落ちたのは、PreToolUse と PostToolUse の役割の分け方が、単なる設計の好みではなく、かなり露骨に安全性の境目になっている点だ。前者は tool 実行前なので deny できる。後者は実行後なので、できるのは結果の加工や記録までで、起きたこと自体は巻き戻せない。言われてみれば当たり前なのに、実装していると「後で見ればいいか」と思ってしまいがちで、そこが危ない。AI agent まわりは、便利さが先に立つぶん、この手の当たり前を雑にしやすい。 もう一つ、少し引っかかったのは、`ask` を返せばそのまま承認画面になるわけではない、という点だった。ここは地味に誤解しやすい。hook が判断材料を
papoo.work