Навчання функціям версії Cursor 3.11: бічний чат не перериває головне вікно, Cmd+K — повернутися до старих діалогів

Ця стаття допоможе вам одразу освоїти три нові функції Cursor 3.11: відкрийте бічний чат і ставте запитання, не перериваючи основного Agent; використайте Cmd+K, щоб переглянути кілька тисяч старих розмов на вашому локальному пристрої; а потім втручайтеся в ключових точках за допомогою Hooks, щоб здійснювати моніторинг підлеглих Agent. Додано повний приклад hooks.json, який можна запустити, а також приклад “міни”, на яку можна натрапити в хмарі.
(Передісторія: компанія SpaceXAI, що належить Маску, офіційно випустила найпотужнішу модель «Grok 4.5»! У співпраці з Cursor активно наступаємо на AI-агентів для програмування, ідеальна інтеграція з офісним ПЗ )
(Додатковий контекст: Cursor Mobile запущено: спеціальний застосунок, щоб зручніше керувати AI з телефону й контролювати результат )

Зміст

Toggle

  • План цієї статті
  • Бічний чат: щоб основний Agent не зупинявся, відкрийте окрему розмову, що успадковує context
  • За допомогою Cmd+K перегорніть кілька тисяч старих локальних розмов, Cmd+F — знайдіть саме цю
    • Пошук усіх старих розмов: у Agents Window натисніть Cmd+K
    • Пошук саме цієї розмови: натисніть Cmd+F
  • Cloud Agent Hooks: втручайтеся в ключових вузлах, моніторте й керуйте підлеглими Agent
    • Як писати hooks.json і де його розмістити
    • Щоб заблокувати певну дію, її мають “розуміти” лише два вузли
    • Пастки Cloud Agent
  • Як поєднати три функції
  • Додаток: додаткові ресурси
  • Часті питання

Основний Agent зараз виконує велике рефакторинг-оновлення, і вам раптом потрібно перевірити, чи викликається якась функція в іншому місці. Раніше для цього доводилося зупиняти його, переключатися, або переривати завдання, яке вже виконувалося. Три функції, додані в Cursor 3.11 (випуск 10 липня 2026): бічний чат, пошук за діалогами та Cloud Agent Hooks — якраз вирішують проблему “не хочу переривати основну лінію”.

Ця стаття припускає, що ви вже використовуєте Agent у Cursor, і проведе вас через три нові функції одразу, з прикладом hooks.json та однією “міні”, яку можна наступити у хмарі.

План цієї статті

  • Бічний чат: основний Agent не зупиняється, відкрийте окрему розмову, щоб продовжити запитання з context
  • Пошук діалогів: Cmd+K — перегляньте кілька тисяч старих локальних розмов, Cmd+F — знайдіть поточну
  • Cloud Agent Hooks: втручайтеся в ключові вузли, такі як відправка підказки, відповіді, запуск підлеглих Agent
  • Як поєднати три функції, а також пастка для Cloud Hooks

Бічний чат: основний Agent не зупиняється, відкрийте окрему розмову, що успадковує context

Бічний чат (side chat) вирішує дуже конкретний сценарій: коли основний Agent виконує довге завдання, вам хочеться відгалузитися й поставити питання, але не переривати його.

Є три способи відкрити бічний чат — виберіть той, який зручніший:

  1. Команда: у полі чату введіть /side або /btw
  2. Кнопка: натисніть кнопку + у верхній частині панелі чату

Відкритий бічний чат одразу успадковує context основної розмови, тож вам не потрібно заново вставляти фон — він уже знає, що ви щойно робили.

Найлегше помилитися на цьому кроці: бічний чат за замовчуванням робить лише читання, пошук і відповіді — він не змінює ваш код. Його призначення — дозволити вам ставити уточнювальні питання, шукати інформацію, досліджувати іншу лінію, або перед тим як братися за роботу зробити sanity-check (швидку перевірку) рішення. Основний Agent там не зазнає жодного впливу й продовжує виконання. Якщо ви хочете, щоб він справді щось змінив, потрібно прямо попросити це в діалозі.

Кожна бічна розмова — це повноцінний, довготривалий Agent-діалог, а не чат “поставив питання — і кинув”. Ви зможете повернутися пізніше й продовжити. Коли знайдете корисні висновки, використайте @, щоб повернути цю бічну розмову в основний діалог — тоді context знову приєднається до основної лінії.

З мого досвіду: найкраще місце, де бічний чат дійсно корисний — це не питати “що це таке”, а запитати: “основний Agent планує змінити це, але я підозрюю, що це зачепить X — перевір, будь ласка, чи X залежить від чогось у цьому місці”. Основна лінія продовжується, а ви збоку робите перевірку — і дві лінії не заважають одна одній.

