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.