Przejdź do głównej zawartości

Cloud Agents i Automations: hala produkcyjna Cursora

Cursor cloud agents to przemianowane background agents: każdy działa we własnej izolowanej maszynie wirtualnej z pełnym środowiskiem graficznym, nie na laptopie programisty. Cursor Automations uruchamiają je bez nadzoru, z harmonogramu albo na zdarzenia z GitHuba, GitLaba, Slacka, webhooków, Lineara, Sentry i PagerDuty, a REST API i webhooki statusu sterują tą samą flotą z zewnętrznych systemów (sprawdzone 2026-08-28 względem cursor.com/docs/cloud-agent).

Cursor Automations Sprawdzone 2026-08-28

Sposób, w jaki Twój zespół używa Cursora, po cichu przerósł edytor. Ktoś w piątki ręcznie robi audyt zależności, kanał na Slacku ze zgłoszeniami błędów jest cmentarzem, którego nikt nie triażuje, a dokumentacja zestarzała się trzy wydania temu, bo PR zmieniający API nigdy jej nie dotknął. Każde z tych zadań ma jasny wyzwalacz i jasny wynik.

  • Agenta triage’owego wyzwalanego ze Slacka, który otwiera śledczy PR, gdy ktoś wrzuci błąd na kanał
  • Nocny audyt zależności, który czyta lockfile, sprawdza ostrzeżenia bezpieczeństwa i otwiera jeden PR na bezpieczne podbicia
  • Automation synchronizującą dokumentację po scaleniu PR, która budzi się tylko wtedy, gdy diff dotknął publicznej powierzchni
  • Działający model tego, po którą z dziesięciu rodzin wyzwalaczy Cursora sięgnąć i które odpalają się dużo częściej, niż sugerują ich nazwy
  • Kontrakt API i webhooków do uruchamiania i obserwowania przebiegów z własnej usługi

Definicja jest krótka i nośna: „Cloud agents korzystają z tych samych podstaw agenta, ale działają w izolowanych maszynach wirtualnych w chmurze, z pełnymi środowiskami deweloperskimi, zamiast na Twojej lokalnej maszynie”. A dla każdego, kto czyta starsze materiały: „Cloud Agents nazywały się wcześniej Background Agents”.

„Każdy cloud agent działa we własnej izolowanej maszynie wirtualnej z pełnym środowiskiem graficznym”, co kupuje zachowania niedostępne agentowi lokalnemu: agent może „uruchamiać serwery deweloperskie, otwierać aplikację w przeglądarce, przeklikiwać przepływy w interfejsie i sprawdzać, czy jego zmiany działają, zanim wypchnie PR”, a Ty „możesz przejąć zdalny pulpit agenta i wejść w interakcję z oprogramowaniem, które agent buduje”. Computer use, interakcja z przeglądarką, narzędzia MCP i automatyczne naprawianie awarii CI stoją na tej samej liście możliwości. Uruchomisz go z aplikacji Cursor na iOS, z cursor.com/agents, z Cursor Desktop przez wybór Cloud z rozwijanej listy, ze Slacka albo z komentarza na GitHubie lub Bitbuckecie z @cursor, z Lineara albo z API.

O koszcie: „Cloud Agents są rozliczane według cennika API dla wybranego modelu. Możesz wybrać rozmiar okna kontekstu, a większe okno kontekstu może zwiększyć zużycie tokenów i koszty”. To największa dźwignia na rachunku floty i ustawia się ją per agent, a nie per przebieg.

„Builds przygotowują środowisko Cloud Agenta w tle. Każdy agent startuje z gotowej maszyny, z Twoimi repozytoriami, narzędziami i zależnościami”. Build to „bootowalny snapshot przygotowanego środowiska Cloud Agenta”: wykonuje do końca Twoją komendę install, klonuje repozytoria na ich gałęziach domyślnych i zachowuje powstały stan dysku.

