Hoppa till innehåll

Chatta med en agent

Den här guiden visar hur du arbetar med en agent i en yta.

  1. Gå till Ytor i sidofältet
  2. Klicka på +-knappen bredvid rubriken Ytor
  3. Skriv ett namn — det är obligatoriskt. Ett tomt namn avvisas; dialogen stannar kvar
  4. Lägg eventuellt till agenter från arbetsytan
  5. 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
  6. Bekräfta

Control Center öppnar ytan och börjar i bakgrunden etablera en copy-on-write-worktree per valt repo.

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.

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

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.

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.

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.

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.

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.

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.