Agentforce-guiden till att uppnå tillförlitligt agentbeteende
Ett ramverk för fem nivåer av determinism
Ett ramverk för fem nivåer av determinism
Olfa Kharrat, chef för produkthantering – Agentforce
Reinier van Leuken, senior chef för produkthantering – Agentforce
Agentforce-byggstenar och agentiska resonemang
Definiera nivåer av agentisk kontroll
Nivå ett av agentisk kontroll: resonemang med val av instruktionsfria ämnen och promptåtgärder
Nivå två av agentisk kontroll: instruktioner
Nivå tre av agentisk kontroll: grundning
Nivå fyra av agentisk kontroll: variabler
Förtroende har varit ett kärnvärde sedan Salesforce grundades 1999 och företaget har varit banbrytande med en ny teknikmodell inom cloud computing och SaaS. Företagen ger Salesforce sitt förtroende när de lagrar värdefulla företagsdata i molnet och känner sig trygga med att dessa data är skyddade och styrs av lämpliga åtkomstkontroller. Detta är fortfarande viktigt, men i en tid av agentisk AI blir definitionen av förtroende ännu bredare. I takt med att företag förlitar sig allt mer på autonoma agenter för att utföra kritiska affärsfunktioner måste agenter bli betrodda affärspartners vars arbete är korrekt, relevant och framför allt tillförlitligt.
Så hur bygger du en tillförlitlig agent? Tillförlitlighet innebär vanligtvis att samma indata ger samma resultat. Agenter fungerar dock inte nödvändigtvis så eftersom de drivs av stora språkmodeller (LLM:er) som till sin natur är icke-deterministiska. Det innebär att agenter kan utveckla kreativa lösningar som är skräddarsydda utifrån specifika omständigheter utan att varje tillstånd eller situation som uppstår behöver programmeras uttryckligen. Agenter behöver dock också styrning för att följa affärskrav och verksamhetsriktlinjer. När de utför affärsprocesser måste de visa att de är tillförlitliga och producera affärsresultat som överensstämmer med deterministiska begränsningar. Determinism innebär en stelhet och disciplin som står i konflikt med den autonomi och flexibilitet som agenter tillhandahåller. Nyckeln till att skapa bra agenter är därför att hitta rätt balans mellan kreativ flexibilitet och företagskontroll.
Detta dokument går igenom viktiga överväganden för utveckling av tillförlitliga agenter. Det definierar fem nivåer av agentisk kontroll och tillhandahåller bästa praxis för att få och behålla kontroll över agentiskt beteende för var och en av dessa nivåer. Vägledningen går igenom hur Agentforce-resonemangsmotorn fungerar. I takt med att Agentforce växer uppdateras detta dokument med senaste bästa praxis.
Detta dokument förutsätter grundläggande kännedom om att designa och skapa Agentforce-agenter. Som en introduktion till Agentforce rekommenderar vi följande:
För att förstå agentiskt beteende bättre ska vi först jämföra agenter med deras stela motsvarigheter: chattbottar.
Chattbottar: stela regelföljare
Chattbottar följer förutbestämda beslutsträd som strukturerar de dialoger de kan delta i. Navigeringen genom dessa beslutsträd baseras på de svar som användaren ger. Svaret kan vara ett val från en förutbestämd uppsättning alternativ eller ett fritextsvar. Vid fritextsvar används en prediktiv modell för klassificering av syfte. Dessa träd kartlägger alla potentiella konversationsvägar och dikterar chattbottens svar i varje steg. Chattbottens beteende avgörs stelt av fördefinierade regler. Om en användares indata inte matchar en identifierad väg eller om den prediktiva modellen inte har tränats för att identifiera ett visst syfte svarar chattbotten inte på lämpligt sätt.
Agenter: adaptiva och intuitiva
Däremot utnyttjar agenter kraften hos LLM:er och deras avancerade funktioner inom naturlig språkbehandling (NLP). LLM:er gör det möjligt för agenter att förstå syftet bakom en användares indata, även om de formuleras på ett oväntat sätt. Baserat på förståelsen för syftet kan agenten välja den lämpligaste åtgärden bland en rad alternativ. En agent kan till och med formulera helt nya svar. Denna flexibilitet och anpassningsförmåga skiljer agenter från deras motsvarigheter chattbottarna.
En liknelse inom matlagning
Skillnaden mellan chattbottar och agenter kan liknas vid skillnaden mellan en nybörjare i köket och en erfaren kock.
Sammanfattningsvis ligger den grundläggande skillnaden mellan agenter och chattbottar i deras anpassningsförmåga och kapacitet att hantera oväntade indata.
Ett distinkt inslag i en agents intelligens är dess förmåga att orkestrera och utlösa de lämpligaste åtgärderna vid rätt tidpunkt. Tack vare denna flexibilitet behöver inte varje potentiell användarinteraktion programmeras i stor omfattning.
I Agentforce ingår ämnen, åtgärder och instruktioner och beskrivningar på naturligt språk i att skapa en agent.
Ämnen är de jobb som agenten ska utföra. Ämnen har attribut, till exempel en klassificeringsbeskrivning, omfattning och instruktioner, som definierar varje jobb och hur det görs. Ämnen innehåller åtgärder som agenten kan utföra samt instruktioner som styr hur dessa åtgärder utförs.
Åtgärder är de fördefinierade uppgifter som agenten kan utföra för att göra sitt jobb. Det finns fem olika typer av åtgärder:
En agents definition innehåller instruktioner på naturligt språk som beskriver agentens tillgångar och definierar de riktlinjer som den måste följa. Instruktioner skrivs för åtgärder och ämnen.
När dessa olika byggstenar har skapats korrekt hjälper de en agent att uppfylla sitt avsedda syfte samtidigt som den håller sig inom lämpliga gränser.
Agentforce-resonemangsmotorn orkestrerar dessa byggstenar i korrekt agentiskt beteende. Den utnyttjar de instruktioner och beskrivningar på naturligt språk som definieras i ämnen och åtgärder. Den bygger på ReAct, ett nytt resonemangsparadigm för LLM:er som introducerades 2022 av Yao et al. Detta paradigm imiterar mänsklig uppgiftshantering genom att resonera om ett problem, vidta åtgärder, observera åtgärdens resultat och upprepa cykeln tills uppgiften har slutförts.
Salesforce-agenter följer detta paradigm:
Resonemangsmotorn använder LLM:er i varje Resonera- och Observera-steg. Beroende på åtgärdstyp kan den också använda LLM:er i Agera-steget.
Denna sektion beskriver en skiktad strategi för att förbättra agenters determinism. Varje nivå bygger på den föregående, med ökad komplexitet och kapacitet som ger mer kontroll över agentens beteende.
Den första nivån fokuserar på att göra det möjligt för agenter att autonomt identifiera relevanta ämnen och sedan välja lämpliga åtgärder med hjälp av mål snarare än uttryckliga instruktioner. I den centrala mekanismen ingår att använda en kontextuell förståelse för att svara på användarindata. Även om alla typer av åtgärder tekniskt sett kan läggas till förutsätter vi på denna nivå att åtgärderna är promptåtgärder. Instruktionsfria ämnen med promptåtgärder ger ett snabbt och effektivt sätt att hantera vanliga frågor.
På denna nivå ligger fokus på att upprätta en baslinjenivå för agenters respons och autonomi genom dynamisk förståelse.
Denna nivå bygger vidare på grunden med val av instruktionsfria åtgärder. Här introduceras uttryckliga instruktioner som vägleder agenternas beteende. Exakta instruktioner ger en ökad kontroll över hur agenter reagerar på olika situationer. Instruktioner till agenter kan uttryckas som regler, riktlinjer, skyddsräcken och exempel. De ger agenten specifik vägledning om hur de ska hantera olika ämnen, utföra åtgärder och bearbeta deras utdata. Målet för denna nivå är att ge agenten tydlig vägledning för att öka enhetligheten och förbättra efterlevnaden av företagets riktlinjer och processer.
Grundning innebär att koppla agentens förståelse och svar till externa kunskapskällor. Grundning säkerställer att informationen som agenten tillhandahåller är mer korrekt, aktuell och relevant. På denna nivå integreras åtkomst till databaser, kunskapsbaser och andra informationsarkiv. När agentens svar grundas i verifierade data blir de mer tillförlitliga.
Denna nivå lägger till agenters förmåga att arbeta med variabler. Med hjälp av variabler kan agenter anpassa interaktioner, behålla kontext i flera interaktioner och dynamiskt justera sitt beteende baserat på specifika datapunkter som upprätthålls under agentsessionen. En agent kan till exempel samla in användarpreferenser, orderuppgifter och annan relevant information och sedan använda dessa data för att skräddarsy interaktionen. Med variabler blir agenter bättre på att hantera mer komplexa, mer föreskrivna och mer anpassade interaktioner.
I det sista steget integreras agenten med Salesforces kärnfunktioner: Apex, API:er och flöde. Genom integrering kan agenten utföra komplexa åtgärder inom Salesforce-ekosystemet, till exempel få åtkomst till och hantera data, utlösa arbetsflöden och interagera med andra system.
På denna nivå omvandlas agenten till ett kraftfullt verktyg som kan utföra avancerade uppgifter och bidra direkt till affärsresultat.
Utgå från en baslinje för agenters respons och autonomi, och tänk på en agent som bara består av ämnen och åtgärder med motsvarande beskrivningar. Vi kan använda denna exempelagent för att introducera resonemangsmotorns olika steg och för att visa hur den använder dessa beskrivningar för att välja rätt ämnen och sedan åtgärder som ska utföras. Genom att utelämna ämnesinstruktioner i detta exempel kan vi observera att agenter på denna första nivå har störst frihet jämfört med agenter på högre nivåer. På nivå ett kan agenten helt fritt välja den åtgärd som den anser är lämplig, enbart baserat på den pågående konversationen.
Aktivitet | Steg | Beskrivning |
---|---|---|
Agentanrop | 1 | Agenten anropas. |
Ämnesklassificering | 2–3 | Motorn analyserar kundens meddelande och matchar det med det lämpligaste ämnet baserat på ämnesnamnet och klassificeringsbeskrivningen. |
Kontextmontering | 4–5 | När ett ämne har valts samlar motorn ämnets omfattning, instruktioner och tillgängliga åtgärder samt konversationshistoriken. (Obs! Instruktioner behandlas på nivå två, agentisk kontroll.) |
Beslutsfattande |
Med hjälp av all denna information avgör motorn om den ska • köra en åtgärd för att hämta eller uppdatera information • be kunden om mer information • reagera direkt med ett svar. |
|
Åtgärdsutförande | 6–8 | Om en åtgärd behövs kör motorn den och samlar in resultatet. |
Åtgärdsloop | Motorn utvärderar den nya informationen och väljer igen vad den ska göra härnäst – om den ska köra en till åtgärd, be om mer information eller svara. | |
Grundningskontroll | Innan motorn skickar ett slutligt svar kontrollerar den att svaret • baseras på korrekt information från åtgärder eller instruktioner • följer de riktlinjer som anges i ämnets instruktioner • ligger inom de gränser som anges av ämnets omfattning. |
|
Skicka svar | Det grundade svaret skickas till kunden. |
Gå igenom följande överväganden för resonemangsmotorn:
Resonemangsprocessen består av fyra huvudsakliga steg:
Ämnen är utformade för att agenter ska klassificera rätt åtgärd eller åtgärdssekvens mer korrekt. Varje ämne bör bestå av semantiskt distinkta åtgärder som kan tillhöra en kortfattad ämnesbeskrivning och därmed tillhöra en liknande agentfunktion.
Rätt ämne väljs av resonemangsmotor-LLM:en (steg 2–3 i diagrammet). Den väljer det ämne vars klassificeringsbeskrivning matchar det senaste yttrandet bäst, med hjälp av en ämnesprompt. Denna ämnesprompt innehåller klassificeringsbeskrivningarna för alla ämnen och konversationshistoriken. Förutom yttranden och agentsvar innehåller konversationshistoriken utförda åtgärder och deras resultat. Dessutom innehåller prompten viktiga instruktioner som föreskriver analys inom ramen för konversationshistoriken och kräver att LLM:en anger sin tankeprocess.
Fler överväganden:
Syftet med ämnen är dubbelt:
Genom att noggrant organisera agentförmågor i tydligt definierade ämnen som består av relaterade åtgärder fungerar agenten mer effektivt och förutsägbart. Det blir också enklare att uppdatera och utöka. Det finns två möjliga strategier för ämnesdesign: uppifrån och ner eller nerifrån och upp.
Båda strategierna leder till goda resultat när de följs korrekt.
Börja med att lista alla specifika åtgärder som agenten bör kunna utföra. I denna fas är det bättre att vara mycket specifik snarare än för vag. Undvik att försöka gruppera eller förenkla åtgärder för tidigt. Målet är att skapa en heltäckande och granulär bild av vad agenten kan göra.
När det till exempel gäller en kundserviceagent kan den inledande listan innehålla följande:
Observera att en åtgärd som ”Åtgärda kundklagomål” är för bred i detta läge. Åtgärder bör representera den lägsta granularitetsnivån i agenters beteende. Det kan finnas många typer av klagomål och de omfattas redan av olika åtgärder:
Markera åtgärder som liknar varandra eftersom de kan orsaka förvirring för resonemangsmotorn. Deras beskrivningar kommer inte att vara tillräckligt olika semantiskt, och därför kommer resonemangsmotorn inte att veta vilken åtgärd den ska välja i steg 5.
”Felsök tekniska problem” och ”Svara på frågor med kunskap” har till exempel liknande beskrivningar, men deras funktion kan skilja sig avsevärt. Genom att markera sådana semantiska överlappningar blir det lättare att identifiera vilka åtgärder som ska separeras mellan flera ämnen.
När åtgärder har definierats tydligt och deras semantiska överlappningar har identifierats kan åtgärder grupperas i preliminära ämnen. Ett ämne är en logisk kategori av funktioner – en gruppering av åtgärder som tillsammans representerar en sammanhängande förmåga eller färdighet hos agenten.
När du skapar dessa grupperingar ska du
Här är ett exempel på en inledande gruppering för en kundserviceagent:
Ämne 1:
Ämne 2:
När du har den inledande grupperingen skriver du klassificeringsbeskrivningar för alla ämnen.
När vi har förfinat får vi följande:
Sammanfattningsvis ska du först skapa en heltäckande lista över alla möjliga åtgärder och sedan markera semantisk överlappning mellan åtgärderna. Skapa sedan en uppsättning ämnen som åtminstone löser all semantisk överlappning (så att resonemangsmotorn inte blir förvirrad inom ramen för ett ämne). Skriv därefter alla ämnens klassificeringsbeskrivningar. Om ämnena har för bred omfattning delar du upp dem i mer granulära ämnen. Genom att implementera denna vägledning kan du skapa en agent som inte bara presterar bra, utan också är lätt att underhålla och utöka.
Denna struktur stöder bättre resonemang, mer exakt utförande och tydligare beslutsgränser inom agentens beteende. Den bygger också på samarbete mellan designers, ingenjörer och ämnesexperter för att göra agentens förmågor mer transparenta och modulära.
Fler överväganden för att skapa effektiva ämnen
Tänk dig att en serviceagent får en garantipolicybegäran som rör en klocka. Garantiproblemet verkar inte vara relaterat till produktbyte eller support. Orderhantering verkar vara det lämpligaste ämnet för att hantera denna begäran. Därför väljs det senare ämnet av resonemangsmotorn som det mest sannolika för att uppfylla begäran.
Efter ämnesvalet väljer resonemangsmotorn rätt åtgärder som ska utföras från det valda ämnet. Resonemangsmotor-LLM:en är återigen ansvarig för detta, med hjälp av en annan prompt som kallas observationsprompten. Syftet med observationsprompten är att hämta nästa steg i resonemangsprocessen. Nästa steg kan vara något av följande:
Indata till observationsprompten utgörs av alla beskrivningar av alla åtgärder från ämnet samt från konversationshistoriken.
Åtgärder är de fördefinierade uppgifter som agenten kan utföra för att göra sitt jobb. Åtgärder är de mest finkorniga definitionerna av arbete. Det finns fem olika typer av agentåtgärder: (1) utför Apex-kod, (2) anropa ett API, (3) utför ett flöde, (4) få ett LLM-svar på en promptmall och (5) anropa en prediktiv modell. De flesta av dessa åtgärder kan vara deterministiska. Ett undantag är att få ett svar på en promptmall (förutsatt att det externa systemet, flödes- eller Apex-åtgärden inte innehåller sannolikhetsbaserade element som promptanrop). Vi kommer att ta upp dessa frågor på den femte nivån av agentisk kontroll.
Vi ska fortsätta med det tidigare exemplet där en serviceagent fick en fråga om garantipolicyn för en klocka. När ämnet Orderhantering har valts väljs den mest sannolika åtgärden. Eftersom detta är ämnet Orderhantering är det första logiska steget att söka efter ordern (vad finns det annars att hämta garantiinformation för?) genom att starta åtgärden för att söka efter order.
Ett användaryttrande kan utlösa flera åtgärder innan ett svar skickas tillbaka till användaren. Det beror på den agentiska loopen, som fortsätter att välja och utföra nästa lämpligaste åtgärd tills något av följande villkor har uppfyllts:
Åtgärder omfattas inte av en specifik tidsgräns. Syftet med detta är att undvika avbrott när tider för åtgärdsutförande varierar beroende på deras komplexitet. Vissa åtgärder är helt enkelt mer komplexa att utföra än andra.
Efter att resonemangsmotorn har startat en ordersökning utvärderar den svaret som har genererats hittills. Sedan beslutar den att det behövs mer arbete innan ett svar kan skickas tillbaka till användaren. Den är på väg att söka efter garantipolicyn nu när ordern finns i konversationshistoriken.
Agenten inser dock därmed att kunden i själva verket har köpt två klockor, vilket hämtas av åtgärden ”ordersökning”. Därför väljer nu resonemangsmotorn i den agentiska loopen att be kunden att ange vilken klocka de behöver garantiinformation om.
Agenters tillförlitlighet förbättras genom en noggrann fördelning av åtgärder mellan ämnen, och tydligt beskrivna åtgärder och ämnen. Dessa metoder gör det dock inte möjligt att uttrycka affärsregler, policyer och skyddsräcken inom resonemangsmotorn. Instruktioner ger ytterligare ett viktigt lager av agentisk kontroll. Instruktioner ger resonemangsmotorn ytterligare vägledning när olika åtgärder används tillsammans. Detta möjliggör en mer nyanserad och policydriven strategi för agenternas beteende. Med instruktioner kan agentverktyg inte bara säkerställa att agenter fungerar tillförlitligt, utan också att de följer etablerade affärsregler och bästa praxis.
Instruktionerna som skrivs på ämnesnivå blir en del av observationsprompten. Ämnesinstruktioner vägleder resonemangsmotorn i valet av lämpliga åtgärder. De kan ge vägledning om när den ska välja vilken åtgärd och användas för att definiera åtgärdsberoende. Under vissa omständigheter kan de också tillämpa sekventiell kontroll. Det finns dock alternativ till detta och instruktioner bör användas med försiktighet för det kravet. Ämnesinstruktioner läggs till en efter en och visas i separata rutor i användargränssnittet. De skickas dock alltid till observationsprompten tillsammans. Om instruktioner läggs till i separata rutor blir ämnet lättare att läsa och underhålla, men resonemangsmotorn påverkas inte.
Ibland gäller instruktioner globalt för agenten och är inte relaterade till ett enskilt ämne. Funktioner för att underhålla globala instruktioner finns för närvarande i produktfärdplanen. Bästa praxis för att skriva ämnesinstruktioner finns i Agentforce-guiden till ämnen, instruktioner och åtgärder. Vi ska gå igenom några fler riktlinjer.
Undvik att skriva överdrivet specifika manus för hur agenter ska ha konversationer med användare. Överdrivet specifika manus kan hämma en agents förmåga att skapa förtroende, förstå unika användarbehov och reagera effektivt i realtid på dynamiska omständigheter. Dessutom kan långa instruktioner göra att agenten reagerar långsammare och förvirra resonemangsmotorn. Att framtvinga determinism via instruktioner är inte den lämpligaste strategin.
Det finns till exempel ingen anledning att be en agent att undvika att hänvisa till konkurrenter i servicesvar. Detta kan leda till oönskat beteende, eftersom agenten även kan vägra att svara på frågor som rör integrering med en leverantör som också är en konkurrent. Istället kan instruktionen se ut som ”Vid diskussioner om konkurrenter, svara med företagets intresse i åtanke.” På så sätt undviks begränsande, villkorliga instruktioner som ”Nämn bara konkurrenten xyz när det gäller…” och istället utnyttjas LLM:ens resonemangsfunktioner. Detta exempel visar hur instruktioner kan ges på en högre, mer abstrakt nivå, ungefär som en mänsklig servicemedarbetare skulle utbildas efter att ha börjat på företaget.
Vi ska titta på några fler exempel på vad du inte ska göra. Här är några dåliga instruktioner som ges till en serviceagent som hanterar kandidatprofiler på en rekryteringswebbplats. Dessa instruktioner försöker förutse varje möjligt kundyttrande och bör därför undvikas:
Instruktion 1:
Agenten får följande yttrande: ”Kan jag lägga till en bild i min profil?”, fråga omedelbart kunden: ”Vilken profiltyp har du?”
Instruktion 2:
Om kunden anger en premiumprofil, svara ”Låt mig kontrollera dina kontraktsuppgifter” och sök sedan efter kontraktsuppgifter och kontrollera om det har avtalats att de kan uppdatera profilbilden.
Om det har avtalats att kandidaten kan göra det, svara ”Ja, det är möjligt. Jag kan uppdatera den åt dig. Kan du skicka din nya bild?” När bilden har tagits emot, uppdatera kandidatens profil med den. Om ändringar av profilbilden inte ingår i kontraktet, säg ”Detta är tyvärr inte möjligt. Jag vidarebefordrar dig till en mänsklig agent.”
Instruktion 3:
Icke-premiumprofil: Om kunden anger en icke-premiumprofil, svara: ”Du kan inte uppdatera din bild. Meddela mig om du vill göra det, så överför jag dig till en mänsklig agent.”
Instruktion 4:
Om profiltypen är oklar, svara: ”Jag förstod inte din profiltyp.”
Istället för denna typ av detaljstyrning ska du använda en mer flexibel strategi som instruerar agenternas beteende. Utgå från följande bästa praxis:
”Endast kandidater med en premiumprofil vars kontrakt tillåter bildändringar kan uppdatera sin bild.”
Baserat på denna bästa praxis kan en bättre uppsättning instruktioner se ut så här:
Instruktion 1
: ”Använd kunskapsåtgärder för att kontrollera policyer vid begäranden om kontoändringar.”
Instruktion 2
: ”Svara inte på frågor för vilka ingen tillämplig policy hittades.”
Om riktlinjerna ovan tillämpas kan agentens resultat förbättras. Om kunden ber agenten om en profiländring förstår agenten nu att den behöver hämta den nödvändiga policyn från kunskapsbasen, tolka reglerna som hämtats, tillämpa dessa regler på kontexten och slutligen svara kunden. I motsats till överdrivet specifika manus är denna beteendestrategi mycket mer generell och allmänt tillämplig. Utan att behöva skriva ut varje möjlig konversation kan agenten nu flexibelt svara med önskat beteende på ett bredare spektrum av konversationsämnen.
Vi ska fortsätta med exemplet om agenter på rekryteringswebbplatsen. Agenten bör kunna hantera intervjuplanering med lämplig intervjuare. För att göra det bör agenten först kontrollera rekryterarnas tillgänglighet och sedan föreslå tre möjliga tider för kandidaten.
I detta fall bör instruktionerna inte vara i separata rutor för att upprätthålla utförandets ordning:
Kontrollera intervjuarnas tillgänglighet.
Föreslå då lämpliga tider för kandidaten.
Dessa instruktioner fungerar inte eftersom resonemangsmotorn inte vet vad ”då”-satsen i instruktion 2 avser. Detta beror på att instruktionerna skickas till resonemangsmotorn som en grupp, inte i någon särskild ordning.
Istället bör sekvensdefinierande instruktioner kombineras till en sats och skrivas som nedan:
Kontrollera intervjuarnas tillgänglighet. Föreslå då lämpliga tider för kandidaten.
Men när det förväntas att bara en promptåtgärd har utförts kan en instruktion implementeras för att instruera agenten att aldrig ändra en åtgärds utdata. Detta ger ett mer förutsägbart och tillförlitligt agentbeteende.
Det är avgörande att tillämpa denna strikta efterlevnad i godkända promptmallar i vissa scenarier, särskilt när enhetlighet, efterlevnad och fördefinierade meddelanden är viktiga. Här är två exempel:
Denna instruktion begränsar agentens frihet att ändra åtgärders utdata. Se till att instruktionen hänvisar till promptmallens utdata (till exempel ”promptResponse”), som visas i denna ämnesplanerare.
Instruktionen i detta fall kan därför vara följande:
”
Ändra inte promptResponse-utdata, oavsett agentens kanal.
”
Begränsningar av tillämpning av strikt efterlevnad:
När en interaktion kräver flera distinkta agentåtgärder är det inte möjligt att tillämpa strikt efterlevnad av en enda mall. Faktum är att resonemangsmotorn i detta scenario behöver konsolidera dessa åtgärder till ett enda svar och därför ändra varje enskild åtgärds utdata.
Baserat på allmänna LLM-egenskaper varierar målantalet instruktioner mellan fem och tio, beroende på instruktionernas komplexitet och interaktion. Dessa instruktionsegenskaper påverkar antalet instruktioner som resonemangsmotorn kan följa:
Om det är mycket viktigt att en instruktion följs uttryckligen kan du lägga till termer som visar deras betydelse:
Om svar grundas i data förbättras agenternas tillförlitlighet avsevärt. Grundade svar baseras på faktisk information snarare än på spekulation eller föråldrad kunskap. Retrieval Augmented Generation (RAG) är en allmänt vedertagen teknik som gör det möjligt för en agent att få åtkomst till och använda en kunskapsbas för att formulera mer exakta och kontextuellt relevanta svar. Baserat på en användares fråga använder en agent RAG för att hämta relevant information från tillämpliga datakällor och förstärker sedan prompten med denna information innan den skickas till LLM:en. En agent som använder RAG har högre kvalitet, korrekthet och övergripande nytta när det gäller agentinteraktioner, vilket ökar användarnas förtroende och nöjdhet. Bästa praxis för RAG beskrivs utförligt i den offentligt tillgängliga rapporten Agentforce och RAG: bästa praxis för bättre agenter .
Det är viktigt att skilja mellan kunskap och instruktioner när det gäller att hitta rätt balans mellan vägledning och flexibilitet, eftersom de har olika syften:
Retrieval Augmented Generation (RAG) fungerar som ett intelligent datalager för kunskap. Den ger agenter tillgång till information i olika format och tillhandahåller relevanta textfragment för att svara på frågor. Med hjälp av RAG kan agenter få mer exakta LLM-svar utan att överbelasta LLM-prompten med irrelevant innehåll eller överskrida dess kontextfönster.
Vid körning utför RAG tre steg:
I Agentforce kan RAG användas med eller utan en promptmall:
Den rekommenderade metoden är alternativ 1. Det minskar antalet uppgifter som resonemangsmotorn ska utföra och förbättrar därmed svarskvaliteten. Nästa sektion utforskar ett undantag från denna regel, där innehållet bevaras under hela konversationen och därmed uttryckligen ges till en åtgärd.
Lagra RAG-utdata i en variabel: När gränserna för antalet interaktioner kan nås ska RAG-utdata lagras i en variabel. Detta gör informationen tillgänglig för att vägleda agentinteraktioner utöver standardtröskelvärdet. Ett exempel på detta ges i nästa sektion.
Vissa affärsprocesser kräver ännu mer förutsägbart utförande, till exempel tillämpning av en specifik åtgärdssekvens eller villkor för att utlösa åtgärder eller ämnen.
För att uppnå detta deterministiska beteende kan variabler användas. Variabler fungerar som en strukturerad form av korttidsagentminne som kan utgöra åtgärdsindata eller -utdata. Dessutom kan en variabels tillstånd styra utlösandet av specifika ämnen och åtgärder.
Variabeltyper stöder följande funktioner:
Kontextvariabler | Anpassade variabler | |
---|---|---|
Kan instansieras av användaren | X | ✓ |
Kan vara åtgärders indata | ✓ | ✓ |
Kan vara åtgärders utdata | X | ✓ |
Kan uppdateras av åtgärder |
X | ✓ |
Kan användas i filter för åtgärder och ämnen | ✓ | ✓ |
Vi ska fördjupa oss ytterligare i variabler med ett exempel på användningsfall: en kundorienterad felsökningsagent. I detta exempel används variabler för alla tre syften: beständig dynamisk grundning, åtgärdsindata/-utdata och filtrering.
I detta exempel hjälper agenten en kund att felsöka ett tekniskt enhetsproblem. Felsökning innebär vanligtvis att gå igenom ett antal steg. Agenten bör erbjuda en serviceupplevelse som efterliknar en mänsklig serviceagents arbete. För att göra det bör agenten inte ge kunden alla felsökningssteg på en gång. Istället bör den erbjuda steg-för-steg-instruktioner samt möjligheten att navigera mellan steg (inklusive att gå tillbaka till tidigare steg) baserat på hur kunden svarar.
En utmaning med detta är agentens förmåga att behålla alla felsökningssteg under hela konversationen. Med tanke på agentens begränsade minne på grund av det begränsade antalet interaktioner den kan lagra kan dessa steg tas bort från resonemangsmotorns kontext om konversationen blir lång.
Denna utmaning hanteras genom att använda en variabel för att grunda resonemangsmotorn dynamiskt i felsökningsstegen. Genom att hämta informationen och lagra den i en variabel förblir den tillgänglig och kan uppdateras under hela konversationen. Resonemangsmotorn använder informationen som lagras i denna variabel för dynamisk grundning.
I detta exempel innehåller ett ämne två åtgärder. Dessa två åtgärder behövs för att säkerställa ett enhetligt dataflöde. Den första åtgärden används för att fylla i variabeln som innehåller alla felsökningssteg. Den andra åtgärden använder den variabeln under själva felsökningen.
Den ursprungliga kundfrågan är indata till båda åtgärderna. Den andra åtgärden har andra indata: innehållet i variabeln ”Lösningssteg”. Denna variabel har angetts av den första åtgärden. Observera att den andra åtgärden inte kommer att hämta själva felsökningsstegen, utan istället hämta dem som indata från den första åtgärden via variabeln. Följande diagram visar dataflödet mellan dessa två åtgärder.
Åtgärden ”Använd mitt i problemlösning” hänvisar alltid till de ursprungliga felsökningsstegen som hämtas av åtgärden Problemlösningssteg. Detta dataflöde säkerställer att felsökningsstegen upprätthålls sammanhängande och alltid finns tillgängliga, oberoende av konversationens längd.
För att utföra de åtgärder som definieras i detta exempel behövs specifika instruktioner, till exempel ”Utför alltid ’Fyll i lösningssteg’ först”. Med tanke på den icke-deterministiska karaktären hos LLM:er som används av agenter kan detta dock leda till en annan ordning i vissa fall. För att säkerställa en deterministisk utförandeordning introducerar vi villkorliga filter för dessa variabler för att tillämpa rätt åtgärdssekvens. Agenten läser värdet av variabeln ”Lösningssteg” och definierar två filter beroende på om denna variabel har ett värde eller inte.
Dessa villkorliga filter tillämpar nu deterministiskt sekvensen för åtgärdsutförande: Åtgärden ”Använd mitt i problemlösning” måste vänta tills ”Problemlösningssteg” har slutförts, vilket säkerställer att variabeln ”Lösningssteg” alltid har ett värde.
För att säkerställa korrekt åtgärdsutförande krävs en tredje åtgärd för att återställa variabeln ”Lösningssteg” om problemet är helt löst. Därmed återställs agenten till nödvändigt tillstånd för att hjälpa till med ett annat, nytt problem. Denna tredje åtgärd har namnet ”Töm lösningsvariabeln”. Det fullständiga åtgärdsdiagrammet visas nedan.
Variabler är avgörande för att vår felsökningsagent ska kunna lösa kundproblem genom att möjliggöra följande:
I en tid av generativ AI är prediktiv AI fortfarande avgörande eftersom den utgör den grundläggande intelligensen som vägleder, förbättrar och kontextualiserar generativa funktioner. Medan generativ AI fokuserar på att skapa nytt innehåll, till exempel text, bilder och videor, ger prediktiva modeller förutsägelser om framtiden baserat på indata från affärsdata i realtid. Några exempel på affärsresultat är sannolikhet för kundbortfall, sannolikhet för konvertering, sannolikhet för eskalering av ärenden, kundens livstidsvärde och ärendeklassificering. Förutsägelser kan förutse användarnas behov, anpassa utdata, verkställa beslut, optimera innehållsrelevans i realtid – allt genom att analysera trender och siffror. I applikationer som anpassad inlärning, hälso- och sjukvård eller finansiell planering säkerställer till exempel prediktiv AI att generativa utdata överensstämmer med individuella kontexter och sannolika framtida scenarier. Tillsammans skapar prediktiv och generativ AI en kraftfull synergi där framsynthet kombineras med kreativitet för att skapa mer intelligenta, adaptiva och kraftfulla tekniklösningar.
Om du vill integrera prediktiva modellutdata i agentarbetsflöden lägger du bara till prediktiva modellåtgärder i Agentforce-tillgångarna. Modellverktyget gör det möjligt att skapa eller registrera prediktiva modeller (BYO) som sedan används av agenten för att ge förutsägelser. De resulterande förutsägelserna (samt prediktorerna) kan lagras i anpassade variabler. Agenter kan använda dessa variabelvärden som indata till, och villkora utförandet av, specifika åtgärder och ämnen.
Vissa affärsprocesser måste utföras i en exakt ordning och kräver inte användarindata under utförandet. I detta fall kan ett förutbestämt flöde av steg tillämpas via flöden, API:er eller Apex. Om du har ett befintligt flöde som är nödvändigt i produktionen är det en bra indikation på att det kan lagras och användas av agenten för att utföra den affärsprocessen. Alla exempel nedan omfattar förutbestämda sekvenser av steg som agenten kan utföra utan användarindata. Det agentiska beteendet i detta fall består i att identifiera vilken deterministisk process som ska utföras, hur nödvändiga indata ska samlas in och hur utdata ska tolkas och bearbetas.
Affärsprocesser med många sekventiella steg (fler än tre som tumregel) och många beroenden av variabler blir för komplexa och besvärliga att tillämpa med instruktioner. I detta fall är det möjligt att helt enkelt hårdkoda dem med hjälp av de deterministiska åtgärdstyper som anges i denna sektion. Observera slutligen att dessa implementeringar kan omfatta icke-deterministiska element, till exempel anrop av LLM:er med lösta promptmallar. Därför är de inte nödvändigtvis helt deterministiska, från början till slut, och de kan fortfarande ha de önskade flexibilitetsnivåerna som agenter är kända för.
Stegsekvensen i en marknadsföringsresa villkoras av fasta regler och är inte beroende av konversationsanvändarindata. Därför kan flödet användas som en Agentforce-åtgärd. En anropbar åtgärd kan skapas för att slutföra bakgrunds- eller händelseutlösta uppgifter från en lösningskomponent som kan anropa ett flöde eller en Apex-klass. Lägg till en anropbar åtgärd i ett flöde eller en Apex-klass och ange den uppgift som agenten slutför samt de villkor som utlöser agenten. Anropbara åtgärder kan också innehålla agentens kontextvariabler och vidarebefordra viktig information.
Salesforce-flöden kan användas för att automatisera rutinuppgifter, till exempel skapa uppföljningsuppgifter, skicka e-postpåminnelser eller uppdatera poster. Flöden gör arbetet mer effektivt och produktivt. Agenter kan också utföra flöden med hjälp av flödesåtgärder. Tack vare determinismen är flöden ett bra sätt att rikta agentiskt beteende när en affärsprocess behöver utföras i en viss sekvens. En bra indikation på att en flödesåtgärd är lämpligast är när ämnet annars skulle innehålla instruktioner som ”Gör först detta, gör sedan detta och gör slutligen detta”. Det blir besvärligt att hantera tillämpning av sekvenser med fler än tre steg via instruktioner och variabler.
Flöden kan också omfatta icke-deterministiska element genom att anropa promptar. En promptnod i flödet anropar en promptmall och samlar in svaret som kan vidarebefordras till andra element i flödet. Dessa ytterligare element kan återigen vara promptnoder, till exempel som sammanfattar föregående svar, vilket skapar en kedja av promptar. Detta är särskilt användbart när reglerna för promptkedja definieras av fasta element och inte är beroende av användarindata. Ett exempel är agentisk RAG där en fördefinierad sekvens av hämtningsverktyg eller promptar i ett flöde kan få åtkomst till specifika datakällor i en viss ordning, till exempel initialt hämta data från en användares landsdokument innan andra källor konsulteras efter behov. Denna kedjemekanism möjliggör en tillförlitlig och ordnad utvinning av relevant information.
I likhet med flöden är Apex- och API-åtgärder deterministiska på så sätt att en fördefinierad sekvens av åtgärder kan kodas. Dessa åtgärder kan omfatta icke-deterministiska element, till exempel anrop av promptmallar eller LLM-anrop. Men i sin definition utför de dessa steg deterministiskt, vilket minskar den agentiska variationen genom att anropa åtgärden vid rätt tidpunkt, samla in nödvändiga indata och bearbeta utdata. Dessa ansvarsområden måste ändå styras av agentiska instruktioner, så de är icke-deterministiska. Apex- och API-åtgärder är pro-kod-motsvarigheten till flödesåtgärder.
För att uppnå tillförlitligt agentbeteende krävs en strukturerad strategi som balanserar den inneboende flexibiliteten hos stora språkmodeller (LLM:er) med behovet av kontroll och förutsägbarhet på företagsnivå. I denna artikel beskrevs en skiktad strategi för att implementera ”guidad determinism” som gör det möjligt att skapa agenter som inte bara är intelligenta och autonoma utan också enhetligt korrekta och överensstämmande med affärsprocesser. Nyckeln till att skapa dessa betrodda agenter är en successiv implementering av kontrollmekanismer, som var och en lägger till ett nytt lager av tillförlitlighet:
Genom att systematiskt tillämpa dessa kontrollager, från genomtänkt design och tydlig instruktion till datagrundning, tillståndshantering och deterministisk processautomatisering, kan utvecklare hantera utmaningarna med att skapa tillförlitliga agenter med enhetliga affärsresultat. Denna strategi säkerställer att Agentforce-agenter kan få förtroendet att utföra viktiga affärsfunktioner med den korrekthet och enhetlighet som krävs i företagslandskapet.
De fem nivåerna av determinism i AI är: val av instruktionsfria ämnen och åtgärder, agentinstruktioner, datagrundning, agentvariabler och deterministiska åtgärder med hjälp av flöden, Apex och API:er.
En förståelse av AI-determinism är avgörande för att skapa tillförlitliga agenter som kan utföra viktiga affärsfunktioner korrekt och enhetligt, vilket skapar en balans mellan kreativ flexibilitet och företagskontroll.
Inom AI avser ”deterministisk” ett systems förmåga att producera samma utdata givet samma indata och förhållanden, vilket ger en stelhet och disciplin som är avgörande för tillförlitligt agentbeteende.
Icke-determinism i AI-system uppstår främst på grund av användningen av stora språkmodeller (LLM:er) som till sin natur är icke-deterministiska, vilket gör att agenter kan vara flexibla och adaptiva.
Nivåerna av determinism förbättrar successivt determinismen hos AI-agenter och påverkar därmed deras autonomi – i takt med att nivåerna fortskrider blir agenter mindre autonoma men mer tillförlitliga och överensstämmande med affärsprocesser.
Mindre deterministiska AI-system medför utmaningar när det gäller tillförlitlighet och efterlevnad av affärskrav, eftersom deras inneboende icke-determinism kan leda till oförutsägbart beteende.
Företag hanterar AI-system med varierande nivåer av determinism genom att tillämpa en skiktad strategi som omfattar genomtänkt design, tydliga instruktioner, datagrundning, tillståndshantering genom variabler och deterministisk processautomatisering med hjälp av flöden, Apex och API:er.
Titta närmare på hur det går till att bygga agenter i vårt bibliotek.
Lansera Agentforce med hastighet, förtroende och ROI som du kan mäta.
Berätta vad du behöver så hjälper vi dig vidare.