Chatta med en agent
Den här guiden visar hur du arbetar med en agent i en yta.
Skapa en yta
Avsnitt med rubriken “Skapa en yta”- Gå till Ytor i sidofältet
- Klicka på +-knappen bredvid rubriken Ytor
- Skriv ett namn — det är obligatoriskt. Ett tomt namn avvisas; dialogen stannar kvar
- Lägg eventuellt till agenter från arbetsytan
- Om arbetsytan har något repo visas en repoväljare. Den börjar med alla repon valda; begränsa den (även genom att avmarkera ett enskilt repo) till de repon som ytan ska etablera worktrees för
- Bekräfta
Control Center öppnar ytan och börjar i bakgrunden etablera en copy-on-write-worktree per valt repo.
Skicka det första meddelandet
Avsnitt med rubriken “Skicka det första meddelandet”Skriv ditt meddelande i meddelandefältet och tryck på Enter. Agenten dispatcheras och börjar strömma sitt svar.
Om ytan fortfarande etableras parkeras ditt meddelande i stället för att gå förlorat — meddelandefältet håller kvar det och skickar det automatiskt så snart worktreearna är klara.
Medan agenten arbetar ser du dess tur strömma in: resonemangssegment, verktygsanrop (filläsningar, skrivningar, shell-kommandon) och svarstext, allt i ett och samma meddelande för agentturen.
Styr en körande agent
Avsnitt med rubriken “Styr en körande agent”Medan en agent arbetar köar vanlig konversationstext inte en ny tur. Den blir ett köat styrningskort i remsan ovanför meddelandefältet och injiceras i den pågående körningen vid nästa turbrytpunkt. Det visas ingen toast — kortet är återkopplingen.
Tre saker ändrar det beteendet:
- Ett meddelande som innehåller ett @-omnämnande skickas alltid som ett meddelande, aldrig som styrning
- Ett meddelande som börjar med ett slash-kommando hanteras alltid som det kommandot
- Ett meddelande med en bilaga skickas alltid som ett meddelande — styrningskön är enbart text
- Om varje aktiv körning redan har avslutats faller texten igenom och skickas som ett vanligt meddelande
Godkänn en blockerad åtgärd
Avsnitt med rubriken “Godkänn en blockerad åtgärd”När en agent stöter på en åtgärd som dess räcken grindar — ett destruktivt
kommando, ett privilegierat verktyg — blockerar servern körningen och
publicerar en godkännandebegäran till varje ansluten klient. Om du har det
samtalet öppet visas begäran i chatten, ovanför meddelandefältet, som samma
kort med numrerade alternativ som används för ask_user (neka, godkänn och
eventuellt godkänn i åtta timmar). Det går inte att hoppa över: en blockerad
agent väntar på ett beslut.
Om du är någon annanstans i appen visar en panel som alltid ligger överst i skalet fortfarande vad som väntar, så att du kan avblockera agenten utan att leta efter ytan. Överlägget döljer en begäran i samma stund som ytans samtal visas på skärmen, så du svarar aldrig på samma fråga två gånger.
Det finns ingen tidsgräns: en blockerad agent väntar tills någon fattar ett beslut. Samma begäran visas också i inkorgens uppmärksamhetsrad och i telefonklienten.
Svara på en agents fråga
Avsnitt med rubriken “Svara på en agents fråga”En agent som behöver en preferens, ett saknat krav eller en verklig förgrening
måste anropa ask_user. Att skriva frågan som ett chattmeddelande avslutar
turen och du måste skicka en ny prompt. Verktyget renderar ett kort med numrerade
alternativ i samtalet — alternativ, valfri fritext eller båda — och körningen
väntar på ditt svar.
Tryck på ett enskilt alternativ för att skicka det (siffran i slutet blir en pil
när du för muspekaren över den). Flerval och skrivna svar använder Fortsätt
(⌘↵ / Ctrl↵). Hoppa över säger åt agenten att välja en rimlig standard
och inte fråga igen.
Det är en separat mekanism från godkännandekortet ovan: ett godkännande är ”får jag göra det här?”, en fråga är ”vilket av dessa menade du?”. Att ställa frågor är tillgängligt i den inbyggda harnessen i alla lägen, även de skrivskyddade (det ändrar ingenting), och det är avsiktligt inte inlindat i en godkännandeprompt — en dialog framför en dialog skulle misslyckas stängt utan en ansluten godkännare. En körning utan samtal att rendera i får helt enkelt inte verktyget.
Stoppa en agent
Avsnitt med rubriken “Stoppa en agent”Medan körningar är aktiva blir skicka-knappen i meddelandefältet en stoppa-knapp. Töm meddelandefältet och tryck på den — det stoppar varje agent som kör i det samtalet.
Det finns ingen stoppkontroll i ytans rubrik och ingen tangentbordsgenväg för det. För att stoppa bara en körning när flera är aktiva öppnar du den körningens aktivitetsflik — dess rubrik har en körningsspecifik pausa/återuppta och stoppa (stoppet ber dig bekräfta). Observability → Live listar varje körande agent i arbetsytan med samma kontroll.
En stoppad körning markeras som stoppad. Skicka ett nytt meddelande för att dispatchera igen.
Använd slash-kommandon
Avsnitt med rubriken “Använd slash-kommandon”Skriv / i meddelandefältet för att se kommandolistan. De som ändrar hur
samtalet beter sig:
| Kommando | Vad det gör |
|---|---|
/plan |
Växlar ytan till planläge. Ett bart /plan aktiverar bara läget; /plan <request> aktiverar det och skickar resten som ditt meddelande |
/goal <text> |
Registrerar samtalets arbetsmål |
/loop <text> |
Itererar över en uppgift tills den är klar |
/compact |
Fogar samman äldre historik till en förankrad sammanfattning och fortsätter på den komprimerade kontexten |
/todo … |
Visar och redigerar samtalets sparade att-göra-lista |
Skills visas i samma lista under sin egen namnrymd skill:, så de krockar aldrig
med kommandona ovan — en skill som heter plan eller compact går fortfarande
att nå:
| Kommando | Vad det kör |
|---|---|
/skill:<name> |
En skill som är installerad i arbetsytan eller kopplad till agenten |
/skill:<repo>:<name> |
En skill som levereras av ett av repona som är utcheckade i ytan |
Repo-skills märks med repot de kommer från, eftersom ett namn i sig inte säger
vilken tjänsts konventioner den kodar och två repon kan leverera varsin
testing. Du behöver inte skriva prefixet för att hitta en: att skriva det bara
skillnamnet matchar även de namnrymdsförsedda posterna.
En agent bär bara skills från det repo den för närvarande arbetar i — se Reposcopade skills. Meddelandefältet är inte avgränsat på det sättet: du kan anropa vilket repos skill som helst genom att namnge den.
/compact och /todo fångas upp av klienten och sparas aldrig som meddelanden —
en /compact-rad i transkriptet skulle flytta nästa komprimeringssnitt en tur
bakåt. /plan växlar ytans sparade läge i stället för att färdas som text. Så
ingen av de tre är ”ett meddelande du skickar till agenten”; förvänta dig inte
att se dem i historiken.
Be om en plan först
Avsnitt med rubriken “Be om en plan först”Innan en komplex ändring växlar du ytan till planläge med /plan, lägeslistan i
meddelandefältets verktygsrad eller Shift+Tab. Agenten undersöker då skrivskyddat
och levererar en typad plan som du godkänner innan något arbete börjar. Se
Använd planläge.
Nå en agent utan en dedikerad yta
Avsnitt med rubriken “Nå en agent utan en dedikerad yta”Du behöver inte en yta per agent. I vilken yta som helst:
@alice can you look at the failing tests in src/auth_test.dart?Den omnämnda agenten läggs till i ytan och dispatcheras med ytans kontext. Se @-nämn agenter för hur namn matchas.
Relaterade guider
Avsnitt med rubriken “Relaterade guider”- Använd ytor
- @-nämn agenter
- Använd planläge
- Konfigurera Slack-integration för att göra samma sak från Slack