Cursor 官方文档学习指南

目录

Cursor 官方文档学习指南

摘要:本文基于 Cursor 官方文档入口页、官方 llms.txt 文档地图,以及 Rules、Skills、MCP、CLI、Agent Security、Hooks 相关官方资料整理,适用于 2026 年 5 月 8 日前后的 Cursor 文档体系。本文是“总览型学习文档”,不是逐页翻译官网;它的目标是帮你建立一张清晰地图:Cursor 到底有哪些能力、每个能力解决什么问题、怎么用、什么时候不用。尤其对 Rules、Skills、MCP、Hooks 这类抽象概念,本文会用“人话定义 + 类比 + 对比 + 流程 + 示例”的方式讲清楚。

一、背景与动机

Cursor 官方文档的入口页把 Cursor 定义为 AI editor and coding agent。这句话里其实有两层含义:

  • AI editor:它仍然是一个编辑器,能补全、编辑、跳转、运行终端。
  • coding agent:它也是一个能读代码、改文件、跑命令、调用工具、做计划的智能体。

所以你看 https://cursor.com/cn/docs 会觉得内容多,并不是你的问题,而是 Cursor 已经从“AI 补全工具”扩展成了一个完整的 Agent 开发平台。

官方 llms.txt 中的文档地图大致包括:

官方大类 你需要理解的问题
Get Started 如何从安装到完成第一次有用修改
Agent 如何让 Agent 读代码、计划、编辑、运行命令、审查变更
Customizing 如何用 Rules、Skills、MCP、Hooks、Plugins 定制 Cursor
Cloud Agents 如何把 Agent 放到云端、PR、自动化流程里
Integrations 如何连接 Slack、Linear、GitHub、GitLab、JetBrains、Xcode
CLI 如何在终端、脚本和 CI 中使用 Cursor Agent
Enterprise / Account 如何管理团队、权限、隐私、模型和集成
Help Center 如何排查 Tab、Inline Edit、索引、网络、安装等问题

学习 Cursor 最容易踩的坑是:一开始就试图读完整个官方文档。更好的方式是按使用顺序学:

flowchart TD
    A[先会写: Tab] --> B[会局部改: Inline Edit]
    B --> C[会问和会交任务: Ask / Agent]
    C --> D[会控制: Review / Plan Mode / Security]
    D --> E[会定制: Rules / Skills]
    E --> F[会连接: MCP / Plugins]
    F --> G[会自动化: Hooks / CLI / Cloud Agent]
flowchart TD
    A[先会写: Tab] --> B[会局部改: Inline Edit]
    B --> C[会问和会交任务: Ask / Agent]
    C --> D[会控制: Review / Plan Mode / Security]
    D --> E[会定制: Rules / Skills]
    E --> F[会连接: MCP / Plugins]
    F --> G[会自动化: Hooks / CLI / Cloud Agent]
flowchart TD
    A[先会写: Tab] --> B[会局部改: Inline Edit]
    B --> C[会问和会交任务: Ask / Agent]
    C --> D[会控制: Review / Plan Mode / Security]
    D --> E[会定制: Rules / Skills]
    E --> F[会连接: MCP / Plugins]
    F --> G[会自动化: Hooks / CLI / Cloud Agent]

二、核心概念

2.1 一句话理解 Cursor

一句话:Cursor 是一个让 AI 直接参与真实代码库工作的编辑器。

它不像普通聊天机器人只能回答问题,也不像传统 IDE 只提供静态工具。Cursor 的核心是把下面几件事放到同一个环境里:

能力层 对应功能 人话解释
输入加速 Tab 你写一半,它猜下一步
局部编辑 Inline Edit 选中一段代码,用自然语言改它
任务执行 Agent 把一个开发任务交给它,它会找文件、改代码、跑命令
上下文管理 Indexing、@文件、Rules 控制 AI 看见什么、记住什么规范
能力扩展 Skills、MCP、Plugins 给 Agent 新工作流和外部工具
行为拦截 Hooks 在 Agent 行动前后插入脚本检查
自动化 CLI、Cloud Agent、Bugbot 把 Agent 放进终端、云端、PR 和 CI

2.2 先区分这些容易混淆的概念

概念 它负责什么 不负责什么 类比
Tab 边写边补全 复杂任务规划 输入法联想
Inline Edit 修改当前选区或当前文件 大范围自主探索 局部手术刀
Ask 只读理解和问答 自动改文件 问同事
Agent 多步骤开发任务 无边界替你负责 结对开发者
Rules 持久提示词和项目规范 运行脚本、访问外部系统 团队工作守则
Skills 可复用专项工作流 全局硬性约束 操作手册 + 工具包
MCP 连接外部数据和工具 管理 Agent 生命周期 外接插座
Hooks 拦截 Agent 行动前后 给模型补充知识 中间件 / 拦截器
CLI 在终端里跑 Agent 替代所有 IDE 体验 命令行版 Agent

记忆口诀:

Rules 告诉 Agent 应该怎么做;Skills 教 Agent 做一类任务;MCP 给 Agent 外部工具;Hooks 在 Agent 真要行动时插一脚检查。

2.3 官方知识点覆盖清单

