Ga naar inhoud

Agents in de console

Het concept achter agents staat in Agents.

In het onderdeel Agents leg je een aanroep één keer vast: een model, een instructie, een prompt die is vastgezet op een versie, skills en tools. Je publiceert er versies van en verwijdert definities die je niet meer gebruikt. Een aanroep noemt de agent en vult aan wat hij openlaat, zodat de combinatie verandert zonder dat er een applicatie opnieuw wordt uitgerold.

Je hebt een beheerdersaccount van de organisatie nodig, en de capability agents moet in het plafond van de organisatie aanstaan. Hetzelfde doe je met een sleutel in Agents via de API.

Het onderdeel Agents: een kaart per agent met naam, versie, omschrijving, model, het aantal skills en tools, labels en de datum van de laatste wijziging, en een knop Agent toevoegen.

De agents staan als kaarten, de laatst gewijzigde eerst. Een kaart toont het model, of model van de aanroep als de agent er geen vastlegt, en hoeveel skills en tools hij meebrengt. Het zoekveld filtert de geladen kaarten op naam en omschrijving.

Op de pagina van een agent staat ook de kaart Evaluaties: de evaluaties die deze agent meten, met de laatste afgeronde uitkomst per evaluatie en een knop om er een uit te voeren. Zie Evaluaties in de console om er een te schrijven.

Een agent toevoegen

Kies Agent toevoegen. Het formulier opent als eigen pagina: eerst wie de agent is, dan onder Wat hij doet het model en de instructies. Prompt, Skills en tools, Modelinstellingen, Live checks en Labels staan ingeklapt, elk met op één regel wat erin staat; klik erop om ze te openen. Deze velden vul je in:

Veld Wat je invult
Identifier waarmee een aanroep deze agent kiest; kan later niet meer wijzigen. Het veld zet zelf om naar kleine letters, cijfers, - en _, begint met een letter of cijfer, maximaal 64 tekens — typ je "Mijn Agent", dan wordt het mijn-agent
Omschrijving waar deze agent voor is. Alleen voor wie meeleest; het model krijgt hem niet. De omslag stel je in nadat de agent bestaat
Model het model waarop een beurt draait als de aanroep er zelf geen noemt. Laat je het leeg, dan moet elke aanroep er een noemen
Instructies een vaste instructie die deze agent meegeeft, met hetzelfde gewicht als een developer-prompt
Prompt een prompt van deze organisatie, en daarna een van haar versies. Kies je een prompt, dan zet je de versie vast die hij nu draait; de variabelen van die versie staan eronder
Skills de skills die deze agent aanbiedt. Die van de aanroep komen erbij, ze vervangen niets
Tools de tools en toolsets die deze agent aanbiedt, één rij per stuk met de bron of het woord toolset, en een prullenbak om hem weg te halen. Tools toevoegen opent de tools in groepen — één per MCP-server, één per andere bron, hele toolsets eerst — met een zoekveld dat de groepen opent waarin het iets vindt; het vakje van een groep neemt alle tools erin. Een tool die al in een gekozen toolset zit, staat gemarkeerd als in toolset …. Die van de aanroep komen erbij
Modelinstellingen toolkeuze, maximum tool-rondes, temperatuur en maximum uitvoertokens, samenvatten, Asynchrone tool en Tools aanbieden (Standaard van de sleutel, Direct of Via zoeken, zie De toolrouter), ingeklapt omdat de meeste agents er geen vastleggen. Wat je leeg laat, bepaalt de aanroep
Live checks regels waaraan elke beurt van deze agent wordt gehouden, op de vraag of op het antwoord, en het standaardantwoord dat een geweigerde vraag krijgt; zie Live checks in de console
Labels de labels van de agent, zie Labels

Alles behalve de naam is optioneel. Een agent die alleen een model en een instructie vastlegt, is net zo geldig als een die een hele toolset meebrengt.

