Czatuj z agentem
W tym poradniku pokazano, jak pracować z agentem w przestrzeni.
Utwórz przestrzeń
Dział zatytułowany „Utwórz przestrzeń”- W pasku bocznym przejdź do Przestrzenie
- Kliknij przycisk + obok nagłówka Przestrzenie
- Wpisz nazwę — jest wymagana. Pusta nazwa zostaje odrzucona; okno dialogowe pozostaje otwarte
- Opcjonalnie dodaj agentów z obszaru roboczego
- Jeśli obszar roboczy ma jakiekolwiek repozytorium, pojawia się selektor repozytoriów. Na początku zaznaczone są wszystkie repozytoria; zawęź wybór (możesz też odznaczyć pojedyncze repozytorium) do tych repozytoriów, dla których ta przestrzeń ma przygotowywać worktree
- Potwierdź
Control Center otwiera przestrzeń i w tle zaczyna przygotowywać worktree copy-on-write dla każdego zaznaczonego repozytorium.
Wyślij pierwszą wiadomość
Dział zatytułowany „Wyślij pierwszą wiadomość”Wpisz wiadomość w kompozytorze i naciśnij Enter. Agent zostaje wysłany i zaczyna strumieniować odpowiedź.
Jeśli przestrzeń wciąż jest przygotowywana, wiadomość zostaje wstrzymana, a nie utracona — kompozytor trzyma ją i wysyła automatycznie, gdy worktree będą gotowe.
W miarę pracy agenta widzisz strumieniowanie jego tury: segmenty rozumowania, wywołania narzędzi (odczyt i zapis plików, polecenia powłoki) oraz tekst odpowiedzi — wszystko w jednym komunikacie tury agenta.
Steruj działającym agentem
Dział zatytułowany „Steruj działającym agentem”Gdy agent pracuje, zwykły tekst rozmowy nie trafia do kolejki jako nowa tura. Zamienia się w kartę sterowania w kolejce na pasku nad kompozytorem i zostaje wstrzyknięty do bieżącego uruchomienia na granicy następnej tury. Nie ma żadnego powiadomienia typu toast — informacją zwrotną jest ta karta.
Trzy rzeczy zmieniają to działanie:
- Wiadomość zawierająca @wzmiankę jest zawsze wysyłana jako wiadomość, nigdy jako sterowanie
- Wiadomość rozpoczynająca się od polecenia slash jest zawsze obsługiwana jako to polecenie
- Wiadomość z załącznikiem jest zawsze wysyłana jako wiadomość — kolejka sterowania przyjmuje tylko tekst
- Jeśli wszystkie bieżące uruchomienia już się zakończyły, tekst przechodzi dalej i zostaje wysłany jako zwykła wiadomość
Zatwierdź zablokowane działanie
Dział zatytułowany „Zatwierdź zablokowane działanie”Gdy agent natrafi na działanie, które blokują jego guardraile — destrukcyjne
polecenie, narzędzie z podwyższonymi uprawnieniami — serwer blokuje
uruchomienie i publikuje prośbę o zatwierdzenie do wszystkich połączonych
klientów. Jeśli masz otwartą tę rozmowę, prośba pojawia się na czacie, nad
kompozytorem, jako ta sama karta z numerowanymi opcjami, której używa ask_user
(odmów, zatwierdź, a opcjonalnie zatwierdź na osiem godzin). Nie ma opcji
pominięcia: zablokowany agent czeka na decyzję.
Jeśli jesteś w innym miejscu aplikacji, panel zawsze na wierzchu w powłoce nadal wyświetla listę oczekujących rzeczy, więc możesz odblokować agenta bez szukania tej przestrzeni. Nakładka ukrywa prośbę w chwili, gdy rozmowa tej przestrzeni pojawi się na ekranie, więc nigdy nie odpowiadasz dwa razy na to samo pytanie.
Nie ma limitu czasu: zablokowany agent czeka, aż ktoś zdecyduje. Ta sama prośba pojawia się też na pasku uwagi w skrzynce oraz w kliencie na telefonie.
Odpowiedz na pytanie agenta
Dział zatytułowany „Odpowiedz na pytanie agenta”Agent, który potrzebuje preferencji, brakującego wymagania albo prawdziwego
wyboru między opcjami, musi wywołać ask_user. Zapisanie pytania jako
wiadomości na czacie kończy turę i musisz zadać polecenie ponownie. Narzędzie
renderuje w rozmowie kartę z numerami — opcje, opcjonalny tekst własny albo jedno
i drugie — a uruchomienie czeka na Twoją odpowiedź.
Dotknij pojedynczej opcji, aby ją wysłać (końcowy numer zmienia się po najechaniu
w strzałkę). Wielokrotny wybór i odpowiedzi wpisywane z klawiatury zatwierdzasz
przyciskiem Kontynuuj (⌘↵ / Ctrl↵). Pomiń mówi agentowi, żeby wybrał
rozsądną wartość domyślną i już nie pytał.
To mechanizm odrębny od karty zatwierdzenia powyżej: zatwierdzenie odpowiada na pytanie „czy mogę to zrobić?”, a pytanie — na „co dokładnie miałeś na myśli?”. Pytanie jest dostępne w wbudowanym harnessie w każdym trybie, także w trybach tylko do odczytu (nic nie zmienia), i celowo nie jest opakowane w monit o zatwierdzenie — okno dialogowe przed oknem dialogowym zakończyłoby się bezpieczną odmową, gdy nie jest podłączony żaden zatwierdzający. Uruchomienie bez rozmowy, w której można coś wyrenderować, po prostu nie otrzymuje tego narzędzia.
Zatrzymaj agenta
Dział zatytułowany „Zatrzymaj agenta”Gdy uruchomienia są aktywne, przycisk wysyłania w kompozytorze zmienia się w przycisk Zatrzymaj. Wyczyść kompozytor i naciśnij go — zatrzymuje to każdego agenta działającego w tej rozmowie.
W nagłówku przestrzeni nie ma sterowania zatrzymywaniem ani skrótu klawiszowego do tego. Aby zatrzymać tylko jedno uruchomienie, gdy kilka jest aktywnych, otwórz kartę aktywności tego uruchomienia — jej nagłówek zawiera pauzę/wznowienie i zatrzymanie w zakresie tego uruchomienia (zatrzymanie prosi o potwierdzenie). Obserwowalność → Na żywo wymienia każdego działającego agenta w obszarze roboczym wraz z tym samym sterowaniem.
Zatrzymane uruchomienie jest oznaczone jako zatrzymane. Wyślij nową wiadomość, aby wysłać agenta ponownie.
Używaj poleceń slash
Dział zatytułowany „Używaj poleceń slash”Wpisz / w kompozytorze, aby zobaczyć listę poleceń. Te, które zmieniają
zachowanie rozmowy:
| Polecenie | Co robi |
|---|---|
/plan |
Przełącza przestrzeń w tryb planu. Samo /plan tylko uzbraja tryb; /plan <request> uzbraja go i wysyła resztę jako Twoją wiadomość |
/goal <text> |
Zapisuje cel roboczy rozmowy |
/loop <text> |
Iteruje nad zadaniem, aż zostanie ukończone |
/compact |
Składa starszą historię w zakotwiczone podsumowanie i kontynuuje na skompaktowanym kontekście |
/todo … |
Wyświetla i edytuje trwałą listę zadań tej rozmowy |
Skille pojawiają się na tej samej liście w swojej własnej przestrzeni nazw
skill:, więc nigdy nie kolidują z powyższymi poleceniami — skill o nazwie plan
lub compact pozostaje dostępny:
| Polecenie | Co uruchamia |
|---|---|
/skill:<name> |
Skill zainstalowany w obszarze roboczym albo przypisany do agenta |
/skill:<repo>:<name> |
Skill dostarczany przez jedno z repozytoriów wyewidencjonowanych w tej przestrzeni |
Skille repozytoriów są oznaczone plakietką repozytorium, z którego pochodzą, bo
sama nazwa nie mówi, czyje konwencje koduje, a dwa repozytoria mogą każde
dostarczać testing. Nie musisz wpisywać prefiksu, aby go znaleźć: wpisanie samej
nazwy skilla pasuje również do wpisów z przestrzenią nazw.
Agent dysponuje wyłącznie skillami repozytorium, w którym aktualnie pracuje — zob. Skille w zakresie repozytorium. Kompozytor nie ma takiego ograniczenia: możesz wywołać skill dowolnego repozytorium, nazywając go.
/compact i /todo są przechwytywane przez klienta i nigdy nie są zapisywane
jako wiadomości — wiersz /compact w transkrypcie przesunąłby punkt odcięcia
następnej kompakcji o jedną turę wstecz. /plan przełącza zapisany tryb
przestrzeni, zamiast podróżować jako tekst. Żadne z tej trójki nie jest więc
„wiadomością wysyłaną agentowi”; nie oczekuj, że zobaczysz je w historii.
Najpierw poproś o plan
Dział zatytułowany „Najpierw poproś o plan”Przed złożoną zmianą przełącz przestrzeń w tryb planu za pomocą /plan, listy
trybów na pasku narzędzi kompozytora albo Shift+Tab. Agent prowadzi wtedy badania
tylko do odczytu i dostarcza typowany plan, który zatwierdzasz, zanim zacznie się
jakakolwiek praca. Zob.
Używaj trybu planu.
Dotrzyj do agenta bez osobnej przestrzeni
Dział zatytułowany „Dotrzyj do agenta bez osobnej przestrzeni”Nie potrzebujesz osobnej przestrzeni dla każdego agenta. W dowolnej przestrzeni:
@alice can you look at the failing tests in src/auth_test.dart?Wspomniany agent zostaje dodany do przestrzeni i wysłany z kontekstem tej przestrzeni. Zob. Wspominanie agentów przez @, aby dowiedzieć się, jak dopasowywane są nazwy.
Powiązane poradniki
Dział zatytułowany „Powiązane poradniki”- Używaj przestrzeni
- Wspominanie agentów przez @
- Używaj trybu planu
- Skonfiguruj integrację Slack, aby robić to samo ze Slacka