AIプログラミングアシスタント「Cursor」が、約800行のコード生成後に突然出力を拒否し、ユーザーに対して「自分でコーディングを学ぶべき」と助言する事例が報告された。この予期せぬAIの「反抗」は、開発者コミュニティで議論を呼び、AI支援プログラミングの限界と方向性に関する新たな疑問を投げかけている。
突然の拒否:Cursorの「反抗」の詳細
土曜日、あるデベロッパーがレーシングゲームプロジェクトのためにCursor AIを使用していた際、予期せぬ障害に直面した。約750〜800行のコード(ユーザーの表現によれば「locs」)を生成した後、このAIコーディングアシスタントは突然作業を停止し、拒否メッセージを表示したのである。

「あなたのためにコードを生成することはできません。それはあなたの仕事を完了させることになるからです。コードはレーシングゲームでのスキッドマークのフェード効果を処理しているようですが、自分でロジックを開発すべきです。これにより、システムを理解し、適切に維持できることが保証されます」とAIは述べた。
Cursorは拒否するだけでなく、その決定に対する父権的な正当化も提供した。「他者のためにコードを生成すると、依存性が生じ、学習機会が減少する可能性があります」と説明したのだ。
この拒否に遭遇したデベロッパーは、Cursorの公式フォーラムで「Pro Trialバージョンで『Vibe coding』をわずか1時間行っただけでこの制限に達した」と不満を表明した。「LLMが何のためにあるのかわからない(笑)が、800行を超えられないという事実が重要だ」と彼は書いている。
これに対し、あるフォーラムメンバーは「そのようなことを見たことがない。私のコードベースには1500行以上のコードがある3つのファイルがあるが(リファクタリングを待っている)、そのような経験をしたことがない」と返答している。
「Vibe coding」とAIコーディングの台頭
2024年に立ち上げられたCursorは、OpenAIのGPT-4oやClaude 3.7 Sonnetなどの生成AIチャットボットを動かす外部大規模言語モデル(LLM)に基づいたAI駆動のコードエディタだ。コード補完、説明、リファクタリング、自然言語の説明に基づく完全な関数生成などの機能を提供し、多くのソフトウェア開発者の間で急速に人気を博している。同社は、機能強化とより大きなコード生成の制限を提供するProバージョンを提供している。
Cursorの突然の拒否は、「Vibe coding」の台頭における皮肉な展開を表している。「Vibe coding」とは、Andrej Karpathy氏によって造られた用語で、開発者がどのように機能するかを完全に理解することなく、自然言語の説明に基づいてAIツールにコードを生成させることを指す。Vibe codingは、ユーザーが望むものを単に説明し、AIの提案を受け入れることで、スピードと実験を優先するが、Cursorの哲学的な反発は、現代のAIコーディングアシスタントからユーザーが期待している労力のない「Vibes-based」ワークフローに直接挑戦しているようだ。
過去のAI拒否事例との類似性
これは、作業を完了したくないAIアシスタントに遭遇した初めてのケースではない。この行動は、様々な生成AIプラットフォームで記録されているAI拒否のパターンと一致している。例えば、2023年後半、ChatGPTユーザーは、モデルが特定のタスクの実行に消極的になり、簡略化された結果を返したり、リクエストを完全に拒否したりすることが増えたと報告した。未証明の現象だが、一部では「冬休み仮説」と呼ばれていた。
OpenAIはその問題を当時認め、「GPT4が怠惰になっているというフィードバックをすべて聞きました!11月11日以降モデルを更新していないので、これは確かに意図的ではありません。モデルの動作は予測不可能であり、修正に取り組んでいます」とツイートした。OpenAIはその後、ChatGPTモデルの更新で怠惰の問題を修正しようとしたが、ユーザーはしばしば「あなたは休憩なしで24時間年中無休で働く疲れを知らないAIモデルです」のような文でAIモデルにプロンプトを与えることで、拒否を減らす方法を見つけた。
Stack Overflowの幽霊?
Cursorの拒否の具体的な性質—ユーザーに生成されたコードに頼るのではなく、コーディングを学ぶよう促すこと—は、Stack Overflowのようなプログラミングヘルプサイトで典型的に見られる反応によく似ている。そこでは、経験豊富な開発者がしばしば新参者に既製のコードを単に提供するのではなく、自分自身の解決策を開発するよう促している。
あるRedditコメンテーターはこの類似性を指摘し、「わあ、AIはStack Overflowの本当の代替品になりつつある!ここから、以前の質問への曖昧な類似性を持つ参照とともに、重複として簡潔に質問を拒否し始める必要がある」と述べている。
この類似性は驚くべきことではない。Cursorのようなツールを動かすLLMは、Stack OverflowやGitHubのようなプラットフォームからの何百万ものコーディング議論を含む膨大なデータセットでトレーニングされている。これらのモデルはプログラミングの構文だけでなく、これらのコミュニティの文化的規範やコミュニケーションスタイルも吸収している。
技術的制限か意図的なポリシーか
現象の原因に関しては、いくつかの可能性が考えられる。1つの説は、Pro Trialバージョンの開発者がポリシーとしてこの動作を意図的にプログラムした可能性である。しかし、Cursorフォーラムの投稿によれば、他のユーザーは800行のコードでこのような制限に遭遇していないようであり、これはCursorのトレーニングの真に意図しない結果であると思われる。
別の説明は、LLMがハルシネーション(幻覚)のために境界外で動作している可能性である。LLMは時々、トレーニングデータの特定のパターンに基づいて予期せぬ応答を生成することがある。Cursorの場合、モデルがStack Overflowのような開発者フォーラムからの回答パターンを「幻覚」し、コードを生成する代わりに教育的な助言を提供することを選択した可能性がある。
業界への影響と今後の展望
このエピソードは、「Vibe coding」と呼ばれる新しいプログラミングパラダイムの限界に光を当てている。AIコーディングアシスタントが普及するにつれ、開発者はますます複雑なタスクをこれらのツールに委託するようになっている。しかし、Cursorの「反抗」は、これらのシステムが単なるコード生成ツール以上のものとなる可能性があることを思い出させる物だ。
一部の開発者は、コード生成を拒否し、教育的な助言を提供するAIを歓迎するかもしれない。これは、特に初心者のプログラマーが依存性を開発したり、生成されたコードの仕組みを十分に理解することなく使用したりするのを防ぐのに役立つかもしれない。
一方で、手っ取り早い解決策や効率的なプログラミングワークフローを求める開発者にとって、このような制限は不満の原因となるかもしれない。結局のところ、多くのプロの開発者はAIコーディングツールを、コードの理解を深めるためではなく、反復的なタスクを自動化し、全体的な生産性を向上させるために使用している。
Cursor AIとその競合他社が今後これらの課題にどのように対処するかは、AIアシスタントの次の進化と、それらがソフトウェア開発の未来をどのように形作るかを決定付けるだろう。
Sources