Add "AI en Agentstrategie"
248
AI-en-Agentstrategie.md
Normal file
248
AI-en-Agentstrategie.md
Normal file
@@ -0,0 +1,248 @@
|
|||||||
|
# AI- en Agentstrategie
|
||||||
|
|
||||||
|
## 1. Rol van AI binnen het platform
|
||||||
|
|
||||||
|
### Kernprincipe
|
||||||
|
|
||||||
|
AI is geen bijzaak of feature — het is een integraal onderdeel van hoe het platform werkt. De AI-laag ondersteunt gebruikers bij het structureren, analyseren, documenteren en beslissen. Tegelijkertijd blijft de mens altijd in control.
|
||||||
|
|
||||||
|
### Drie niveaus van AI-inzet
|
||||||
|
|
||||||
|
| Niveau | Beschrijving | Voorbeeld |
|
||||||
|
|--------|-------------|----------|
|
||||||
|
| **Assistentie** | Reactief helpen op verzoek | "Vat dit project samen", "Wat zijn de risico's?" |
|
||||||
|
| **Signalering** | Proactief attenderen op patronen | "Dit commitment is 2 weken over deadline", "Deze projecten hebben overlap" |
|
||||||
|
| **Agentisch** | Autonome taken uitvoeren binnen grenzen | Embeddings genereren, documenten classificeren, overdrachtscheck uitvoeren |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. AI-architectuur
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ LARAVEL APP │
|
||||||
|
│ │
|
||||||
|
│ Gebruiker ──▶ Chat Interface ──▶ AI Gateway │
|
||||||
|
│ │ │
|
||||||
|
└───────────────────────────────────────┼──────────┘
|
||||||
|
│ REST API
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ PYTHON AI-SERVICE │
|
||||||
|
│ │
|
||||||
|
│ ┌─────────────┐ ┌──────────────────────┐ │
|
||||||
|
│ │ Router / │───▶│ LangGraph Orchestrator│ │
|
||||||
|
│ │ Classifier │ └──────────┬───────────┘ │
|
||||||
|
│ └─────────────┘ │ │
|
||||||
|
│ ┌───────────┼───────────┐ │
|
||||||
|
│ ▼ ▼ ▼ │
|
||||||
|
│ ┌─────────┐ ┌─────────┐ ┌────────┐│
|
||||||
|
│ │ Project │ │ Kennis │ │ Analyse ││
|
||||||
|
│ │ Agent │ │ Agent │ │ Agent ││
|
||||||
|
│ └────┬────┘ └────┬────┘ └───┬────┘│
|
||||||
|
│ │ │ │ │
|
||||||
|
│ ▼ ▼ ▼ │
|
||||||
|
│ ┌──────────────────────────────┐ │
|
||||||
|
│ │ Tool Layer │ │
|
||||||
|
│ │ - DB Query (read-only) │ │
|
||||||
|
│ │ - Document Retrieval (RAG) │ │
|
||||||
|
│ │ - Embedding Search │ │
|
||||||
|
│ │ - Calculation │ │
|
||||||
|
│ │ - Report Generation │ │
|
||||||
|
│ └──────────────────────────────┘ │
|
||||||
|
└─────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Agentische taken
|
||||||
|
|
||||||
|
### 3.1 Projectassistent
|
||||||
|
|
||||||
|
**Taken:**
|
||||||
|
- Projectsamenvatting genereren
|
||||||
|
- Risico's identificeren op basis van projectbeschrijving
|
||||||
|
- Vergelijking met soortgelijke projecten
|
||||||
|
- Voortgangsanalyse en signalering
|
||||||
|
|
||||||
|
**Autonomie:** Laag — genereert voorstellen, gebruiker beslist
|
||||||
|
|
||||||
|
### 3.2 Kennisassistent
|
||||||
|
|
||||||
|
**Taken:**
|
||||||
|
- Semantisch zoeken over documenten en lessons learned
|
||||||
|
- Context ophalen uit projecthistorie
|
||||||
|
- Relevante documenten suggereren bij nieuwe projecten
|
||||||
|
- Samenvatten van lange documenten
|
||||||
|
|
||||||
|
**Autonomie:** Laag — zoekt en presenteert, schrijft niet
|
||||||
|
|
||||||
|
### 3.3 Documentassistent
|
||||||
|
|
||||||
|
**Taken:**
|
||||||
|
- Structuurvoorstel voor documenten
|
||||||
|
- Tekstsuggesties en aanvullingen
|
||||||
|
- Consistentiecheck over documenten
|
||||||
|
- Generatie van concept-overdrachtsrapporten
|
||||||
|
|
||||||
|
**Autonomie:** Midden — genereert concepten, gebruiker reviewt en bevestigt
|
||||||
|
|
||||||
|
### 3.4 Analysator
|
||||||
|
|
||||||
|
**Taken:**
|
||||||
|
- Portfolioanalyse (overlap, gaps, risico's)
|
||||||
|
- Trendanalyse over projecten
|
||||||
|
- Budget- en bestedingsanalyse
|
||||||
|
- Overdrachtgereedheidscheck
|
||||||
|
|
||||||
|
**Autonomie:** Laag — analyseert en rapporteert
|
||||||
|
|
||||||
|
### 3.5 Systeemtaken (achtergrond)
|
||||||
|
|
||||||
|
**Taken:**
|
||||||
|
- Embeddings genereren bij document-updates
|
||||||
|
- Automatische tagging van documenten
|
||||||
|
- Deadline-signalering
|
||||||
|
- Samenvattingen cachen
|
||||||
|
|
||||||
|
**Autonomie:** Hoog — draait autonoom, maar alleen voor technische/ondersteunende taken
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Grenzen van autonomie
|
||||||
|
|
||||||
|
### Wat autonoom mag
|
||||||
|
|
||||||
|
- Embeddings genereren en bijwerken
|
||||||
|
- Documenten classificeren en taggen
|
||||||
|
- Samenvattingen genereren (als concept)
|
||||||
|
- Semantisch zoeken en resultaten presenteren
|
||||||
|
- Signaleringen genereren (deadlines, risico's)
|
||||||
|
|
||||||
|
### Wat alleen na goedkeuring mag
|
||||||
|
|
||||||
|
- Documenten publiceren of wijzigen
|
||||||
|
- Statusovergangen van projecten
|
||||||
|
- Commitments aanmaken of wijzigen
|
||||||
|
- Notificaties versturen naar andere gebruikers
|
||||||
|
- Besluiten registreren
|
||||||
|
- Overdrachtsplannen genereren
|
||||||
|
|
||||||
|
### Wat nooit autonoom mag
|
||||||
|
|
||||||
|
- Data verwijderen
|
||||||
|
- Autorisaties wijzigen
|
||||||
|
- Namens gebruikers communiceren naar buiten
|
||||||
|
- Bestuurlijke besluiten nemen
|
||||||
|
- Financiële mutaties doorvoeren
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. RAG-strategie
|
||||||
|
|
||||||
|
### Retrieval-Augmented Generation
|
||||||
|
|
||||||
|
```
|
||||||
|
Gebruikersvraag
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐ ┌──────────────┐
|
||||||
|
│ Query │────▶│ pgvector │──▶ Top-K relevante chunks
|
||||||
|
│ Embedding │ │ Similarity │
|
||||||
|
└─────────────┘ └──────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌──────────────┐
|
||||||
|
│ Context │
|
||||||
|
│ Assembly │──▶ Prompt met context
|
||||||
|
└──────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌──────────────┐
|
||||||
|
│ LLM │──▶ Antwoord met bronverwijzingen
|
||||||
|
└──────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### Bronnen voor RAG
|
||||||
|
|
||||||
|
| Bron | Chunking-strategie | Update-trigger |
|
||||||
|
|------|-------------------|----------------|
|
||||||
|
| Projectbeschrijvingen | Per sectie | Bij wijziging |
|
||||||
|
| Documenten | Per paragraaf (overlap) | Bij upload/wijziging |
|
||||||
|
| Lessons learned | Per artikel | Bij aanmaak/wijziging |
|
||||||
|
| Besluiten | Per besluit | Bij registratie |
|
||||||
|
| Kennisartikelen | Per sectie | Bij publicatie |
|
||||||
|
|
||||||
|
### Kwaliteitswaarborgen
|
||||||
|
|
||||||
|
- Bronverwijzing bij elk antwoord (welk document, welk project)
|
||||||
|
- Confidence indicator ("gebaseerd op 3 bronnen" vs. "geen directe bronnen gevonden")
|
||||||
|
- Mogelijkheid voor gebruiker om feedback te geven op antwoorden
|
||||||
|
- Periodieke evaluatie van RAG-kwaliteit
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Scheiding systeembron en AI-gedrag
|
||||||
|
|
||||||
|
### Principe
|
||||||
|
|
||||||
|
Het systeem moet altijd duidelijk maken wat feitelijke data is en wat AI-gegenereerd is.
|
||||||
|
|
||||||
|
**Implementatie:**
|
||||||
|
- AI-gegenereerde content krijgt een visueel label ("AI-suggestie", "Concept")
|
||||||
|
- Gebruiker moet expliciet bevestigen voordat AI-content systeem-status krijgt
|
||||||
|
- Audit log registreert of content door mens of AI is aangemaakt
|
||||||
|
- AI heeft read-only toegang tot domeindata, schrijft alleen via gebruikersbevestiging
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Logging en terugkoppeling
|
||||||
|
|
||||||
|
### Verplichte logging
|
||||||
|
|
||||||
|
- Alle AI-requests en -responses (geanonimiseerd waar nodig)
|
||||||
|
- Welke tools/agents zijn ingezet per request
|
||||||
|
- Welke bronnen zijn gebruikt voor RAG
|
||||||
|
- Gebruikersfeedback op AI-antwoorden (thumbs up/down)
|
||||||
|
- Foutmeldingen en time-outs
|
||||||
|
|
||||||
|
### Doel van logging
|
||||||
|
|
||||||
|
- Kwaliteitsverbetering van prompts en retrieval
|
||||||
|
- Inzicht in gebruikersbehoeften
|
||||||
|
- Detectie van onjuiste of misleidende antwoorden
|
||||||
|
- Basis voor iteratieve verbetering
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. MVP AI-scope
|
||||||
|
|
||||||
|
### In MVP
|
||||||
|
|
||||||
|
- Chat-interface binnen projectcontext
|
||||||
|
- Projectsamenvatting genereren
|
||||||
|
- Semantisch zoeken over documenten
|
||||||
|
- Basis-RAG met bronverwijzing
|
||||||
|
|
||||||
|
### Niet in MVP
|
||||||
|
|
||||||
|
- Gespecialiseerde agents per domein
|
||||||
|
- Proactieve signalering
|
||||||
|
- Automatische tagging
|
||||||
|
- Portfolioanalyse
|
||||||
|
- Documentgeneratie
|
||||||
|
|
||||||
|
### Motivatie
|
||||||
|
|
||||||
|
Start eenvoudig, meet gebruik en kwaliteit, breid uit op basis van echte behoeften. Een basale maar betrouwbare AI-ervaring is waardevoller dan een brede maar onbetrouwbare.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Open vragen
|
||||||
|
|
||||||
|
1. Welke LLM-provider is beschikbaar? (Claude API, OpenAI, Azure OpenAI, lokaal?)
|
||||||
|
2. Is er een embedding-model voorkeur? (OpenAI ada-002, lokaal model?)
|
||||||
|
3. Mag projectdata naar een externe API worden gestuurd, of moet alles lokaal?
|
||||||
|
4. Wat is het acceptabele latentieniveau voor AI-responses? (<5s, <10s, <30s?)
|
||||||
|
5. Moeten AI-gesprekken per gebruiker of per project worden opgeslagen?
|
||||||
|
6. Is er behoefte aan meertalige ondersteuning? (Nederlands + Engels?)
|
||||||
Reference in New Issue
Block a user