Algomatic Tech Blog

Algomaticの開発チームによる Tech Blog です

【Cursor】命令では物足りない!? “問いかけ”で引き出すAIの思考力

こんにちは!

Algomatic ネオセールスカンパニーで営業 AI エージェント アポドリ を開発している 只野 です。

以前、Vercel v0からReact+Hono環境への移行戦略──Cursor活用で進める段階的マイグレーション では、Cursorを活用していることをお伝えしました。

note.com

今回は、Cursorを使った開発体験をより良くするための「問いかけ型プロンプト」についてお話しします。

はじめに:Cursorが思い通りに動かない理由

「Cursorを使ってみたけど、思った通りに動かない」

そんな経験、ありませんか?

コーディングエージェントに「〇〇を実装して」と命じたのに、返ってきたのは表面的で粗いコード。思わず「いや、そうじゃなくて……」とモヤモヤしながら、結局自分で書き直す。

そんなことを繰り返していませんか?

実はその原因、AIの性能ではなく“問い方” にあるかもしれません。

スタンフォード大学の研究では、ソクラテス式の問いかけがAIの応答の正確性や創造性を高めることが示されています。 arxiv.org

Cursorのようなコーディングエージェントは、命令に従うロボットではなく、考える“パートナー” として活用することで本領を発揮します。

鍵となるのは、「命令」ではなく、問いかけをベースにしたプロンプト設計です。

本記事では、実際の開発シーンをもとに「命令型」と「問いかけ型」の違いを掘り下げ、以下のようなポイントを解説します:

  • なぜ“問い”がより深い出力を引き出すのか?
  • 効果的な問いの立て方とは?
  • 実際どれだけ違いが出るのか?

これらをコード付きの事例とともにご紹介します。

Cursorを「コードを吐くだけのツール」から、「共に考えるパートナー」へと進化させるヒントを、ぜひ持ち帰ってください。

命令と問いかけ:何がどう違うのか?

実例で比較:命令型 vs 問いかけ型プロンプト

命令型プロンプト

入力: 「ホバー時に色が変わるボタンを実装して」

返ってくるコード例:

<button className="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded">
  ボタン
</button>

一見動くが、課題も…

  • デザインシステムに非対応
  • アクセシビリティ非考慮
  • 状態管理なし

問いかけ型プロンプト

入力: 「ユーザーがホバー時に視覚的なフィードバックを得られるボタンコンポーネントは、どのように実装すべきですか?既存のデザインシステムとの整合性も考慮したいです。」

返ってきた内容(一部):

  • shadcn/uiに準拠したButtonコンポーネント
  • 色・フォーカス・状態のバリアント対応
  • ダークモードやレスポンシブ対応
  • アクセシビリティ基準に準拠した設計

命令型 vs 問いかけ型 比較表

観点 命令型 問いかけ型
意図の明確さ 「何をやるか」に集中 「なぜやるか」を踏まえる
出力の質 表面的・単機能 文脈に沿った本質的な提案
提案の深さ 指示通りに即処理 前提と背景を踏まえた最適解を提示
対話の質 一方通行 相互理解・学びが生まれる対話

ケーススタディ:問いかけがもたらす具体的な違い

ケース1:売上グラフの設計を再考する

シナリオ: 営業チームが月次売上を直感的に把握できるダッシュボードを構築したい。

命令型プロンプト

「売上データを棒グラフで表示して。Rechartsを使い、データは/api/sales/monthlyから取得」

結果:

  • 最低限の表示は可能
  • ローディング・エラー処理なし
  • デザインやUXが一貫していない

問いかけ型プロンプト

「営業チーム向けに売上傾向を視覚化するには、どのようなグラフUIを設計すべきですか?UXや保守性も考慮したいです。」

提案された内容:

  • 折れ線・棒・複合グラフの選択肢と使い分け
  • React Query による状態管理
  • スケルトン表示・エラーハンドリング
  • UIライブラリに準拠したスタイリング

改善後のコード例(抜粋):

const { data, isLoading, error } = useQuery('monthlySales', fetchMonthlySales);

if (isLoading) return <Skeleton className="w-full h-[300px]" />;
if (error) return <Alert message="売上データの取得に失敗しました" />;

