· 更新日誌
Cursor SDK 的自訂儲存體、自訂工具與自動審查
我們已在 TypeScript 與 Python SDK 中推出一批新功能。您現在可以選擇要如何儲存代理與執行的中繼資料、將自己的函式作為工具提供給代理使用、透過自動審查來處理本機工具呼叫,並以任意深度巢狀組合子代理。此次發佈也帶來一系列可靠性、效能與平台修正,讓本機與 Cloud SDK 代理更容易在正式環境的指令碼、CI 與自訂整合中執行。
自訂工具
你現在可以透過 local.customTools 傳入函式定義,在 Agent.create() 或每次 send() 時,將自己的工具交給本機代理。SDK 會透過一個名為 custom-user-tools 的內建 MCP 伺服器,將這些工具提供給代理,因此模型會透過與其他任何 MCP 工具相同的路徑和相同的權限機制來呼叫你的程式碼。
在此之前,若要提供自訂功能,你必須自行架設 stdio 或遠端 HTTP MCP 伺服器,並將其接入代理。現在只要有函式定義就夠了。父代理的每個子代理也都看得到自訂工具,因此工具只需定義一次,整個執行過程中都可使用。
自動審查
預設情況下,本機 SDK 代理會直接執行工具呼叫而不要求核准,因為在無頭執行時沒有人工介入。請設定 local.autoReview,改為讓這些呼叫透過 自動審查 處理。分類器會決定哪些呼叫可自動執行、哪些要先保留,而不是完全略過審查。
你可以在 permissions.json 中用自然語言指示來引導這個分類器。autoRun.allow_instructions 欄位用來描述傾向允許的呼叫模式,而 autoRun.block_instructions 則描述應暫停並等待審查的呼叫模式。舉例來說,你可以允許對建置產物進行唯讀檢查,同時對刪除這類破壞性操作一律暫停。
{
"autoRun": {
"allow_instructions": [
"Read-only inspections of build artifacts under ./dist are fine."
],
"block_instructions": [
"Always pause delete operations so I get a chance to review them."
]
}
}JSONL 和自訂儲存體
兩個 SDK 都會儲存代理和執行的中繼資料,讓你可以在程序重啟後恢復代理。先前一直使用的是 SQLite。現在你也可以選擇改用 JSONL 儲存體,它會寫入純文字的追加式檔案,方便你讀取、查看差異,並提交到版本控制。SqliteLocalAgentStore 和 JsonlLocalAgentStore 都可直接匯出使用。
如果這兩種預設方式都不符合你的設定,請實作公開的 LocalAgentStore 介面,並透過 local.store 傳入。你可以為短暫的 CI 執行打造記憶體內儲存體;如果你希望代理狀態和其他應用程式資料存放在一起,也可以使用 Postgres 作為持久化後端。Python SDK 會透過 bridge 提供 host、JSONL 和 composed JSONL 儲存體。
巢狀子代理
子代理現在可以建立自己的子代理,依此類推。負責審查的子代理可以委派給撰寫測試的子代理,而後者還能再繼續委派;每一層都會保有自己的提示詞和模型。不需要啟用任何設定;子代理工作階段會註冊其呼叫 Task 所需的執行器,因此只要代理定義了子代理,就會自動支援巢狀結構。
可靠性、效能與平台改進
此版本也包含了一批涵蓋兩個 SDK 的體驗改進與修正。
- 執行關聯:現在每次
send()都會附帶由平台產生的requestId,並可在Run和RunResult中取得,且會持久化儲存於記憶體內、SQLite 和 JSONL 儲存體。你可以將指令碼或 CI 執行與後端日誌、analytics 和支援討論串對應起來,而不必再從agentId推斷。 - 本機執行的可靠
wait():本機執行不再會在終端機結果寫入前就完成wait()。Hydration 會持續重新整理,直到執行進入最終狀態,因此 automation 讀取到的會是完整結果。 - dispose 時的安全檢查點:釋放本機代理時,即使缺少根參考,只要檢查點 blob 仍存在,就不再移除檢查點資料。只有在確實沒有任何需要保留的內容時,才會清除代理目錄。
- 透過 HTTP/1.1 的雲端串流:雲端代理工作階段現在可在部分 proxy、較舊的 Node fetch 堆疊,以及某些 CI 映像使用的 HTTP/1.1 transport 上正確串流。HTTP/2 的行為維持不變。
- 更輕量的匯入:匯入
@cursor/sdk時,不再預先載入完整的本機代理堆疊。僅使用雲端功能或型別的使用者,在第一次本機呼叫前可略過本機 runtime 的成本,且不需要變更 API。第一次本機呼叫會支付一次性的匯入成本,之後則會維持快取。 - 自含式 TypeScript 類型:發布的
.d.ts檔案不再參照未發布的 workspace 套件。這修正了在skipLibCheck: false下的TS2305和TS2307錯誤,以及像TurnEndedUpdate這類串流型別悄悄變成any的情況。 - 內建 ripgrep:本機 shell 執行會使用隨附的平台
rg二進位檔,而不會修改你的全域PATH。在 Windows 上,將 ripgrep 加到前面也不再覆寫Path變數。
- Composer 2 會導向 Composer 2.5:仍固定使用已淘汰
composer-2slug 的 SDK client,現在會自動導向 Composer 2.5,並保留快速變體,因此較舊的指令碼仍可繼續執行。
- 以 workspace 為範圍的
list_runs:Client、AsyncClient和Agent.list_runs現在接受可選的cwd,而 bridge 會退回使用其啟動 workspace。這修正了當 bridge 以子程序執行時,偶爾出現的「找不到代理」結果。 - 更清楚的找不到錯誤:查找不在已解析 workspace 內的代理時,現在會回傳明確的找不到錯誤,而不是模糊的內部錯誤。
- 0.1.6 版本與 analytics:
cursor-sdk0.1.6 說明了 Buildkite 的發布路徑,並將 SDK 使用標記為sdk-python-,讓 analytics 更清楚。
執行 npm install @cursor/sdk 或 pip install cursor-sdk 以升級。固定使用 composer-2 的指令碼會自動移轉至 Composer 2.5,而 requestId 也可安全加入你的執行中繼資料結構。完整資訊請參閱 TypeScript 和 Python 文件。
畫布設計模式與上下文用量報告
透過畫布,Agent 可以建立可互動的產物,例如儀表板、報告和內部工具,並可與團隊分享。
這次發佈推出了設計模式,讓畫布編輯更快速,並提供新的方式來了解上下文用量,以及其他提升使用體驗的改進。
畫布中的設計模式
現在已可在畫布中使用設計模式。
你可以直接在畫布中選取並註記 UI 元素,引導 Cursor 如何編輯,就像在瀏覽器中操作一樣。不必再用文字描述變更;你可以直接指出要修改的位置、提供意見回饋,並更快反覆調整。
畫布中的上下文用量報告
Cursor 現在可以在畫布中,將你的代理的上下文用量顯示為互動式報告。
上下文探索器會拆解 token 在系統提示詞、工具定義、規則、技能等各部分中的分配情況。由於這是一個畫布,你可以向代理追問後續問題,它也可以自訂這份報告來回答你的特定疑問。
按一下嵌入在畫布中的 Debug with Agent 按鈕,即可請 Cursor 在新對話中找出減少上下文用量的機會。
- 已分享的畫布現在可在瀏覽器中以全螢幕開啟,更方便向他人展示。
- 新增了讓代理可在畫布中嵌入按鈕的功能,按一下後會執行特定提示詞。
- 改進了代理修正畫布類型錯誤的能力。
- 改進了元件樣式,並新增更多圖表自訂功能。
· 更新日誌
Cursor Enterprise 的組織
企業客戶現在可以在同一處管理多個 Cursor Teams,並針對各 Teams 設定不同的安全、治理、預算和功能控制。這些能力現已全面開放給所有企業客戶使用。


