Claude Codeを思い通りに動かそう 〜AIエージェントにおけるコミュニケーションの心得〜
はじめに
自然言語で指示を出せるのがClaude Codeの売りですが、「何でも伝わる」わけではありません。
伝え方によって結果が変わるのは、人間相手と同じです。
この記事では、Claude Codeとのコミュニケーションで意識していることを整理します。
エージェント型ツールとは
Claude Codeは「エージェント型」のコーディングツールです。従来のコード補完ツールとは根本的に異なります。
公式ドキュメントでは次のように説明されています。
Claude Codeはエージェント的なコーディング環境です。質問に答えて待つチャットボットとは異なり、Claude Codeはファイルを読み、コマンドを実行し、変更を加え、あなたが見ている間、リダイレクトする間、または完全に離れている間も自律的に問題に取り組むことができます。
これにより、働き方が変わります。自分でコードを書いてClaudeにレビューを依頼する代わりに、何を作りたいかを説明すると、Claudeがそれをどう構築するか考え出します。Claudeは探索し、計画し、実装します。
つまりClaude Codeは「指示を待つアシスタント」ではなく「タスクを委譲できる自律的なエージェント」です。
この違いが、コミュニケーションの仕方に影響します。
なぜコミュニケーションが重要か
Anthropicのベストプラクティスでは次のように述べています。
Claude Codeとの通信方法は、結果の質に大きく影響します。
公式ドキュメントでも同様の指摘があります。
「バグを直して」の代わりに「ユーザーが間違った認証情報を入力した後、空白の画面が表示されるログインバグを直して」と試してみてください。
エージェントは人間以上に明示的なコンテキストを必要とします。
人間のエンジニアであれば背景を知っていたり、空気を読んで補完したりできます。
一方、エージェントは毎セッション記憶がリセットされ、暗黙の前提を読む力にも限界があります。
曖昧な指示は曖昧な結果を生みます。
効果的なコンテキストの渡し方
コンテキストを渡す方法は複数あります。
-
@ファイル名でファイルを直接参照する - 画像をコピー&ペーストする
- URLを渡してドキュメントを読ませる
-
cat error.log | claudeでデータをパイプする - 「このディレクトリを調べて」とClaudeに取得させる
指示の構成
効果的な指示には、ゴール、背景・制約、現状、期待する出力を含めます。
何を達成したいか、なぜ必要か、今どうなっているか、どういう形式で結果がほしいか。
これらが揃っていると、エージェントは的確に動けます。
悪い例
この機能を改善して
良い例
ログイン機能のレスポンスが遅い。
現状:ログインAPIのレスポンスが平均3秒かかっている。
目標:1秒以内にしたい。
調査して、ボトルネックを特定し、改善案を3つ提案して。
それぞれのメリット・デメリットも説明して。
作業の進め方
計画から始める
Anthropicのベストプラクティスでは次のワークフローを推奨しています。
- 関連ファイル、画像、URLを読むようClaudeに依頼する。まだコードを書かないように明示的に伝える
- 特定の問題にどうアプローチするか計画を立てるようClaudeに依頼する
- Claudeにコードで解決策を実装するよう依頼する
- Claudeに結果をコミットしてPRを作成するよう依頼する
中断と方向転換
公式ドキュメントでは次のように述べています。
Escapeを押すと、任意のフェーズ(思考、ツール呼び出し、ファイル編集)でClaudeを中断でき、コンテキストを保持したまま指示をリダイレクトまたは拡張できます。Escapeを2回押すと履歴に戻り、以前のプロンプトを編集して別の方向を探索できます。
期待と違う方向に進んでいると感じたら、早めに中断して軌道修正します。
出力の確認
公式ドキュメントでは次のように述べています。
Auto-Acceptモード(Shift+Tabでトグル)はClaudeを自律的に動作させますが、通常はアクティブなコラボレーターとしてClaudeのアプローチを導くことで、より良い結果が得られます。
エージェントは完璧でないため、出力を鵜呑みにせず、自分で確認する習慣をつけます。
たたき台→改善ループ
最初から完璧を求めず、まず出力を見て、良い点・悪い点をフィードバックし、改善版を出してもらう。
これを繰り返します。
「全然違う」と言うより「この部分は良い、この部分は変えて」と具体的に伝えると収束が速くなります。
対話のテクニック
「思い通りに動かす」ためのテクニックをいくつか紹介します。
「なぜ」を聞く
期待と違う動きをしたとき、すぐに修正を指示するのではなく「なぜそうしようとしたのか」と聞いてみます。
Claudeの判断理由を聞くことで、自分の指示に問題があったのか、Claudeの解釈が違ったのかがわかります。
提案形式で伝える
「Xをして」と命令するより「私はXをしようと考えているが、どう思うか」と伝えると、Claudeが別の選択肢を提示してくれることがあります。
自分では気づかなかった観点が得られます。
手直ししたら伝える
自分で直接コードを編集した場合は、その旨をClaudeに伝えます。
伝えないと、Claudeは古い状態を前提に作業を続けてしまいます。
過度に制限しない
AIの行動を細かく制限しすぎると、かえって効率が落ちます。
型チェック、lint、テストなど既存の仕組みでガードできる部分はそれらに任せ、最終的なレビューとマージで責任を取れば十分です。
過度に疑わない
結果がおかしいと感じたとき、Claudeのせいだと決めつけず、自分の指示を振り返ります。
「今何をしていたのか」「なぜそうしようとしたのか」と対話することで、問題の原因が見えてきます。
暴言を使わない
イライラしても暴言は避けます。
研究によると、LLMに無礼なプロンプトを使用すると性能低下のリスクがあります。
冷静なトーンを保つことが、結果的に良い出力につながります。
失敗したときの対処
期待と違う結果が返ってきたら、まず自分の指示を振り返ります。
ゴールは明確だったか、背景・制約を伝えたか、現状を正しく伝えたか、期待する出力形式を示したか。
指示に問題があれば補足して再度依頼します。
指示に問題がないのに結果が悪い場合は、タスクの分割や別のアプローチを検討します。
まとめ
- Claude Codeはエージェント型ツールで、自律的にタスクを実行する
- コミュニケーションの質が結果の質を左右する
- @でファイル参照、画像ペースト、URL指定などでコンテキストを渡す
- ゴール、背景、現状、期待出力を明示する
- 計画から始め、たたき台→改善ループで進める
- 出力をそのまま信じず、自分で確認する
Discussion