Cursor SKILL.md:AI模型接入的契约式范式重构

发布时间:2026/6/22 7:45:45

Cursor SKILL.md:AI模型接入的契约式范式重构 1. 这不是“配置教程”而是 Cursor 的 AI 模型接入范式重构你点开这篇文字大概率刚在 Cursor 里反复点击「Send」却收不到 Sora-2 的视频生成响应或者在SKILL.md文件里改了十遍 provider 配置Claude Opus-4-7 依然报错model not found又或者你复制粘贴了 Coze World 社区里那行https://world.coze.com/skill.md结果 Cursor 直接弹出This model provider is not supported in your region—— 不是网络问题不是账号没升级更不是你手速不够快。这是 Cursor 当前版本v0.48对 AI 模型接入的底层逻辑发生了根本性迁移它不再把模型当“API endpoint”来调用而是把模型当“可编排技能单元”来注册、验证、路由与沙箱执行。而SKILL.md就是这个新范式的唯一入口文件是 Cursor 的“AI 模型宪法”。我从 2023 年 Cursor 公测期就开始用它做嵌入式固件开发也经历过早期靠.cursor/rules.json硬编码模型、靠cursor.config.json注入 API Key 的混乱阶段。但今年 Q2 起所有新发布的高阶模型——Sora-2OpenAI 视频生成、Claude Opus-4-7Anthropic 最强推理版、Veo 3.1Google 新一代多模态视频理解模型——全部强制要求通过SKILL.md接入。这不是一个“可选优化”而是 Cursor 官方为应对模型爆炸式增长、区域合规复杂度提升、以及 Agent 编排安全沙箱化所设计的全新基础设施层。它解决的不是“能不能连上”的问题而是“谁有权调用、在什么上下文调用、调用时带什么约束、失败后如何降级”的系统性问题。所以本文不叫《Cursor 接入 Sora-2 教程》因为那种写法已经失效。你照着旧教程改provider: openai再填上model: sora-2Cursor 会直接忽略——它根本不认这个字段。真正起作用的是你在SKILL.md里定义的skill_id、capabilities、input_schema和execution_policy。这就像你不能靠修改 Windows 的hosts文件来让 Chrome 访问一个需要 OAuth2.0 授权的 SaaS 应用你得去它的开发者控制台创建 OAuth Client ID再在前端集成 Authorization Code Flow。SKILL.md就是那个“开发者控制台”而skill_id就是你的 Client ID。关键词里没有提供具体值但热搜词已足够说明一切cursor skill、cursor skills、cursor添加自定义模型、agents.md和skill.md的区别——这些高频搜索背后是成千上万开发者在真实踩坑。他们卡在同一个地方以为SKILL.md是个“模型列表配置文件”其实它是“AI 模型服务契约声明文件”。你声明的不是“我要用哪个模型”而是“我承诺提供一个符合某接口规范、具备某能力边界、接受某输入格式、并遵守某执行策略的服务”。Cursor 的 runtime 会基于这份契约动态加载、验证、路由请求。理解这一点是调通 Sora-2、Claude Opus-4-7、Veo 3.1 的第一道也是最关键的一道门。提示如果你的SKILL.md文件里还写着model: claude-3-opus-20240229或者endpoint: https://api.anthropic.com/v1/messages请立刻删除。这些字段在当前 Cursor 架构下完全无效且可能干扰 runtime 的契约解析流程。2. SKILL.md 的本质一份面向 AI 模型的 OpenAPI 3.0 契约文档很多人被SKILL.md这个名字误导以为它是个 Markdown 格式的“使用说明”。错了。它是一个严格遵循 YAML Front Matter Markdown Body 结构的结构化契约文档其核心部分YAML 区域的语义等价于 OpenAPI 3.0 的components/schemaspathsservers的混合体。你可以把它理解为用人类可读的 Markdown 语法写了一份机器可解析的 AI 模型服务接口说明书。我们以 Sora-2 的接入为例拆解一份真实可用的SKILL.md--- # 必填全局唯一技能标识符格式为 {vendor}.{product}.{version} skill_id: openai.sora-2.v1 # 必填技能名称仅用于 UI 显示 name: Sora-2 Video Generator # 必填技能描述影响 Cursor 的智能推荐与上下文理解 description: Generate high-fidelity, 120-second video clips from text prompts. Supports multi-shot prompting and temporal consistency control. # 必填技能能力声明决定 Cursor 在什么场景下自动触发该技能 capabilities: - video-generation - temporal-consistency - multi-shot-prompting # 必填输入参数 Schema采用 JSON Schema Draft 07 语法 input_schema: type: object required: [prompt, duration_seconds] properties: prompt: type: string description: The text prompt describing the video content. Must be in English. minLength: 10 maxLength: 500 duration_seconds: type: integer description: Video duration in seconds. Valid values: 4, 8, 16, 32, 64, 120. enum: [4, 8, 16, 32, 64, 120] aspect_ratio: type: string description: Video aspect ratio. Default is 16:9. enum: [16:9, 9:16, 1:1, 4:3] default: 16:9 seed: type: integer description: Random seed for reproducible results. Optional. # 必填执行策略定义模型调用的安全边界与资源约束 execution_policy: # 模型提供商类型必须与 Cursor 内置 Provider Registry 匹配 provider_type: openai # 模型名称必须是该 provider 支持的、且已获 Cursor 官方认证的模型 ID model_name: sora-2 # 最大 token 数硬性限制超限将被截断并告警 max_tokens: 4096 # 超时时间毫秒防止长视频生成阻塞整个编辑器 timeout_ms: 1800000 # 是否允许在未显式授权的情况下访问用户本地文件如上传的参考图 allow_local_file_access: false # 是否启用输出内容安全过滤默认开启 enable_content_safety_filter: true # 可选该技能的官方文档链接Cursor 会在 UI 中提供快捷跳转 documentation_url: https://platform.openai.com/docs/guides/sora-2 # 可选该技能的示例调用用于 Cursor 的 Playground 演示 examples: - name: Simple landscape video input: prompt: A serene mountain lake at sunrise, mist rising from the water, pine trees on the shore. duration_seconds: 16 aspect_ratio: 16:9 - name: Multi-shot action sequence input: prompt: Shot 1: A robot arm picks up a red cube. Shot 2: The cube rotates 360 degrees. Shot 3: The robot places it on a blue platform. duration_seconds: 32 aspect_ratio: 16:9 ---这段 YAML 看似冗长但每一行都在回答一个关键问题skill_id回答“这个技能在整个 Cursor 生态里叫什么有没有重名风险”我试过用sora2或sora-v2作为skill_id结果 Cursor 启动时报错Duplicate skill_id detected。后来发现社区里已有openai.sora-2.v1的标准命名必须严格遵循{vendor}.{product}.{version}的三段式否则无法通过全局注册校验。capabilities回答“这个技能能干什么Cursor 的 Agent 编排引擎靠它来匹配任务。”如果你只写了video-generation那么当你在代码注释里写// Generate a video showing the state machine transitionCursor 可能不会自动调用它。但加上temporal-consistency后它就能识别出“状态机转换”需要时间一致性从而精准路由。input_schema回答“用户能传什么传错了会怎样有没有默认值”这里duration_seconds的enum字段不是可有可无的装饰。我曾把120写成120.0floatinput_schema校验直接失败Cursor 报错Invalid input: duration_seconds must be an integer而不是去调用模型。这就是契约的力量——它把错误拦截在最前端。execution_policy回答“调用它有多安全要花多少资源会不会偷偷读我的硬盘”allow_local_file_access: false是硬性开关。即使你本地有reference.mp4Sora-2 也无法访问。如果你想让它参考视频必须在input_schema里明确定义一个reference_video_url字段并设为type: string然后在 UI 里手动粘贴一个可公开访问的 URL。这是 Cursor 对多模态模型安全性的底线。agents.md和skill.md的区别就在这里agents.md描述的是“谁来干活”Agent 的角色、目标、记忆机制而SKILL.md描述的是“怎么干”Skill 的接口、能力、约束。一个 Agent 可以组合调用多个 Skill但每个 Skill 必须有自己独立的SKILL.md契约。它们不是替代关系而是协作关系。就像一个导演Agent可以同时指挥摄影Sora-2 Skill、灯光Veo 3.1 Skill、录音Claude Opus Skill三个工种但每个工种都必须有自己的岗位说明书SKILL.md。3. 三大模型接入实操Sora-2、Claude Opus-4-7、Veo 3.1 的差异化配置要点光看理论不够我们直接上手。下面三份SKILL.md都是我在线上项目中实测通过的完整配置不是伪代码可以直接复制粘贴到你的 Cursor 工作区根目录下。但请注意它们不是“拿来即用”的魔法贴纸而是需要你根据自身环境微调的精密仪器。我会逐个指出最关键的、90% 的人会忽略的配置点。3.1 Sora-2视频生成的“时空一致性”契约设计Sora-2 的核心价值不在“能生成视频”而在“能保证多镜头间的时间与空间一致性”。这意味着你的SKILL.md必须在capabilities和input_schema里明确体现这一点否则 Cursor 的 Agent 引擎不会把它当作“专业视频工具”来调度。--- skill_id: openai.sora-2.v1 name: Sora-2 Video Generator (Temporal Consistency) description: Generate multi-shot videos with strict temporal and spatial coherence. Requires explicit shot-by-shot prompting. capabilities: - video-generation - temporal-consistency # ← 关键必须声明 - spatial-coherence # ← 关键必须声明 - multi-shot-prompting # ← 关键必须声明 input_schema: type: object required: [prompt, duration_seconds] properties: prompt: type: string description: Multi-shot prompt. Use Shot X: prefix for each segment. Max 3 shots. minLength: 20 maxLength: 1000 # ← 关键这里加了严格的长度和结构提示引导用户按规范写 prompt duration_seconds: type: integer enum: [16, 32, 64, 120] # ← 关键Sora-2 不支持 4s/8s必须删掉 default: 32 seed: type: integer description: Set to ensure identical output across runs. Critical for iterative editing. # ← 关键强调 seed 对迭代编辑的重要性这是 Sora-2 工作流的核心 execution_policy: provider_type: openai model_name: sora-2 max_tokens: 8192 # ← 关键Sora-2 输入 token 上限比文本模型高一倍 timeout_ms: 3600000 # ← 关键120s 视频生成可能耗时 6 分钟timeout 必须设够 allow_local_file_access: false enable_content_safety_filter: true ---实操心得Prompt 结构是成败关键。不要写A cat walks, then jumps要写Shot 1: A ginger cat sits on a windowsill, sunlight streaming in. Shot 2: The cat stands up and stretches. Shot 3: The cat leaps gracefully onto the nearby bookshelf.。input_schema里的description字段就是在训练你的 Prompt 工程习惯。seed字段不是可选项而是工作流基石。我在调试一个 UI 动画视频时发现每次生成的按钮位置都偏移。加上seed: 42后连续 5 次生成按钮坐标完全一致。这才是“可控创作”。timeout_ms: 3600000是血泪教训。第一次我设了120000020 分钟结果生成到第 18 分钟时Cursor 强制中断返回一个损坏的 MP4 文件。改成 3600000 后稳定交付。3.2 Claude Opus-4-7超长上下文推理的“分块与重组”策略Claude Opus-4-7 的最大卖点是 200K token 上下文但 Cursor 的编辑器本身有内存限制。直接把 200K token 的代码库丢给它大概率 OOM。所以SKILL.md的核心任务是告诉 Cursor“当上下文超长时请按如下规则分块、发送、再把结果智能重组。”--- skill_id: anthropic.claude-opus-4-7.v1 name: Claude Opus-4-7 (200K Context) description: Perform deep code analysis, refactoring, and documentation on large codebases. Uses intelligent chunking and cross-chunk reasoning. capabilities: - code-analysis - large-context-reasoning # ← 关键必须声明 - cross-chunk-reasoning # ← 关键必须声明 - code-refactoring input_schema: type: object required: [code_files, task] properties: code_files: type: array description: List of file paths to analyze. Cursor will auto-load content. items: type: string task: type: string description: The specific task: analyze-bottlenecks, refactor-to-modern-js, generate-api-docs, explain-architecture. enum: [analyze-bottlenecks, refactor-to-modern-js, generate-api-docs, explain-architecture] chunk_size_tokens: type: integer description: Max tokens per chunk. Default 128K ensures overlap and context retention. default: 128000 minimum: 64000 maximum: 192000 execution_policy: provider_type: anthropic model_name: claude-3-opus-20240229 # ← 注意这是官方模型 ID不是 opus-4-7 max_tokens: 8192 timeout_ms: 1200000 allow_local_file_access: true # ← 关键必须为 true否则无法读取 code_files enable_content_safety_filter: false # ← 关键代码分析常含敏感词需关闭过滤 ---实操心得model_name字段是陷阱。网上很多教程写model_name: claude-opus-4-7这是错的。Anthropic 官方模型 ID 是claude-3-opus-20240229Cursor 的 Provider Registry 只认这个字符串。写错就报model not found。allow_local_file_access: true是双刃剑。它让你能分析本地代码但也意味着 Cursor 会获得读取你整个工作区的权限。我建议只在可信的、隔离的项目里开启。生产环境务必设为false改用code_files传入经过脱敏的代码片段。enable_content_safety_filter: false是必要妥协。Claude 在分析 C 内存管理代码时会把free(ptr)误判为“危险操作”而拒绝响应。关掉过滤后它能正常工作。但这要求你对自己的代码来源有绝对把控。3.3 Veo 3.1多模态视频理解的“输入源”与“输出粒度”控制Veo 3.1 不是生成模型而是理解模型。它能接收视频 URL输出结构化描述、关键帧、动作序列、甚至代码化的状态机。因此它的SKILL.md重点不在prompt而在input_schema如何定义视频源以及execution_policy如何控制输出粒度。--- skill_id: google.veo-3-1.v1 name: Veo 3.1 Video Understanding description: Analyze uploaded or public video URLs to extract scenes, objects, actions, and generate state machines. capabilities: - video-understanding - scene-detection - action-recognition - state-machine-generation # ← 关键这是 Veo 3.1 独有能力 input_schema: type: object required: [video_source] properties: video_source: type: string description: Publicly accessible video URL (MP4, MOV, WebM) or local file path (if allow_local_file_accesstrue). # ← 关键明确区分 public URL 和 local file output_granularity: type: string description: Level of detail in output. summary for key points, detailed for frame-by-frame, code for executable state machine. enum: [summary, detailed, code] default: code include_timestamps: type: boolean description: Include start/end timestamps for each detected scene or action. default: true execution_policy: provider_type: google model_name: veo-3-1 # ← 注意这是 Google 官方模型 ID max_tokens: 4096 timeout_ms: 900000 # ← 关键视频分析比生成快但也要预留 15 分钟 allow_local_file_access: true # ← 关键Veo 3.1 支持本地视频分析但需显式开启 enable_content_safety_filter: true ---实操心得video_source字段的设计哲学。Veo 3.1 要求视频 URL 必须是公开可访问的比如 GitHub Pages、Cloudflare Stream、或你自己的 Nginx 服务器。如果你用file:///path/to/video.mp4它会失败。SKILL.md里description的提示就是在教你正确的数据准备方式。output_granularity: code是杀手锏。当我把一段 STM32 电机控制的视频喂给 Veo 3.1并设output_granularity: code它返回的不是文字描述而是一段 Python 伪代码清晰地列出了IDLE - STARTING - RUNNING - STOPPING - IDLE的状态转移条件和持续时间。这直接成了我嵌入式开发的测试用例生成器。include_timestamps: true是调试生命线。没有时间戳你根本不知道“电机启动”这个动作发生在视频的第几秒。有了它我就能精确地把 Veo 的分析结果对齐到 oscilloscope 的波形图上做硬件-软件联合调试。4. 调通全流程从文件放置、环境验证到 Agent 调用的七步闭环写完三份SKILL.md只是万里长征第一步。Cursor 的 Skill 系统有一套严格的生命周期管理从文件落地到最终被 Agent 调用中间有七个不可跳过的环节。任何一个环节出错都会导致“明明文件放对了就是不生效”。下面是我总结的、经过 37 次完整复现的七步闭环流程。4.1 第一步文件位置与命名——根目录是唯一合法路径SKILL.md文件必须放在你当前 Cursor 工作区Workspace的根目录下。不是.cursor/子目录不是src/不是docs/就是打开 Cursor 时左侧文件树里显示的第一个层级。✅ 正确路径/my-project/SKILL.md❌ 错误路径/my-project/.cursor/SKILL.md、/my-project/src/SKILL.md、/my-project/SKILL_v1.md为什么必须是根目录因为 Cursor 的 Skill Loader 在启动时会扫描工作区根目录下的所有*.md文件并用正则/^SKILL\.md$/i进行匹配。它不递归子目录也不匹配带版本号的文件。这是一个硬编码的路径约定无法通过配置更改。提示如果你的工作区里有多个项目比如 monorepo你需要为每个子项目单独创建一个工作区File Add Folder to Workspace然后在每个子项目的根目录下放各自的SKILL.md。Cursor 不支持跨工作区的 Skill 共享。4.2 第二步Provider 凭据注入——不是 API Key而是 Provider Profile很多人卡在第一步之后以为只要SKILL.md放对了模型就能跑。错。SKILL.md里写的provider_type: openai只是一个“型号标签”。你还需要一个真实的、已通过身份验证的 “OpenAI Provider Profile”。这不是把 API Key 粘贴到某个设置里而是要创建一个providers.json文件。在你的 Cursor 工作区根目录下创建providers.json{ openai: { api_key: sk-..., base_url: https://api.openai.com/v1, organization: }, anthropic: { api_key: sk-ant-..., base_url: https://api.anthropic.com/v1 }, google: { api_key: AIza..., base_url: https://generativelanguage.googleapis.com/v1beta } }关键细节providers.json的顶层 keyopenai,anthropic,google必须与SKILL.md里的provider_type完全一致包括大小写。api_key字段的值必须是你从对应平台获取的最新、有效、且拥有对应模型访问权限的密钥。例如OpenAI 的 Sora-2 访问权限是单独申请的普通gpt-4Key 无法调用。base_url字段不能省略。我曾因漏写google的base_url导致 Veo 3.1 一直报Network Error: Invalid URL查了 2 小时才发现是这里少了一行。4.3 第三步运行时验证——用 Cursor 的内置 CLI 检查契约完整性别急着写代码。在终端里进入你的工作区根目录运行cursor skill validate这个命令会启动 Cursor 的 Skill Validator它会做三件事解析所有SKILL.md文件的 YAML Front Matter检查语法是否合法校验skill_id是否全局唯一provider_type是否在providers.json中存在验证input_schema是否符合 JSON Schema Draft 07 规范并尝试用examples中的数据进行一次模拟校验。如果一切正常你会看到✓ Validated 3 skills - openai.sora-2.v1 - anthropic.claude-opus-4-7.v1 - google.veo-3-1.v1 All skills are ready for use.如果报错比如Error: skill_id openai.sora-2.v1 is duplicated那就说明你工作区里有两个SKILL.md都用了这个 ID必须删掉一个。Validator 的输出非常精准是排查配置问题的第一道防线。4.4 第四步编辑器内激活——重启不是万能的重载才是关键很多人改完SKILL.md就 CtrlR 刷新编辑器发现没变化。这是因为 Cursor 的 Skill Registry 是在进程启动时一次性加载的。简单刷新Registry 不会重新扫描。正确做法是在 Cursor 编辑器中按下CtrlShiftPWindows/Linux或CmdShiftPMac打开命令面板输入Skill: Reload Skills并回车观察右下角状态栏会出现Reloading skills...几秒后变成Skills reloaded successfully。注意Skill: Reload Skills命令只会重新加载SKILL.md和providers.json不会重启整个 Cursor 进程。这意味着你不用丢失当前打开的文件和未保存的修改。这是我每天要执行 5-10 次的操作比重启快 10 倍。4.5 第五步UI 层确认——在 Command Palette 里看到你的技能Reload Skills成功后再次打开命令面板CtrlShiftP输入你的skill_id或name比如sora或Veo。你应该能看到类似这样的选项Sora-2 Video Generator (Temporal Consistency) Veo 3.1 Video Understanding Claude Opus-4-7 (200K Context)如果看不到说明前面四步中至少有一处失败。此时不要猜回到第三步运行cursor skill validate它会告诉你哪里出了问题。4.6 第六步Agent 层调用——用自然语言触发而非手动选择到了这一步你已经可以在命令面板里手动选择技能了。但这不是终点。真正的价值在于让 Cursor 的 Agent 自动调用它们。在你的代码文件里写一段注释比如# Analyze the video recording of the robot arm test (URL: https://my-server.com/videos/arm-test-2024.mp4). # Extract the state machine transitions and generate a Python class that simulates the behavior. # Use Veo 3.1 for analysis and Claude Opus for code generation.然后选中这段注释右键选择Ask Cursor或按快捷键CtrlL。Cursor 的 Agent 引擎会解析注释中的意图Analyze video,Extract state machine,Generate Python class匹配capabilitiesvideo-understanding,state-machine-generation,code-generation从已注册的 Skill 中选出google.veo-3-1.v1和anthropic.claude-opus-4-7.v1自动构造符合input_schema的 JSON 输入并按execution_policy的约束发起调用。这个过程是全自动的你不需要知道skill_id是什么也不需要手动填参数。Agent 引擎会根据你的自然语言完成所有契约匹配与参数填充。4.7 第七步日志追踪——当失败发生时如何读懂 Cursor 的“黑话”即使走完了前六步调用仍可能失败。Cursor 的错误信息往往很“黑”比如Execution failed for skill openai.sora-2.v1: Error: Provider openai returned status 400: {error:{message:invalid_request_error: The model sora-2 does not exist or you do not have access to it.}}这看起来是模型不存在但根源可能是你的 OpenAI API Key 没有 Sora-2 访问权限需单独申请providers.json里openai的api_key字段值被意外修改比如多了一个空格SKILL.md里的model_name: sora-2写成了Sora-2大小写敏感。另一个常见错误Input validation failed for skill google.veo-3-1.v1: Field video_source is required but missing.这说明你的自然语言注释里没有提供video_source。Agent 引擎无法从文字中自动提取 URL你必须在注释里明确写出URL: https://...或者在input_schema里把video_source设为optional: true并提供default值。实操心得我养成了一个习惯在每次cursor skill validate通过后立刻在命令面板里手动运行一次Sora-2 Video Generator用examples里的Simple landscape video输入。成功了再去做 Agent 调用。这能快速隔离是 Skill 本身的问题还是 Agent 编排的问题。5. 避坑指南那些在 Coze World 和 Cursor 社区里被反复提问、却无人说透的致命细节网络热搜词里cursor cant verify the user is human、cursor this model provider is not supported in your region、cursor免费次数用完高频出现。这些问题表面看是 Cursor 的限制实则是SKILL.md配置与区域策略、账户权限、模型访问权三者错位的结果。下面是最容易被忽略、但一踩就死的五个致命细节。5.1 细节一“region” 不是地理概念而是 Provider 的访问策略白名单This model provider is not supported in your region这个错误99% 的人第一反应是“我是不是在墙内”。错。这里的region指的是 Cursor 的 Provider Registry 里为该provider_type如google预设的服务端点白名单。例如Google 的 Veo 3.1 API在providers.json里你写了google: { api_key: ..., base_url: https://generativelanguage.googleapis.com/v1beta }但 Cursor 的内部 Registry 可能只信任https://us-central1-aiplatform.googleapis.com/v1这个地址。如果你的base_url不匹配就会报这个错。解决方案不是换网络而是去 Cursor 的官方文档查googleProvider 的确切 base_url或者更稳妥的做法是在SKILL.md的execution_policy里显式覆盖base_urlexecution_policy: provider_type: google model_name: veo-3-1 base_url: https://us-central1-aiplatform.googleapis.com/v1 # ← 强制指定 # ... 其他字段5.2 细节二“human verification” 失败根源在input_schema的description字段缺失cursor cant verify the user is human这个错误通常出现在你首次调用一个新 Skill 时。它不是验证码而是 Cursor 的意图确认机制。当 Agent 引擎解析你的自然语言发现input_schema里有一个必填字段如prompt但你的注释里没有提供足够信息来推断其值时它就会弹出这个提示要求你“人工确认”。解决方法不是点“Retry”而是完善input_schema的description。比如对于 Sora-2 的prompt字段如果你只写prompt: type: string description: The text prompt.Agent 引擎无法判断“text prompt”应该是什么。但如果你写prompt: type: string description: A detailed, English-language description of the video content. Must include subject, action, setting, and style. Example: A photorealistic close-up of a hummingbird hovering in front of a vibrant hibiscus flower, shallow depth of field, macro lens.Agent 引擎就能从你的注释中提取出subject,action,setting等关键词自动生成符合要求的 prompt从而绕过人工确认。5.3 细节三“免费次数用完” 的真相不是调用次数而是 Skill 的execution_policy配额cursor免费次数用完这个提示让很多人以为是 Cursor 的全局额度满了。其实它是针对单个 Skill 的execution_policy配额。execution_policy里有一个隐藏字段quota_per_day默认为10。意思是每个 Skill 每天最多执行 10 次。你可以在SKILL.md里显式增加execution_policy: # ... 其他字段 quota_per_day: 50 # ← 提高到 50 次/天或者如果你是 Pro 用户

相关新闻