Friformsprocedurer
Uppgiftsspecifika instruktioner skrivna på naturligt språk
Översikt
En friformsprocedur beskriver en uppgift på enkelt, naturligt språk. Agenten tolkar instruktionerna och anpassar formuleringen och ordningen efter situationen. En friformsprocedur kan anropa verktyg (inklusive systemverktyg som att avsluta ett samtal), slå upp dokument i kunskapsbasen och kedja till andra procedurer.
När du ska använda en friformsprocedur
Använd en friformsprocedur när agenten kan anpassa formulering och ordning efter situationen, och du vill skapa den snabbt på vanligt språk. Information om hur den jämförs med strukturerade procedurer, workflows och systemprompten finns i När du ska använda procedurer.
En procedurs delar
Här är en återbetalningsprocedur i redigeraren:

En procedur har två huvuddelar: en utlösare och innehåll. Båda kan innehålla infogade referenser till andra resurser, som visas i skärmbilden ovan som taggar med skiftnyckelikoner. Varje procedur har också ett namn som visas på kontrollpanelen.
Namn
En kort etikett som identifierar proceduren på kontrollpanelen. Namnet skickas aldrig till LLM:en, så det påverkar inte agentens beteende.
Utlösare
En beskrivning av när agenten ska använda proceduren, till exempel När användaren ber om att få en order återbetald.
Lämna utlösaren tom endast när du skapar en underprocedur.
Innehåll
Procedurens brödtext, skriven i markdown. Innehållet beskriver vad agenten ska göra: ställa en fråga, slå upp en order, anropa ett verktyg eller avsluta samtalet. Det kan vara en numrerad följd av steg att följa eller allmän vägledning för situationen. Varje steg eller riktlinje kan vara en enda mening (Be användaren om order-ID:t) eller ett kort stycke som förklarar vad som ska göras och varför.
Använd numrerade steg för åtgärder i följd och punktlistor för krav eller delpunkter inom ett steg.
Infogade referenser
Procedurer kan referera till olika typer av resurser direkt i texten:
- Verktyg (t.ex. slå upp en order, debitera ett kort, avsluta samtalet, överföra till en människa)
- Dokument i kunskapsbasen
- Andra procedurer
Använd infogade referenser när ett steg kräver att agenten använder ett verktyg, ett dokument i kunskapsbasen eller en annan procedur. Referenser kopplar automatiskt resursen till proceduren så att agenten kan använda den. Vanliga omnämnanden i text (som använd kalkylatorverktyget här) fungerar också, men endast om resursen redan är kopplad till agenten.
Infoga en referens genom att skriva / i utlösaren eller innehållet och välja resursen från snedstrecksmenyn. Referenser visas som klickbara taggar i redigeraren. Klicka på en tagg för att öppna den underliggande resursen och bekräfta dess konfiguration.
När du skriver friformsinnehåll via API:t infogar du referenser med följande syntax:
En infogad procedurreferens måste använda en procedur från samma agent. Se Begränsningar för agentomfång och dupliceringsbeteende.
En referens i utlösaren gör att proceduren kan starta baserat på en resurs utdata, till exempel När get_user returnerar nivå ‘gold’. En referens i innehållet talar om för agenten att anropa eller konsultera resursen vid det steget.
Dokument i kunskapsbasen som refereras i en procedur använder alltid användningsläget auto användningsläge: när RAG är aktiverat för agenten hämtar agenten relevanta avsnitt i stället för att placera hela dokumentet i prompten. Om dokumentet också är kopplat till agenten används agentens användningsläge för dokumentet i stället, så koppla det till agenten med användningsläget prompt för att behålla hela texten i prompten.

Om en refererad resurs senare tas bort, eller om ditt konto förlorar åtkomst till den, visas taggen som trasig. Märket Fel högst upp i redigeraren listar dessa referenser: ogiltig om resursen inte längre finns eller otillgänglig om den finns men ditt konto inte har åtkomst. Öppna märket för att se vilket steg som påverkas och åtgärda eller ta bort referensen.