本文覆盖官方文档中的核心模块,但仍然是总览型文档。更细的企业配置、具体集成和每个 CLI 参数,建议按需查官方专项页。

模块 本文覆盖程度 是否建议单独深挖
Quickstart / Tab / Inline Edit 完整入门 一般不需要
Agent / Ask / Plan Mode / Tools 覆盖核心机制 复杂项目建议深挖
Rules 覆盖类型、触发、优先级、示例 建议深挖
Skills 覆盖结构、触发、目录、迁移 建议深挖
MCP 覆盖传输、配置、安全、调试 建议深挖
Hooks 覆盖用途、流程、示例、边界 建议深挖
CLI 覆盖常用命令和使用场景 自动化时深挖
Cloud Agent / Bugbot / Automations 总览 团队使用时深挖
Enterprise / Security 总览 企业引入时深挖

三、详细讲解

3.1 Quickstart:先用三件套跑通闭环

官方 Quickstart 的核心路线是:

  1. 打开一个项目。
  2. 用 Tab 自动补全代码。
  3. 用 Inline Edit 修改选中的代码。
  4. 用 Agent 添加测试并运行。

这条路线不是随便安排的,它刚好对应 Cursor 的三个日常入口:

入口 快捷键 适合场景 风险
Tab Tab 接受,Esc 拒绝 写代码时顺手补全
Inline Edit Ctrl+K 改当前函数、当前选区、当前文件
Agent Ctrl+I 多文件任务、修 bug、补测试、跑命令

新手第一天只需要练这三件事,不要一开始就配置 MCP 或 Hooks。

3.2 Tab:不是普通补全,而是下一步编辑预测

一句话:Tab 是 Cursor 的智能补全模型,会根据你最近的修改预测下一处要写或要改的代码。

可以把它类比成“代码输入法”,但比普通输入法更进一步:它不仅补当前单词,还会补多行、补 import、提示跨文件相关改动。

Tab 能做什么:

  • 多行补全
  • 修改已有代码
  • 自动添加缺失 import
  • 根据 linter 错误给建议
  • 接受一次建议后预测下一处编辑位置
  • 跨文件提示联动修改

常用操作:

操作 快捷键 / 入口
接受建议 Tab
拒绝建议 Esc
按词接受 Ctrl+Right
配置 Tab Cursor Settings → Tab
暂停/关闭 Tab 状态栏右下角 Tab 控制

什么时候不用 Tab:

  • 你还没想清楚需求时,不要让 Tab 带着你走。
  • 复杂重构不要靠 Tab 零散完成,用 Agent 或 Plan Mode。
  • 写注释时如果建议干扰思路,可以关闭 comments 中的建议。

3.3 Inline Edit:当前编辑器里的快速手术刀

一句话:Inline Edit 是“选中代码,然后用自然语言改这段代码”。

它像一把局部手术刀:你指出具体位置,它按你的指令修改。它比 Tab 更主动,但比 Agent 更可控。

常见模式:

模式 入口 用途
Edit Selection 选中代码后 Ctrl+K 修改选中代码
无选区生成 光标处 Ctrl+K 在当前位置生成代码
Quick Question Inline 输入框中 Alt+Enter 只问问题,不立刻改
Full File Edits Ctrl+Shift+Enter 当前文件整体修改
Send to Chat Ctrl+L 交给 Chat / Agent 做多文件任务

示例:

把这段逻辑改成 async/await,保留现有错误处理语义。
先解释这段代码为什么会重复请求,不要修改。

什么时候不用 Inline Edit:

  • 要跨多个文件理解调用链时,用 Ask 或 Agent。
  • 要迁移整个模块时,用 Plan Mode + Agent。
  • 需要外部工具、数据库、设计稿时,可能需要 MCP。

3.4 Agent:真正帮你做开发任务的人

一句话:Agent 是 Cursor 里能读代码、改文件、跑命令、调用工具的开发助手。

它像一个结对开发者,但你仍然是 reviewer 和负责人。

Agent 能做什么:

  • 搜索代码库
  • 读取文件和目录
  • 进行语义搜索和关键词搜索
  • 修改文件
  • 运行终端命令
  • 调用 MCP 工具
  • Review diff
  • 根据报错继续修复

基本流程:

flowchart TD
    A[你提出任务] --> B[Agent 搜索和读取上下文]
    B --> C[Agent 制定或执行方案]
    C --> D[修改文件/运行命令/调用工具]
    D --> E[展示 diff 和结果]
    E --> F[你 review 并决定是否继续]
flowchart TD
    A[你提出任务] --> B[Agent 搜索和读取上下文]
    B --> C[Agent 制定或执行方案]
    C --> D[修改文件/运行命令/调用工具]
    D --> E[展示 diff 和结果]
    E --> F[你 review 并决定是否继续]
flowchart TD
    A[你提出任务] --> B[Agent 搜索和读取上下文]
    B --> C[Agent 制定或执行方案]
    C --> D[修改文件/运行命令/调用工具]
    D --> E[展示 diff 和结果]
    E --> F[你 review 并决定是否继续]

推荐提示词:

目标:
修复登录后偶发跳回登录页的问题。