Onder Tools toont Variabelen die de tools nodig hebben, alleen-lezen, de aanroepvariabelen die de genoemde tools lezen: elke naam één keer, of hij verplicht of geheim is, wat hij bevat en welke tools hem lezen. Zo weet een ontwikkelaar wat hij in tool_variables moet meesturen als hij de agent aanroept (Een waarde van je klant aan een tool meegeven). De leden van een toolset en de variabelen van een workflow staan er niet bij.

De sectie Asynchrone tool bepaalt of een beurt die deze agent als tool aanbiedt, hem mag starten als taak die doorloopt nadat de beurt is afgelopen. Ze staat onder Modelinstellingen, op dit formulier en op de volgende versie, en de pagina van de agent toont daar wat ze bevat. De velden staan beschreven bij Asynchrone tool; een agent heeft geen Veilig om opnieuw te sturen.

De Instructies kunnen een invulwaarde bevatten, {{ $naam }}: een waarde die je één keer vastlegt, zoals je bedrijfsnaam. Zodra ze er een bevatten, verschijnt onder het veld Invulwaarden met een rij voor die naam: zijn Soort (Tekst, Getal of Keuze), je eigen waarde, de Toegestane waarden van een keuze en een Omschrijving, precies zoals bij een prompt. Je agent werkt met de waarde die je invult. Wie de agent via een publicatie installeert, vult zijn eigen waarde in (zie Tekst die de installeerder invult). De pagina van de agent toont de invulwaarden van de versie die je leest.

Een tool of toolset die de nieuwste versie van deze agent noemt, kun je niet verwijderen zolang hij genoemd wordt: het verwijderen antwoordt met de agents die hem nog noemen.

Een prompt staat altijd op een versie vast: een opgeslagen definitie die de nieuwste versie zou volgen, verandert wat de agent doet zonder dat er een nieuwe versie van de agent is. Wil je een agent op een nieuwere prompt zetten, publiceer dan een nieuwe agentversie.

Onder de prompt staat Variabelen van deze versie. Een variabele met een standaard draagt daar hetzelfde label als op de pagina van de prompt, zoals automatisch: Datum van vandaag: een aanroep van deze agent hoeft er geen waarde voor mee te sturen. Naam van de agent wordt de identifier van deze agent. De andere variabelen vult een aanroep per beurt in, zoals altijd (Agents via de API).

Kies Toevoegen in de balk onderaan om de agent en versie 1 aan te maken. Je komt dan op de pagina van de agent, met versie 1 al in de geschiedenis.

Het uitvoerformaat

text, het vereiste uitvoerformaat, stel je alleen via de API in (Agents via de API). Een versie die er een heeft, toont zijn soort en naam onder Modelinstellingen op de pagina van de agent, en het formulier van de volgende versie toont hem als JSON. Een nieuwe versie die je vanuit de console publiceert houdt hem ongewijzigd.

Een versie toevoegen

Klik op een kaart om de agent te openen. Zijn eigen pagina is eerst om te lezen: bovenaan de omslag, de naam met de versie en wat de laatste versie gebruikt, daaronder een rij per onderdeel (model, instructies, prompt, skills, tools, modelinstellingen, live checks, labels) met een korte uitleg ernaast. Opzij staan Versies, nieuwste bovenaan met de actieve gemarkeerd en elk concept met concept, Aanroepen, Live checks in gebruik als de nieuwste versie live checks heeft (slagingspercentages), en Evaluaties. Klik op een versie om die te lezen.

Kies Nieuwe versie in de balk bovenaan. Dezelfde pagina wordt dan het formulier voor de volgende versie, ingevuld met de laatste versie, want een nieuwe versie verandert meestal één ding. Een melding zegt dat je een kopie bewerkt en dat opslaan de volgende versie maakt; de oude blijft zoals hij is. De balk onderaan telt de niet-opgeslagen wijzigingen. Opslaan als v… en Opslaan als concept v… (elk met het nummer dat de versie krijgt) werken pas als er iets verschilt, want een versie die gelijk is aan de vorige voegt niets toe. Annuleren gooit de kopie weg.

