SDK 持久化与恢复
保存 Agent 标识和本地 checkpoint,恢复运行并管理资源生命周期。
This page has not been translated into English yet. The original Chinese version is shown below.
Agent.create 每次创建新会话,Agent.prompt 是一次性调用。要持续工作,保存 agent.agentId 后用 Agent.resume(agentId, options);不能仅保存提示文本再重新 create。
恢复句柄
resume 根据 ID 前缀判断运行时:bc- 为云端,其他为本地。云端状态在服务端,本地状态来自 checkpoint store。除非再传 model,否则恢复句柄的 agent.model 为 undefined;inline MCP、tools、disallowedTools 和 systemPrompt 等选项需要重新提供。
已存在的 Run 可通过 Agent.getRun 获取。云端必须传父 agentId;调用 stream/wait/cancel/conversation 前用 supports 与 unsupportedReason 检查运行时能力。
默认 SQLite 与 JSONL
默认使用 node:sqlite 在磁盘持久化,本地 agent、checkpoint、run 和事件可跨进程保留。缺少 node:sqlite 会抛 ConfigurationError,不自动降级。
import { Agent, JsonlLocalAgentStore } from "@cursor/sdk";
const store = new JsonlLocalAgentStore("/var/lib/cursor-agents");
const agent = await Agent.create({
apiKey: process.env.CURSOR_API_KEY!,
model: { id: "composer-2.5" },
local: { cwd: process.cwd(), store },
});JSONL store 在指定目录写 agents.ndjson、runs.ndjson、run_events.ndjson、checkpoints.ndjson。resume、list/get 和 listRuns/getRun 应传相同 store,避免因 workspace 或 store 不同误判数据丢失。
全局默认与自定义后端
Cursor.configure 的 local.store 设置进程默认,单次调用优先;传 null 清除自定义默认。LocalAgentStore 由 agents、checkpoints、runs、runEvents 四个子 store 组成,可实现接口或通过 composeLocalAgentStore 组合。
目录记录用不透明 cursor/nextCursor 分页,事件日志用排他 afterOffset/nextOffset 续读。云端始终服务端持久化,local.store 不适用。
预热与配置新鲜度
createAgentPlatform().prewarmLocalWorkspace(options) 提前解析 rules、Skills、MCP 和 ignore files,只对 workspace options 匹配的 send 有效;关闭宿主时调用返回的 release。
workspaceScanCacheTtlMs 默认 20 秒,也可通过 CURSOR_RIPWALK_CACHE_TTL_MS 设置。增加缓存时间会延迟发现新规则。需要代理兼容时可设置 local.useHttp1ForAgent;Bun 因 HTTP/2 兼容问题默认走 HTTP/1.1。
云端生命周期
SDK 的 Agent.list({ runtime: "cloud" }) 默认隐藏归档任务,includeArchived: true 才显示。这与 REST v1 列表文档中默认包含归档不同,按所调用接口判断。
Agent.archive 保留可读会话,Agent.unarchive 恢复,Agent.delete 永久删除,后续读取返回 404。释放 SDK 句柄与删除云端资源是不同动作。
本地 listArtifacts 当前返回空数组,downloadArtifact 抛错;云端可列出 path 后下载。不要用本地产物列表为空推断 Agent 没有在 workspace 写文件。