𝗠𝗼́𝗷 𝗔𝗴𝗲𝗻𝘁 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗶𝘀𝘁𝘆𝗰𝘇𝗻𝘆 𝗣𝗿𝗼𝘀𝗶ł 𝗼 𝗣𝗼𝘇𝘄𝗼𝗹𝗲𝗻𝗶𝗲 𝗻𝗮 𝗞𝗮ż𝗱𝘆 𝗡𝗮𝗷𝗺𝗶𝗲𝗻𝘀𝘇𝘆 𝗞𝗿𝗼𝗸

Mój asystent AI miał poważny problem. Nie polegał na tym, że odmawiał proszenia o pozwolenie. Prosił o nie po prostu zbyt często.

Zadawałem mu proste zadania, jak np. odczytanie pliku PDF. Asystent wykonywał jeden ruch, prosił o zatwierdzenie, uruchamiał polecenie, a następnie natychmiast prosił ponownie o kolejny, drobny krok. Jedno zadanie zamieniało się w niekończącą się serię komunikatów.

Komunikaty o zatwierdzenie są niezbędne. Chcesz, aby lokalny asystent zatrzymał się przed uruchomieniem poleceń, zapisaniem plików lub otwarciem aplikacji. Jednak prawdziwa praca wymaga wielu kroków. Odczytanie PDF-a obejmuje sprawdzenie obecności Pythona, znalezienie konwertera, uruchomienie tego konwertera i odczytanie tekstu.

Jeśli każdy pojedynczy krok wymaga zatwierdzenia, przestajesz oceniać ryzyko. Zaczynasz klikać przez przerwy tylko po to, aby zniknęły. To uczy Cię ignorowania systemu bezpieczeństwa. Jest to bardziej niebezpieczne niż brak jakiegokolwiek zabezpieczenia.

Stary przepływ pracy wyglądał następująco:

Asystent nie zrozumiał intencji użytkownika. Nie zatwierdzałeś jednego małego testu. Zatwierdzałeś całe zadanie.

Zmieniłem sposób działania CliGate. Teraz, gdy zatwierdzisz pierwszą akcję na czacie, system ustawia flagę. Pozwala to na kontynuowanie późniejszych kroków bez kolejnych rund zatwierdzania. Asystent nadal otrzymuje rzeczywiste wyniki, dzięki czemu może kontynuować pracę.

Dodałem również „wyjście awaryjne”: /safe. Ta komenda włącza ponownie tryb jawnego potwierdzania.

Naprawiłem również błąd językowy. Gdy system kontynuował zadanie, czasami zmieniał język komunikatów. Jeśli mówiłeś po chińsku, asystent przełączał się na angielski przy kolejnym komunikacie. Teraz asystent sprawdza Twoją ostatnią prawdziwą wiadomość, aby wybrać odpowiedni język.

Rozwiązaniem nie jest wyłączenie zatwierdzeń. Rozwiązaniem jest pamiętanie o tym, dlaczego użytkownik udzielił zgody.

Dla narzędzi lokalnych stosuj zaufanie w zakresie zadania:

Tak buduję mechanizmy zatwierdzania w CliGate. Jest to mój lokalny control plane dla Claude Code, Codex CLI i Gemini CLI.

Jak radzicie sobie ze zmęczeniem prośbami o zatwierdzenie? Zatwierdzacie każde wywołanie narzędzia, każde zadanie czy całą sesję?

Source: https://dev.to/codekingai/my-coding-agent-asked-permission-for-every-tiny-step-4a07