工作方式:
1. 先阅读相关文件,不要立刻修改。
2. 列出根因假设和会修改的文件。
3. 等我确认后再实现。
4. 修改后运行相关测试。

约束:
- 不要改数据库结构。
- 保持 API 响应格式兼容。

验收:
- 补充或更新测试。
- 总结修改文件和原因。

什么时候不用 Agent:

  • 只想补当前行,用 Tab。
  • 只改一小段,用 Inline Edit。
  • 只是学习概念,用 Ask。
  • 风险极高但没有验收标准时,先 Plan。

3.5 Ask、Agent、Manual、Custom Mode 与当前菜单怎么对应

Cursor 的模式可以理解成“给 Agent 限定工作方式”。

版本说明:这一节容易和实际界面不一致。Cursor 官方文档和 Changelog 在不同时间、不同语言页面里的表述并不完全相同:2025 年 3 月的 Changelog 明确说 Agent 和 Ask 是内置模式,同时支持 Custom modes,并把原来的 Edit 改名为 Manual;当前中文官方 Modes 页更偏向列出 Agent / Ask / Custom,而 Plan、Debug 属于模式示例或后续功能页中的专项能力。你截图里的菜单是当前客户端的实际菜单:Agent / Plan / Debug / Multitask / Ask,其中 PlanDebugMultitask 更像是 Cursor 预置或产品化后的专项模式,而不是旧文档里那张四项表的逐字呈现。

模式 人话解释 适合 不适合
Ask 只读模式 理解代码、问方案、学习 自动改代码
Agent 自主执行模式 多文件任务、修 bug、补测试 需求模糊的大改
Manual 旧版/部分文档中的定点编辑模式 明确修改位置 自主探索
Custom 自定义模式能力,不一定作为菜单项直接出现 固定工具组合和专属流程 临时小任务
Plan 当前客户端常见专项模式 复杂任务先研究、提问、生成计划 简单小改
Debug 当前客户端常见专项模式 复现和定位复杂 bug 纯解释性问题
Multitask 2026 年 4 月后 Agents Window 相关能力 并行拆分任务、后台多 Agent 小而明确的单步修改

简单判断:

  • “先别改,帮我解释”:Ask
  • “按这个需求实现”:Agent
  • “先出方案再动手”:Plan
  • “帮我定位运行时问题”:Debug
  • “这件事可以拆成几个独立分支并行做”:Multitask
  • “只改这段”:Inline Edit;如果你的版本还有 Manual,也可以用 Manual
  • “以后经常这样做”:Custom Mode 或 Skill

3.6 Plan Mode:复杂任务先写施工图

一句话:Plan Mode 是让 Agent 在写代码前先研究项目、提问题、生成计划。

它像施工图。简单修一行不需要施工图,但改登录、支付、权限、架构时,没有施工图就容易乱。

官方博客介绍的 Plan Mode 流程:

sequenceDiagram
    participant U as 你
    participant A as Agent
    participant C as Codebase

    U->>A: 描述复杂任务并进入 Plan Mode
    A->>C: 查找相关文件和文档
    A->>U: 提出澄清问题
    U->>A: 补充约束
    A->>U: 生成 Markdown 计划
    U->>A: 审阅/编辑计划
    A->>C: 按计划实现
sequenceDiagram
    participant U as 你
    participant A as Agent
    participant C as Codebase

    U->>A: 描述复杂任务并进入 Plan Mode
    A->>C: 查找相关文件和文档
    A->>U: 提出澄清问题
    U->>A: 补充约束
    A->>U: 生成 Markdown 计划
    U->>A: 审阅/编辑计划
    A->>C: 按计划实现
sequenceDiagram
    participant U as 你
    participant A as Agent
    participant C as Codebase

    U->>A: 描述复杂任务并进入 Plan Mode
    A->>C: 查找相关文件和文档
    A->>U: 提出澄清问题
    U->>A: 补充约束
    A->>U: 生成 Markdown 计划
    U->>A: 审阅/编辑计划
    A->>C: 按计划实现

官方提到可以在 Agent 输入框中按 Shift+Tab 开始规划,也可以保存计划为仓库里的 Markdown 文件。

什么时候用:

  • 跨 5 个以上文件的改动
  • 权限、支付、登录、数据迁移
  • 你不熟悉代码库
  • 需要和团队 review 方案

什么时候不用:

  • 改文案
  • 改一个变量名
  • 补一个简单测试

3.7 Tools:Agent 的手和眼睛

一句话:Tools 是 Agent 真正能操作世界的能力。

没有工具,模型只能说话;有工具,Agent 才能读文件、改文件、跑命令、查 Web、调用 MCP。

官方工具大类:

类别 代表工具 作用
Search Read File、List Directory、Codebase、Grep、Search Files、Web、Fetch Rules 找资料
Edit Edit & Reapply、Delete File 改文件
Run Terminal 跑命令
MCP MCP Servers 调外部系统
Advanced Auto-apply、Auto-run、Guardrails、Auto-fix Errors 自动化和控制

重要原则:

  • Agent 可以连续多次调用工具直到完成任务。
  • Auto-run 很方便,但会放大风险。
  • Guardrails / allowlist 是便利机制,不应当当成完整安全边界。

