Last updated on

CursorでAgentを並行させる——⌘Tと⌘Nで挙動が変わる話

  • Cursor
  • Agent
  • ワークフロー
  • 並行処理

よしあきは Cursor の Agent に実装を任せながら、別件の調査や短文依頼を同時に進めたいことが多い。そのときいちばん最初にぶつかる疑問がこれだ。

「1つのチャット(Agent)が動いているときに、別のチャットを開くと、最初のほうは止まってしまうのか?」

結論から言うと、必ず止まるわけではない。止まるかどうかは、新しい会話の開き方で決まる。ここを誤ると、長時間走らせていた Agent が意図せずキャンセルされる。

この記事では、よしあきがローカル Cursor で並行利用するときに押さえている操作の違いと、実務上の使い分けをまとめる。

結論だけ先に:操作別の挙動

操作1つ目の Agent
⌘T / Ctrl+T(新しいチャットタブ止まらず並行
⌘N / Ctrl+N同じタブ内の新規チャット)進行中リクエストはキャンセル
Stop ボタン明示的に停止
サイドチャット(/sideメイン Agent は継続

「並行させたい」ときの正解は ⌘T / Ctrl+T⌘N / Ctrl+N は同じタブのセッションをリセットする操作として扱う。

なぜ「止まる/止まらない」が分かれにくいか

Cursor には、会話を増やす UI が複数ある。

  • チャットタブを増やす(並行用)
  • 同じタブ内で新規チャットを始める(セッション切り替え)
  • サイドチャットで調査だけ並行する
  • Cloud Agentサブエージェントで別コンテキストを動かす

見た目はどれも「新しいチャットを開いた」ように見えるが、内部では 同じタブのリクエストを切るのか別タブで独立させるのか が違う。ここを混同すると、「並行できるはずなのに止まった」「止まるはずなのに動いていた」という体感のズレが起きる。

並行したいとき:⌘T / Ctrl+T

Cursor 0.48 以降、チャットタブで複数会話を並行できる。公式 changelog でも、⌘T / Ctrl+T で parallel conversations と説明されている。

よしあきの運用イメージはこうだ。

  1. タブ A で案件 A の Agent に実装を走らせる
  2. ⌘T でタブ B を開き、別案件の調査や短文依頼を始める
  3. タブ A の Agent はそのまま走り続ける

タブが入力待ちになると通知が付く設計になっており、バックグラウンドで Agent が完了しても、別タブの作業は続けられる前提だ。並行利用は「将来の機能」ではなく、現行 UI の想定に近い。

よしあきが ⌘T を使う典型例

  • 長い実装を Agent に任せつつ、別タブで「このエラーの意味は?」と調査する
  • 案件 A のビルド待ち中に、案件 B の README を読ませる
  • 1タブ目でファイル編集を進めながら、2タブ目で計画 md だけ整理させる

いずれも 1つ目を止めずに 2つ目を動かしたい 場面だ。ここでは ⌘N ではなく ⌘T を使う。

⌘T は「前の会話の続き」ではない

⌘T で開いた新タブに、前タブのチャット履歴は引き継がれない。 別タブ=別セッションだ。

項目1つ目のタブ⌘T で開いた新タブ
会話履歴そのタブに残る白紙のチャット(履歴は共有されない)
Agent の実行止まらず続く新しい依頼を 独立して 開始
ワークスペース同じリポ・ルールは使える同じ。@ファイル で明示すれば文脈は足せる

「話題を切り替えたい」だけなら ⌘T でも ⌘N でも新しい会話は始められる。⌘T を選ぶ理由は 1つ目を止めない ことであり、前のログが自動で引き継がれる ことではない。

同じタブで新規:⌘N / Ctrl+N

⌘N / Ctrl+N は、同じタブ内で新規チャットを始める操作だ。並行用ではない。

この操作をすると、そのタブで進行中だったリクエストはキャンセルされる。Cursor フォーラムでも、スタッフは概ね次のように説明している。

  • ⌘N … 現在のセッションをリセットする
  • 並行したいなら ⌘T … 新しいタブを作る

よしあきも、長時間 Agent を走らせている最中に ⌘N で「ついでに別件」と新規チャットを開くと、1つ目が cancelled になっていた経験がある。「新規チャット」ボタンの見た目だけで判断せず、ショートカットの意味を覚えておくのが安全だ。

⌘N が向いている場面

「話題を切り替えたい」だけでは ⌘N 専用の理由にならない。 ⌘N が向くのは、次の 3つがそろったとき だ。

  1. 新しい会話に切り替えたい
  2. 同じタブのままよい(タブを増やしたくない)
  3. そのタブの進行中 Agent を止めてよい(またはすでに止まっている)
状況選ぶ操作
話題を切り替え、1つ目も走らせ続けたい⌘T
話題を切り替え、同タブでよく進行中は止めてよい⌘N
調査だけ並行、実装 Agent はそのままサイドチャット

よしあきが ⌘N を使う典型例は次のとおりだ。

  • 案件 A の Agent が 終わった/止めてよい のに、同じタブで案件 B を 白紙から 始めたい
  • 方針が外れたので、同タブをリセットして最初から指示し直したい
  • 「このエラーの意味は?」など 単発 QA で、別タブに残す必要がない

逆に、1つ目を止めずに別件を始めたい ときに ⌘N を選ぶのは誤りだ。

明示的に止めたいとき:Stop

Agent の中断は Stop ボタン が正本だ。ターミナル承認待ちなど、Stop が効きにくい場面の報告もあるが、意図して止めるならまず Stop を押し、タブの状態を目視確認する。

メインを止めずに調査だけ:サイドチャット

サイドチャット(/side は、親 Agent に紐づく並行の子会話だ。公式 Help では、サイドは読み取り・検索・回答向けで、メイン Agent は中断されず継続すると説明されている。

よしあきの使い分けは次のとおりだ。

目的手段
別タスクを独立して進めたい⌘T で新タブ
今の Agent の文脈のまま調査だけしたいサイドチャット
今のタブの会話を捨てて始め直したい⌘N

サイドチャットは現状 ローカル IDE のみ で、Cloud Agent 側では未対応(対応予定とされている)。

1つの会話の中で並列:サブエージェント

同一チャット内では、Agent が サブエージェント を起動することもある。ここにも foreground / background の区別がある。

モード挙動
Foreground完了まで親 Agent は待つ
Backgroundすぐ戻り、独立して並行

/multitask や Plan の Build in Parallel も、1タスク内での並列化に近い。よしあきは「タブを増やす並行」と「1会話内のサブエージェント並行」を別物として覚えている。

IDE を閉じても動かしたい:Cloud Agent

Cloud Agent は別 VM 上で動く。ローカル IDE を閉じても継続でき、ローカル Agent と並行も可能だ。

よしあきの整理では次のようになる。

  • 手元で見ながら並行 … ローカルで ⌘T
  • 長時間・離席中も走らせたいCloud に移す
  • 調査だけ並行サイドチャット

「止まるかどうか」の話はローカル IDE のタブ操作が中心だが、Cloud を混ぜると 止まらない軸がもう1本増える イメージだ。

並行利用の注意点

並行できるからといって、無制限にタブを開けばよいわけではない。よしあきが実務で気をつけている点は次のとおり。

同じワークスペースでのファイル競合

複数 Agent が 同じ Git checkout を同時編集すると、ファイル競合が起きうる。並列編集するときは worktree/worktree)や Agents Window の worktree モードを検討する。

タブ数の上限

既定では 最大 5 タブ(設定で 10 や Unlimited に変更可能)。上限を超えると、古い非アクティブタブが閉じることがある。会話自体は履歴から復元できるが、走行中の Agent がどのタブにいたかは混乱しやすい。

フォーカスの奪われ

並列 Agent の完了時に、別タブからフォーカスが奪われる既知の UI 挙動がある。停止ではないが、作業中の集中を切る。停止したわけではないと理解しておくと安心する。

トークン使用量

並列 = トークン・API 使用量はおおむね増える。2本同時に走らせるなら、使用量も2倍に近いと見ておく。

よしあきの実務チェックリスト

並行利用で迷ったとき、よしあきは次の順で判断する。

  1. 1つ目を止めずに 2つ目を始めたいか?
    → Yes なら ⌘T / Ctrl+T
  2. 同じタブで会話を切り替え、進行中を止めてよいか?
    → Yes なら ⌘N / Ctrl+N(「話題切り替え」だけでは ⌘N 専用ではない)
  3. 同じリポを同時編集するか?
    → Yes なら worktree を検討
  4. 長時間・離席中も走らせたいか?
    → Yes なら Cloud Agent
  5. 調査だけ並行で、実装 Agent はそのままか?
    → Yes なら サイドチャット(/side
  6. 確実に止めたいか?
    Stop を押し、タブ状態を確認
  7. 成果物は揃ったのに、Agent だけ止まっているように見えるか?
    → 下の「未完了なのに待機で止まったとき」を参照

未完了なのに待機で止まったとき

並行利用の話と別軸だが、よしあきが実務でつまずきやすいパターンがある。Agent の実行は終わっているのに、依頼した作業の成果物は揃っていない状態だ。

典型例はこうだ。

  1. 親 Agent がサブエージェントに品質チェックを委譲する
  2. 親が「残件 md が書けたら、ここに合否表を集約します」と宣言する
  3. サブエージェントがブラウザ確認の要約だけ返して Stopped になる
  4. 親もチャットに所見を書いたあと Send follow-up(返事待ち)で止まる
  5. ai-docs/fb/qa/ の残件 md合否表の集約 には届いていない

ここで重要なのは、Cursor の UI 上の「止まった」と、タスクの「完了」は別物だという点だ。

見え方意味
スピナーが回っている実行中
オレンジの点・Run / Skip / Build承認待ち(ユーザー操作が必要)
Send follow-up・入力欄が空待機中(次の指示待ち)。成功完了の表示ではない
サブエージェント Stoppedそのサブの実行は終了(正常完了か手動 Stop かは区別しにくい)

「Send follow-up」は 「もう用は済んだ」 ではなく 「次のメッセージを待っている」 だけだ。チャットに途中経過が書いてあっても、残件 md の作成複数サブの結果を1つに集約するといった 次のステップは自動では走らない

よしあきの対処(3ステップ)

1. 動いていないことを確認する

  • スピナーがない
  • 入力欄が Send follow-up になっている
  • サブエージェントも Stopped / 完了表示

この状態なら、待っていても続きは始まらない

2. 未完了の成果物を具体的に指定して、同じチャットでフォローアップする

「続けて」だけだと、またチャット要約で終わることがある。よしあきは ファイル名と順序まで書く

品質チェックは未完了です。次を順に実行してください。

1. サブエージェントごと(各リポジトリ)ai-docs/fb/qa/ に残件 md を書く
2. すべての md を読んで、このチャットに項目別の合否表を1つに集約する
3. 完了条件を満たすまで「人間チェック待ち」で止める

案件によっては YYYY-MM-DD-publish-check.mdYYYY-MM-DD-pre-human-<slug>.md など、正本のファイル名をそのまま書くと迷いが減る。

3. (任意)先にファイルの有無を確認する

ターミナルで ai-docs/fb/qa/ を見る。

  • md が 無い → 「先に md を書いてから集約」と指示する
  • md が ある → 「既存 md を読んで合否表だけ集約」と指示する

エージェントに判断を任せるより、人間側で分岐を1行書いたほうが早いことが多い。

このとき避けたい操作

  • ⌘N で同タブをリセット … 文脈が切れる(すでに止まっているなら影響は小さいが、基本は 同じチャットで続ける
  • Stop せず別タブで同じ依頼を再実行 … 二重実行になりやすい
  • 「続けて」だけ … 何を続けるか曖昧で、再び途中で止まりやすい

なぜ起きるか(短く)

  • サブエージェント完了は 親 Agent を自動再開しない
  • 親は「チャットに要約を返した」時点で 一区切り と判断しやすい
  • 「あとで md を読んで集約します」は 条件付きの次タスク なので、md が無い/親が続けない と約束どおり進まない

よしあきは 「UI が待機=作業完了」ではない と覚えておき、動いていないことを確認 → 同じチャットで成果物を明示して再指示 する流れにしている。

よくある誤解

「新規チャット = 全部止まる」

誤り。 新規チャットでも ⌘T なら並行⌘N なら同タブの進行中だけキャンセル だ。

「Cursor は同時に1 Agent しか動かせない」

誤り。 タブを分ければローカルでも複数 Agent を並行できる。Cloud や background サブエージェントも別軸の並行だ。

「別チャットを開いたら、前の会話は消える」

概ね誤り。 ⌘N で同タブをリセットした場合、進行中リクエストはキャンセルされるが、履歴から会話を辿れることが多い。消えたのは「走行中の処理」であって、ログ全体が消えたわけではない。

「⌘T だと前の会話が引き継がれる」

誤り。 ⌘T は 別タブの別セッション だ。前タブのチャット履歴は自動では来ない。必要なら @ファイル や短い要約を自分で渡す。

「話題を切り替えるなら ⌘N」

半分誤り。 話題切り替えは ⌘T でもできる。⌘N は 同タブで切り替え、進行中を止めてよい ときの操作だ。

「Send follow-up = 作業が全部終わった」

誤り。 待機中は 次の指示を待っているだけ だ。残件 md や集約表など 成果物が揃っていなければ未完了 として、同じチャットで具体的にフォローアップする。

まとめ

ローカル Cursor で 1つの Agent が動いているときに別チャットを開く と、

  • ⌘T / Ctrl+T … 1つ目は止まらず並行別タブ・別履歴。前の会話は引き継がれない)
  • ⌘N / Ctrl+N … 同タブで切り替え進行中リクエストはキャンセル
  • Stop明示的に停止
  • サイドチャットメインは継続

よしあきにとって、この4行を体に覚えておくだけで、「1つ目を止めず並行(⌘T)」なのか「同タブで切り替えてよい(⌘N)」なのかを迷いにくくなる。⌘T は前の会話の続きではなく、別タブの別会話 だ。並行は Cursor の現行 UI でも現実的な選択肢だ。あとは worktree使用量 に加え、待機中でも成果物が揃っていなければ未完了 と見て、同じチャットで具体的に続きを促せば、サブエージェント委譲後の取りこぼしも減らせる。

参考