Liczy się to dlatego, że opóźnienie mnoży się przez częstotliwość wyzwalacza. „Cursor trzyma w gotowości podgrzane kopie aktywnych Buildów. Usuwa to klonowanie repozytorium i instalację zależności ze ścieżki startu agenta”. Przy harmonogramie dwa razy dziennie to miły dodatek; przy wyzwalaczu Pull request pushed w ruchliwym monorepo decyduje o tym, czy przegląd zdąży, zanim autor przełączy kontekst.

Builds korzystają z wejść, które być może już masz: .cursor/environment.json, Dockerfile’i, komend instalacji i startu, sekretów, ustawień sieci. install działa przy każdym Buildzie; start i terminals działają przy starcie agenta. Cursor „pomija Build, gdy nic się nie zmieniło od ostatniego zakończonego”, zapisując takie jako Skipped.

Każde zdarzenie, na które Cursor Automations mogą reagować

Dział zatytułowany „Każde zdarzenie, na które Cursor Automations mogą reagować”

„Cursor Automations uruchamiają w tle cloud agents, z harmonogramu albo w odpowiedzi na zdarzenia z GitHuba, GitLaba, Slacka, webhooków, Lineara i innych źródeł”. To „i innych źródeł” naprawdę pracuje. Pełna udokumentowana lista na 2026-08-28:

RodzinaUdokumentowane wyzwalacze
ScheduledHarmonogramy cykliczne, gotowe opcje albo własne wyrażenia cron
Kontrola źródeł (wszyscy dostawcy)Draft opened · Pull request opened · Pull request pushed · Pull request merged · Push to branch · Comment added
Tylko GitHubPull request label changed · Issue label changed · CI completed · Issue comment · PR review comment · PR review submitted · Review thread updated · Workflow run completed
Tylko GitLabPull request label changed · Pull request approved
Tylko BitbucketPull request approved
SlackNew message in channel · Emoji reaction · Channel created
WebhookWłasne endpointy HTTP dla systemów zewnętrznych
LinearIssue created · Status changed · End of cycle
SentryIssue created · Issue updated · Any issue event
PagerDutyIncident triggered · Incident acknowledged · Incident resolved · Any incident event

Dwa zasługują na ostrzeżenie. Emoji reaction to najbardziej kuszący wyzwalacz z tej listy i najłatwiejszy do odpalenia przypadkiem: jeden entuzjastyczny kolega reagujący na wątek uruchamia cloud agenta. A Any issue event w Sentry odpala się przy każdej aktualizacji każdego zgłoszenia, nie tylko przy nowych.

Budowanie automation: instrukcje, narzędzia, zakres repozytoriów

Dział zatytułowany „Budowanie automation: instrukcje, narzędzia, zakres repozytoriów”

„Nową automation utworzysz w Agents Window, na cursor.com/automations, umiejętnością /automate z lokalnej sesji agenta albo z szablonu w Cursor Marketplace”. Umiejętność /automate to najszybsza droga, gdy już wiesz, jaki ma być kształt.

  1. Wybierz wyzwalacz. Najpierw zawężaj, potem poszerzaj; drugi zawsze możesz dodać.

  2. Napisz instrukcje. „Napisz prompt z instrukcjami dla automation”. Działa, gdy nikt nie patrzy, więc musi sam podać swoje warunki stopu i odmowy.

  3. Wybierz narzędzia. „Wybierz opcjonalne narzędzia, z których agent może korzystać, takie jak Send to Slack, Comment on Pull Request albo narzędzia z MCP”. Lista narzędzi to granica uprawnień: automation bez narzędzia do Slacka nie napisze na Slacka, cokolwiek mówi prompt.

  4. Ustaw zakres repozytoriów, a potem zapisz. Automations wyzwalane webhookiem generują swój URL i klucz API dopiero po pierwszym zapisie.

Wyjścia idą za narzędziami, które przyznałeś: „Automations oparte o repozytorium mogą otwierać pull requesty”, komentować docelowego pull requesta, wysyłać wiadomości na kanał Slacka albo prosić o recenzentów.

Wyzwalacze z harmonogramu przyjmują gotowe opcje albo własne wyrażenie cron. To rodzina do pracy bez naturalnego zdarzenia: audytów, kontroli rozjazdu, podsumowań.

