使用 Cursor SDK 打造可程式化代理

我們推出 Cursor SDK,讓您能使用驅動 Cursor 的相同執行環境、harness 和模型來打造代理。

在 Cursor 桌面應用程式、CLI 和 Web 應用程式中執行的代理,現在只需幾行 TypeScript 即可存取。您可以在自己的電腦上執行,也可以在 Cursor 的雲端專用 VM 上搭配任何尖端模型執行。

若要開始使用,請執行 npm install @cursor/sdk。您也可以使用 Cursor 原生的 /sdk 技能,幫助您開始打造。

import { Agent } from "@cursor/sdk";

const agent = await Agent.create({
  apiKey: process.env.CURSOR_API_KEY!,
  model: { id: "composer-2" },
  local: { cwd: process.cwd() },
});

const run = await agent.send("Summarize what this repository does");

for await (const event of run.stream()) {
  console.log(event);
}

我們建立了幾個範例專案,你可以從公開的 儲存庫 取得。請 fork 並延伸它們,以符合你自己的使用情境。

Cursor SDK 現已以公開測試版形式提供給所有使用者,並依標準的 token 用量計費。請在我們的 公告文件中了解更多。

  • 我們已將 API 重新設計為以持久型代理和每次提示詞執行為核心,因此後續內容、狀態、串流和取消現在都以執行為範圍。
  • 加入了原生的執行串流支援,採用 SSE 事件、可透過 Last-Event-ID 重新連接,並提供更清楚的終止狀態。
  • 加入了明確的代理生命週期控制,包括封存、取消封存和永久刪除。
  • 標準化了 v1 的回應和錯誤格式,包括結構化錯誤代碼、items 清單回應,以及分開的 agent / run 物件。

多工處理、工作樹與多根工作區

此版本推出全新的多工處理方式,包含非同步子代理、改進後的工作樹體驗,以及用於跨儲存庫變更的多根工作區。

在 Agent 視窗中多工處理

使用 /multitask 時,Cursor 會執行非同步子代理來平行處理您的請求,而不是將它們加入佇列。它也會將較大的任務拆解成較小的部分,交由一批非同步子代理同時著手處理。

如果佇列中已有訊息,您可以請 Cursor 為您對這些訊息進行多工處理,而不必等到目前這次執行完成。

Agent 視窗中的工作樹

我們已在 Agent 視窗 中加入全新且經過改進的 工作樹

你可以在不同分支間,於背景執行隔離的任務。準備好測試變更時,只要按一下,就能將任何分支切換到本機前景。

Agent 視窗中的多根工作區

單一代理工作階段現在可將目標設為由多個資料夾組成、可重複使用的工作區。

這讓 Cursor 能夠跨前端、後端與共用函式庫進行跨儲存庫變更,而不必在代理於不同儲存庫間切換時,每次都重新設定目標。

畫布

Cursor 現在可以透過建立互動畫布來回應。

這些視覺化內容可包含儀表板與自訂介面,使用表格、方塊、圖解和圖表等第一方元件建構,也可納入像是差異檢視和待辦清單等現有的 Cursor 元件。

Agent 視窗 中,畫布是可持久存在的產物,位於側邊面板,與終端機、瀏覽器和版本控制並列。

立即在 Cursor 3.1 的 Agent 視窗或編輯器中試用。請在我們的 公告 中閱讀更多內容。

CLI 偵錯模式與 /btw 支援

我們為 Cursor CLI 帶來了多項體驗提升,讓你在終端機中使用代理時更順手、更愉快。

CLI 的偵錯模式

使用 /debug 找出根本原因,並修正那些難以重現或理解的棘手錯誤。在 偵錯模式 中,Cursor 會提出假設、加入日誌記錄,並利用執行階段資訊,在進行針對性的修正前精準定位問題。

CLI 中的 /btw 支援

在不干擾代理主要任務的情況下,快速順帶問個問題。/btw 可讓你在不中止目前執行的情況下,釐清 Cursor 正在進行的變更內容。

CLI 中的組態選單

/config 會在 CLI 內開啟互動式設定面板,您可在此檢視及調整各項行為設定,例如模型選擇、預設值、執行階段偏好等。

您也可以使用 /update-cli-config 技能,請 Cursor 為您套用組態變更。

CLI 中的自訂狀態列

