2026年10月6日

Cursor SDK 1.0.31とは?実行中エージェントを軌道修正するrun.steer()

室谷室谷代表取締役
Cursor SDK 1.0.31は、Cursorが公開したSDKの更新で、実行中のエージェントを軌道修正したり、バックグラウンドで動くサブエージェントの結果を受け取ったりできるようになったんですよね。地味に見えて、エージェントを実運用に組み込んでいる人ほど効いてくる内容です。
テキトー教師テキトー教師DotAI 認定講師
そうなんですよ。今回は4つの機能がまとめて入っていて、単に「便利になった」という話じゃなくて、これまでエージェントに長いタスクを任せられなかった理由が一つずつ潰されているんです。

まず何が発表されたかを整理しましょう。
室谷室谷代表取締役
発表はCursorの公式Xアカウントと公式ドキュメントのチェンジログから出ています。内容は、run.steer()による実行中の軌道修正、バックグラウンドサブエージェントの結果が親に返る変更、カスタムツールへのMCPアノテーション付与、そしてsystemPromptによるCursor組み込みプロンプトの置き換えの4点です。
テキトー教師テキトー教師DotAI 認定講師
ここで大事なのは、4つとも対応範囲が同じではないという点なんですよ。そこを混ぜてしまうと「試したけど動かない」になりがちなので、後半で言語別に丁寧に分けますね。

Cursor SDK 1.0.31とは?今回追加された4つの新機能

Cursor SDK 1.0.31で追加された4つの新機能
run.steer(text)
実行中のターンにメッセージを注入する
バックグラウンドサブエージェント
結果が親にフォローアップターンとして返る
MCPアノテーション
readOnlyHintやdestructiveHintなどでカスタムツールの性質をモデルに伝える
systemPrompt
Agent.create()のsystemPromptでCursor組み込みのシステムプロンプトを自前のものに置き換える
室谷室谷代表取締役
そもそもCursor SDK自体の立ち位置を確認しておくと、これはCursor IDEやCLI、Webで動くコーディングエージェントを、自分のコードから呼び出せるようにするパッケージです。TypeScript版が@cursor/sdk、Python版がcursor-sdkで、1.0.24以降は両者が同じバージョン番号で同時にリリースされています。
テキトー教師テキトー教師DotAI 認定講師
講座でもよく聞かれるんですが、Cursor IDEのエージェントとSDKのエージェントは別物ではなくて、同じエージェントをスクリプトから動かすための入口なんですよ。だからCIに組み込んだり、バックエンドから呼んだり、社内ツールに埋め込んだりという使い方ができます。

Cursor IDEそのものについてはCursorとは?マウスカーソルからAIエディタまで徹底解説でも整理しているので、あわせて読むと全体像がつかみやすいです。
室谷室谷代表取締役
その上で今回の1.0.31です。追加されたのは、実行中にメッセージを差し込めるrun.steer(text)、バックグラウンドサブエージェントの結果が同一ラン上のフォローアップターンとして親に返る変更、カスタムツールにreadOnlyHintやdestructiveHintといったMCPアノテーションを付けられるようにする変更、そしてAgent.create()のsystemPromptでCursor組み込みのシステムプロンプトを置き換えられる変更です。
テキトー教師テキトー教師DotAI 認定講師
整理するとこうです。
  • run.steer(text):実行中のターンにメッセージを注入する
  • バックグラウンドサブエージェント:結果が親にフォローアップターンとして返る
  • MCPアノテーション:カスタムツールの性質をモデルに伝える
  • systemPrompt:Cursor組み込みのシステムプロンプトを自前のものに置き換える
室谷室谷代表取締役
この4つ、実は全部「エージェントに任せられる仕事の範囲を広げる」方向に効いていて。特にバックグラウンドの結果が消えなくなったのは、MYUUUでもエージェントを並列で走らせるときに効いてくるタイプの変更だなと感じています。

run.steer()とは?実行中エージェントを軌道修正する仕組み

run.steer() の戻り値による分岐