Kontrola źródeł to rodzina o największym wolumenie, więc wybór wyzwalacza waży tu bardziej niż gdziekolwiek indziej. Pull request pushed odpala się przy każdym force pushu w trakcie przeglądu; Pull request merged odpala się raz, po decyzji. Do wszystkiego, co ma iść po scaleniu, a nie je bramkować, wybierz to drugie.

Wpis zatytułowany „Cloud Agents and Cursor Harness Improvements” ruszył trzy rzeczy ważne dla pracy bez nadzoru.

Subskrypcje zdarzeń. „Cursor może teraz monitorować Twoje PR-y, obserwować wątek na Slacku albo uruchamiać zaplanowane zadania”. Strona o możliwościach tłumaczy zysk: agent może „czekać na te zdarzenia i pracować dalej, gdy nastąpią, bez ponownego promptowania”. Na tym polega różnica między automation, która startuje świeży przebieg na każde zdarzenie, a subskrypcją, która trzyma jednego agenta przy życiu przez kolejne zdarzenia. Ma to znaczenie, gdy drugie zdarzenie ma sens tylko w kontekście pierwszego, jak awaria CI na PR, którego sam agent otworzył.

Subagenci na własnych maszynach. „Subagenci mogą teraz działać na własnych maszynach wirtualnych. Każdy dostaje izolowaną kopię projektu z czystym kontekstem we własnym środowisku chmurowym”. Strona o subagentach przedstawia to jako wybór: „Każdy subagent dostaje własne środowisko z własną gałęzią: izolowany git worktree z osobnym katalogiem roboczym na tej samej maszynie albo własne środowisko chmurowe z dedykowaną maszyną wirtualną i klonem repozytorium”. Definicje to Markdown z frontmatterem YAML w .cursor/agents/ (albo .claude/agents/ i .codex/agents/). Zagnieżdżanie ma granicę: od Cursora 2.5 „subagenci mogą uruchamiać subagentów potomnych… ale subagent uruchomiony przez innego subagenta nie może uruchamiać kolejnych”.

Długo żyjący cel przez /goal. Sformułowanie brzmi: „Użyj /goal, żeby dać agentowi długo żyjący cel, do którego ma pracować, aż zostanie w pełni ukończony”, z przykładem „napraw wszystkie niestabilne testy i doprowadź CI do zieleni”. Zdanie podsumowujące changelogu faktycznie mówi, że cloud agents potrafią „trzymać cel, aż zostanie spełniony”; sam wpis o /goal brzmi „długo żyjący cel, do którego ma pracować, aż zostanie w pełni ukończony” — cytuj wpis, nie podsumowanie.

„Cloud Agents API pozwala programowo uruchamiać cloud agents pracujących na Twoich repozytoriach i nimi zarządzać”. Bazowy URL to https://api.cursor.com, uwierzytelnianie Basic i Bearer kluczem API z Cursor Dashboard albo kluczem konta serwisowego.

CelEndpoint
Utworzenie agenta, lista, pobraniePOST /v1/agents · GET /v1/agents · GET /v1/agents/{id}
Archiwizacja, cofnięcie archiwizacji, usunięciePOST /v1/agents/{id}/archive · POST /v1/agents/{id}/unarchive · DELETE /v1/agents/{id}
PrzebiegiPOST /v1/agents/{id}/runs · GET /v1/agents/{id}/runs · GET /v1/agents/{id}/runs/{runId}
Obserwowanie albo zatrzymanie przebieguGET /v1/agents/{id}/runs/{runId}/stream · POST /v1/agents/{id}/runs/{runId}/cancel
Zużycie i artefaktyGET /v1/agents/{id}/usage · GET /v1/agents/{id}/artifacts · GET /v1/agents/{id}/artifacts/download
Tokeny o ograniczonym zakresie i metadanePOST /v1/sub-tokens · GET /v1/me · GET /v1/models · GET /v1/repositories
Prywatni workerzy i puleGET /v0/private-workers · GET /v0/private-workers/pools · POST /v0/private-workers/claim

