AI-agent
Drie niveaus van autonomie
| Niveau | Wat doet de AI | Voorbeeld |
|---|---|---|
| Advies | Laat alleen tekst zien. Er verandert niets. | "Dit lijkt een spoedstoring, bel binnen 4 uur." |
| Concept | Bereidt iets voor dat een mens goedkeurt of aanpast. | Conceptofferte, e-mailconcept |
| Uitvoeren | Voert zelf uit binnen de regels; wordt gelogd. | Categorie toekennen, taak aanmaken |
Per vaardigheid kiest de klant het niveau (Dashboard → AI-assistent → Rechten & instellingen).
Het platform legt per vaardigheid een maximum op (maxMode) dat de klant niet kan verhogen.
De twaalf vaardigheden (lib/agent/capabilities.ts)
| # | Vaardigheid | Risico | Max. niveau | Standaard |
|---|---|---|---|---|
| 1 | Websiteteksten schrijven/verbeteren | laag | concept | concept |
| 2 | Nieuwe pagina's voorstellen | midden | concept | advies |
| 3 | Contactaanvragen samenvatten/categoriseren | laag | uitvoeren | uitvoeren |
| 4 | Offerteaanvragen analyseren (ontbrekende info) | laag | uitvoeren | uitvoeren |
| 5 | Conceptoffertes uit goedgekeurde prijslijst | hoog | concept | concept |
| 6 | E-mailconcepten en opvolging | midden | concept | concept |
| 7 | Afspraken voorbereiden | midden | concept | advies |
| 8 | CRM-records aanmaken/bijwerken | midden | uitvoeren | concept |
| 9 | Taken aanmaken/toewijzen | laag | uitvoeren | uitvoeren |
| 10 | Vragen beantwoorden uit kennisbronnen | laag | uitvoeren | uitvoeren |
| 11 | Rapportages | laag | uitvoeren | uitvoeren |
| 12 | Processen via koppelingen | hoog | concept | uit |
Nooit automatisch (platformregel): betalingen, definitieve offertes/facturen versturen, gegevens definitief verwijderen, gebruikers/rechten wijzigen, koppelingen aanmaken of tokens inzien. E-mail naar klanten vraagt altijd goedkeuring.
Hoe het technisch werkt
Knop "AI: analyseer" → lib/agent/index.ts (kiest engine, controleert pakket + aan/uit)
├─ Claude-engine: tool runner met tools gebonden aan de klant-scope
└─ Demo-engine: regelgebaseerd, zelfde tools
│ elke schrijvende tool roept:
▼
runtime.proposeAction() → policy.decide() → logboek
├─ automatisch_uitgevoerd → executeAction()
├─ wacht_op_goedkeuring → melding → mens keurt goed/af
├─ voorgesteld (advies) → alleen tonen
└─ geblokkeerd → met reden in logboek
- Context per klant: bedrijfsgegevens, toon, instructies, alleen goedgekeurde kennisbronnen en de prijslijst. Kennisbronnen die niet goedgekeurd zijn (bijv. interne marges) gaan nooit mee.
- Prijzen: het model kiest alleen prijscodes; het systeem vult de prijzen in. Onbekende codes worden geweigerd.
- Foutafhandeling: API-fouten worden vertaald naar duidelijke Nederlandse meldingen
(sleutel ongeldig, limiet bereikt, geen verbinding); mislukte acties krijgen status "mislukt" met reden.
Weigeringen van het model (
refusal) worden netjes gemeld; server-side fallbacks staan aan. - Logboek: elke actie met tijd, engine (Claude/demo), modus, reden, payload, besluit en wie besloot.
- Kosten: prompt caching op de vaste systeemprompt; gebruik per klant wordt geteld (
usage.aiActions30d).
Uitbreiden
- Nieuwe vaardigheid: definitie in
capabilities.ts, tool inclaude-engine.ts, uitvoering inruntime.ts. - Agenda inplannen: tool
propose_slotsdie vrije tijden uit de gekoppelde agenda leest (alleen lezen), enbook_appointmentals concept. - Integraties: tool
sync_to_integration(altijd goedkeuring) die via het connector-contract werkt. - Website-chat voor bezoekers: dezelfde FAQ-vaardigheid, met rate limiting en zonder toegang tot klantdata.
- Evaluatie: verzamel echte (geanonimiseerde) aanvragen en meet kwaliteit vóórdat je niveaus verhoogt.