今のターンにメッセージを注入できたか?

YES / complete_delivered
  • 進行中のターンにメッセージが注入される
  • 呼び出し側は戻り値を見てそのまま続行
NO / revert_to_followup
  • 今のターンには注入されない
  • 通常のフォローアップとして送り直す
  • クラウドランではこちらが返る
室谷室谷代表取締役
run.steer()は、実行中のランに対してメッセージを次のターンへ注入するAPIです。公式の説明では、run.steer(text)が進行中のターンにメッセージを注入し、complete_deliveredを返すか、通常のフォローアップとして送るべき場合にはrevert_to_followupを返す、という挙動になっています。
テキトー教師テキトー教師DotAI 認定講師
ここが一番おもしろいところで、steer()は必ず差し込めるわけではなくて、「今のターンに注入できたよ」というcomplete_deliveredと、「これは普通のフォローアップとして送り直してね」というrevert_to_followupの2つの結果を返すんですよ。つまり呼び出し側が戻り値を見て分岐する設計になっています。
室谷室谷代表取締役
そうなんですよね。だから「steerしたつもりが実は届いていなかった」を防げる。

戻り値を見ずに投げっぱなしにする実装は避けたほうがいいと思います。
テキトー教師テキトー教師DotAI 認定講師
もう一つ重要なのが、前景でサブエージェントが動いている最中にsteer()を呼ぶと、そのサブエージェントがバックグラウンドに移って作業を続けるという点です。ここが今回の発表で一番おもしろい連動で、軌道修正しつつ、走っているサブタスクは殺さずに続けられるわけです。
室谷室谷代表取締役
これ、実際にエージェントを長時間走らせていると「あ、この方向じゃない」と思う瞬間が必ずあるんですよ。そこで止めて最初からやり直すと、それまでの作業が全部無駄になる。

それがsteer()で方向だけ変えられるなら、コストも時間もかなり変わってきます。
テキトー教師テキトー教師DotAI 認定講師
ただし対応範囲には制限があって、steeringはTypeScriptのローカルラン限定です。クラウドランではrevert_to_followupが返る、と公式に書かれています。

ここは覚えておきたいところですね。
室谷室谷代表取締役
あと、以前の挙動として「修正したいときは普通のフォローアップとして送り直すしかなかった」という説明をしたくなるところですが、これは資料で明示されている話ではないので、そこは推測として置いておきましょう。確実に言えるのは、revert_to_followupが返ったときは通常のフォローアップとして送る、という現在の仕様です。

バックグラウンドサブエージェントの結果が親に返るようになった

バックグラウンド結果回収とsteeringの対応範囲
機能TypeScriptPython
バックグラウンド結果の回収○○
steering○×
システムプロンプト○×
室谷室谷代表取締役
2つ目が、バックグラウンドサブエージェントの結果が親に返るようになった変更です。エージェントがサブエージェントをバックグラウンドで走らせたとき、その結果が親ターンの終了時に破棄されるのではなく、同一ラン上のフォローアップターンとして親に返るようになりました。
テキトー教師テキトー教師DotAI 認定講師
これは実務的にかなり大きいんですよ。run.stream()がそれらのターンを通して流し続けて、run.wait()はそれらが終わった後に解決する、という説明になっています。

つまり呼び出し側から見ると、サブエージェントの完了まで待てる一貫したストリームになるわけです。
室谷室谷代表取締役
以前はサブエージェントをバックグラウンドで動かすと、親ターンが終わった時点で結果が破棄されていた、と。だから複雑なタスクを任せられない直接の障壁になっていたんですよね。
テキトー教師テキトー教師DotAI 認定講師
講座で受講生さんがエージェントを並列化しようとして詰まるポイントがまさにここで、「バックグラウンドに投げたはいいけど結果が返ってこない」という状態だと、結局は逐次実行に戻さざるを得ないんですよ。それが解消される意味は大きいです。
室谷室谷代表取締役
しかもこれ、TypeScriptとPythonの両方のローカルエージェントで使えるんですよね。steeringがTypeScript限定なのに対して、こちらはPythonでも効く。

