دروس حول ميزات إصدار Cursor 3.11: محادثة جانبية لا تُقاطِع النافذة الرئيسية، وCmd+K للعودة إلى المحادثات القديمة

这篇带你把 Cursor 3.11 的三个新功能一次上手,开侧边聊天问问题不打断主 Agent、用 Cmd+K 翻遍本机几千条旧对话、再用 Hooks 在关键节点插手监控子 Agent。附一个完整可跑的 hooks.json 示例,和一个云端会踩的雷。
(前情提要:马斯克旗下 SpaceXAI 正式推出最强模型「Grok 4.5」!携手 Cursor 猛攻 AI 编码代理,完美整合 Office 办公软件 )
(背景补充:Cursor Mobile 上线:专属 App 让你更方便用手机指挥 AI 写程式、监督产出 )

本文目录

Toggle

  • 本篇大纲
  • 侧边聊天让主 Agent 别停,另开一条继承 context 的聊天
  • 用 Cmd+K 翻本机几千条旧对话,Cmd+F 查当前这条
    • 搜所有旧对话,在 Agents Window 按 Cmd+K
    • 搜当前这条对话,按 Cmd+F
  • 云端 Agent Hooks 让你在关键节点插手,监控加控制子 Agent
    • hooks.json 怎么写、放哪
    • 想挡下某个动作,只有两个节点认
    • 云端 Agent 的踩雷点
  • 三个功能串起来
  • 附录:延伸资源
  • 常见问题

主 Agent 正在跑一个大重构,你突然想确认某个函数在别的地方有没有被调用,以前只能停下它、切走、打断正在跑的任务。Cursor 3.11(2026 年 7 月 10 日发布)补上的侧边聊天、对话搜索、云端 Agent Hooks 三个功能,刚好都在解「不想打断主线」这件事。

这篇假设你已经在用 Cursor 的 Agent,带你把三个新功能一次上手,附一个 hooks.json 示例和一个云端会踩的雷。

本篇大纲

  • 侧边聊天:主 Agent 不停,另开一条继承 context 的聊天追问
  • 对话搜索:Cmd+K 翻本机几千条旧对话,Cmd+F 查当前这条
  • 云端 Agent Hooks:在提交提示词、回复、子 Agent 启动等节点插手
  • 三个功能怎么串起來用,还有云端 Hooks 的踩雷点

侧边聊天让主 Agent 别停,另开一条继承 context 的聊天

侧边聊天(side chat)解决的是一个很具体的场景:主 Agent 在跑长任务时,你想岔出去问一个问题,但不想打断它。

开一条侧边聊天有三种方式,挑顺手的用:

  1. 打指令:在聊天框输入 /side 或 /btw
  2. 点按按钮:按聊天面板顶部的 + 按钮

开出来的侧边聊天会直接继承主对话的 context(上下文),所以你不用把背景重贴一次,它已经知道你们刚刚在弄什么。

这一步最容易误会的是,侧边聊天默认只做读取、搜索、回答这三件事,不会动你的 code。它的定位是让你追问、查资料、研究另一条路线,或在动手前先 sanity-check(快速验证)一个决策,主 Agent 那边完全不受影响继续跑。你要它真的改东西,得在对话里明讲。

每一条侧边聊天都是完整、长期保留的 Agent 对话,不是问完就丢。你可以稍后回访、继续追问。查到有用的结论,用 @ 把这条侧边聊天带回主对话,context 就接回主线了。

我自己的经验是,侧边聊天最好用的地方不是问「这是什么」,而是「主 Agent 打算这样改,但我怀疑会动到 X,你先帮我确认 X 有没有被别的地方依赖」。主线继续前进,你在旁边查证,两条线不互相卡。

用 Cmd+K 翻本机几千条旧对话,Cmd+F 查当前这条

以前想找「上週那条 Agent 对话里它是怎么解掉那个 bug 的」,基本只能靠对话名称或 PR 编号慢慢找,痛苦到不行。3.11 把搜索做进去了,而且分两个层级。

搜所有旧对话,在 Agents Window 按 Cmd+K

在 Agents Window(Agent 对话视窗)按 Cmd+K 叫出命令面板,直接搜 Agent 的对话内容(transcript),不只是搜名称和 PR 编号。Cursor 会在本机建一个搜索索引,所以就算你累积了几千条对话,搜起来还是很快。

因为索引建在本机,内容不会为了搜索被丢上云端,这点对在意隐私的人比较安心。

搜当前这条对话,按 Cmd+F

如果你只是要在正在看的这条长对话里找某段,按 Cmd+F 就好。它会给你 match counter(符合笔数计数),可以在符合的段落之间跳;长 transcript 边往下滚还能边搜。

这一步要注意,刚升级完索引需要一点时间建。如果你发现旧对话一时搜不到、或 chat history 看起来空空的,先等索引跑完再看,通常不是资料掉了。

云端 Agent Hooks 让你在关键节点插手,监控加控制子 Agent

Hooks(挂鉤)是这次对开发者最有份量的更新。它让你在 Agent 对话的关键节点挂上自己的指令码,Agent 走到那个节点就会自动触发你的指令。

3.11 这批新增的节点,涵盖了 Agent 一轮对话的几个关键时刻:

  • beforeSubmitPrompt:你送出提示词,但请求还没发给后端时
  • afterAgentResponse:Agent 讲完一则回复之后
  • afterAgentThought:一段思考(thinking)结束之后
  • subagentStart:要生成一个子 Agent(Task 工具)之前
  • subagentStop:子 Agent 跑完
  • stop:整轮 Agent 循环结束、任务停止时