Utworzenie agenta bierze „prompt zadania dla agenta”, czyli obiekt prompt z wymaganym polem text i opcjonalnymi obrazami, plus tablicę repos z adresami URL GitHuba i referencjami gałęzi. Agent i przebieg to osobne zasoby: POST /v1/agents tworzy agenta, POST /v1/agents/{id}/runs startuje pracę, a GET .../stream śledzi ją bez odpytywania. POST /v1/sub-tokens istnieje po to, by „utworzyć godzinny token o zakresie użytkownika, dzięki któremu worker działa jako aktywny członek zespołu” z klucza konta serwisowego. Tak system budowania uruchamia agentów przypisywalnych do osoby, a nie do wspólnego robota. Zwróć uwagę na rozjazd wersji: agenci i przebiegi są w v1, prywatni workerzy w v0.

„Gdy tworzysz agenta z adresem URL webhooka, Cursor wysyła żądania HTTP POST z powiadomieniami o zmianach statusu”. Powierzchnia jest celowo wąska: „Obecnie obsługiwane są tylko zdarzenia statusChange, konkretnie wtedy, gdy agent wchodzi w stan ERROR albo FINISHED” (sprawdzone 2026-08-28). Po webhookach nie płynie strumień postępu; do tego służy GET /v1/agents/{id}/runs/{runId}/stream.

Ładunek niesie event, timestamp, id, status, source (repository, ref), target (url, branchName, prUrl) i summary, a „część pól jest opcjonalna i pojawia się tylko wtedy, gdy jest dostępna”, więc parsuj defensywnie, zamiast destrukturyzować target.prUrl i liczyć na szczęście.

Weryfikacja to HMAC-SHA256 w nagłówku X-Webhook-Signature, w formacie sha256=<hex_digest>, liczony z surowego ciała żądania sprzed parsowania. Ta kolejność psuje integracje: framework, który parsuje JSON i serializuje go z powrotem, zanim odpali się Twój handler, produkuje inne bajty i podpis, który nigdy nie pasuje. Webhooki „mogą być ponawiane, jeśli Twój endpoint zwróci kod statusu błędu”, więc zrób handler idempotentnym.

Stanowisko weryfikacji: Bugbot, Security Agents, PR Routing and Approval

Dział zatytułowany „Stanowisko weryfikacji: Bugbot, Security Agents, PR Routing and Approval”

Cursor dostarcza na tej samej powierzchni trzech zarządzanych agentów: „Strona Automations zawiera też trzech agentów zarządzanych przez Cursora: Bugbot przegląda pull requesty pod kątem błędów i problemów z jakością kodu. Security Agents przeglądają pull requesty i skanują bazy kodu pod kątem podatności”.

  • Bugbot „przegląda pull requesty i wskazuje błędy, problemy bezpieczeństwa i problemy z jakością kodu”, analizując diff i zostawiając „komentarze z wyjaśnieniami i propozycjami poprawek” na GitHubie, GitLabie, Bitbuckecie i Azure DevOps. Dostroisz go przez .cursor/BUGBOT.md: Bugbot „zawsze dołącza główny plik .cursor/BUGBOT.md oraz dodatkowe pliki znalezione przy przechodzeniu w górę od zmienionych plików”. Przegląd wywołasz komentarzem cursor review albo bugbot run. Uważaj na limity: każda reguła jest ucinana na 30 000 znakach, reguły łącznie na 100 000, a powyżej tego „część reguł może zostać pominięta”, po cichu.
  • Security Agents „skanują Twój kod pod kątem błędów bezpieczeństwa, ryzykownych wzorców i podatności”, w dwóch postaciach: recenzentów badających pull requesty przed scaleniem i skanerów podatności przeczesujących spoczywające bazy kodu w cyklicznych harmonogramach. Konfiguruje się je przez Automations, z własnymi instrukcjami i narzędziami MCP, które kierują ustalenia na Slacka albo do trackera zgłoszeń.
  • PR Routing and Approval „kieruje pull requesty do właściwych recenzentów i może zatwierdzać zmiany niskiego ryzyka”, przydzielając recenzentów na podstawie własności kodu i historii commitów oraz ważąc „ocenę ryzyka, pliki polityki zatwierdzania, ustalenia agenta przeglądu AI i Twoją konfigurację”. Jego własna dokumentacja stawia granicę: „Nie zastępuje pełnego przeglądu kodu”. Strona podaje też, że „Security Agents wymagają planu team albo enterprise”.

