Ga naar inhoud

Agents

Een agent is de AI die redeneert en handelt. In Core is een agent een vastgelegde definitie: een model, instructies, een prompt, skills en tools, onder één naam en met versies. Je applicatie noemt de agent en geeft de invoer mee; de rest staat in de definitie.

Wat een agent vastlegt

Onderdeel Wat het is
Model het model, of een router, waarop een beurt draait
Instructies een staande opdracht aan het model
Prompt een opgeslagen sjabloon met variabelen, vastgezet op één versie
Skills ingepakte instructies voor een taak, die het model laadt wanneer het ze nodig heeft
Tools tools, toolsets en andere agents die het model mag aanroepen
Instellingen zoals temperatuur, het maximum aantal uitvoertokens en het aantal toolrondes
Live checks regels waaraan elke beurt wordt gehouden, op de vraag of op het antwoord (Live checks)

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

Zo roept een applicatie een agent aan:

{
  "agent": { "id": "support" },
  "input": "Mijn kaart is twee keer belast."
}

Wanneer gebruik je een agent

  • Je wilt het model, de instructies of de tools aanpassen zonder je applicatie opnieuw uit te rollen.
  • Meerdere applicaties of kanalen moeten precies dezelfde assistent gebruiken.
  • Je wilt meten of een wijziging een verbetering is, met een evaluatie.
  • Elke beurt moet zich aan een regel houden, zoals nooit een rekeningnummer noemen, met live checks.
  • Je wilt hetzelfde gedrag bij meerdere klanten installeren, met een publicatie.
  • Je geeft een sleutel aan onbekenden en wilt dat elke beurt draait zoals jij hem hebt vastgelegd (de instelling Agent verplicht).

Voor een enkel los verzoek heb je geen agent nodig: een verzoek kan het model, de instructies en de tools ook zelf noemen.

Versies

Elke wijziging is een nieuwe versie. Een versie is de hele definitie en verandert daarna niet meer. Een verzoek gebruikt de nieuwste versie, of noemt een versienummer om op die versie te blijven nadat er nieuwe zijn gemaakt.

Een beheerder kan een versie ook als concept opslaan. Een concept is een genummerde versie die alleen de beheerconsole en haar API zien: je kunt hem proberen en meten met een evaluatie, en je sleutels blijven de laatst gepubliceerde versie gebruiken tot je het concept publiceert. Een sleutel ziet en draait nooit een concept; wie zijn nummer noemt, krijgt hetzelfde antwoord als bij een versie die niet bestaat. Voor prompts, skills, scripts, workflows, pipelines, evaluaties en routeconfiguraties geldt hetzelfde.

Een verzoek vult aan, het overschrijft niet

Een verzoek mag skills en tools toevoegen aan wat de agent meebrengt. Een veld dat de agent vastlegt op een andere waarde zetten, wordt geweigerd met 400. Wil je een andere waarde, dan maak je een nieuwe versie of een andere agent. Zo weet je bij elke beurt welke definitie er draaide.

Wat de agent meebrengt, wordt getoetst aan de policy van de sleutel die hem aanroept. Een tool, skill of prompt die de sleutel niet mag bereiken, blijft buiten bereik, ook als de agent hem noemt.

Hoe het samenhangt

flowchart LR
    prompt["Prompt<br/>sjabloon, op versie"] --> agent
    skills["Skills<br/>instructies voor een taak"] --> agent
    agent["Agent"] --> model["Model of router"]
    agent --> tools["Tools en toolsets"]
    tools --> knowledge["Zoektools over kennis"]
    agent --> sub["Andere agent als tool"]
    eval["Evaluatie"] -.->|"meet"| agent
    checks["Live checks"] -.->|"houden elke beurt aan regels"| agent
    plan["Planning"] -.->|"roept aan op een klok"| agent
  • Prompts zijn sjablonen met versies. Een agent zet een prompt vast op één versie; het verzoek vult de variabelen in. Een prompt kun je ook zonder agent gebruiken.
  • Skills zijn pakketten met instructies voor een taak, zoals release notes schrijven. Een skill vertelt het model hoe iets moet; een tool laat het model iets doen.
  • Tools geef je een agent als losse tool, als toolset of als andere agent. Kennis bereikt een agent via een zoektool.
  • Een agent als tool. Een agent kan werk doorgeven aan een andere agent: het model ziet die als één tool en krijgt het antwoord als toolresultaat. Een agent die als tool draait, roept zelf geen agent meer aan, dus agents die elkaar in een kring noemen zijn toegestaan en de kring eindigt na één aanroep. Daarnaast is er de ingebouwde subagent: een geneste beurt zonder eigen definitie.
  • Evaluaties meten een agent: een suite gesprekken die je één keer opschrijft en tegen een vastgezette agentversie afspeelt, met regels waaraan elk antwoord moet voldoen.
  • Live checks houden elke echte beurt van een agent aan hetzelfde soort regels terwijl de beurt plaatsvindt: een check kan een vraag weigeren, een antwoord achterhouden of achteraf een steekproef van antwoorden beoordelen (Live checks).
  • Planningen laten een verzoek op een klok lopen, bijvoorbeeld elke werkdag om zes uur. Dat verzoek kan een agent noemen.
  • Delen. Een agent kan in een publicatie, samen met de prompt, skills en tools die hij gebruikt.

Verder

Tutorial: Bouw je eerste agent.

Onderdeel API Console
Agents Agents via de API Agents in de console
Prompts Prompts via de API Prompts in de console
Skills Skills via de API Skills in de console
Evaluaties Evaluaties via de API Evaluaties in de console
Live checks Live checks via de API Live checks in de console
Planningen Planningen via de API Planningen in de console

Zie ook Een agent als tool aan een beurt geven en Een modelaanroep doen voor de velden van een verzoek.