return (
  <Card>
    <CardHeader>
      <CardTitle>月次売上推移</CardTitle>
    </CardHeader>
    <CardContent>
      <ResponsiveContainer height={300}>
        <BarChart data={data}>
          <XAxis dataKey="month" />
          <YAxis tickFormatter={formatCurrency} />
          <Tooltip formatter={(v) => formatCurrency(v)} />
          <Bar dataKey="amount" fill="var(--primary)" />
        </BarChart>
      </ResponsiveContainer>
    </CardContent>
  </Card>
);

ケース2:ユーザーリストのパフォーマンス改善

シナリオ: 500件以上のユーザーを表示するリストでUXが劣化。描画パフォーマンスを改善したい。

命令型プロンプト

「React.memoとuseCallbackでパフォーマンスを改善して」

結果:

  • 部分的な最適化にとどまり、構造的な改善には至らない

問いかけ型プロンプト

「ユーザーリストの描画が遅いです。原因として考えられる要因と、効果的な最適化方法は何ですか?」

提案された内容:

  • 仮想スクロール(react-window)導入
  • ページネーション設計
  • Lazy Loadや画像最適化戦略

実装例(抜粋):

<InfiniteLoader
  isItemLoaded={isItemLoaded}
  itemCount={itemCount}
  loadMoreItems={loadMoreItems}
>
  {({ onItemsRendered, ref }) => (
    <FixedSizeList
      ref={ref}
      height={600}
      width="100%"
      itemCount={itemCount}
      itemSize={ROW_HEIGHT}
      onItemsRendered={onItemsRendered}
    >
      {Item}
    </FixedSizeList>
  )}
</InfiniteLoader>

実践Tips:「命令」を「問い」に変えてみよう

命令型→問いかけ型の変換例

命令型 問いかけ型
ログイン画面を作って セキュリティとUXを両立するログイン画面は、どう設計すべき?
このバグを修正して この問題の根本原因は何か?どう直すのが最適か?
コードをリファクタして 可読性と保守性を高めるには、どんな改善が有効か?

良い問いをつくる4つのコツ

  1. 目的を明確にする:「なぜそれをやりたいのか?」
  2. 文脈を伝える:「誰のための、どんなユースケースか?」
  3. 制約条件を明示する:「使用ライブラリや仕様は?」
  4. 思考を開く問いにする:「他に方法は?」「最適な選択肢は?」

問いかけ型プロンプトがもたらす構造的優位性

「実装方法(How)」をAIに委ねる価値

命令型プロンプトでは、What(何を)とHow(どうやって)を人間が担い、AIは「決められた処理」を実行するだけでした。

問いかけ型では、WhatとWhyを人間が提示し、HowをAIに委ねるという役割分担が生まれます。これがAIの知的能力(文脈理解・構造設計・代替案の提示など)を最大限に引き出す鍵となります。

委ねることの効果:

観点 委ねる価値
多様性 人間が思いつかない解法が生まれる
柔軟性 状況や制約に応じた判断が可能になる
学習効果 AIの提案から人間が学べる
保守性 設計レベルでの持続可能な対応ができる

AIを「指示の受け手」から「思考パートナー」へ

命令型ではAIは“指示待ち”。問いかけ型では“設計パートナー”へと進化します。

項目 命令型 問いかけ型
発想力 人間に依存 AIも発案に参加
学習効果 一方的 人間の思考も深まる
意図共有 不明瞭 背景・目的が伝わる
保守性 応急処置的 設計レベルでの改善につながる

まとめ:問いが引き出すAIの真価

優れたエンジニアは、良い問いを持っています。

Cursorが思い通りに動かない…と感じたとき、それは命令の精度ではなく、問いの質が鍵になっているかもしれません。

明日からできること

  1. 命令を1つ「問い」に変えてみる
  2. 設計意図を言語化する習慣を持つ
  3. 良い問いの履歴を残し、ナレッジとして蓄積する

AIとの対話の質は、問いの質に比例します。

まずは、たったひとつの「なぜ?」から始めてみませんか?

問いかけ型プロンプトを通じて、AIと共に考える力を育てていきましょう。

エンジニアのみなさん、カジュアル面談させてください

AI駆動開発で異次元に開発速度を加速させたいエンジニアの方、ぜひ弊カンパニーCTOの菊池とカジュアル面談しましょう!

jobs.algomatic.jp