Versies worden genummerd vanaf 1 en kunnen na publicatie niet worden bewerkt. Opslaan als v… maakt de versie meteen: aanroepen zonder versienummer gebruiken direct na publicatie de nieuwste versie. Opslaan als concept houdt haar eerst bij elke sleutel vandaan; zie Concepten. Aanroepen met een versienummer blijven die versie gebruiken, en een achtergrondrun die al in de rij staat houdt de combinatie waarmee hij begon.

Bij elke versie staat wanneer en door wie hij is gemaakt: de sleutel die de versie aanmaakte, of de consolegebruiker met het voorvoegsel operator:.

Een agent die via een publicatie is geïnstalleerd en nog gekoppeld is, lees je alleen; Nieuwe versie staat er niet.

Concepten

Een concept is een genummerde versie die alleen jij in de console ziet. Geen sleutel toont, leest of draait haar, en een aanroep die haar nummer noemt krijgt dezelfde 404 als bij een nummer dat nooit is geschreven. Een concept krijgt het volgende nummer, kan niet worden bewerkt (een wijziging is een nieuw concept) en wordt in een eigen stap gepubliceerd.

  • Opslaan als concept bij Nieuwe versie, en bij Agent toevoegen, schrijft de versie als concept. Een agent die alleen een concept heeft, staat in de lijst en op zijn pagina als concept en bestaat voor geen enkele sleutel totdat je hem publiceert.
  • Wacht er een concept dat nieuwer is dan de gepubliceerde versie, dan staat op de pagina van de agent en op zijn kaart in de lijst Concept v8 klaar. Klik op de pagina op die knop om het concept te lezen.
  • Lees je een concept, dan zegt een regel dat geen sleutel het ziet of draait, met Publiceren en Concept weggooien. Beide vragen om een bevestiging. Publiceren maakt het de nieuwste versie: aanroepen zonder versienummer draaien het vanaf dan. Controleert Core het concept bij het publiceren opnieuw en klopt een veld niet meer (een tool die weg is, bijvoorbeeld), dan noemt de bevestiging de velden die Core weigert.
  • Publiceren staat uit, met de reden eronder, bij een concept dat ouder is dan de gepubliceerde nieuwste versie: publiceren zou elke aanroep zonder versienummer terugzetten. Schrijf er een nieuwe versie van. Concept weggooien staat uit bij de enige versie van een agent zonder gepubliceerde versie; verwijder dan de agent. Het nummer van een weggegooid concept wordt niet opnieuw uitgegeven.
  • Weigert Core toch, dan toont de bevestiging zijn zin. Een concept dat een prompt-concept of een agent-concept vastzet, kun je pas publiceren als die gepubliceerd zijn; de bevestiging noemt ze, elk een link.
  • De kaart Evaluaties heeft een keuze Versie om te meten met alle versies, een concept gemarkeerd met concept, en standaard Laatste gepubliceerde. Uitvoeren op de kaart meet die versie. Een meting van een concept staat bij de metingen van de evaluatie met concept, en alleen de console toont haar: geen sleutel ziet of leest haar, noch de gesprekken, traces en threads die ze achterliet.
  • Een link kan de pagina op een versie openen: …/agents/{id}?version=8.

Een agent proberen

