NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

ソフトウェア開発とAIエディタ

本記事は  エディタウィーク  2日目の記事です。
👩‍🏫  1日目  ▶▶ 本記事  ▶▶  3日目   👨‍🏫

どうも、モンスターはマンゴーロコ派の磯川です。 エディタウィークという特集に際して今回のブログを書いております。

エディタというと少し前まではEmacs、Vimなどのマニアックな話が出てくる印象でしたが、 今回は「AIエディタ」をテーマにAIとソフトウェア開発について触れたいと思います。

また、個人的に利用しているCursorというAIエディタについての所感など少しお伝えいたします。

AIとは

現在「AI」といえば、ほとんどの場合はLLM(大規模言語モデル)、またそれを利用したサービスを指すことが多くなっている認識です。

LLM: Large Language Model

LLMとは、大量のテキストデータを学習することで、自然な会話や文章生成が可能なAIのことです。

ChatGPTClaudeGeminiなど、多くの企業がサービスとして提供しており、日々性能が向上しています。

AIとソフトウェア開発の関係

ソフトウェア開発はプログラミング言語で記述したテキストデータを扱うので、LLMとの相性が良いこともありさまざまなサービスが急速に発展しています。

コード補完などのコーディング支援だけでなく、エージェントが実装・テスト・設計・レビュー・ドキュメンテーション、さらにはそれ以上の抽象度の高い作業まで担うサービスも登場しています。 また、ノーコード・ローコードで開発が行えるワークフローツールも増えています。

これら多くのサービスでは、利用するLLMを切り替えて選択することが可能です。

代表的なもの

権限とリスク

「できること」が増えるほどAIに権限を与える必要があり、便利な反面、意図しない操作や品質・セキュリティリスクも無視できない状況になっています。

たとえば、私の経験でもエージェント型のAI開発サービスを試していたときに、コード生成を依頼したら連携しているGithubアカウントからプルリクエストの作成までされていて、このような意図しない作業をしてしまう可能性があります。

趣味の個人開発だったので問題なかったですが、実業務であれば勝手に本番作業をしてしまうなどのリスクもあり得るかなと感じます。

AIエディタ

少し話が脱線しかけてますが、ようやく今回の本題であるAIエディタの話をしたいと思います。

AIエディタとは何か

ざっくりいうとAIエディタとは、VSCodeのようなエディタツールにAI機能が付与されたもので、開発者をサポートし、開発効率を高めてくれるツールです。

コードや文脈を解釈しての補完や生成、設計のアドバイス、バグ修正、リファクタリングなどサービスによってできることは多岐にわたります。

AIエディタを実際に利用してみた所感

自分は好奇心旺盛で、色々触ってはいるのでその所感をお伝えしようと思います。

AIエディタには、VSCodeを拡張するClieやGitHub Copilot、Gemini Code Assistantのようなタイプと、エディタ自体を提供しているCursorのようなタイプがあります。 その中で、今回は個人的によく利用しているCursorについてお伝えします。

Cursor

CursorとはAnysphereが開発・運営しているAIがプログラミングをサポートしてくれるツールです。

www.cursor.com

主な機能
  • リアルタイムのコード補完、生成、誤り修正提案、リファクタリング
  • ファイル横断型の検索やワークスペース全体の把握
  • プロンプトからチャット形式で指示を出し、設計・実装・調査・議論も支援
  • Cursor自体にLLMの利用枠が用意されており、別のモデルを自前で設定して使うことも可能
  • cursorrulesによるカスタマイズが容易
使い心地・感想

Cursorを利用して開発や作業をしてみた所感は以下の感じです。

  • VSCodeのForkなので、見た目はほぼVSCodeで、そこにAIプロンプトがついてる感じで触りやすい

  • Cursor自体にLLMの利用枠があり触りやすい

    プレミアムモデルには GPT-4、GPT-4o、Claude 3.5/3.7 Sonnet などがあります。これらのモデルは月に500回の高速リクエストと無制限の低速リクエストが可能です。o3-mini などの一部のモデルは1回の高速リクエストの1/3を消費します。プレミアムモデルの完全な一覧はこちらでご確認いただけます。

    主要なモデルは網羅されている印象。

docs.cursor.com

  • プロンプトからコーディング作業自体を依頼することが多い
  • プロジェクト内のリソース、文脈を踏まえて作業を依頼できるので、エージェント型のサービスに近い
  • これはCursor自体というよりはLLMモデルの性能依存だが、依頼を細かくしても意図したものをアウトプットしてくれない場合もある
  • アノテーションでファイルや外部ドキュメントを指定できるコンテキスト機能が便利
  • "Accept"するまでは、変更が反映されないので安心感がある

まとめ

AIエディタは、従来のテキストエディタから一歩進んで、AIの力によって開発者の作業効率や生産性を大きく向上させる新しいツールへと進化しています。 コード補完やバグ修正などの基本的な機能だけでなく、プロジェクト全体を視野に入れたサポートや設計・議論の支援まで対応範囲はどんどん広がっています。

一方で、AIにより多くの権限を与えることで、便利さと同時に想定外のリスクも生じるため、現時点では、リスクを適切に管理しながら活用していくことが求められると感じました。

AIエージェントやAIエディタなど、これからさらに発展していくことで開発のあり方そのものが大きく変わっていく可能性があり、今後も引き続き注目していきたいです。