ENECHANGE Developer Blog

ENECHANGE開発者ブログ

Cursorを使ったAIエージェント開発体験記

こんにちは、ENECHANGEのEnergy Marketing Devチームでエンジニアをしている三浦美咲樹です。

1. はじめに

AIエージェントを使った開発って、なんだか難しそう…そう感じている方も多いと思います。 実は私も最初は同じ気持ちでした。

「LLMチャレンジウィーク」というエンジニア向けに用意された企画に参加し、AIエージェントに対して「本当に使えるのかな?」と疑問と不安と期待を抱きつつ、話題の「Cursor」を試してみることにしました。

また、社内ではCursorの使い方をはじめ、AIエージェントを使ったフォローアップミーティングなどもあり、エンジニアだけでなく幅広い職種でも利用しやすい環境を提供してくれていました。

とはいえ、最初からうまく使えるわけもなく、当然のごとく戸惑いながらのスタートでした。

2. AIエージェントにMermaidでフローチャートを作ってとお願いしてみた

「AIツールを使う」って聞くと、専門的な知識がないと難しいのかなと思うかもしれません。
私もそう思っていました。難しいことをAIエージェントに丸投げしてみたところ、それらしいものはできたものの、正しいのかどうかわからない巨大で複雑なものができてしまい戸惑いました。そこで、実装コードを生成してもらう前に、「Mermaid(マーメイド)」という簡単な記法でシンプルな仕様からフローチャートを書き出してもらい、少しずつ仕様を調整することにしました。

Cursor上でMermaid記法を使って、フローチャートを何度も作り直しながら、少しずつ設計の全体像や処理の流れが見えてきました。 このやり方が正攻法なのか分かりませんが、私にはとても合っていて、チャットで試行錯誤を続けているうちに時間を忘れるほど集中できました。 最初に出力したシンプルなフローチャートのイメージはこんな感じです。

出力したフローチャートのイメージ

ここから少しずつ「〇〇の条件は、ああしてこう分けていこう」「〇〇処理の前には...」といった感じで、AIエージェントにフローチャートを変更してもらいました。
Mermaidは途中で修正すると壊れやすいこともあるのですが、AIエージェントがその編集を手伝ってくれるのはとても助かりました。

3. フローチャートを元にCursorにコードを書いてもらう

フローチャートが形になったところで、Cursorにコードの作成をお願いしました。
Cursorはrakeタスクや必要なモジュールも自動で作ってくれて、設計があいまいな部分を教えてくれたり、バグを見つけてくれたりと、まるで良きパートナーのように助けてくれました。
ただ、大量のデータを扱うと処理に時間がかかったり、コードが複雑になって追いきれなかったり、意図しない部分が変わったり消えたりすることもありました。
それでも、AIエージェントに何度も修正や相談をしながら、一歩ずつ進めて使えるコードに仕上げることができました。

4. 驚いた体験と嬉しい発見

今回のプロジェクトでは、既存のマテリアライズドビュー(事前集計や複雑な集計処理をデータベース内で保存する仕組み)をRubyコードで再実装し直すことが目標でした。 Cursorはこの複雑な処理を扱うために導入し、コード生成や設計補助に活用しています。 約1000件のデータを生成依頼したとき、CursorのAIエージェントが統計情報や処理時間まで自動で計算してくれてびっくりしました。
いくつか改善を重ねて、処理時間を約1.5時間から数分にまで短縮できました(まだ細かい調整は続けています)。

処理時間の比較

方式 推定時間
初期版 5,702秒(約95分)
最適化版 696秒(約11.6分)
方式変更 556秒(約9.3分)

さらに、既存のマテリアライズドビューと新しい実装結果を比較するコードや、差異の原因を調べるコードまで自動生成してくれて、とても頼もしかったです。

以下は、AIエージェントが生成した比較コードの出力例です:

比較結果が得られました。重要な差異がいくつか見つかりました:

## 比較結果の分析

### 1. **データ量の差異**
- **マテビュー**: 91,620レコード
- **新テーブル**: 89,112レコード
- **差**: 2,508レコード

### 2. **主な差異**

#### **マテビューにあって新テーブルにないデータ(3,615件)**
- 主に2023年5月のデータ
- 古いデータが含まれている

#### **新テーブルにあってマテビューにないデータ(1,107件)**
- 主に2025年5月のデータ
- 新しいデータが含まれている

#### **価格が異なるデータ(28,815件)**
- 多くのレコードで価格に差異


### 3. **問題の原因**

1. **期間の違い**: マテビューは過去のデータも含むが、新テーブルは24ヶ月分のみ
2. **データの更新タイミング**: マテビューが最新の状態でない可能性

### 4. **推奨アクション**

1. **マテビューの更新**: 
2. **期間の統一**: 同じ期間で比較する

反面、チャットでのお願いが増えすぎて、プランのリクエスト上限に近くなってしまったのは少し反省点です。

5. まだまだ試行錯誤中

Cursorのもっと高度な機能はまだ使いこなせていません。
それでも、AIエージェントとチャットで話しかけて実装を進めたり、問題解決のアイデアをもらったりするのは新鮮で楽しい体験です。
気づくと時間もリクエストもあっという間になくなってしまうので、今後はAIエージェントとの付き合い方もゆっくり考えながら進めていこうと思っています。

6. まとめとこれから使うあなたへ

私は「できなくて当然」の状態からスタートしました。 でも、AIエージェントを使いながら一歩ずつ進んでいくうちに、「自分にも使えそうだ」と感じられるようになりました。

これからCursorや他のAIエージェントに挑戦してみようというあなたへ。 深く考えすぎず、まずは「やってみる」ことが大切です。 失敗や戸惑いも経験のうち。少しずつ進んでいけば、自然と使いこなせるようになります。 この記事が、あなたの一歩を後押しできたら嬉しいです。

今後も、AIツールを活用しながら、より効率的で価値のあるプロダクト開発を進めていきたいと思います。
次回の執筆者の方も、きっと素晴らしいAI活用事例を共有してくださることでしょう。楽しみにしています!