Використайте Cmd+K, щоб перегорнути кілька тисяч старих локальних розмов, Cmd+F — щоб знайти саме цю

Раніше, щоб знайти “як у тій агентній розмові на минулому тижні він розв’язав той баг”, зазвичай доводилося покладатися на назву діалогу або номер 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 виглядає порожнім, зачекайте, поки індекс завершить роботу — зазвичай нічого не “зникло”.

Cloud 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 щойно завершив відповідь — одразу запускається тест; якщо він падає, помилка повертається назад до 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-інструмента) перевірять JSON, який повернеться через stdout (стандартний вихід), щоб вирішити, пропускати чи ні:

{
  "continue": true,
  "permission": "allow",
  "userMessage": "повідомлення, яке показати вам",
  "agentMessage": "повідомлення, яке показати AI"
}

У permission вкажіть allow, щоб пропустити, deny — щоб заблокувати, ask — щоб з’явився запит і ви відповіли. Для інших вузлів, наприклад afterAgentResponse, навіть якщо ви повернете permission, він усе одно його ігноруватиме: вони можуть лише спостерігати, логувати й запускати інші дії, але не можуть заблокувати.

Пастки Cloud Agent

Якщо ви застосуєте Hooks у Cloud Agent (хмарний агент), один вузол одразу стане неефективним — це beforeSubmitPrompt. Причина проста й практична: цей hook прив’язаний до життєвого циклу session на початку, але віртуальна машина (VM) в хмарі створюється вже після старту session. На самому початку моменту, коли session тільки починається, машини ще нема — тож нема й нічого, що могло б запускати цей hook.

З мого досвіду: коли використовуєте cloud, обирайте вузли, які прив’язані до моментів “до/після виконання інструментів”, наприклад beforeShellExecution, afterFileEdit, subagentStart, subagentStop, stop — вони працюють стабільніше. А ті, що на старті session, краще не очікувати.

Поєднайте три функції

Три функції пояснюються окремо й досить чітко, але вам варто самому спробувати відчути, як вони працюють разом. Ось практичний сценарій:

Основний Agent робить рефакторинг, який зачіпає одразу кілька файлів. Ви відкриваєте бічний чат ( /side ), щоб перевірити: “скільки місць у цьому інтерфейсі використовується, яке ми змінюємо”. Основна гілка не зупиняється. Коли ви доходите висновку, що є ризик, за допомогою @ переносите результати бічного чату в основний діалог, і основний Agent обробляє ті кілька місць разом. Паралельно у вашому hooks.json підвішено вузол stop: коли рефакторинг завершується, він автоматично запускає тести. І далі ви використовуєте Cmd+F, щоб повернутися до цієї довгої розмови й знайти, які саме функції Agent сказав, що змінив.

За весь цикл вас жодного разу не переривали, і все, що ви хотіли зробити, ви зробили.

Додаток: додаткові ресурси

  • Офіційний Changelog від Cursor: повні описи всіх оновлень кожної версії; бічний чат і пошук за діалогами в 3.11 — якраз тут
  • Офіційна документація Cursor Hooks: усі hook-вузли, поля stdin/stdout і повне довідкове керівництво щодо формату налаштувань
  • Документація Cursor Subagents: під час роботи з вузлами subagentStart/subagentStop можна спочатку глянути цю

Часті питання

Q1. Бічний чат змінить мій код?
A:За замовчуванням — ні. Він робить лише читання, пошук і відповіді; його призначення — допомогти вам перевірити та поставити уточнювальні питання. Щоб він сам взявся за зміни, потрібно чітко попросити про це в діалозі.

Q2. Якщо вимкнути бічний чат, він зникне?
A:Ні. Кожен бічний чат — це довготривала повна Agent-розмова; ви можете пізніше повернутися, продовжити запитання й також використати @, щоб повернути його в основний діалог.

Q3. Пошук діалогів Cmd+K шукає в хмарі чи на локальному пристрої?
A:Локально. Cursor будує індекс пошуку на вашому комп’ютері, і вміст не завантажується на сервер лише для пошуку — тож він може швидко “тягнутися” аж до кількох тисяч діалогів.

Q4. Після оновлення старі діалоги не знаходяться, або chat history порожній?
A:Ймовірно, локальний індекс ще будується. Дочекайтеся, поки він завершить роботу, і тоді дивіться — зазвичай це не означає, що дані зникли.

Q5. Яка різниця між Hooks у Cloud 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 “визнають” permission, який ви повертаєте через stdout. Якщо там буде deny — команда блокується. Інші вузли можуть лише спостерігати й запускати дії, але не можуть заблокувати.

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
Додати коментар
Додати коментар
Немає коментарів
  • Закріплено