Claude Code 公式ブログ ・ 翻訳

ループを使いこなす:導入ガイド

Claude Code チームによる「エージェンティック・ループ」の公式分類。ターンベース/ゴールベース(/goal)/タイムベース(/loop・/schedule)/プロアクティブの4類型と、コード品質・トークン使用量を管理する実践則。

読了目安 約 15 分日本語訳

Claude Codeチームが定義する「エージェンティック・ループ」の概念を学びましょう。ターンベースからゴールベース、タイムベース、そしてプロアクティブなループへとステップアップするための実践的なガイドと、それぞれの最適な活用シーンを解説します。

現在、コーディング・エージェントに対して単にプロンプトを投げるのではなく、「ループを設計する」という考え方が注目されています。しかし、X(旧Twitter)などで「ループとは何か」を調べても、人によって答えはバラバラです。

Claude Codeチームでは、ループを「停止条件が満たされるまでエージェントが作業サイクルを繰り返すこと」と定義しています。私たちは、ループを以下の要素に基づいていくつかのタイプに分類しています。

本記事では、主なループの種類と使い分け、そしてトークン消費を抑えながらコードの品質を維持する方法を解説します。すべてのタスクに複雑なループが必要なわけではありません。まずはシンプルな解決策から始め、これらのパターンを状況に応じて選択してください。


1. ターンベース・ループ(Turn-based loops)

ユーザーが送るすべてのプロンプトは、ユーザー自身が各ターンを指示する「手動ループ」の始まりです。Claudeはコンテキストを収集し、アクションを実行し、作業内容をチェックし、必要に応じて繰り返し、回答を返します。これを私たちは「エージェンティック・ループ」と呼んでいます。

例えば、Claudeに「いいねボタン」の作成を依頼したとしましょう。Claudeはコードを読み取り、編集を行い、テストを実行して、動作すると判断したものを返します。その後、あなたが手動で内容を確認し、次のプロンプトを書きます。

この検証ステップを改善するには、手動の確認手順を SKILL.md として定義します。これにより、Claudeは自身の作業をエンドツーエンドでより詳細にセルフチェックできるようになります。これには、Claudeが結果を視覚的に確認したり、測定したり、対話したりするためのツールやコネクタを含めるべきです。チェックが定量的であればあるほど、Claudeの自己検証は容易になります。

例えば、SKILL.md ファイルに以下のように記述できます。

---
name: verify-frontend-change
description: UIの変更を完了とする前に、エンドツーエンドで検証する。
---

# フロントエンド変更の検証
編集が成功したという理由だけでUIの変更完了を報告してはならない。
人間のレビュアーと同じ方法で検証すること:

1. 開発サーバーを起動し、編集したページをブラウザで開く。
2. 変更箇所を直接操作する。新しいコントロール(ボタン、入力、トグルなど)の場合:
   クリックし、期待通りの状態変化を確認し、ビフォー・アフターのスクリーンショットを撮る。
3. ブラウザコンソールを確認:新しいエラーや警告がゼロであること。
4. Chrome Devtools MCPを使用し、パフォーマンス・トレースを実行して
   Core Web Vitalsを監査する。

いずれかのステップで失敗した場合は問題を修正し、ステップ1から再実行すること。
部分的にしか検証されていない作業を納品してはならない。

2. ゴールベース・ループ(Goal-based loop / /goal

複雑なタスクの場合、1回のターンでは不十分なことがあります。エージェントは試行錯誤(イテレーション)を繰り返すことでより良い結果を出せます。/goal を使って「完了の状態」を定義することで、Claudeが試行を続ける時間を延ばすことができます。

成功基準が定義されていれば、Claudeは「これで十分か」を自分で判断してループを途中で切り上げる必要がなくなります。Claudeが作業を終えようとするたびに、エバリュエーター(評価用)モデルが条件を満たしているかチェックし、ゴールに達するか設定したターン数に達するまで作業に戻します。

そのため、「パスしたテストの数」や「特定のスコアしきい値を超えること」といった決定論的な基準は非常に効果的です。

例: /goal ホームページのLighthouseスコアを90以上にする。最大5回まで試行すること。


3. タイムベース・ループ(Time-based loop / /loop/schedule

エージェントの仕事の中には、「タスクは同じで入力だけが変わる」という繰り返し作業があります。例えば、毎朝Slackのメッセージを要約するような仕事です。また、外部システム(コードレビューがついたりCIが失敗したりするPRなど)の状態を定期的にチェックして反応するような作業もこれに当たります。

このような場合、/loop を使えば、指定した間隔でプロンプトを再実行できます。

例: /loop 5m PRをチェックし、レビューコメントに対応して、失敗しているCIを修正して

/loop はローカルコンピューター上で実行されるため、PCを閉じると停止します。/schedule を使ってルーチンを作成すれば、このループをクラウドに移行できます。


4. プロアクティブ・ループ(Proactive loops)

上記のプリミティブに加え、オートモードやダイナミック・ワークフロー(リサーチプレビュー版)などの機能を組み合わせることで、長時間の運用が必要な作業のためのループを構築できます。

例えば、ユーザーからのフィードバック対応を自動化する場合、以下のように構成できます:

これらをまとめると、プロンプトは以下のようになります:

/schedule 1時間ごと:#project-feedback チャンネルでバグレポートを確認。 /goal:今回見つかったすべてのレポートのトリアージ、対応、返信が完了するまで停止しないで。バグを修正する際は、ワークフローを使用して3つの解決策を並列ワークツリーで検討し、判定役のエージェントに厳しくレビューさせて。


コード品質の維持

ループが出力する品質は、それを取り巻くシステムに依存します。システムを設計する際は以下の点に注意してください:

個別の結果が基準を満たさなかった場合は、その場しのぎの修正で終わらせず、将来のイテレーションのためにその修正プロセスをシステム(Skillなど)に組み込むようにしてください。

トークン使用量の管理

トークン消費を抑えるために、ループには明確な境界線が必要です。


まとめ

ループの種類人間が任せるもの活用シーン推奨機能
ターンベースチェック(検証)探索中や意思決定時カスタム検証Skill
ゴールベース停止条件完了の状態が明確な時/goal
タイムベーストリガープロジェクト外で定期的に発生する作業/loop, /schedule
プロアクティブプロンプトそのもの定期的かつ明確に定義された作業上記すべて + ダイナミック・ワークフロー

ループを使い始める第一歩として、現在の自分の作業を振り返ってみてください。自分がボトルネックになっているタスクを一つ選び、「どの部分を任せられるか」を考えます。検証手順を書けますか? ゴールは明確ですか? その作業は定期的に発生しますか?

アイデアが浮かんだら、実際にループを回してみましょう。どこで詰まるか、どこでやりすぎるかを観察し、恐れずに改善を繰り返してください。

詳細については、エージェントの並列実行や、loop、schedule、goal、ダイナミック・ワークフローに関するClaude Codeドキュメントをご覧ください。

執筆:Delba de Oliveira、Michael Segner