Pythonでエージェントを組んでいる人には朗報だと思います。
テキトー教師テキトー教師DotAI 認定講師
整理すると、バックグラウンド結果の回収はローカルのTypeScriptとPython、steeringとシステムプロンプトはTypeScriptローカル限定、という切り分けです。この違いは実装前に必ず確認したほうがいいですね。

MCPアノテーションで危険なツール呼び出しを事前判別できる

室谷室谷代表取締役
3つ目が、カスタムツールにMCPアノテーションを付けられるようになった変更です。local.customToolsのエントリにannotationsを付けると、title、readOnlyHint、destructiveHint、idempotentHint、openWorldHintといったMCPのツールアノテーションがモデルに渡されます。
テキトー教師テキトー教師DotAI 認定講師
これは「参照」と「削除」をモデルが呼び出し前に区別できるようになる、というのがポイントです。readOnlyHintが付いていれば読み取り専用、destructiveHintが付いていれば破壊的、というシグナルになるわけですね。
室谷室谷代表取締役
エージェントにツールを渡すとき、一番怖いのが破壊的な操作をいきなり呼ばれることなんですよ。事前に性質が伝わっていれば、モデル側の判断材料が増える。

地味ですけど、安全性の設計としては効いてきます。
テキトー教師テキトー教師DotAI 認定講師
ただしここは誤解されやすいんですが、公式の説明ではこれらのアノテーションは「記述的なヒント」であって、SDKは強制しないと明記されています。つまりdestructiveHintを付けたからといって、そのツールの実行がブロックされるわけではないんですよ。

あくまでモデルに伝わる情報が増える、という話です。
室谷室谷代表取締役
そうなんですよね。だから実際に危険な操作を止めたいなら、別途フックやサンドボックスの設定と組み合わせる必要がある。

アノテーションは「モデルに文脈を与える」レイヤーで、「実行を制御する」レイヤーではない、と分けて考えるのが正解だと思います。
テキトー教師テキトー教師DotAI 認定講師
この区別は講座でも必ず伝えているところで、ヒントと強制は別物なんですよ。ここを混同すると「アノテーションを付けたのに削除が実行された」という誤解につながります。
室谷室谷代表取締役
なお、このMCPアノテーションはTypeScriptのみの対応です。Python側で同じことをしたい場合の扱いは、現時点では明らかにされていません。

システムプロンプトを自前のものに置き換える方法と注意点

室谷室谷代表取締役
4つ目が、システムプロンプトの置き換えです。Agent.create()のsystemPromptに自前のテキストを渡すと、メインのエージェントループで使われるCursor組み込みのシステムプロンプトが、そのテキストに置き換わります。
テキトー教師テキトー教師DotAI 認定講師
ここで安心材料なのが、ルール、スキル、ツールスキーマは引き続き読み込まれるという点と、サブエージェントは独自のプロンプトを保つという点です。全部が真っさらになるわけではなくて、メインループのプロンプトだけが差し替わるイメージですね。
室谷室谷代表取締役
自社のプロダクトにエージェントを埋め込むとき、振る舞いを自社の言葉で規定したいというのは必ず出てくる要望なんですよ。それがSDKのオプション一つでできるようになったのは大きいです。
テキトー教師テキトー教師DotAI 認定講師
ただ注意点もあって、これはTypeScriptのローカルエージェント限定です。しかもAgent.resume()のときにもう一度渡す必要がある、と公式に書かれています。

resumeで消えてしまうと「なぜか振る舞いが戻った」という事故になるので、ここは実装時に気をつけたいところです。
室谷室谷代表取締役
あともう一つ、アクセスはアカウント単位で有効化されると書かれています。「アカウントごとに有効にしている」という表現なので、いきなり全員が使えるわけではない可能性があります。

自分のアカウントで使えるかどうかは、実際に試すか公式の案内を確認するのが確実です。
テキトー教師テキトー教師DotAI 認定講師
この「順次有効化」は見落としやすいポイントなんですよ。ドキュメントに機能が載っているのに手元で動かない、というときは、まずここを疑うといいですね。