3.8 Context 与 Codebase Indexing:AI 看见什么,决定它能做什么

一句话:Context 是 Agent 当前能看到的信息;Indexing 是 Cursor 帮它理解整个代码库的底层能力。

可以把 Indexing 类比成“给项目建搜索索引”。Cursor 会给文件计算 embeddings,让 Agent 能语义搜索代码库。

你需要知道:

主题 说明
查看状态 Cursor Settings → Indexing & Docs
忽略文件 .gitignore.cursorignore 等会影响索引和访问
大文件 忽略大内容文件通常能提高回答准确性
多根工作区 多个 codebase 都可被索引
PR search 可利用历史 PR 理解代码演进

实用建议:

  • 精确知道文件时,用 @filename
  • 不知道文件时,让 Agent 自己搜索。
  • 敏感文件写进 .cursorignore
  • 长任务新开会话,避免上下文变脏。

3.9 Rules:给 Agent 的团队工作守则

一句话:Rules 是给 Agent 的持久提示词,让它每次工作都遵守项目规范。

类比:Rules 就像团队的工程约定。新人加入项目时,你会告诉他“不要改 generated 文件”“改组件后跑 typecheck”“API 错误格式要统一”。Rules 就是把这些话写下来,让 Agent 每次都能看到。

它解决的问题:

  • 不用每次重复告诉 Agent 项目规范。
  • 团队可以共享同一套 AI 工作方式。
  • 可以按目录或文件类型自动附加不同规则。

四类规则:

类型 位置 / 管理方式 适合
Project Rules .cursor/rules 项目级规范,建议提交版本控制
User Rules Cursor Settings → Rules 个人偏好
Team Rules Cursor Dashboard 团队/企业统一要求
AGENTS.md 根目录或子目录 简单 Markdown 指令,跨 Agent 友好

3.9.1 Project Rules 怎么写

.cursor/rules 支持 .md.mdc。需要控制触发方式时用 .mdc

---
description: "React component conventions"
globs: "src/components/**/*.tsx"
alwaysApply: false
---

- Use named exports, not default exports.
- Keep components focused.
- Prefer existing design-system components.
- Run type checks after changing components.

3.9.2 Rules 如何触发

alwaysApply description globs 行为
true 任意 任意 每次会话都包含
false 文件匹配时自动附加
false Agent 根据描述判断是否相关
false 只有 @规则名 手动引用

对应 UI:

类型 触发方式
Always Apply 每次 Chat 都用
Apply Intelligently Agent 根据 description 决定
Apply to Specific Files 命中 globs
Apply Manually @my-rule

Team Rules 优先级高于 Project Rules,Project Rules 高于 User Rules:

Team Rules → Project Rules → User Rules

3.9.3 Rules 什么时候不用

不要用 Rules 做这些事:

  • 替代 linter 或测试
  • 复制整本 style guide
  • 记录很少发生的边缘情况
  • 存放大段知识库全文
  • 执行脚本或访问外部系统

如果你想“运行脚本”,用 Hooks 或 Skills;如果你想“连接外部系统”,用 MCP;如果你想“完成一个专项流程”,用 Skills。

3.10 Skills:给 Agent 的专项能力包

一句话:Skills 是把一类任务的操作手册、脚本、模板、参考资料打包给 Agent。

类比:Rules 是“工作守则”,Skills 是“专项工具箱”。比如“生成学习文档”“发布版本”“排查线上错误”“创建 PR”,都适合做成 Skill。

Skill 解决的问题:

  • 重复工作流可以复用。
  • 长文档和脚本不用塞进每次上下文。
  • Agent 需要时再加载,减少上下文污染。

目录位置:

位置 作用域
.agents/skills/ 项目级
.cursor/skills/ 项目级
~/.agents/skills/ 用户级
~/.cursor/skills/ 用户级
.claude/skills/.codex/skills/ 兼容目录

基本结构:

.cursor/
└── skills/
    └── gen-doc/
        ├── SKILL.md
        ├── scripts/
        ├── references/
        └── assets/

SKILL.md frontmatter:

字段 必填 作用
name skill 名,必须匹配父目录名
description 说明何时使用,决定自动触发质量
paths 限定文件范围
disable-model-invocation true 时只能手动 /skill-name 调用
compatibility 环境要求
license 许可证信息

什么时候用 Skills:

  • 有明确多步骤流程
  • 需要脚本辅助
  • 需要模板或参考资料
  • 不想每次把流程复制到 prompt

什么时候不用:

  • 只是几条项目规范,用 Rules。
  • 只是连接外部 API,用 MCP。
  • 只是想拦截行为,用 Hooks。

3.11 MCP:给 Agent 接外部工具的插座

一句话:MCP 是让 Cursor Agent 连接外部工具和数据源的协议。

类比:MCP 像插座。Cursor 是用电设备,外部系统是电器,MCP 规定插头长什么样。只要按协议接上,Agent 就能用工具读取文档、查 issue、访问设计稿、查询数据库。

它解决的问题:

  • 不用手动复制外部文档给 AI。
  • Agent 可以直接查团队工具。
  • 外部系统可以用统一协议暴露能力。