Kies Probeer het in de balk bovenaan de pagina van een agent. Er schuift een venster open waarin je een kort gesprek met de agent voert, precies zoals een sleutel van je organisatie hem zou aanroepen.

  1. Kies onder Namens sleutel de sleutel waarmee de beurt draait. Jij hebt als beheerder geen eigen sleutel; de beurt volgt de capabilities en het beleid van de sleutel die je kiest. Een sleutel die agents mist, of prompts als de versie een prompt vastzet, staat erbij met wat hij mist, en Versturen blijft dan uit.
  2. Vul eventueel Probeer als persoon in: een id waarmee je applicatie een persoon noemt (letters, cijfers en . _ : @ -, hooguit 128), een geplakt JSON-object met attributen, of een geplakt token dat een uitgever van je organisatie heeft ondertekend. De console verpakt een gewoon id in het JSON-object dat X-Core-Subject verwacht, en het veld weigert een id dat Core zou weigeren voordat er iets wordt verstuurd. De beurt volgt dan de regels voor die persoon, zoals bij een aanroep met X-Core-Subject (Bouwen voor personen).
  3. Kies de Versie; de nieuwste gepubliceerde staat al gekozen. Een concept staat er ook bij, gemarkeerd met concept: een proefbeurt draait het, ook al kan geen sleutel dat.
  4. Zet die versie een prompt vast, vul dan de Variabelen van die prompt in. Ze gaan mee met elke beurt. Zolang een verplichte variabele leeg is, blijft Versturen uit en staat erbij welke nog ontbreken.
  5. Typ je bericht en kies Versturen.

Het antwoord verschijnt terwijl het model schrijft. Roept de agent tools aan, dan zie je per tool de argumenten en wat hij teruggaf, of waarom niet. Als de beurt klaar is, staan eronder het model dat antwoordde, de tokens, hoe lang het duurde en wat de beurt kostte. Onder het gesprek staat wat het gesprek samen kostte. Een volgende vraag stuurt het gesprek tot nu toe mee, alleen de tekst: de toolaanroepen worden niet opnieuw gestuurd.

Weigert Core de beurt voordat hij begint, bijvoorbeeld omdat de sleutel het model niet mag gebruiken of zijn plafond heeft bereikt, dan staat die melding er in plaats van een antwoord. Mislukt de beurt onderweg, dan zie je de code en de zin van Core.

Elke beurt is echt: het model wordt aangeroepen en het verbruik telt op de gekozen sleutel. Stoppen stopt alleen het lezen in je browser; Core maakt de beurt af en telt het verbruik. Er wordt niets bewaard: sluit je het venster, dan is het gesprek weg. Ook de sleutel waarmee de beurt draaide, leest haar niet terug: de beurt en haar trace zijn van jou, in de console.

Een versie proberen voordat je haar opslaat

Terwijl je een Nieuwe versie schrijft, probeert Probeer het in de balk de versie zoals het formulier haar nu heeft, zonder haar op te slaan. Het veld Versie zegt dan v… · niet opgeslagen, met het nummer dat opslaan haar zou geven, en biedt niets anders. Core houdt de niet opgeslagen versie aan dezelfde controles als opslaan als concept: een veld dat het zou weigeren, staat in het venster, en de agent houdt precies de versies die hij had.

Twee proeven naast elkaar

Zet Vergelijken bovenin het venster aan en het splitst in kolom A en kolom B. Elke kolom heeft zijn eigen Versie, Namens sleutel, eventuele Probeer als persoon en variabelen, en houdt zijn eigen gesprek bij, met de kosten per beurt en in totaal. Er is één berichtvak: wat je daar verstuurt, gaat naar beide kolommen, die tegelijk antwoorden. Zo zet je twee versies, of dezelfde versie op twee sleutels, naast elkaar met dezelfde vraag.

Een kolom die nog niet kan verzenden, omdat er geen sleutel gekozen is of een verplichte variabele leeg is, zegt dat zelf en wordt overgeslagen; de andere kolom antwoordt wel. Weigert Core de beurt in één kolom of mislukt hij onderweg, dan staat de melding in die kolom en gaat de andere gewoon door. Probeer je een versie die je nog niet opgeslagen hebt, dan is kolom A die versie en kiest kolom B een opgeslagen versie om ertegen af te zetten. Op een smal scherm staan de kolommen onder elkaar. Zet je Vergelijken weer uit, dan blijft kolom A staan en is kolom B weg.

Een gesprek bewaren als scenario

