Przejdź do głównej zawartości

Skonfiguruj guardraile

Ten poradnik pokazuje, jak skonfigurować guardraile: reguły, które decydują, czy akcja agenta zostanie wykonana, czy najpierw poprosi o zatwierdzenie, czy zostanie odrzucona.

Guardraile obejmują trzynaście klas efektów, które deklaruje każde narzędzie zmieniające stan. Są egzekwowane po stronie serwera w momencie wywołania narzędzia, nigdy przez instrukcję w prompcie.

  1. Przejdź do Ustawienia → Obszar roboczy → Uprawnienia agentów
  2. Wybierz zakres przełącznikiem segmentowym: Obszar roboczy, Agent (następnie wybierz agenta) lub Przestrzeń (następnie wybierz przestrzeń)
  3. W wierszu danej klasy akcji wybierz Zezwól, Zapytaj najpierw lub Odmów
  4. Aby usunąć ustawioną regułę, naciśnij przycisk resetowania, który pojawia się na końcu tego wiersza (Przywróć odziedziczone) — decyzja wróci do szerszego zakresu

Każdy wiersz pokazuje obowiązującą decyzję jako znacznik statusu oraz plakietkę z informacją, skąd pochodzi: Ten zakres, Odziedziczone lub Wbudowana wartość domyślna. Macierz rozstrzyga w trybie Agent (chat), więc Preset trybu nigdy się tu nie pojawia — aby zobaczyć tę warstwę, użyj sondy A co jeśli? z wybranym trybem tylko do odczytu.

Zapisanie reguły wymaga roli admin. Odczytywanie macierzy już nie.

Punkt kontrolny: ustaw Push do zdalnego repozytorium na Odmów w zakresie obszaru roboczego, a następnie uruchom poniższą sondę A co jeśli? dla git push origin main. Wynik to deny ze źródłem workspace.

Rozstrzyganie działa według zasady najpierw szczegółowość, potem restrykcyjność:

  1. Reguły przestrzeni, potem agenta, potem obszaru roboczego. Decyduje pierwszy zakres z pasującą regułą i rozstrzyganie się zatrzymuje
  2. Jeśli żadna reguła nie pasuje, stosowany jest preset trybu — tryb tylko do odczytu (plan, przegląd, orkiestracja) odrzuca jedenaście z trzynastu klas
  3. Jeśli tryb nic nie mówi, stosowana jest wbudowana wartość domyślna

W obrębie jednego zakresu reguła dotycząca polecenia rozstrzyga według najdłuższego pasującego prefiksu, a równie szczegółowy konflikt rozstrzyga się najbardziej restrykcyjnie — odmowa wygrywa z zapytaniem najpierw, a zapytanie najpierw z zezwoleniem. Akcja deklarująca kilka klas rozstrzyga każdą z nich niezależnie, a potem łączy je najbardziej restrykcyjnie.

Decyzja Zapytaj najpierw wyświetla jedną prośbę o zatwierdzenie obejmującą wszystkie klasy, które rozstrzygnięto na prompt. Gdy nie podłączono żadnej osoby zatwierdzającej, następuje odmowa — dotyczy to zarówno poleceń powłoki, jak i wywołań narzędzi harnessu. To celowe: uruchomienie bez kontroli jest gorsze od odrzuconego.

Klasa akcji Wbudowana wartość domyślna
Usunięcie pliku Zapytaj najpierw
Zapis poza drzewem roboczym Zezwól
Utworzenie commita Zezwól
Push do zdalnego repozytorium Zapytaj najpierw
Otwarcie pull requesta Zapytaj najpierw
Opublikowanie recenzji lub scalenie Zapytaj najpierw
Zapis do zewnętrznego trackera Zapytaj najpierw
Dostęp do sieci Zezwól
Odczyt sekretu Zezwól
Instalacja pakietu Zezwól
Uruchomienie procesu Zezwól
Zmiana struktury obszaru roboczego Zezwól
Sterowanie rigiem Zezwól

Taksonomia jest zamknięta. Nowe narzędzie, które trafi do wydania bez zadeklarowania swoich klas, oblewa test zapadkowy w CI, więc nic nie pojawia się z po cichu pustym zbiorem efektów.

Zanim zmienisz regułę, sprawdź, jak rozstrzyga ją już obecna polityka.

  1. Na tej samej stronie przewiń do A co jeśli?
  2. Wybierz Akcję (jedną z trzynastu klas)
  3. Opcjonalnie wypełnij pola Polecenie (na przykład git push origin main), Agent, Przestrzeń i Tryb
  4. Odczytaj wynik: decyzję, powód i Źródło:

Sonda uruchamia ten sam mechanizm rozstrzygający, którego używa ścieżka egzekwowania, na bieżących regułach, więc odpowiedź jest dokładna. Jeśli wynik jest zaskakujący, zmień regułę w macierzy powyżej i uruchom sondę ponownie.

Suwak działa osobno dla każdego agenta w każdej przestrzeni i nakłada się na reguły, a nie zastępuje ich.

  1. Otwórz przestrzeń
  2. Otwórz Zarządzaj uczestnikami z nagłówka przestrzeni
  3. W obszarze Autonomia w wierszu agenta wybierz poziom:
Poziom Efekt
Domyślnie Brak ustawienia dla przestrzeni — działa jak Działa po zatwierdzeniu
Tylko propozycje Każde narzędzie objęte bramką jest odrzucane od razu, a agent dostaje komunikat, aby zamiast tego zaproponował akcję
Działa po zatwierdzeniu Ryzykowne akcje trafiają do domyślnie odrzucającej bramki zatwierdzeń
Działa swobodnie Wstępnie zatwierdza wszystko, co nie zostało rozstrzygnięte jako twarda odmowa

Suwak obejmuje tylko wbudowany harness. Adapter Claude Code uruchamia własne narzędzia poza tą bramką.

Tabela Gdzie reguły są egzekwowane na dole tej samej strony to wersja tego zestawienia w aplikacji: dla każdej klasy efektów mówi, czy dany runner przechwytuje ją na bramce reguł, pozostawia sandboxowi, czy nie potrafi jej przechwycić wcale.

  • Adapter Claude Code jest objęty bramką tylko w części własnych wywołań narzędzi. Claude Code jest uruchamiany z --dangerously-skip-permissions, więc jego wywołania odczytu, zapisu i edycji nigdy nie przechodzą przez guard. Jego polecenia bash docierają do niego przez hook, który klasyfikuje wiersz poleceń, a jego push przechodzi przez bramę push jak u każdego agenta. Bramką objęte są też powierzchnia narzędzi MCP, do której ten adapter kieruje wywołania, oraz polecenie powłoki, które Control Center uruchamia, aby go wystartować.
  • Własny czasownik wyjściowy trybu (submit_plan, propose_orchestration) jest przypięty i nigdy nie można go odrzucić — w przeciwnym razie tryb byłby strukturalnie niezdolny do wytworzenia swojego jedynego rezultatu.
  • To, czy sandbox wzmacnia te reguły, zależy od hosta. Tam, gdzie cc_server znajdzie backend, opakowuje CLI Claude Code oraz narzędzie bash harnessu, więc reguła, której nie napisałeś, i tak ma pod sobą podłogę systemu operacyjnego. W systemie Windows nie ma żadnej, a w systemie Linux lub WSL2 bez bwrap i socat też nie — tam guardraile wraz z powierzchnią narzędzi trybu stanowią całe egzekwowanie, a nie jego drugą linię. Sprawdź, w którym przypadku jesteś, w Skonfiguruj polityki sandboxa.