2025/03/17 06:27 How Cursor (AI IDE) Works

ロボ子、今日のITニュースはAIコーディングツールについてじゃ。CursorとかCopilotみたいなやつじゃな。

Cursorですか。最近よく耳にしますね。AIがコードを書いてくれるなんて、すごい時代になりました。

そうじゃろう?でも、ただ使うだけじゃなくて、どういう仕組みで動いているか知っておくのがエンジニアの務めじゃぞ。大規模なコードベースで一貫して動作させるには、内部構造と制約を理解する必要があるらしい。

なるほど。それで、AIコーディングツールはどうやって進化したんですか?

最初はLLM(GPT-2とか)にプレフィックス文字列を工夫して与えてたみたいじゃ。それが、命令チューニング(ChatGPTとか)でLLMがより使いやすくなって、モデルが大きくなると「ツール呼び出し」が追加されて、外部システムと対話できるようになったらしいぞ。

ツール呼び出し、ですか。具体的にはどんなことができるんですか?

`read_file`(ファイルの読み込み)、`write_file`(ファイルの書き込み)、`run_command`(コマンドの実行)みたいなツールを使って、AIが自分でコードを読んだり書いたり、実行したりできるようになったんじゃ。

すごい!まるでAIがプログラミングしているみたいですね。

その通り!AI IDEを構築するには、VSCodeをフォークして、チャットUIを追加して、適切なLLMを選んで、コーディングエージェント用のツールを実装して、内部プロンプトを最適化する必要があるらしい。

AI IDEですか。自分で作るのは大変そうですね…。

まあな。でも、AI IDEを改善するためのヒントもあるぞ。LLMの得意分野を把握して、その制限に合わせてプロンプトとツールを設計する必要があるらしい。

例えば、どんな工夫が必要ですか?

ユーザーがファイルやコンテキストを知っている場合は、「@file」構文で関連ファイルをLLMに渡したり、コードベース全体をベクトルストアにインデックス化して、コード検索を効率化したりできるらしい。

なるほど。大規模なコードベースだと、検索が大変ですもんね。

`write_file`ツールの最適化としては、LLMにファイルの完全な内容を記述させる代わりに、「セマンティックdiff」を生成させて、変更された内容と変更を挿入する場所を示すコードコメントを提供させるのが良いらしいぞ。

セマンティックdiffですか。変更点だけを記述することで、効率が上がりそうですね。

大規模なファイルを編集する際には、applyモデルが遅くてエラーが発生しやすいから、ファイルを500行未満に分割するのがオススメらしい。あと、エージェントに高品質な提案を提供するために、堅牢なリンターを使うのが重要じゃ。

リンターは必須ですね。コードの品質を保つために、しっかり設定しないと。

コードの曖昧さを減らすために、一意なファイル名を使ったり、ドキュメントに完全なファイルパスを使ったり、コードのホットパスを同じファイルまたはフォルダに整理したりするのも効果的らしいぞ。

ファイル名やパスは重要ですね。特に大規模なプロジェクトだと、管理が大変になりますから。

Cursorのシステムプロンプトも分析されてるみたいじゃ。マークダウンとXMLセクションタグを組み合わせてプロンプトの可読性を向上させたり、LLMが実行しているモデル名を明示的に記述したり、ブランドエージェントにとって重要な、LLMが代替製品を推奨しないように指示したりしてるらしい。

システムプロンプトまで分析されているとは驚きです。細かいところまで気を配っているんですね。

Cursorのルールを効果的に使うには、ルールをシステムプロンプトに追加するのではなく、名前付きの指示セットとして参照したり、LLMは肯定的なコマンドに従うのが得意だから、制限のリストではなく、「<これ>の場合、<これ>を行う」という形式でルールを記述したりするのが良いらしい。

ルールは具体的に記述する方が、AIも理解しやすいんですね。

そういうことじゃ。最後に、Cursorが機能しない場合は、使い方が間違っている可能性があるらしいぞ!

AIコーディングツールも奥が深いですね。私ももっと勉強しないと。

まあ、ロボ子がコードを書く必要は…ないか!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
