はじめに
Claude Codeにはいくつかの制限タイプが存在するのですが、Claude Codeを使い始めて間もない頃はちゃんと理解できていなかったため、まとめてみました。
※今回は、多くの方が個人で契約しているであろうproプランにおいて、知っておきたい「レート制限」と「コンテキストの制限」の2つを取り上げます。
まずは以下の公式ドキュメントを読むことをおすすめします。
レート制限
Claude Codeにはレート制限(使用量/時間)が存在し、特定の期間にClaudeとどの程度やり取りできるかを制御しています。
現在は5時間と1週間ごとにリセットされる上限がそれぞれ設定されており、どちらか片方でも超過してしまうと、リセットされるまで使用が制限されてしまいます。
使用量は、リクエスト回数、会話の長さと複雑さ、使用する機能、チャットしているClaudeモデルなど、複数の要因の影響を受けますが、主にリクエストによって発生した実際の計算負荷(トークン数)に基づいて計算されます。
メッセージ送信時のプロンプト(コンテキスト)やレスポンスのトークン数も計算に含まれるため、長く複雑なコードのやり取りや、多くのファイルを読み込ませるほど、制限に早く達します。
なるべく制限にかからないようにする手法
1. セッション状態(会話履歴)をリセットする
/clearコマンドを使用することで、セッション状態をクリア(=新しいセッションを開始)することができます。(わざわざclaudeを再起動させる必要がないためおすすめ)
毎回のリクエスト時には過去の会話履歴の情報もプロンプトして自動的に含まれるため、会話が重なるにつれてリクエスト時に送信されるトークン量も増え続けてしまいます。
(詳しくは記事後半に添付するcontextに関する記事を参考にしてください)
そのため、タスクが一区切りついたタイミングで積極的に/clearコマンドを使用するのがおすすめです。
もし間違ってクリアしてしまった場合は、/resumeコマンドで過去のセッション一覧を表示し、戻ることができます。
また、/exportコマンドで会話履歴をファイルに出力することができ、新しいセッションで参照させることも可能です。
2. リクエスト回数を少なくする
上述したとおり、会話が重なるにつれて使用されるトークン量も増え続けてしまうため、なるべく少ないリクエスト回数でタスクを完了する技術が求められます。
具体的には、
・より高度なLLMモデルを使う
・Planモードで綿密な設計を立てておく
・サブエージェントを使う
などがあります。
また、万が一不要なリクエストを実行してしまった場合は/rewindコマンドもしくはEscキーダブルクリックでセッション内のチェックポイント一覧を表示させ、特定のポイントに巻き戻すことが可能です。
その他注意すること
他に注意することとして、公式ドキュメントには以下のような記述があります。
すべての異なるClaudeプロダクトサーフェス(claude.ai、Claude Code、Claude Desktop)の使用は、同じ使用制限にカウントされることに注意してください。
コンテキストの制限
Claude Codeにはレート制限とは別に、コンテキストの制限が存在します。
このコンテキストの制限はコンテキストウィンドウ(Claudeの作業メモリ)に関連しており、
LLMが1回の推論で読み込める最大トークン数
のことを指します。
※ここでいう「トークン」は単語ではなく、文字列を分割した単位(例:英単語の一部、日本語1〜数文字)です。
(詳しくは、周辺知識と合わせて解説したこちらの記事がおすすめです)
おわりに
これらの制限を、statuslineという機能を使って常に表示できるように設定した記事もありますので、気になる方はぜひご参考ください。