Přeskočit na obsah

Chatujte s agentem

Tenhle návod ukáže, jak s agentem pracovat v prostoru.

  1. V postranním panelu otevři Prostory
  2. Klikni na + vedle nadpisu Prostory
  3. Napiš Název prostoru. Pole je povinné. Prázdný název se odmítne a dialog zůstane otevřený
  4. Volitelně přidej agenty z pracovního prostoru
  5. Když má pracovní prostor nějaký repozitář, objeví se výběr. Začne se všemi vybranými. Zúž ho (včetně zrušení jediného repozitáře) na ty, pro které má prostor připravit worktree
  6. Potvrď

Control Center prostor otevře a na pozadí začne pro každý vybraný repozitář připravovat copy-on-write worktree.

Napiš zprávu do composeru a stiskni Enter. Agent se odešle a začne streamovat odpověď.

Když se prostor ještě připravuje, zpráva se neztratí. Composer ji podrží a pošle sám, jakmile jsou worktree připravené.

Jak agent pracuje, tah se streamuje do konverzace: úseky uvažování, volání nástrojů (čtení souborů, zápisy, příkazy shellu) a text odpovědi, všechno v jedné zprávě tahu agenta.

Usměrni běžícího agenta

Sekce “Usměrni běžícího agenta”

Dokud agent pracuje, běžný text konverzace nezařadí nový tah. Stane se z něj karta usměrnění ve frontě, v pruhu nad composerem, a do živého běhu se vloží na nejbližší hranici tahu. Toast se neukáže. Zpětnou vazbou je ta karta.

Chování se změní v těchto případech:

  • Zpráva se zmínkou přes @ se vždy pošle jako zpráva, nikdy jako usměrnění
  • Zpráva, která začíná příkazem s lomítkem, se vždy vyřídí jako ten příkaz
  • Zpráva s přílohou se vždy pošle jako zpráva. Fronta usměrnění bere jen text
  • Když už každý živý běh skončil, text propadne a pošle se jako běžná zpráva

Schval zablokovanou akci

Sekce “Schval zablokovanou akci”

Když agent narazí na akci, kterou brání guardraily, destruktivní příkaz nebo privilegovaný nástroj, server běh zablokuje a žádost o schválení zveřejní každému připojenému klientovi. Když máš tu konverzaci otevřenou, žádost se ukáže v chatu, nad composerem, jako stejná karta s očíslovanými možnostmi, kterou používá ask_user (Zakázat, Schválit a volitelně Schválit na 8 hodin). Přeskočit nejde. Zablokovaný agent čeká na rozhodnutí.

Když jsi jinde v aplikaci, panel vždy navrchu v okně pořád ukazuje, co čeká, takže agenta odblokuješ, aniž bys prostor hledal. Překryv žádost schová v okamžiku, kdy je konverzace toho prostoru na obrazovce, takže stejnou výzvu neodpovíš dvakrát.

Časový limit není. Zablokovaný agent čeká, dokud někdo nerozhodne. Stejná žádost se ukáže i v pruhu pozornosti v Doručené poště a v telefonním klientovi.

Odpověz na otázku agenta

Sekce “Odpověz na otázku agenta”

Agent, který potřebuje preferenci, chybějící požadavek nebo skutečné rozcestí, musí zavolat ask_user. Když otázku napíše jako zprávu v chatu, tah skončí a musíš ho pobídnout znovu. Nástroj v konverzaci vykreslí očíslovanou kartu, možnosti, volný text, nebo obojí, a běh čeká na tvou odpověď.

Jednu možnost klepnutím odešleš (číslo na konci se při najetí změní na šipku). Vícenásobný výběr a napsané odpovědi jdou přes Pokračovat (⌘↵ / Ctrl↵). Přeskočit řekne agentovi, ať zvolí rozumnou výchozí hodnotu a už se neptá.