有了这些节点,你可以做三件事:监控整个执行过程、在子 Agent 启动前后控制它,以及搭一个自动纠错(self-correcting)的循环;例如 Agent 一讲完回复就自动跑一次测试,挂了就把错误丢回去让它自己修。

hooks.json 怎么写、放哪

Hooks 设置写在 hooks.json,version 固定填 1。放置的位置有三个,只要存在都会被执行:

  • 项目层级:<项目根目录>/.cursor/hooks.json
  • 使用者全域:~/.cursor/hooks.json
  • 企业层级:/etc/cursor/hooks.json

一个最小可跑的示例,做两件事:每次 Agent 改完文件就跑一次稽核指令码,任务停止时记录一笔:

{
  "version": 1,
  "hooks": {
    "afterFileEdit": [
      { "command": "./hooks/audit.sh" }
    ],
    "stop": [
      { "command": "./hooks/on-stop.sh" }
    ]
  }
}

command 里的路径是相对于 hooks.json 所在位置。你的指令码会从 stdin(标准输入)收到一段 JSON,里面有 conversation_id、generation_id、model、hook_event_name 这些基本字段,再加上跟该节点有关的字段;例如 beforeSubmitPrompt 会带 prompt、afterAgentResponse 会带回复文字。

一个什么都不做、只确认能收到资料的指令码长这样:

#!/bin/bash
cat &gt; /dev/null   # 读掉 stdin
exit 0            # 回报成功

想挡下某个动作,只有两个节点认

这里有个很容易踩的雷:不是每个 hook 都能拦截动作。只有 beforeShellExecution(跑 shell 指令前)和 beforeMCPExecution(调用 MCP 工具前)这两个节点,会看你 stdout(标准输出)回传的 JSON 来决定放不放行:

{
  "continue": true,
  "permission": "allow",
  "userMessage": "显示给你看的讯息",
  "agentMessage": "显示给 AI 看的讯息"
}

permission 填 allow 放行、deny 挡下、ask 跳出来问你。其他节点,像 afterAgentResponse,就算你回了 permission 也不会理;它们只能观察、记录、触发别的动作,没办法挡。

云端 Agent 的踩雷点

如果你把 Hooks 用在云端 Agent(cloud agent),有一个节点会直接失效,就是 beforeSubmitPrompt。原因很实际:这个 hook 绑在 session 一开始的生命周期,但云端的虚拟机(VM)是等 session 开跑后才建起来的;session 刚开始那一刻机器根本还不存在,自然没东西帮你跑这个 hook。

我自己的经验是:云端要用就挑那些绑在「工具执行前后」的节点,比如 beforeShellExecution、afterFileEdit、subagentStart、subagentStop、stop 这些跑得比较稳;绑在 session 刚开场那一类的就别指望了。

三个功能串起来

三个功能分开讲得很清楚,但你应该要自己试看看串起来用的感觉。举实际的场景:

主 Agent 在跑一个跨好几个文件的重构。你开一条侧边聊天(/side)去查「这个要改的接口到底有几个地方在用」,主线不停。查完觉得有风险,用 @ 把侧边聊天的结论带回主对话,让主 Agent 把那几处一起处理。同时你的 hooks.json 里挂了一个 stop 节点,重构一结束就自动跑测试;你再用 Cmd+F 回头在这条长对话里,找刚刚 Agent 说它动了哪几个函数。

一轮下来你没被打断过,想做的事情都做完了。

附录:延伸资源

  • Cursor 官方 Changelog:每个版本的完整更新说明,3.11 的侧边聊天与对话搜索都在这
  • Cursor Hooks 官方档案:所有 hook 节点、stdin/stdout 字段、设置格式的完整参考
  • Cursor Subagents 档案:搭配 subagentStart/subagentStop 节点时可以先看这篇

常见问题

Q1. 侧边聊天会改到我的 code 吗?
A:默认不会。它只做读取、搜索、回答三件事,定位是让你查证和追问。要它动手改东西,得在对话里明讲。

Q2. 侧边聊天关掉会不见吗?
A:不会。每条侧边聊天都是长期保留的完整 Agent 对话,可以稍后回访、继续追问,也能用 @ 把它带回主对话。

Q3. Cmd+K 的对话搜索是搜云端还是本机?
A:本机。Cursor 在你电脑本机建搜索索引,内容不会为为了搜索被上传,能一路撑到几千条对话还很快。

Q4. 刚升级完旧对话搜不到,或 chat history 是空的?
A:多半是本机索引还在建,等它跑完再看,通常不是资料掉了。

Q5. Hooks 在云端 Agent 和本机有什么差别?
A:最大的差是 beforeSubmitPrompt 在云端跑不了,因为 session 刚开始时云端 VM 还没建起来。绑定在工具执行前后节点,像 beforeShellExecution、afterFileEdit、subagentStart,云端比较稳。

Q6. hooks.json 放哪才会生效?
A:项目的 .cursor/hooks.json、使用者全域的 ~/.cursor/hooks.json、企业的 /etc/cursor/hooks.json,这三个位置只要存在都会被执行。

Q7. 我想让 hook 直接挡掉一个危险指令,做得到吗?
A:可以,但只有 beforeShellExecution 和 beforeMCPExecution 这两个节点认你 stdout 回传的 permission;填 deny 就挡下。其他节点只能观察和触发动作,挡不了。

شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • تعليق
  • إعادة النشر
  • مشاركة
تعليق
إضافة تعليق
إضافة تعليق
لا توجد تعليقات
  • مُثبت