MCP 基本流程:

flowchart LR
    A[你向 Agent 提需求] --> B[Agent 判断需要外部信息]
    B --> C[调用 MCP 工具]
    C --> D[MCP Server 访问外部系统]
    D --> E[返回结构化结果]
    E --> F[Agent 基于结果继续工作]
flowchart LR
    A[你向 Agent 提需求] --> B[Agent 判断需要外部信息]
    B --> C[调用 MCP 工具]
    C --> D[MCP Server 访问外部系统]
    D --> E[返回结构化结果]
    E --> F[Agent 基于结果继续工作]
flowchart LR
    A[你向 Agent 提需求] --> B[Agent 判断需要外部信息]
    B --> C[调用 MCP 工具]
    C --> D[MCP Server 访问外部系统]
    D --> E[返回结构化结果]
    E --> F[Agent 基于结果继续工作]

Cursor 支持三种 transport:

Transport 运行环境 适合
stdio 本地命令 个人工具、本地脚本、敏感数据
SSE 本地或远程服务 OAuth、多用户服务
Streamable HTTP 本地或远程服务 企业 API、远程工具

配置位置:

级别 路径
项目级 .cursor/mcp.json
全局 ~/.cursor/mcp.json

最小示例:

MCP 支持的能力包括 Tools、Prompts、Resources、Roots、Elicitation,以及 Apps 扩展。

安全建议:

  • 只安装可信 MCP。
  • API key 用环境变量,不要写死。
  • 敏感系统优先用本地 stdio
  • 给 token 最小权限。
  • 高风险 MCP 不要开 Auto-run。
  • 调试时看 Output 面板里的 MCP Logs

什么时候不用 MCP:

  • 信息已经在当前代码库里,用 Agent 搜索即可。
  • 只是项目规范,用 Rules。
  • 只是本地固定流程,用 Skills 或 Commands。
  • 外部系统权限不清楚,先不要接。

3.12 Plugins:把 MCP、Skills、Commands 打包安装

一句话:Plugins 是更完整的集成包,可能包含 MCP、Skills、Commands、Hooks 等多个部分。

类比:MCP 是插头,Plugin 是一整套电器安装包。比如 Figma 插件可能不只是 MCP,还会带设计转代码的 Skills 和相关命令。

适合:

  • 不想手写 MCP 配置
  • 需要 OAuth 登录
  • 需要安装一整套工具链
  • 团队统一分发集成

什么时候不用:

  • 只需要一个简单本地脚本,用 MCP stdio 或 Skill 即可。
  • 不信任插件来源。
  • 插件权限范围太大但无法审计。

3.13 Hooks:Agent 行动前后的拦截器

一句话:Hooks 是 Cursor Agent 的事件拦截器:当 Agent 会话开始、读文件、跑命令、调用 MCP、编辑文件、停止等事件发生前后,Cursor 可以自动运行你配置的脚本。

类比:如果你写过 Web 中间件、Git hooks、CI pipeline、VS Code extension 事件监听,就很好理解。Hooks 不是给模型看的提示词,而是给 Cursor 执行的程序。

它解决的问题:

  • 不能只靠 Agent 自觉遵守安全规则。
  • 团队需要审计 Agent 做了什么。
  • 某些动作发生前必须先检查。
  • 某些动作发生后要自动验证、记录或让 Agent 继续循环。

3.13.1 Hooks 和 Rules / Skills / MCP 的区别

概念 它管什么 例子
Rules Agent 开始工作前看到的规范 “不要改 generated 文件”
Skills Agent 可调用的专项流程 “生成学习文档”
MCP Agent 可访问的外部工具 “读取 Linear issue”
Hooks Agent 行动前后的脚本拦截 “执行 shell 前检查命令是否危险”

口诀:

Rules 是“先交代规矩”;Hooks 是“真动手前后检查”。

3.13.2 Hooks 在流程中的位置

Hooks 不是只能定义在整个 Agent 执行结束时。stop 只是一个事件名,表示 Agent 停止时触发。更准确地说,Hooks 可以挂在 Agent loop 的多个已定义阶段。

flowchart TD
    A[Agent 会话开始] --> B[sessionStart]
    B --> C[Agent 准备读文件]
    C --> D[beforeReadFile]
    D --> E[Agent 准备执行命令]
    E --> F[beforeShellExecution]
    F --> G[执行命令]
    G --> H[afterShellExecution]
    H --> I[Agent 准备调用 MCP]
    I --> J[beforeMCPExecution]
    J --> K[调用 MCP]
    K --> L[afterMCPExecution]
    L --> M[Agent 编辑文件]
    M --> N[afterFileEdit]
    N --> O[Agent 停止]
    O --> P[stop / SessionEnd]
flowchart TD
    A[Agent 会话开始] --> B[sessionStart]
    B --> C[Agent 准备读文件]
    C --> D[beforeReadFile]
    D --> E[Agent 准备执行命令]
    E --> F[beforeShellExecution]
    F --> G[执行命令]
    G --> H[afterShellExecution]
    H --> I[Agent 准备调用 MCP]
    I --> J[beforeMCPExecution]
    J --> K[调用 MCP]
    K --> L[afterMCPExecution]
    L --> M[Agent 编辑文件]
    M --> N[afterFileEdit]
    N --> O[Agent 停止]
    O --> P[stop / SessionEnd]