Underprocedurer
En underprocedur har en tom utlösare. Agenten kan bara köra den från en annan procedur som refererar till den.
Använd underprocedurer för att dela steg inom en agent och minska antalet procedurer som är tillgängliga samtidigt. Ge ingångsproceduren en utlösare, referera till relaterade underprocedurer från dess innehåll och lämna deras utlösare tomma.
En underprocedur för eskalering kan innehålla stegen för att lämna över samtalet till en människa. Referera till den från procedurerna för återbetalning och uppsägning och lämna dess utlösare tom. Agenten kan eskalera som ett steg i någon av procedurerna, men utanför dem förblir underproceduren otillgänglig.
Importera från ett dokument
Du kan utgå från en befintlig standardrutin (SOP). Välj Från SOP i procedurlistans +-meny och ladda sedan upp en fil.
Format som stöds: PDF, DOCX, TXT, MD, HTML, EPUB. Filer måste vara högst 20 MB.
Importverktyget analyserar dokumentet, identifierar upp till 10 separata procedurer och skapar ett utkast för var och en med ett genererat namn, en utlösare och innehåll. Öppna varje utkast för att förfina det. Om dokumentet innehåller fler än 10 SOP:ar bör du dela upp det i mindre filer innan du laddar upp det.

Hantera en friformsprocedur
Skapa via kontrollpanelen
Hantera via API:t
Öppna din agent på kontrollpanelen och välj sedan Procedurer. Använd + för att skapa en friformsprocedur. Lägg till en utlösare och skriv instruktionerna i innehållsredigeraren. Publicera sedan ändringarna för agenten.
Bästa praxis
Agenten måste välja rätt procedur utifrån dess utlösare och följa innehållet. Mer kapabla modeller gör detta mer tillförlitligt när antalet procedurer ökar. Se Modeller för alternativ.
Att skriva bra procedurer innebär att skriva två delar väl: en utlösare som kör proceduren när den ska köras, och innehåll som agenten kan följa.
Iterera på en procedur
Vi rekommenderar att du börjar i liten skala och använder agenttester för att kontrollera varje ändring innan du gör nästa.
Skriv en kort procedur
Skriv en utlösare och ett kort innehåll. Utöka innehållet endast när ett test visar att agenten behöver fler instruktioner.
Lägg till utlösartester
Skapa simuleringstester för förfrågningar som ska starta proceduren och för liknande förfrågningar som inte ska göra det. De flesta fel kommer från utlösaren, så skriv fler av dessa än fullständiga simuleringar.
Om du snabbt vill iterera på en utlösare skapar du ett simuleringstest vars chatthistorik
avslutas med användarens förfrågan och ställer in Maximalt antal samtalsvändor på 1. Agenten svarar en gång, vilket räcker för att
visa om förfrågan startar rätt procedur, och varje körning förblir kort. Skriv framgångskriterierna
som Agenten startade återbetalningsproceduren. Utan chatthistorik använder en agent med ett första
meddelande den enda vändan till sin hälsning och testet kontrollerar ingenting.
När ett test eller ett verkligt samtal misslyckas ska du leta efter typen av misstag bakom det. Om agenten sa något fel löser Säg inte det ett samtal. Sök igenom tidigare samtal efter liknande fel och skriv en instruktion som täcker dem alla. Orsaken kan också finnas i kunskapsbasen eller agentkonfigurationen. Architect kan göra denna sökning: öppna det misslyckade samtalet, välj Architect och be den hitta liknande fel och föreslå en lösning. Architect kan också omvandla samtalet till ett test.
Skriva utlösare
Håll utlösare konkreta och åtskilda
Överlappande eller vaga utlösare gör att fel procedur körs. Föredra När användaren ber om att avsluta en prenumeration framför _När användaren har en fråga om sitt konto _.
Skriv ur användarens perspektiv
Beskriv vad användaren ber om, inte vad agenten ska göra. Utlösare formulerade som agentåtgärder är mindre tillförlitliga. Föredra När användaren ber om att avsluta sin prenumeration framför _Avsluta användarens prenumeration _.
Täck hur användare faktiskt frågar
En snäv utlösare kan missa verkliga förfrågningar när användaren uttrycker sig annorlunda. Inkludera variationerna som användaren kan säga. När användaren ber om återbetalning, retur eller att få pengar tillbaka för en order körs mer tillförlitligt än _När användaren begär återbetalning _. Sök i tidigare samtal för att hitta hur användare formulerar förfrågan.
Lämna över mellan relaterade procedurer
Användare ändrar ibland sin förfrågan mitt i en procedur, och enbart utlösaren kanske inte startar rätt procedur. Lägg till en infogad referens till den andra proceduren i den första procedurens innehåll för ett byte som du ofta ser i tidigare samtal. Skriv till exempel Om användaren vill ha en återbetalning i stället för ett byte, kör följt av en infogad referens till återbetalningsproceduren. Om de flesta procedurer behöver en överlämning bör du i stället göra utlösarna mer åtskilda.
Skriva innehåll
Använd imperativ
Skriv steg som instruktioner till agenten: Slå upp kundens senaste order i stället för _Du bör slå upp kundens senaste order _. Direkta instruktioner är enklare att följa än förslag.
Förklara varför ett steg är viktigt
Resonemang kan tillämpas på specialfall som proceduren inte räknar upp. Ett kort eftersom vi behöver order-ID:t för att utfärda en återbetalning hjälper agenten att hantera situationer som stegen inte förutsåg. Undvik MUST med bara versaler och rigida manus när en förklaring på en rad gör samma jobb.
Säg vad du ska göra i stället för vad du ska undvika
Beskriv beteendet du vill ha. Om du inte hittar ordern, be användaren bekräfta order- ID:t fungerar bättre än _Hitta inte på orderuppgifter _. För misstag med höga kostnader bör du även lägga till en skyddsregel.
Använd steg när ordningen är viktig
Numrerade steg hjälper när agenten måste göra saker i en fast ordning. För bedömningar fungerar ofta några vägledande meningar bättre, särskilt med mer kapabla modeller.
Ha fakta i kunskapsbasen
En procedur beskriver vad agenten ska göra i en situation. Specifik information, som priser, planinformation eller öppettider, hör hemma i kunskaps- basen. Referera till dokumentet från den procedur som behöver det. I stället för att lista varje plans pris i proceduren kan du till exempel skriva Ange priset från följt av en infogad referens till ett prisdokument.
Sammansätta procedurer
Skriv en procedur per situation
Om en situation delas upp i flera snäva procedurer har agenten fler utlösare att välja mellan och startar oftare fel procedur. Om två procedurer skulle starta på samma förfrågan bör du slå ihop dem. Innehåll som är längre än cirka 3 000 tecken täcker vanligtvis mer än en situation.
Bryt ut delade steg till en underprocedur
Om samma steg förekommer i flera procedurer (verifiera en kunds identitet, slå upp en order, eskalera till en människa) bryter du ut dem till en underprocedur och refererar till den från varje procedur som behöver den via snedstrecksmenyn. Att underhålla de delade stegen på ett ställe gör alla procedurer som använder dem konsekventa.
Använd underprocedurer för reaktiva åtgärder
Använd en underprocedur för en åtgärd som agenten endast ska köra när en annan procedur begär det, till exempel identitetsverifiering eller eskalering. Utan en utlösare konkurrerar den inte med ingångs- procedurer när samtalet startar. Färre utlösarval håller routningen fokuserad.
Referera till verktyg från proceduren som använder dem
Referera till ett verktyg från proceduren som använder det i stället för att koppla det till hela agenten. Verktyget hålls då utanför orelaterade samtal. I en friformsprocedur är verktyget tillgängligt endast medan proceduren är en av de fem senast startade, så nämn även verktygets uppgift i utlösaren, till exempel eller när du behöver slå upp en order. Se Begränsningar.
Använd systemprompten för globalt beteende
Ton, identitet, policyer för avslag och skyddsregler hör hemma i system- prompten. Lägg uppgiftsspecifika steg i procedurer.
Procedurer versioneras med agenten
Procedurer är en del av agentens konfiguration, så de ögonblicksbilder sparas tillsammans när du publicerar en ny agentversion. Om du vill återgå till en tidigare uppsättning procedurer återställer du en tidigare agent- version. Se Agentversionering.
Utgå från befintlig dokumentation
Om ditt team redan har SOP:ar använder du importverktyget för att omvandla dem till utkast och förfinar dem därifrån.