☃️

【Cursor】利用制限に引っかかった私のNG行動と、現在意識していること

に公開

はじめに

Cursorを使っていると、気づけば「利用制限」にかかってしまっていた……という経験はないでしょうか?私はあります。

便利すぎてついつい使い倒してしまいがちですが、実は何気ない操作が原因で、無駄にトークンを大量消費していることがあります。

この記事では、利用制限にかかってしまった私の 「NG行動」 と、その失敗から学んで現在 「意識していること」 をまとめました。

トークン消費の仕組み

NG行動を紹介する前に、まずトークン消費の仕組みについて解説します。

毎回送信される膨大なデータ

CursorでAIにチャットを送るとき、実は「今入力した質問文」だけが送られているわけではありません。裏側では、以下のようなデータがすべてセットになって毎回APIに送信されています。

[送信されるデータのイメージ]
1. システムプロンプト(rulesなどの設定ファイル)
2. 過去の会話履歴 (直近のやり取りすべて)
   - あなたの質問
   - AIの応答
3. 今回の質問
----------------------------------
=> これら合計のトークン数が、毎回消費される

あなたが「数行を修正して」と質問しただけでも、裏側では上記の1〜3すべてがセットで送信されています。さらに、AIが生成した応答も会話履歴として蓄積され、次回以降の送信データに含まれるため、会話を続けるほどトークン消費が増えていきます。

会話履歴の「雪だるま式」消費

特に怖いのが 「2. 過去の会話履歴」 です。例えば、同じような質問を繰り返した場合でも、具体的な数字で見ると以下のような差が生まれます。

1回目:約3,000トークン

  • システムプロンプト: 1,000トークン
  • 今回の質問: 1,000トークン
  • AIの応答: 1,000トークン

10回目:約21,000トークン

  • システムプロンプト: 1,000トークン
  • 過去の会話履歴: 18,000トークン ← これが積み上がる!
    (過去9回分の質問と応答がすべて含まれる)
  • 今回の質問: 1,000トークン
  • AIの応答: 1,000トークン

同じ質問をするだけでも、履歴がたまっていると大量のトークンを消費してしまいます。会話を長く続けるほど「過去のログ(質問とAI応答の両方)」が雪だるま式に膨れ上がり、それを毎回すべて読み直させることになるため、加速度的にトークンが減っていくのです。

私がやってしまっていたNG行動

この仕組みを理解していなかった頃、私はまさに「トークンをドブに捨てる」ような使い方をしていました。自戒を込めて、実際にやってしまっていたNG行動を以下にまとめます。

NG行動1:失敗した会話を続けて、その流れで修正しようとする

実装結果が期待と違ったり、エラーが発生した際に、同じチャット内で修正のやり取りを何度も繰り返していました。

失敗した会話を続けて修正を重ねようとすると、余計なトークンを消費するだけでなく、コンテキストに失敗した情報が残り続けるため、AIがさらに意図しない方向へ迷走する原因になります。

NG行動2:必要な行だけを指定せずに、ファイル全体を参照させていた

たった数行のコードを直したいだけなのに、ファイル全体を読み込ませていました。

ファイル全体を読み込ませると、修正に関係ない記述もすべてコストとなり、消費量が跳ね上がります。また、AIが大量のコードに惑わされて、修正に関係ない部分にも反応してしまい、意図しない方向に話が進むことがありました。

NG行動3:汎用的な質問をしていた

「このエラーコードの意味は?」といった、プロジェクトのコードに関係ない質問もCursorにしていました。

コードを知らなくても答えられる質問にCursorを使うのは、貴重なトークン(利用枠)を無駄に消費することになります。一般知識はブラウザのAI(Geminiなど)で十分なのに、ついついCursorで聞いてしまっていました。

現在、意識していること

現在は以下のことを意識して、トークンを節約しながら精度を高めています。

1. チャットの分散を徹底する

「話題が変わる」タイミング、例えば一つの機能実装が終わったり、別のバグ調査に移る際は、必ず新しいチャットを開くようにしています。

会話が長くなるとAIは文脈を見失い、ハルシネーションやループが発生しやすくなります。こまめに新しいチャットを開いてクリアな状態で質問する方が、トークンを節約できるだけでなく、回答の質も向上します。

2. 失敗したら「修正」せず「巻き戻し」

期待した結果にならなかったときは、会話で軌道修正するより直前のメッセージを編集して再送信することで、会話を「やり直す」方が良いです。

NG行動でも触れましたが、失敗した履歴を残したまま会話を続けるとコンテキストが汚れてしまいます。「ダメなら戻る」を徹底することで、常にきれいな文脈を保つことができます。

3. ファイル丸ごとではなく「部分選択」を活用する

ファイル全体を読ませる必要がない場合は、修正したい部分だけをハイライトして Add to Chat (Mac: Cmd + Shift + L / Win: Ctrl + Shift + L) することで、必要な情報だけをAIに渡せます。

関数単位、クラス単位など、修正に必要な範囲だけを選択することで、AIが本当に見るべき箇所に集中させることができます。

4. 汎用的な質問は「ブラウザのAI」に外注する

Cursorの強みは「プロジェクトのコードを知っていること」です。その強みが必要ない質問にはCursorを使わないようにしています。

一般的な技術質問はブラウザのAIで済ませ、Cursorの貴重なトークンは、ここぞという複雑な実装タスクのために温存しましょう。

おわりに

Cursorは魔法のように便利ですが、裏側の仕組みを理解して使うかどうかで、その体験価値は大きく変わります。

利用制限に悩まされている方は、まずは「チャットの分散」だけでも意識してみてください。これだけでもかなり変わります。

この記事が、少しでもみなさんの参考になれば幸いです。また、私もまだまだ模索中ですので、もし「こんな工夫もおすすめ」というTipsがあれば、コメントで教えていただけると嬉しいです!

株式会社ソニックムーブ

Discussion