組織
組織是用來管理您公司身分、管理權限與成員的最高層級容器。它讓管理員能在單一位置檢視並管理整個 Cursor 設定,並彙總所有團隊的支出和 token 用量。
團隊
團隊 是部門、地區或子公司的營運單位。這也是目前管理員在 Cursor 組織中管理的單位。我們已將這個單位納入組織之下,因此你可以運作多個 團隊,而每個 團隊 都有各自的安全、治理、支出和功能設定。
使用者可以同時隸屬於多個 團隊,並在每個 團隊 中擔任不同角色。對於目前的客戶,你的現有 團隊 會被保留,並成為登入、路由及建立新 團隊 的預設主頁。
群組
群組是一種輕量的使用者集合,可跨 Teams 或在 Teams 內使用。它能讓特定使用者群體擁有獨立的模型存取權限、支出額度限制和代理權限,而不必另外建立整個新 Teams。當使用者同時屬於多個 Teams 或群組時,會以限制最少的設定為準。
- 支援多 Teams,讓使用者可同時加入多個 Teams
- 組織層級 IDP 管理
- 組織層級使用分析,並可深入查看各個 Teams 的資料
- 管理員可透過儀表板、API 或 CSV 在 Teams 之間移動使用者
- 加入 Teams 的新使用者會自動繼承設定與權限