Je to jiný mechanismus než karta schválení výše. Schválení se ptá „smím tohle udělat?“, otázka se ptá „kterou z těchhle možností jsi myslel?“. Ptaní je na vestavěném harnessi v každém režimu, včetně těch jen pro čtení, protože nic nemění, a schválně není zabalené do výzvy ke schválení. Dialog před dialogem by bez připojeného schvalovatele selhal uzavřeně. Běh, který nemá konverzaci, do které by se karta vykreslila, ten nástroj prostě nedostane.

Dokud běhy žijí, tlačítko odeslání v composeru se změní na Zastavit. Vyprázdni composer a stiskni ho. Zastaví to každého agenta, který v té konverzaci běží.

V záhlaví prostoru ovládání zastavení není a není na něj ani klávesová zkratka. Když chceš zastavit jen jeden běh z několika živých, otevři záložku aktivity toho běhu. V jejím záhlaví je ovládání vázané na běh: Pozastavit agenta, Obnovit agenta a Zastavit běh (zastavení se ptá na potvrzení). Observabilita → Živé vypíše každého běžícího agenta v pracovním prostoru se stejným ovládáním.

Zastavený běh je označený jako zastavený. Nová zpráva ho odešle znovu.

Používej příkazy s lomítkem

Sekce “Používej příkazy s lomítkem”

Napiš / do composeru a uvidíš seznam příkazů. Ty, které mění chování konverzace:

Příkaz Co udělá
/plan Přepne prostor do režimu Plan. Holé /plan režim jen zapne; /plan <request> ho zapne a zbytek pošle jako tvou zprávu
/goal <text> Zapíše pracovní cíl konverzace
/loop <text> Opakuje úkol, dokud není hotový
/compact Složí starší historii do ukotveného souhrnu a pokračuje na zkompaktovaném kontextu
/todo … Ukáže a upraví uložený seznam úkolů téhle konverzace

Skilly se v tom samém seznamu objeví pod vlastním jmenným prostorem skill:, takže se s příkazy výše nikdy nesrazí. Skill jménem plan nebo compact zůstane dosažitelný:

Příkaz Co spustí
/skill:<name> Skill nainstalovaný v pracovním prostoru, nebo připojený k agentovi
/skill:<repo>:<name> Skill, který veze jeden z repozitářů vycheckoutovaných v tomhle prostoru

Skilly repozitáře mají odznak repozitáře, ze kterého přišly, protože samotné jméno neřekne, čí konvence kóduje, a dva repozitáře můžou každý vézt testing. Předponu psát nemusíš. Holé jméno skillu najde i položky ve jmenném prostoru.

Agent nese vždy jen skilly repozitáře, ve kterém právě pracuje. Viz Skilly vázané na repozitář. Composer takhle omezený není: skill libovolného repozitáře vyvoláš tím, že ho pojmenuješ.

/compact a /todo zachytí klient a nikdy je neuloží jako zprávy. Řádek /compact v přepisu by posunul řez příští kompakce o tah zpátky. /plan přepne uložený režim prostoru a jako text neputuje. Žádný z těch tří tedy není zpráva, kterou agentovi posíláš, a v historii je nehledej.

Nejdřív si vyžádej plán

Sekce “Nejdřív si vyžádej plán”

Než se pustíš do složité změny, přepni prostor do režimu Plan příkazem /plan, rozbalovací nabídkou režimu na liště composeru, nebo Shift+Tab. Agent pak zkoumá jen pro čtení a doručí typovaný plán, který schválíš, než začne jakákoli práce. Viz Používejte režim plánu.

Oslov agenta bez vlastního prostoru

Sekce “Oslov agenta bez vlastního prostoru”

Prostor pro každého agenta nepotřebuješ. V libovolném prostoru:

@alice can you look at the failing tests in src/auth_test.dart?

Zmíněný agent se do prostoru přidá a odešle s kontextem toho prostoru. Jak se páruje jméno, popisuje Zmiňujte agenty přes @.