Cursor SDKの対応範囲と言語別の違い(TypeScript・Python・クラウド)

室谷室谷代表取締役
ここまでで一番混乱しやすいのが対応範囲なので、一度きれいに整理しておきたいんですよね。
テキトー教師テキトー教師DotAI 認定講師
そうですね。整理するとこうです。
機能対応範囲
run.steer()TypeScriptのローカルランのみ。クラウドランはrevert_to_followupを返す
バックグラウンドサブエージェントの結果回収ローカルのTypeScriptとPython
MCPアノテーションTypeScriptのみ
systemPromptによる置き換えTypeScriptのローカルエージェントのみ。Agent.resume()でも再指定が必要。アカウント単位で有効化
室谷室谷代表取締役
こう見ると、今回の4機能は全部が全部Pythonで使えるわけではないんですよね。Pythonで組んでいる人は、バックグラウンド結果の回収だけが今回の対象、という理解になります。
テキトー教師テキトー教師DotAI 認定講師
あと、SDK全体の前提として、TypeScript版はNode.js 22.13以降が必要で、@cursor/sdkというパッケージ名でnpmからインストールします。Python版はcursor-sdkで、Python 3.10以降が必要です。

インストールはnpm install @cursor/sdkとpip install cursor-sdkになります。
室谷室谷代表取締役
認証はCURSOR_API_KEYを設定するか、apiKeyを渡す形です。ユーザーAPIキーとサービスアカウントAPIキーの両方が使えますが、Team Admin APIキーはまだサポートされていない、と公式に書かれています。
テキトー教師テキトー教師DotAI 認定講師
ランタイムはAgent.create()にlocalを渡すかcloudを渡すかで決まります。ここで言う「ローカル」はエージェントループとファイルアクセスが手元で動くという意味で、モデルの推論自体はどちらのモードでもCursorのホスト型モデルを通る、という点は誤解しやすいので押さえておきたいですね。
室谷室谷代表取締役
料金や利用条件は、SDKのランもIDEやCloud Agentsからのランと同じ料金、リクエストプール、プライバシーモードのルールに従う、と説明されています。利用状況はチームのダッシュボードでSDKタグ付きで表示されるようです。
テキトー教師テキトー教師DotAI 認定講師
具体的な金額やレート制限の数値は、今回の資料では明らかにされていません。ここは公式の料金ページを確認するのが確実です。
室谷室谷代表取締役
それと、クイックスタートではローカルのエージェントがツール呼び出しを自動承認する、つまりヘッドレスでは人間の承認プロンプトが出ない点も書かれています。ツール呼び出しを制御したいならフックを設定するか、サンドボックスを有効にする必要がある。

ここはCIに組み込む前に必ず確認したいところです。
テキトー教師テキトー教師DotAI 認定講師
エージェントをCIやバックエンドに組み込む流れは、Codex入門:OpenAIのAIコーディングエージェントを徹底解説で扱っているような自動化の延長線上にあるので、そちらも参考にしながら設計すると整理しやすいですよ。
室谷室谷代表取締役
あと、SDKの使い方としては、Cursorの中で/sdkスキルを実行すると始められる、と案内されています。公式のCookbookにはSDKクイックスタートやアプリビルダーのプロトタイピングツール、クラウドエージェント用のカンバンボード、コーディングエージェントCLIといったエンドツーエンドの例があるので、CIの自動修正ボットやバグトリアージ、コードレビューの自動化あたりから入るのが現実的だと思います。

よくある質問

