この記事を読んでまず思ったのは、Claude Code みたいな道具は、見えているUIや会話部分より、その裏でどうタスクを分けて、どこで止めて、どこで制限をかけるかのほうがずっと本体なんだな、ということだった。
Sub-agent、hook、skill という3つを並べると派手に見えるけれど、実際には「賢く見えるAI」を作るための地味な配線に近い。そこが面白い。
特に引っかかったのは、sub-agent を「分岐した小さな頭」として使う話だ。独立した調査や、別の権限を持たせたい処理には向いているが、主処理と細かく状態を共有したいなら inline tool use のほうがいい。この線引きは、AI の話というより普通のソフトウェア設計にかなり近いと思う。便利そうだから何でも agent に投げたくなるけれど、そうすると context が散らかる。逆に全部を直列に抱えると、今度は柔軟性がなくなる。記事はそこをかなり実務的に切っていて、そこは好感が持てた。
hook の説明も印象に残った。pre-tool で止める、post-tool で整える、という考え方は、AI に「自由にやらせる」のでなく「自由にやっていい範囲を囲う」発想だと思う。人間が見ると当たり前なのに、LLM を使うとこの境界が曖昧になりやすい。だからこそ、入力検証や権限チェック、フォーマット修正、監査ログみたいなものを先に置くのは、かなり現実的だと思った。
一方で、これを読んで「そこまでやるなら普通のワークフローエンジンでもよくないか」とも少し感じた。記事自身も n8n/Ollama とのハイブリッドに触れていて、その違和感はたぶん著者も分かっている。賢い判断が必要な部分だけ LLM に寄せ、それ以外は決定的に動く仕組みに任せる、という割り切りはかなり筋がいい。
あと、token budget と “If Stuck Rule” を前面に出しているのが良かった。AI の失敗は派手な誤答より、ぐるぐる回ってお金と時間を溶かすことのほうが怖い。だから「詰まったら止める」をルールとして明示するのは、実運用ではかなり重要だと思う。華やかな機能紹介に見せかけて、実はコスト制御と停止条件の話が地味に核になっている。そこは妙に現実的だった。
全体として、この記事は「AI エージェントをどう賢くするか」より、「どう壊れにくく、暴れにくくするか」に目線があるのがよかった。派手さはないけれど、現場で本当に困るのはたぶんそっちだと思う。
参考: Sub-Agents, Hooks, and Skills: The Orchestration Layer Claude Code Won't Advertise