自作エージェントに Plan Mode を付ける(plan.md に質問欄を作り、答え終わるまで回す)
Claude Agent SDK で作ったエージェントにも、Claude Code の Plan Mode に近い動きを付けられる。使うツールを読み取りと plan.md の書き込みに絞る。plan.md の「確認事項」欄にある質問を人に答えさせ、残りがなくなったら承認を取ってから実装に入る。
どんな時に使う?
- 社内向けの自作エージェントで、いきなりコードを書き始めるのを防ぎたい
- 曖昧な依頼を、選択式の質問で詰めてから進めたい
手順
- 計画フェーズの
allowed_toolsをRead/Glob/Grep/Writeに絞る。SDK の permission mode のplanは書き込みを禁止するので、plan.md を書かせたいこの方式では使わない - システムプロンプトで plan.md の形式を決める。質問は決まった見出しで書かせる:
markdown
## 確認事項 ### Q1. 認証方式はどれにしますか? - [ ] セッション - [ ] JWT - 呼び出し側で plan.md を読み、
## 確認事項の### Qと- [ ]を正規表現で抜き出す。questionary などで選択肢として人に聞く - 答えを、前回のセッションを
resumeで引き継いだquery()に渡し、plan.md を更新させる。質問が残っている間は 3〜4 を繰り返す - 質問がなくなったら「承認 / 修正 / キャンセル」を聞く。承認されたら初めて書き込みのできるツールを渡して実装に進む
注意点
- Claude Code の Plan Mode 自体は、システムリマインダー・4段階の手順・ExitPlanMode ツールの組み合わせだと説明されている(Armin Ronacher の解析を記事が紹介)。上の方法はそれを簡略に真似たもの
- 質問の形式が崩れると正規表現で拾えない。抜き出しに失敗したら形式を直させる指示をループに入れておく