Na ten minste één bericht staat onder het gesprek Opslaan als scenario. Kies in het venster een Evaluatie waaraan deze agent gekoppeld is, of een nieuwe evaluatie die je een naam geeft en die aan deze agent wordt gekoppeld, en pas zo nodig de Titel aan. Elk bericht dat je stuurde wordt een stap van het scenario, in dezelfde volgorde, met de variabelen waarmee je het laatste bericht stuurde. Een bericht dat Core weigerde voordat de beurt begon, telt niet mee, en een scenario heeft hoogstens 32 stappen.

Het scenario komt in een concept van de evaluatie: geen sleutel draait het totdat je het concept publiceert. Een nieuwe evaluatie die je in het venster kiest, wordt zelf als concept gemaakt: geen sleutel ziet haar en geen planning draait haar totdat ze gepubliceerd is. Na het opslaan zegt een melding welk concept het scenario bevat, met Publiceren en Evaluatie openen. Op het tabblad Scenario’s van de evaluatie staat het concept ook bij Versies, om te meten (Concept meten), te publiceren of weg te gooien.

Er komt bewust geen check bij: een beoordelaar toetst aan een regel, nooit aan het antwoord dat het model nu gaf. Na het opslaan opent het scenario in het gewone scenariovenster, waar je de checks toevoegt; elke keer opslaan daar schrijft een nieuw concept. Een gekoppelde kopie van een gedeelde evaluatie en een evaluatie met al 32 scenario's staan erbij maar zijn niet te kiezen; weigert Core het toch, dan staat zijn zin in het venster en is er niets geschreven.

Een agent dupliceren

Dupliceren, in de balk van de eigen pagina van de agent, maakt een nieuwe agent van deze. Geef hem een naam (het venster stelt de naam van het origineel met -copy voor) en kies vanaf welke gepubliceerde versie je begint; concepten staan er niet tussen. De kopie begint op versie 1, met dezelfde instructie, instellingen, vastgelegde promptversie, skills en tools, labels en metadata, en opent op zijn eigen pagina. Wat je aan de kopie verandert, verandert het origineel niet.

De knop staat er niet bij een kopie die een publicatie verzegeld installeerde, en ook niet bij een kopie waarvan de publicatie losmaken niet toestaat of hem voor haar eigen agents houdt.

Een agent verwijderen

Verwijderen, onder Gevarenzone onderaan de pagina van de agent, wist de agent en al zijn versies definitief. Latere aanroepen die hem noemen krijgen 404. In de bevestiging typ je de naam van de agent.

Een prompt waar een versie op vastzit, kun je niet verwijderen zolang die versie bestaat: de prompt verwijderen antwoordt 409. Verwijder eerst de agent, dan is de prompt vrij.

Noemt de nieuwste versie van een andere agent deze agent als tool, dan weigert Core het verwijderen met een 409; de bevestiging blijft open en toont die agents, elk een link naar zijn pagina. Haal deze agent eerst uit hun tools.

Labels

Gebruik Labels om agents in te delen. De labels horen bij de agent, niet bij een specifieke versie. Een nieuwe versie verandert de labels alleen als je ze aanpast.

Regels over Agents in de policy van een sleutel vergelijken deze labels met de attributen van een persoon (Regels over een persoon). Onder de standaardregels bereikt elke persoon alles wat de sleutel bereikt. Zie Bouwen voor personen.

Lege lijsten en toegangsbeperkingen

“Nog geen agents” betekent dat er voor deze organisatie geen agents zijn aangemaakt.

Zie je agents staat uit voor deze organisatie, dan staat Agents bewaren die een aanroep bij naam noemt uit in het plafond van de organisatie. De beheerder van de organisatie erboven zet het aan bij Toegestane capabilities op Instellingen; voor een organisatie zonder bovenliggende organisatie doet je operator dat. De knop opent Instellingen.

Een sleutel kun je verder beperken tot de agents die hij mag noemen, onder Agents bij de bronregels op de pagina van die sleutel. Een aanroep die een agent daarbuiten noemt, krijgt dezelfde 404 als bij een agent die niet bestaat.