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 in claude-engine.ts, uitvoering in runtime.ts.
  • Agenda inplannen: tool propose_slots die vrije tijden uit de gekoppelde agenda leest (alleen lezen), en book_appointment als 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.