Stanowisko istnieje dlatego, że tryb awarii, przed którym chroni, jest zmierzony. Raport Faros AI AI Engineering Report 2026: The Acceleration Whiplash (kwiecień 2026), oparty na dwóch latach telemetrii od 22 000 deweloperów i ponad 4000 zespołów, podaje 31,3% więcej pull requestów scalanych bez żadnego przeglądu.

Co się psuje, gdy automations Cursora działają bez nadzoru

Dział zatytułowany „Co się psuje, gdy automations Cursora działają bez nadzoru”

PR-y z forków nie wyzwalają. „Wyzwalacze pull requestów nie działają na PR-ach otwartych z forków”, ze względów bezpieczeństwa. Jeśli Twój projekt przyjmuje wkład z zewnątrz, Twoja automation przeglądu obejmuje dokładnie te PR-y, którym ufasz najbardziej, i żadnego z tych, którym ufasz najmniej. Forki pokryj w CI.

Niezaufane wejście plus pamięci. Dokumentacja to sygnalizuje: pamięci „należy używać ostrożnie, jeśli Twoja automation obsługuje niezaufane wejście”. Automations wyzwalane ze Slacka i webhookiem wciągają tekst napisany przez kogoś innego niż Ty i dlatego wszystkie powyższe prompty zaczynają się od nazwania tego tekstu danymi.

Brak udokumentowanego przebiegu próbnego. Strona o automations nie dokumentuje żadnego kroku testowego odpalenia ani przebiegu na sucho, zanim automation ruszy na żywo (sprawdzone 2026-08-28). Nowej automation daj na pierwsze dni celowo wąski wyzwalacz: jedno repozytorium, jedna etykieta, jeden kanał.

Burze zdarzeń. Pull request pushed, Comment added, Emoji reaction i Any issue event w Sentry odpalają się dużo częściej, niż sugerują ich nazwy. Skoro cloud agents rozliczają się według cennika API dla wybranego modelu, zbyt szeroki wyzwalacz to rachunek, a nie tylko szum.

Nieświeży Build. Agenci wykładający się na zależności, która wpadła wczoraj, zwykle znaczą, że snapshot jest od niej starszy. Najpierw sprawdź commit zapisany przez Builda.

Webhook, który nigdy się nie weryfikuje. Jeśli każde sprawdzenie podpisu zawodzi, ciało zostało ponownie zserializowane przed sprawdzeniem. Licz HMAC-SHA256 z surowych bajtów.

Zielony przebieg, który nic nie zmienił. Automation, której lista narzędzi nie zawiera Comment on Pull Request ani Send to Slack, nie ma jak zaraportować; wykonuje pracę i nie zostawia śladu tam, gdzie zaglądasz. Lista narzędzi to powierzchnia wyjścia, nie tylko granica uprawnień.

Odpowiednikiem w Claude Code są routines: zapisany prompt plus repozytoria i konektory, z dokładnie trzema typami wyzwalaczy — Scheduled, API i GitHub — działające jako sesje w chmurze, w których „nie ma wyboru trybu uprawnień ani pytań o zgodę w trakcie przebiegu”. Węższe niż lista Cursora i z udokumentowanym minimalnym interwałem jednej godziny, ale połączą na jednym routine harmonogram z wyzwalaczem zdarzeniowym. Odpowiednikiem w Codeksie są zaplanowane zadania — „planuj cykliczne zadania działające w tle” — odpalane aktywnością w Gmailu, Slacku i przy pull requestach na GitHubie, z wyraźnym ograniczeniem, że „jedno zadanie może korzystać z wielu wyzwalaczy zdarzeniowych, ale nie może łączyć wyzwalaczy zdarzeniowych z harmonogramem czasowym”. Wszystko sprawdzone 2026-08-28. Nasze przewodniki: Routines w Claude Code oraz automatyzacje w Codeksie.