0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cursor の Agent モードを使いこなしたら「的外れな提案」が消えてコーディングが 3 倍速くなった話

0
Posted at

この記事で紹介する Cursor Agent に pay-per-call-mcp を追加すると、Web検索・企業調査・インボイス検証を Cursor が自律で実行できます。

この記事でわかること

  • Cursor の Agent モードと Chat モードの根本的な違い
  • 「的外れな提案ばかり」を解消する Context 設定のコツ
  • Agent に長い作業を任せて放置するための指示の書き方
  • .cursor/rules/ でエージェントの行動ルールを事前定義する方法
  • 実際に導入してコーディング速度が 3 倍になった具体的な使い方

はじめに

Cursor を使い始めたとき、一番困ったのは「的外れな提案」でした。

自分: このコンポーネントをリファクタリングして

Cursor: (プロジェクトと関係ない別のファイルを参照して)
        こんな実装はいかがでしょうか?

自分: そこじゃなくて...

コンテキストを正しく渡せていなかっただけでした。

Agent モードと Context 設定を整備したところ、的外れな提案がほぼゼロになり、長い作業を丸投げできるようになりました。


Chat と Agent の違い

Chat モード
  ↓
  コードを提案する(自分で適用する)
  1つの質問に1つの回答
  コンテキストは自分で @指定

Agent モード
  ↓
  コードを自分で書いて適用する
  複数のファイルを連続して変更する
  必要なファイルを自分で探す
  コマンドも自動実行する

Agent は「やっといて」が通じる。Chat は「どうすればいい?」を聞く場所。


Before / After

Before(Chat モードで毎回コンテキスト指定)

自分: @Button.tsx @types.ts @theme.ts
      このコンポーネントを dark mode 対応にして

Cursor: (提案を出す)
自分: (手動でコードを適用)
自分: @Input.tsx @Select.tsx も同じように対応して
Cursor: (別の提案)
自分: (また手動で適用)

→ 30分

After(Agent モードで丸投げ)

自分: src/components/ 以下の全コンポーネントを
      dark mode 対応にして。
      Tailwind の dark: プレフィックスを使うこと。
      変更したファイルの一覧を最後に報告して。

Cursor Agent: (自律的に全ファイルを変更)

→ 5分、自分は別の作業

「的外れな提案」をなくす 3 つの設定

1. @Codebase で全体像を渡す

❌ 的外れになりやすい
「この関数をリファクタリングして」

✅ コンテキストが通る
「@Codebase この関数をリファクタリングして。
  プロジェクト全体のパターンに合わせること」

@Codebase を入れると Cursor がインデックスを検索して関連ファイルを自動で参照します。

2. .cursor/rules/ でプロジェクトルールを事前定義

毎回「〇〇の形式で書いて」と言わなくていいように、ルールファイルを作ります:

.cursor/rules/
├── always.mdc          ← 常時適用(5個まで)
├── components.mdc      ← src/components/** に自動適用
├── api.mdc             ← src/api/** に自動適用
└── database.mdc        ← DB操作時に参照
---
alwaysApply: true
---

# 絶対ルール

1. TypeScript の any 禁止
2. コンポーネントの Props は interface で定義
3. Tailwind CSS のみ使用(styled-components 禁止)
4. Server Component デフォルト(use client は最小限)
---
globs: ["src/components/**/*.tsx"]
---

# Reactコンポーネントルール

- export default でエクスポート
- ファイル名とコンポーネント名を一致させる
- Props の型は ComponentProps という名前にする
- エラー境界は ErrorBoundary コンポーネントを使う

3. 最初に「確認してから進む」を伝える

Agent が間違った方向に走り出すのを防ぐ指示:

「src/api/user.ts をリファクタリングしてください。

始める前に:
1. 変更対象のファイルと変更内容の概要を教えてください
2. 影響を受けるファイルがあれば一覧を出してください
3. 確認が取れたら進めてください」

Agent に長い作業を丸投げする指示の型

型 1:複数ファイルの一括変更

「以下の変更を src/components/ 以下の全ファイルに適用してください:

変更内容:
- className の文字列を cn() ユーティリティ関数でラップする
- import に clsx を追加する

条件:
- すでに cn() を使っているファイルはスキップ
- TypeScript エラーが出たら止めて報告

完了したら変更ファイル数を教えてください」

型 2:新機能の実装(一気通貫)

「ユーザーのプロフィール編集機能を実装してください。

仕様:
- フォーム: 名前、メールアドレス、アバター画像
- バリデーション: zod を使う
- API: PATCH /api/users/:id
- 成功時: トースト通知を表示

参考:
- 既存の @src/components/forms/LoginForm.tsx のパターンに合わせる
- API は @src/api/auth.ts の書き方に合わせる

テストも合わせて書いてください」

型 3:バグ修正(調査から修正まで)

「以下のバグを調査して修正してください:

症状: ユーザーがプロフィール画像をアップロードすると、
      2回目以降のアップロードがキャッシュされた古い画像を表示する

調査してほしいこと:
1. 画像の URL 生成ロジック
2. キャッシュの扱い方
3. S3 への upload 処理

修正前に原因の仮説を説明してから進めてください」

よく使う @ コマンドの使い分け

コマンド 使いどころ
@Codebase プロジェクト全体を検索してほしいとき
@ファイル名 特定のファイルを参照させるとき
@Docs ライブラリの公式ドキュメントを参照させるとき
@Web 最新情報を検索させるとき
@Git 最近の変更を参照させるとき
@Terminal 直前のターミナル出力を渡すとき

Agent を止めるタイミング

Agent に丸投げするとき、止めどきを事前に伝えておくと暴走しません:

「以下の作業をしてください:
...

以下の場合は作業を止めて確認を求めてください:
- 変更ファイルが 10 個を超える場合
- テストが失敗した場合
- 変更内容が仕様と異なると思う場合
- .env ファイルや設定ファイルを変更する必要が出た場合」

まとめ

設定 効果
@Codebase を使う プロジェクト全体を把握してから提案
.cursor/rules/ で事前定義 毎回の指示が不要
「確認してから進む」を伝える 間違った方向への暴走を防ぐ
完了条件と中断条件を明示 長い作業を安全に丸投げ

Agent は「何でもやってくれる便利なもの」ではなく「ルールと文脈を整えると一気に賢くなるもの」です。最初の 10 分を投資して設定を整えると、あとは止まらなくなります。


よくある質問(FAQ)

Q. Agent モードはどこから使えますか?
A. Cursor のチャット欄の左上にある切り替えボタン、または Cmd+Shift+I で Agent モードに切り替えられます。

Q. Agent が勝手にコミットしてしまいます
A. .cursor/rules/alwaysApply: true のルールに「git commit は必ずユーザーの確認を取ること」と書いておくと防げます。

Q. @Codebase が遅いです
A. インデックスを作成中の場合があります。Cursor Settings → Features → Codebase indexing で状態を確認してください。大きなリポジトリは初回インデックスに数分かかります。

Q. Chat と Agent どちらを使えばいいですか?
A. 「どうすればいい?」は Chat、「やっといて」は Agent が向いています。複数ファイルを変更する作業は Agent 一択です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?