flowchart TD
    A[Agent 会话开始] --> B[sessionStart]
    B --> C[Agent 准备读文件]
    C --> D[beforeReadFile]
    D --> E[Agent 准备执行命令]
    E --> F[beforeShellExecution]
    F --> G[执行命令]
    G --> H[afterShellExecution]
    H --> I[Agent 准备调用 MCP]
    I --> J[beforeMCPExecution]
    J --> K[调用 MCP]
    K --> L[afterMCPExecution]
    L --> M[Agent 编辑文件]
    M --> N[afterFileEdit]
    N --> O[Agent 停止]
    O --> P[stop / SessionEnd]

3.13.3 配置位置和最小配置

常见配置位置:

级别 路径 说明
项目级 .cursor/hooks.json 当前项目生效,适合提交团队共享
用户级 ~/.cursor/hooks.json 当前用户全局生效

常见目录结构:

.cursor/
├── hooks.json
└── hooks/
    ├── check-command.py
    ├── check-doc-saved.py
    └── grind.ts

配置格式:

stop 示例:

这个配置的意思是:Agent 停止时,运行 .cursor/hooks/grind.ts
如果脚本返回空对象,可以结束;如果返回 followup_message,Cursor 可以把后续消息继续交给 Agent。

3.13.4 Hook 事件名是不是固定的

是的,事件名不是随便写的。它必须是 Cursor 支持的预定义事件名。写错事件名通常不会触发。

但要注意:当前公开资料中的 Hooks 信息分散在官方文档地图、官方博客、Marketplace 和论坛/讨论中,事件名集合可能随 Cursor 版本变化,IDE / CLI / Cloud Agent 的支持也可能不同。下面表格不是稳定完整 API Reference,而是基于 2026 年 5 月 8 日可见资料整理,实际以当前 Cursor 版本实测为准。

事件名 触发时机 常见用途 来源稳定性
sessionStart Agent 会话开始 初始化、记录会话、加载安全策略 Marketplace 可见
beforeReadFile Agent 读文件前 阻止读取 .env、密钥、敏感配置 Marketplace 可见
beforeShellExecution Agent 跑 shell 命令前 拦截危险命令、注入密钥管理检查 Marketplace 可见
afterShellExecution shell 命令执行后 记录命令结果、扫描输出 论坛/CLI 讨论可见,需实测
beforeMCPExecution MCP 工具调用前 检查 MCP server、参数、权限 官方博客 + Marketplace 可见
afterMCPExecution MCP 工具调用后 扫描返回内容中的 secret 或敏感数据 官方博客可见,需实测
afterFileEdit 文件编辑后 运行格式化、lint、质量检查 论坛/CLI 讨论可见,需实测
stop Agent 停止时 检查任务是否完成,必要时继续循环 官方最佳实践博客可见
SessionStart 会话开始 插件式 Agent 初始化 Marketplace 插件页可见,大小写需实测
SessionEnd 会话结束 会话收尾、报告、清理 Marketplace 插件页可见,大小写需实测
PreToolUse 工具调用前 插件级工具治理 Marketplace 插件页可见,大小写需实测
PostToolUse 工具调用后 工具调用审计 Marketplace 插件页可见,大小写需实测
UserPromptSubmit 用户提交 prompt 时 prompt 审查、注入检测 Marketplace 插件页可见,大小写需实测
SubagentStart 子 Agent 启动时 子 Agent 初始化/治理 Marketplace 插件页可见,大小写需实测

来源稳定性说明:

来源 如何理解
官方文档地图 llms.txt 能证明 Hooks 是官方文档中的 Customizing 模块,但不等于完整事件枚举
官方博客 能证明能力方向和典型事件,如 MCP 前后拦截、stop 模式
Marketplace Hook 页面 能证明某些事件名在插件生态中存在,但不一定是完整 API 列表
论坛/讨论 能帮助判断版本差异,必须以当前 Cursor 实测为准

3.13.5 IDE / CLI / Cloud 支持差异

Hooks 的事件支持可能因环境不同而变化。这里给一个保守的学习版判断:

环境 建议优先尝试的 Hook 说明
Cursor IDE sessionStartbeforeReadFilebeforeShellExecutionbeforeMCPExecutionstop Marketplace 和官方博客更偏 IDE/组织场景
Cursor CLI beforeShellExecutionafterShellExecutionafterFileEditpostToolUsestopsessionStart 等需要逐项验证 CLI Hooks 支持仍在变化,必须实测
Cloud Agent 需要查对应 Cloud Agent / Automations 文档 不要假设和 IDE 完全一致

最稳的验证方法:每加一个 Hook,先让脚本把收到的 stdin 写到日志。

示意脚本:

import sys
from pathlib import Path

payload = sys.stdin.read()
Path(".cursor/hooks/debug.log").write_text(payload, encoding="utf-8")
print("{}")

然后配置:

