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 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
请输入评论内容
请输入评论内容
暂无评论