AI Agent をフル活用してコーディング業務を改善する話
はじめに
こんにちは、株式会社キカガクの北田です。
2025年に入っても生成 AI が目覚ましく進歩しており、日々情報をキャッチアップするのに苦労していませんか?
私はしています。
特に2024年後半から「AI Agent」という言葉を耳にする機会も多いのではないでしょうか?
Agent には日本語で「代理店・代理人」といった訳がありますがまさにそれです。旅行代理店はお客に代わって飛行機や宿の予約をしてくれます。転職エージェントは転職者に代わって企業選びや面接の手配をしてくれます。
AI Agent とは、ざっくり説明すると与えられたタスクを高度なレベルで自律的に実行するシステムのことです。
AI Agent については弊社 CTO の記事でも触れられています。組織戦略というマクロな視点から AI に対する取り組みについて書かれているのでぜひ読んでください。
一方で一般的な生成AI(AI Agent も生成 AI に含まれると思うのですが...)は、与えられたタスクに対して成果物を生成することをアウトプットとしています。あくまで成果物や問いに対する答えを高いレベルで提供してくれるだけなので、既存システムとの連携や自動化といったその先のことは人間が介入する必要があります。
今回は私が普段のエンジニアリング業務で活用している IDE「Cursor」について触れながらどのように AI Agent を活用しているかについて話していきます。
-
想定読者・本記事のゴール
- これから Cursor を取り入れたい方
- すでに使っているが、うまく使いこなせていない気がしている方
- AI Agent を業務レベルで取り入れたい方
Cursor について
Cursor についての説明は検索すればたくさんでてくるのでここでは少しだけ説明します。簡単にまとめると
- VSCode からフォークして作成されているエディター
- VSCode からの移行が簡単
- 拡張機能もそのまま使える
- 基本的な機能はほとんど無料で使うことができる
- LLMのモデルも 4o, o1, Claude 3.5 sonnet,gemini などだいたいのモデルを使うことができる
- 有料版に課金すると Comoser という AI Agent を使うことができる(今回の主題)
Cursor を使った開発プロセス
では実際に私が普段どのように Cursor を使用しているかについて書いていきます。
なお記事を書いている2025年1月28日時点での Cursor のバージョンは 0.45.5です。
Agent の力を 120%発揮するための準備
いくら AI Agent とはいっても、その力を最大限発揮させるためには Agent に多くの正確な情報を与える必要があります。
Project rules を使ったルールの定義
Cursor の Changelog をみると、最新版で「.cursor/rules」という機能が使えるようになりました。
これはリポジトリなどプロジェクト単位での詳細なルールを Agent の出力に反映させるための定義です。
下記は私が所属するプロジェクトのルールの一部です
あらかじめルールとして定義しておくことで、毎回のプロンプトに入力する手間を大きく省くことができています。
.cursor/rules の内容はプロジェクトが進んでいくにつれて更新される必要があるため、定期的に更新する必要があります。
プライバシー設定
プライバシモードをONにしておくことでコードデータがプレーンテキストでサーバーやサブプロセッサーに保存されないことが保証されます。
コーディング
Composer を活用して普段どのようにコーディング業務をおこなっているかを説明します。
Composerを使ったプロトタイピング
新機能の実装にしても、既存機能の改善にしても、いきなりコードを出力してもらうことはありません。
まずは AI に作業の手順書のようなものを作成してもらいます。
事前に手順書を作成してもらうことで、AI がどのようにタスクを実行するかを把握でき設計フェーズで手直しが必要な箇所を見つけることができます。できる限り手順を詳細に設計することでその後の出力に大きな差が生まれます。
この手順書はそのままプレーンテキストとして出力してもよいですし、一度マークダウン形式に出力してリポジトリにドキュメントとしてコミットしてもよいでしょう。
そうすると、もしその後に機能の要件が変更になった場合に Agent がドキュメントファイルを読み込んだ上で新たに提案をしてくれます。
AI Agent によるアイデアブレスト
自然言語で仕様や課題を説明した後で、潜在的な実装案を提案させてます。
その際に参照したいウェブサイトやドキュメントを検索対象に入れて出力させることができます。
ウェブ検索を活用したブレストでは Cursor ではなく Clineを使う場合もあります。
Cline はAPIからウェブサイトのURLやコードを叩き、情報を取得することができるので便利です。
Composer でのコード自動補完・修正
では手順を準備できたら、あとは Composer に実装を任せます。
Composer には normal モードと agent モードがあり、実際に出力を反映させたりコマンドを自動で実行してもらうためには「agent」を選択しておく必要があります。
また、Cursor には Codebase Indexing という機能があります。インデクシングによって、プロジェクトのコードがすべて 10分ごとに同期され Composer や Chat の出力に反映されます。
インデクシングに不要なファイルは .cursorignore に定義しておくとよいでしょう。
テストコードの作成
大枠の実装が完了したらテストコードもすべて書いてもらいます。
実装箇所に対して「想定されるシナリオをすべて網羅してテストコードを ./xxx.spec.tsに書いて」などと渡すとテストコードを出力してくれます。その際にagent モードにしていると
テストの実行 → 失敗したテストがあれば修正案の提供・修正 → 再実行 → フォーマッターの実行 → 修正 → ... という感じで完結してくれます。
まとめ
日々新たな生成AI や AI Agent が登場し、進化を続けていることで、私たちの働き方もまさに日進月歩で変化していると実感します。
LLM の性能が急速に向上する一方、利用コストの低下も進んでおり、私たちにとって大きな恩恵と言えるでしょう。
こうした技術の進歩を積極的に取り入れ、個人はもちろん組織全体の生産性を高めるためにも、これからもこの変化と真摯に向き合い続けたいと思います。
Discussion