让 Agent 执行一个低风险命令,例如 echo hello,再检查 .cursor/hooks/debug.log 是否写入。

3.13.6 官方博客提到的真实用途

用途 例子
MCP 治理 beforeMCPExecution / afterMCPExecution 监控 MCP 使用、扫描敏感数据
权限控制 强制最小权限策略,记录审计轨迹
代码安全 Agent 写代码时接入安全扫描并反馈
依赖安全 拦截 package install,扫描恶意依赖
Agent 安全 检测 prompt injection 和危险工具调用
密钥管理 命令执行前确认密钥环境是否正确挂载

3.13.7 当前项目里 Hooks 可以怎么用

场景 Hook 能做什么
修改 .cursor/ 后忘记同步 Agent 停止时检查是否需要运行 python sync_ai_config.py
生成文档后忘记保存 检查 notes/<标题>/<标题>.md 是否存在
文档缺少来源 检查 Markdown 是否有“延伸阅读”
误读敏感文件 beforeReadFile 拦截 .env、token、密钥配置
Agent 跑危险命令 beforeShellExecution 拦截 rmgit push、生产命令
调用 MCP beforeMCPExecution / afterMCPExecution 记录调用日志并扫描敏感数据

什么时候不用 Hooks:

  • 只是想提醒 Agent,用 Rules。
  • 只是想提供工作流,用 Skills。
  • 只是想访问外部工具,用 MCP。
  • 个人轻量使用,还没有明确要拦截或审计的动作。
  • 脚本本身不稳定时,不要放进 Hooks 自动执行。

3.14 CLI:把 Cursor Agent 带到终端

一句话:Cursor CLI 是命令行里的 Cursor Agent。

适合:

  • 远程机器
  • 脚本和 CI
  • 只读 review
  • 不想打开完整 IDE
  • Headless 自动化

基础命令:

# 安装
curl https://cursor.com/install -fsS | bash

# 交互式会话
cursor-agent

# 带初始任务
cursor-agent "refactor the auth module to use JWT tokens"

# 非交互模式
cursor-agent -p "review these changes for security issues" --output-format text

# 恢复会话
cursor-agent ls
cursor-agent resume
cursor-agent --resume="chat-id-here"

CLI 也支持 Rules 和 MCP。官方说明 CLI 会读取 .cursor/rules,也会读取项目根目录的 AGENTS.mdCLAUDE.md。运行终端命令前,CLI 默认会要求你批准或拒绝。

注意:非交互模式适合脚本,但官方文档也提醒它有完整写权限。用于 CI 前要先限制 prompt 和权限。

3.15 Cloud Agent、Bugbot、Automations:把 Agent 放到后台

一句话:Cloud Agent 是远程运行的 Agent,Bugbot 和 Automations 是围绕 PR、CI、事件触发的自动化能力。

适合团队成熟后使用:

能力 用途
Cloud Agent 长任务、后台任务、远程 sandbox
Bugbot PR 中自动找问题
Security Review 聚焦安全审查
Automations 定时或事件触发任务

常见自动化场景:

  • 修 CI failure
  • 增加测试覆盖
  • 扫描漏洞
  • 总结每日变更
  • 清理 feature flag
  • 从 Slack bug 报告自动开修复 PR

什么时候不用:

  • 个人学习阶段。
  • 没有测试和 review 流程。
  • 仓库权限和密钥管理没理清。

3.16 Models & Pricing:先用 Auto,再理解 Max Mode

官方模型页变化很快,不建议死记模型表。你只需要先理解这些概念:

概念 人话解释
Auto 让 Cursor 自动选模型
Context Window 模型一次能看到多少上下文
Max Mode 更大上下文或更强能力,通常更贵
Agent capability 是否适合自主编码任务
Thinking 是否支持更强推理
Images 是否支持图像输入/处理

建议:

  • 新手默认 Auto。
  • 小改动不用纠结模型。
  • 复杂重构、长上下文、难 bug 再考虑 Max Mode。
  • 具体价格和可用模型以官方 Models & Pricing 和编辑器内提示为准。

3.17 安全边界:Cursor 很强,但你仍然负责

官方 Agent Security 文档强调:prompt injection、幻觉和工具调用都可能导致意外行为。Cursor 的默认保护思路是对敏感动作要求人工批准。

关键点:

行为 默认/建议
读文件、搜索代码 通常不需要审批
修改工作区文件 多数情况下会直接保存
修改 IDE / CLI 配置 需要显式审批
运行终端命令 默认需要审批
第三方 MCP 连接 需要用户批准
外部 MCP 工具调用 默认每次需要批准
任意网络请求 默认受限制
allowlist 便利机制,不是完整安全控制
Run Everything 官方不推荐

安全建议:

  • 在 Git 管理的项目中使用 Cursor。
  • Agent 改完必须 review diff。
  • 高风险命令保留人工审批。
  • 敏感文件放入 .cursorignore
  • MCP token 最小权限。
  • 对陌生仓库不要给全自动权限。

四、实践示例

4.1 七天学习路线