使用 /statusline 自訂狀態列,以呈現你關心的工作階段與執行階段訊號,包括目前模式、分支、環境、使用中的任務提示,或其他工作階段中繼資料。

  • 現在可在任何地方叫出模型選擇器來切換模型,而不必先清除提示詞。
  • 如果 Cursor 偵測到你已連續三次啟用 auto-run,現在會主動建議你將它開啟,以避免陷入無止盡的核准循環。
  • AskQuestion 工具和 偵錯模式 現在能更順暢地處理純文字回應。
  • 現在支援從剪貼簿貼上圖片,包括在某些沒有原生貼上支援的終端機中使用 Ctrl+V
  • 頁尾現在會顯示你的工作目錄、worktree 和目前分支。

  • 你現在可以穩定地使用 Ctrl+Z 將 CLI 送到背景執行。
  • Auto-run 現在也可在其他模式中運作,例如 偵錯模式 和 規劃模式。
  • 修正了結束 CLI 後背景 shell 行程可能仍持續執行的議題。
  • 修正了 slash command 的處理與比對。
  • 修正了 Cmd+Delete、Vim keybindings,以及 Ctrl 組合鍵的鍵盤處理。

Agent 視窗中的平鋪版面配置與升級版語音輸入

此版本作為 Cursor 3 的一部分,為 Agent 視窗介面帶來多項改進。

平鋪版面配置

將目前的檢視拆分成多個窗格,以便並行執行及管理多個代理。平鋪版面配置讓你更容易同時處理多項工作,並在不同代理之間比較輸出,不必來回切換分頁。

你可以展開窗格,專注在單一對話;將代理拖曳到不同區塊中,並使用鍵盤快速鍵進行快速導覽與整理。你的設定也會在不同工作階段之間保留。

升級版語音輸入

語音聽寫現在更可靠、也更準確。系統會完整錄下你的語音片段,並以批次 STT 進行轉寫,提供更高品質的語音轉文字效果。

你可以按住 Ctrl+M 來說話,我們也在錄音時於 UI 中加入了控制項,例如波形、計時器,以及取消與確認按鈕。

空白狀態下的分支選擇

先前,從空白狀態啟動代理時,通常會預設為你目前所在的分支。現在你可以先搜尋並選取分支,再直接針對該分支啟動雲端代理。

這樣可減少切換分支的額外步驟,並降低在錯誤分支上誤執行的機率。

從 差異 跳至檔案

直接從 差異 跳到檔案中的確切行。到了之後,你就能使用編輯器的完整功能:手動修改、使用 Tab、跳到定義等等。

搜尋檔案的篩選器

可在「Search in Files」中使用 include/exclude 篩選器,將程式碼搜尋範圍縮小至特定檔案集。

  • 處理語音輸入時,提示詞按鈕現在會保持在原位。
  • 規劃分頁現在和檔案一樣具備相同的文件行為:支援穩定載入、未儲存變更追蹤、在規劃變更時重新載入,以及儲存、複製和匯出 Markdown 的能力。
  • 新的代理工作階段現在預設會從你偏好的專案目標開始。
  • 檔案分頁名稱現在會在目前代理可見的分頁範圍內解析,不再嘗試在所有其他代理的分頁中保持全域唯一。
  • Cmd-K 現在顯示更少但更相關的代理結果,並限制為最近的相符結果集 (也就是符合你的查詢,且來自最近一批結果的項目) 。
  • 在 macOS 上,文字現在會以抗鋸齒方式渲染,讓字元邊緣更清晰。
  • Design Mode 現在支援使用鍵盤在元素樹中導覽 (向上、向下與橫向移動) ,方便你在留言前先選取 UI 元素。
  • Agent 視窗現在會避免進行高成本的更新與擷取,除非確實有需要。
  • 關閉分頁時現在較不容易讓檔案樹出現異常,且恢復速度更快。
  • 限制本機差異擷取,以減少 SCM 檢視中的 CPU/網路尖峰與延遲。
  • 檔案樹現在能更可靠地回應變更,也較不容易閃爍、顯示過時內容或漏掉更新。
  • 擴充功能事件 (例如檔案變更、診斷更新) 現在會限定在各自的工作區內,減少跨專案干擾。
  • 在長對話中按下 Enter 傳送後續內容,過去常會卡住超過一秒,現在幾乎是即時的。
  • 將掉幀減少約 87% 後,大型編輯現在串流得更流暢。

  • 修正了一個錯誤:捲動瀏覽長對話時過去會卡頓。現在即使在大型執行緒中也很流暢。
  • 修正了一個錯誤:當代理對話中充滿差異或程式碼區塊時,畫面會閃爍並凍結。