室谷室谷代表取締役
ここからは、実際に触る前に気になる点をまとめておきます。
テキトー教師テキトー教師DotAI 認定講師
まず「Cursor SDKで何ができるのか」ですが、Cursor IDEやCLI、Webで動くのと同じエージェントを、自分のコードから呼び出して動かせます。ローカルとクラウドのランタイムを同じインターフェースで扱えるので、呼び出し側のコードは実行場所を変えても同じものを書けます。
室谷室谷代表取締役
「TypeScriptとPythonで導入方法は違うのか」については、TypeScriptがnpm install @cursor/sdkでNode.js 22.13以降、Pythonがpip install cursor-sdkでPython 3.10以降です。パッケージ名が違うので、そこだけ注意すれば基本の考え方は共通です。
テキトー教師テキトー教師DotAI 認定講師
「APIの基本的な使い方」は、Agent.create()でエージェントを作り、agent.send()でプロンプトを投入してランを開始し、run.stream()でイベントを流し込みながら受け取るか、run.wait()で完了を待って結果を取る、という流れです。エージェントは会話状態を保持する永続的な入れ物で、ランは1回のプロンプト投入、という関係になります。
室谷室谷代表取締役
「CI/CDやバックエンドへの組み込み」は、ローカルランなら開発スクリプトやCIチェック、クラウドランならリポジトリを持っていない呼び出し元や並列実行、呼び出し元が切断されても走り続けてほしい場合、というのが公式の使い分けです。
テキトー教師テキトー教師DotAI 認定講師
「料金や制限」については、SDKのランはIDEやCloud Agentsと同じ料金、リクエストプール、プライバシーモードのルールに従う、とされています。具体的な金額やレート制限の数値は今回の資料では明らかにされていません。
室谷室谷代表取締役
「Cursor IDEのエージェントとの違い」は、同じエージェントをコードから呼べるようにしたものがSDK、という関係です。SDKから開始したクラウドエージェントはデフォルトのエージェント一覧からは除外されていて、Cursor WebやCursorのウィンドウで見るときはFilterからSourceのSDKを選ぶ、という仕様になっています。
テキトー教師テキトー教師DotAI 認定講師
最後に「実際のユースケース」ですが、公式が挙げているのはCIの自動修正ボット、バグトリアージのワーカー、コードレビューのパス、プロダクトに埋め込むエージェント、オーケストレーターあたりです。今回のsteer()やバックグラウンド結果の回収は、まさにこういう長時間・並列のユースケースを想定した機能だと言えます。
室谷室谷代表取締役
というわけで、今回の1.0.31は「エージェントを本番のワークフローに置けるか」という問いに対して、かなり実務的な答えを出してきたアップデートだと思います。対応範囲が機能ごとに違うので、そこだけ丁寧に確認しながら試してみてください。

Related

関連記事

New Articles

新着記事

ニュース

Replitの「TikTok Ads MCP」とは?広告データをAIエージェントで扱う仕組み

2026年10月6日
室谷テキトー教師
ニュース

Manus Video Editorとは?動画編集に参入した汎用エージェントの実力

2026年10月6日
室谷テキトー教師
ニュース

Z.aiの「GLM-5.3」とは?Amazon Bedrockで企業向け提供開始

2026年10月6日
室谷テキトー教師
ニュース

HeyGenの「HyperFrames Studio」とは?エージェントと動画編集するアプリ

2026年10月6日
室谷テキトー教師
ニュース

ElevenLabsの「The Search」とは?賞金10万ドルの広告コンテスト

2026年10月6日
室谷テキトー教師
ニュース

ClineがPareto 26.10 Preview発表、56倍安の衝撃

2026年10月6日
室谷テキトー教師
ニュース

Reflectionの新モデルBeam、Artificial Analysisが独立評価開始

2026年10月6日
室谷テキトー教師
ガイド

Microsoft Copilot Studioとは?できること・料金・ログインからエージェント作成まで

2026年10月6日
室谷テキトー教師
ニュース

CognitionがDevinの「Dreaming」発表、記憶をGit管理するOSS標準も

2026年10月6日
室谷テキトー教師
ガイド

Geminiの学生無料はどこまで?AI PlusとAI Proの違いから申し込み期限まで

2026年10月6日
室谷テキトー教師

Join

AIプレナーになる。

入会は審査制です。いまの事業と、AIで何を動かしたいのかを聞かせてください。

参加を申請する