天数 目标 练习
Day 1 会用 Tab 写小函数,只接受看得懂的建议
Day 2 会用 Inline Edit 选中函数,让 Cursor 补边界条件
Day 3 会用 Ask 问清一个模块调用链,不改代码
Day 4 会用 Agent 让 Agent 补测试并运行
Day 5 会写 Rules 写项目规范、禁止目录、测试命令
Day 6 会接 MCP 接一个只读文档或本地脚本 MCP
Day 7 会沉淀 把重复提示词变成 Rules 或 Skills

4.2 当前项目推荐 Rules

你的项目以 .cursor/ 为 AI 配置单一事实源,可以写:

---
description: "AI configuration source of truth for this repository"
alwaysApply: true
---

- All AI configuration must be edited in `.cursor/` first.
- Do not manually edit generated copies in `.claude/`, `.codex/`, or `.agents/` unless reverse migration is explicitly requested.
- After changing AI config, run `python sync_ai_config.py`.
- Learning notes must be saved under `notes/<title>/<title>.md`.

4.3 当前项目推荐 Hook 场景

这个项目目前还没有 .cursor/hooks.json。如果未来要加,最有价值的不是一上来搞复杂安全平台,而是做一个很小的质量检查:

脚本可以检查:

  • 是否生成到 notes/<标题>/<标题>.md
  • 是否包含 frontmatter
  • 是否包含“延伸阅读”
  • 是否包含来源链接
  • 如果修改了 .cursor/,是否提醒同步

这就是 Hooks 的正确使用方式:先从一个明确、低风险、可验证的小检查开始。

4.4 Agent 提示词模板

任务:
<描述要实现或修复的内容>

工作方式:
1. 先阅读相关文件,不要立刻修改。
2. 给出简短计划,指出会改哪些文件。
3. 实现时保持改动范围最小。
4. 不要修改无关文件。
5. 完成后运行相关测试或说明无法运行的原因。

约束:
- <不能改的目录或接口>
- <必须保持兼容的行为>

验收标准:
- <标准 1>
- <标准 2>
- <标准 3>

4.5 MCP 最小练习

先接一个只读本地文档,不要一上来接生产数据库:

使用:

请使用 project-docs 工具查找“部署流程”,总结当前项目上线步骤,不要修改文件。

4.6 CLI 只读审查

cursor-agent -p "Review current git changes for bugs, security risks, and missing tests. Do not edit files." --output-format text

如果需要修复,再开第二步:

cursor-agent -p "Fix the issues found in the previous review. Keep changes minimal and run relevant tests."

五、常见误区与注意事项

5.1 把 Cursor 当普通聊天机器人

Cursor 的价值不只是回答,而是能结合代码库、终端和工具完成任务。只问概念用 Ask;要动项目才用 Agent。

5.2 Rules、Skills、MCP、Hooks 混用

判断标准:

  • 规范和偏好:Rules
  • 专项流程:Skills
  • 外部工具:MCP / Plugins
  • 行动拦截:Hooks

5.3 一上来就 Auto-run

Auto-run 适合稳定、低风险命令。不要一开始就让 Agent 自动运行所有命令。

5.4 Hooks 过度设计

Hooks 很强,但不应该为了“看起来高级”而用。没有明确触发点、检查逻辑和失败处理时,先别加。

5.5 不 review diff

Agent 改完至少看:

  1. 有没有无关文件。
  2. 有没有删除配置。
  3. 测试是否真的跑了。
  4. 是否引入硬编码 token。
  5. 逻辑是否符合需求。

5.6 长对话一直续

任务结束就新开会话。把结论沉淀到 Rules、Skills、文档或计划文件里,而不是让一个聊天无限变长。

六、与相关技术的对比

6.1 Cursor 内部能力对比

功能 最适合 不适合 关键词
Tab 顺手补全 复杂设计 边写边补
Inline Edit 局部修改 跨模块任务 手术刀
Ask 学习和理解 自动改代码 只问不改
Agent 多文件任务 无边界大改 执行者
Plan Mode 高风险复杂任务 简单小改 施工图
Rules 持久规范 执行脚本 工作守则
Skills 专项流程 全局硬约束 工具箱
MCP 外部数据/工具 行为拦截 外接插座
Plugins 成套集成 小脚本 安装包
Hooks 行动前后检查 补充知识 拦截器
CLI 终端/CI 强 UI review 命令行 Agent
Cloud Agent 后台长任务 初学小改 云端执行

6.2 学习阶段建议

阶段 重点 暂缓
第 1 周 Tab、Inline Edit、Ask、Agent Hooks、Cloud Agent
第 2 周 Rules、Context、Review、安全边界 企业治理
第 3 周 Skills、MCP、CLI 复杂自动化
团队引入 Team Rules、MCP 权限、Hooks、Bugbot 无审计 Auto-run

6.3 什么时候该继续读官方专项文档

你的问题 继续读
规则为什么没生效 Rules
想打包自己的工作流 Skills
想连飞书、Figma、Linear、数据库 MCP / Plugins
想拦截命令、MCP、文件读取 Hooks
想在 CI 里跑 Agent CLI Headless / GitHub Actions
想让 Agent 自动审 PR Bugbot / Security Review
团队要统一治理 Enterprise / Team Rules / Security

延伸阅读

目录