AIToday Live

S07E75 - Zo bouw je effectieve LLM-applicaties

Aigency by Info Support Season 7 Episode 75

Willem Meints, Chief AI Architect bij Info Support, deelt zijn expertise over het bouwen van LLM-applicaties met Semantic Kernel. Als tienmalig Microsoft MVP Award-winnaar brengt hij waardevolle inzichten in de ontwikkeling van AI-gestuurde systemen. 

Willem's boek "Building Effective LLM Applications with Semantic Kernel" behandelt de uitdagingen en valkuilen bij het bouwen van goed functionerende LLM-applicaties. Hij beschrijft alternatieve teststrategieën voor taalmodellen en benadrukt het belang van een combinatie van regelgebaseerde en AI-gestuurde componenten.

Semantic Kernel wordt uitgelegd als een flexibel raamwerk voor het bouwen van LLM-applicaties, geschikt voor grotere bedrijven met ontwikkelteams. Willem adviseert een teamsamenstelling van softwareontwikkelaars, data scientists en systeemintegratoren voor complexere projecten.

Het Model Context Protocol (MCP) wordt geïntroduceerd als een manier om tools modulair op te zetten en te hergebruiken tussen verschillende agents en systemen. Willem sluit af met praktische adviezen voor wie wil beginnen met LLM-applicaties, waarbij hij een geleidelijke aanpak aanraadt.

Onderwerpen

  • Ontwikkeling van LLM-applicaties met Semantic Kernel
  • Uitdagingen bij het testen van LLM-applicaties
  • Rol van teamsamenstelling bij het bouwen van LLM-applicaties
  • Model Context Protocol (MCP) en zijn toepassingen
  • Onderhoud en evolutie van AI-agents

Links

Genoemde entiteiten: Microsoft - Microsoft Copilot - Copilot Studio - Semantic Kernel - Model Context Protocol

Stuur ons een bericht

Aigency
Aigency ontwerpt en ontwikkelt waardevolle, robuuste en betrouwbare Machine Learning-modellen.

Info Support
Info Support is de specialist in maatwerk software en leidend in kunstmatige intelligentie (AI).

Disclaimer: This post contains affiliate links. If you make a purchase, I may receive a commission at no extra cost to you.

Schrijf je in voor onze nieuwsbrief en ontvang exclusieve toegang tot nieuws, blik achter de schermen en meer!

1
00:00:00,000 --> 00:00:06,040
In deze aflevering hoor je Willem Meints, Chief AI Architect bij InfoSupport, die de complexe

2
00:00:06,040 --> 00:00:11,640
wereld van LLM-applicaties met Semantic Kernel ontleed en praktische valkuilen blootlegt

3
00:00:11,640 --> 00:00:14,240
bij het bouwen van AI-gestuurde systemen.

4
00:00:14,240 --> 00:00:21,080
Met zijn uitgebreide ervaring en 10 MVP Awards laat Willem zien hoe je effectieve AI-toepassingen

5
00:00:21,080 --> 00:00:24,600
ontwikkelt die verder gaan dan de standaard chatbot functionaliteit.

6
00:00:24,600 --> 00:00:26,520
Veel plezier met deze aflevering!

7
00:00:30,980 --> 00:00:32,380
***

8
00:00:56,700 --> 00:00:58,020
De laatste aflevering.

9
00:00:58,120 --> 00:00:59,760
En mij nog steeds niet kennen.

10
00:00:59,890 --> 00:01:00,940
Ik ben Willem Meints.

11
00:01:00,990 --> 00:01:03,200
Ik werk als chief AI architect voor Info Support.

12
00:01:04,200 --> 00:01:05,860
Samen met Joop bij Aigency.

13
00:01:06,080 --> 00:01:07,280
Heel druk met AI.

14
00:01:08,880 --> 00:01:09,500
Wat is nog meer interessant.

15
00:01:09,840 --> 00:01:11,340
Ik heb inmiddels tien MVP awards.

16
00:01:11,610 --> 00:01:12,400
In plaats van negen.

17
00:01:15,340 --> 00:01:17,080
Dus ik ben nog steeds heel erg druk in mijn vrije tijd.

18
00:01:17,110 --> 00:01:17,760
Dat is eigenlijk het idee.

19
00:01:18,040 --> 00:01:19,160
En voor de luisteraars.

20
00:01:19,210 --> 00:01:20,780
Wat houdt het eigenlijk in zo'n MVP award?

21
00:01:20,860 --> 00:01:22,360
We zeggen hier alsof het gewoon is.

22
00:01:22,370 --> 00:01:23,240
Maar dat is het natuurlijk niet.

23
00:01:23,830 --> 00:01:24,540
Wat houdt het precies in?

24
00:01:25,480 --> 00:01:27,740
De MVP award wordt door Microsoft uitgereikt.

25
00:01:28,160 --> 00:01:31,579
Het is de Microsoft Most Valuable Professional Award.

26
00:01:32,420 --> 00:01:33,260
Dat is de volledige naam.

27
00:01:33,960 --> 00:01:38,260
En je krijgt dat voor allerlei werk wat je doet in de community.

28
00:01:38,420 --> 00:01:39,380
Zo zeggen ze dat heel mooi.

29
00:01:39,780 --> 00:01:45,600
Dus als je veel spreekt op conferenties, boeken schrijft, voorbeeldcode maakt,

30
00:01:45,620 --> 00:01:47,920
op LinkedIn heel veel mensen helpt, dat soort dingen.

31
00:01:47,940 --> 00:01:51,520
Dus ik ben heel veel in de vrije tijd bezig en dat waarderen ze heel erg.

32
00:01:52,480 --> 00:01:55,860
Dus het is van Microsoft, maar nog steeds best wel onafhankelijk.

33
00:01:56,720 --> 00:01:59,180
Ik doe ook dingen die niet Microsoft gerelateerd zijn.

34
00:01:59,600 --> 00:02:02,320
Dus het is echt, mijn beeld van, corrigeer maar als ik het verkeerd zeg,

35
00:02:02,760 --> 00:02:07,380
is community appreciation, dus waardering vanuit de community, vanuit de omgeving,

36
00:02:07,460 --> 00:02:12,240
dat je je kennis deelt en daar tijd insteekt en dat mensen kennis laat opdoen

37
00:02:12,620 --> 00:02:14,760
van de technologie en de ontwikkelingen die daarbij zijn.

38
00:02:15,020 --> 00:02:15,140
Ja.

39
00:02:17,240 --> 00:02:21,480
Nou, je zegt al in je vrije tijd, een boek geschreven, een aantal maanden over gedaan.

40
00:02:22,780 --> 00:02:23,680
Wat is de titel van je boek?

41
00:02:24,560 --> 00:02:27,800
Building Effective LLM Applications met Semantic Kernel.

42
00:02:28,460 --> 00:02:29,020
Zo, helemaal vol.

43
00:02:29,020 --> 00:02:29,960
Moeten we even afbellen.

44
00:02:30,600 --> 00:02:31,820
Ja, daar zit heel veel in.

45
00:02:32,160 --> 00:02:34,620
Laten we eens beginnen met die LLM Applications.

46
00:02:35,320 --> 00:02:37,100
Wat is een LLM applicatie?

47
00:02:37,499 --> 00:02:41,320
Ja, ik denk dat de meeste mensen inmiddels wel bekend zijn met Cloud en met ChatGPT.

48
00:02:41,860 --> 00:02:46,540
En dat is eigenlijk, zo heb ik hem geïnterpreteerd, een LLM gebaseerde applicatie.

49
00:02:46,630 --> 00:02:48,660
Dus er zit een large language model in verpakt.

50
00:02:48,850 --> 00:02:50,740
In het geval van ChatGPT is dat een chatbot.

51
00:02:52,160 --> 00:02:53,700
maar je kan er veel meer mee bouwen

52
00:02:53,850 --> 00:02:55,660
dus mijn boek gaat eigenlijk over

53
00:02:56,120 --> 00:02:57,920
programma's bouwen waar een large language model

54
00:02:57,970 --> 00:02:59,400
een belangrijke rol in speelt

55
00:03:00,240 --> 00:03:01,280
en dat kan een chatbot zijn

56
00:03:01,750 --> 00:03:03,360
maar dat kan ook een workflow zijn

57
00:03:03,370 --> 00:03:04,820
een AIA gedreven workflow

58
00:03:05,170 --> 00:03:07,820
dat zou ook een agent kunnen zijn waar we ook al veel over in de podcast

59
00:03:07,910 --> 00:03:08,480
hebben gehoord

60
00:03:10,280 --> 00:03:12,260
ja, dit is vrij breed

61
00:03:13,560 --> 00:03:15,980
dus de LLM is een onderdeel

62
00:03:16,360 --> 00:03:17,360
van de applicatie

63
00:03:17,920 --> 00:03:19,899
waardoor je het een LLM applicatie noemt

64
00:03:19,920 --> 00:03:20,080
Ja.

65
00:03:23,580 --> 00:03:25,960
Effectief. Wanneer is iets effectiefs dan?

66
00:03:26,720 --> 00:03:29,280
Ja, nou, ik was eigenlijk met een boek begonnen zo van,

67
00:03:30,300 --> 00:03:32,899
er zijn heel veel voorbeelden op internet te vinden voor softwareontwikkelaars,

68
00:03:33,500 --> 00:03:36,340
hoe je nou met large language models applicaties kan bouwen.

69
00:03:37,060 --> 00:03:40,780
Alleen, dat is een soort van hallo wereld voorbeeld van,

70
00:03:40,860 --> 00:03:43,400
hé, het werkt en dan houdt het ook echt wel op.

71
00:03:43,880 --> 00:03:46,840
En ik heb de afgelopen jaren veel tijd geïnvesteerd

72
00:03:46,900 --> 00:03:48,800
in het leren werken met large language models.

73
00:03:49,060 --> 00:03:50,960
Ik heb er heel veel fouten mee gemaakt.

74
00:03:51,160 --> 00:03:52,160
Het is heel vaak kapot gegaan.

75
00:03:53,080 --> 00:03:55,600
En al die ervaringen heb ik eigenlijk in dat boek gestopt.

76
00:03:56,200 --> 00:03:58,800
Dus ik probeer mensen ook vooral te helpen met...

77
00:03:58,800 --> 00:04:01,280
Hoe bouw je nou een goed functionerende applicatie?

78
00:04:01,340 --> 00:04:02,900
Een goed functionerende chatbot bijvoorbeeld?

79
00:04:03,600 --> 00:04:05,060
Daar komt best wel heel veel bij kijken eigenlijk.

80
00:04:05,860 --> 00:04:07,480
Zou je daar een voorbeeld van kunnen noemen?

81
00:04:08,540 --> 00:04:12,600
Een van de dingen die in mijn boek best wel wordt beschreven...

82
00:04:12,600 --> 00:04:14,760
is het testen van dit soort applicaties.

83
00:04:15,220 --> 00:04:17,980
Dat gaat toch echt wel heel anders dan traditionele software testen.

84
00:04:18,000 --> 00:04:24,880
Bij traditionele software kun je een berekening testen door de inputs te geven en de verwachte output erbij.

85
00:04:25,480 --> 00:04:29,160
En dan kun je kijken of het programma dat ook goed doet, dat hij dezelfde output produceert.

86
00:04:29,520 --> 00:04:31,320
Bij een taalmodel is dat helemaal niet.

87
00:04:31,940 --> 00:04:37,900
De ene keer geeft hij op de ene manier antwoord en dan probeer je met dezelfde input nog een keer antwoord te krijgen.

88
00:04:38,420 --> 00:04:39,700
En dan zegt hij totaal wat anders.

89
00:04:39,820 --> 00:04:42,720
Die chatbot reageert elke keer anders op jouw vraag.

90
00:04:43,580 --> 00:04:46,479
En dat maakt dat ook wel weer ingewikkeld om dat te testen.

91
00:04:46,580 --> 00:04:54,200
Dus ik heb in mijn boek ook een strategie beschreven waarbij je eigenlijk zegt van ik ga niet letterlijk het antwoord nakijken of dat klopt met wat ik verwacht.

92
00:04:54,780 --> 00:04:56,660
Maar ik ga vragen stellen over het antwoord.

93
00:04:57,540 --> 00:04:58,820
Om dat wat concreet te maken.

94
00:04:59,380 --> 00:05:03,360
Je zou bijvoorbeeld een recept een chatbot kunnen maken met een large language model.

95
00:05:04,180 --> 00:05:09,540
En als je dan vraagt om een recept voor appeltaart, dan zou je toch wel verwachten dat er iets met appels wordt gedaan.

96
00:05:10,560 --> 00:05:11,420
En dat kun je vragen.

97
00:05:11,730 --> 00:05:15,840
Dan kun je dan een test schrijven die eigenlijk ook weer het large language model gebruikt.

98
00:05:16,240 --> 00:05:19,680
Hey, Large Language Model, hier was het antwoord op de vraag om een appeltaartrecept.

99
00:05:20,200 --> 00:05:21,520
Zitten daar ook toevallig appels in?

100
00:05:22,480 --> 00:05:24,360
En dan zal hij antwoorden met ja of nee.

101
00:05:24,710 --> 00:05:26,380
Dat gaat redelijk goed met een taalmodel.

102
00:05:26,840 --> 00:05:29,700
En dat beschrijf ik in mijn boeken ook van, hey, dat is heel erg belangrijk.

103
00:05:30,140 --> 00:05:35,640
Om te kunnen controleren dat hij ook de antwoorden geeft die in ieder geval qua betekenis hetzelfde zijn.

104
00:05:36,880 --> 00:05:42,360
Toch zullen heel veel mensen, zogal je het hebt over een taalmodel, denken aan een chatbot-achtige oplossing.

105
00:05:43,040 --> 00:05:49,520
Zou je voorbeelden kunnen noemen waarbij je een taalmodel gebruikt, maar dan in een andere type oplossing?

106
00:05:50,560 --> 00:05:56,120
Ja, dus waar ik zelf ervaring mee op heb gedaan de laatste jaren is bijvoorbeeld documentverwerking.

107
00:05:56,220 --> 00:06:04,000
Dat we van technische documentatie bij elkaar kunnen rapen met het taalmodel en dan één meer menselijke samenvatting daarvan kunnen maken.

108
00:06:04,820 --> 00:06:12,080
Dit ging om allerlei natuurbeschermingsinformatie en de impact van de bescherming op de verbetering van die natuur.

109
00:06:13,080 --> 00:06:14,940
Dat zijn allemaal hele technische documenten.

110
00:06:15,420 --> 00:06:21,240
Zoveel minder houtkap, zoveel minder CO2-uitstoot in dat gebied.

111
00:06:21,860 --> 00:06:23,600
Dat is allemaal best wel ingewikkeld.

112
00:06:24,380 --> 00:06:28,480
We hebben met het taalmodel een samenvatting gemaakt van de documenten en gezegd...

113
00:06:28,480 --> 00:06:34,800
map dat nou eens naar de impact voor een bepaalde aspect wat we belangrijk hebben gevonden.

114
00:06:34,800 --> 00:06:38,220
Dus we hebben doelen gesteld om de natuurbescherming te verbeteren.

115
00:06:38,880 --> 00:06:43,080
Kun je nou uitleggen wat de impact is geweest op dat doel aan de hand van die technische documentatie?

116
00:06:43,860 --> 00:06:46,120
En dat is een workflow, dat is niet zozeer een chatbot.

117
00:06:46,120 --> 00:06:49,620
Je kan er niet mee praten, want die documenten worden geüpload.

118
00:06:50,560 --> 00:06:54,880
Daar halen we uit een ander systeem de doelen op die daarbij horen bij dat project.

119
00:06:55,580 --> 00:06:58,500
En dan vervolgens gaan we automatisch op de achtergrond die samenvatting maken.

120
00:06:58,640 --> 00:07:01,360
En die sturen we via e-mail terug naar degene die dat moet beoordelen.

121
00:07:02,280 --> 00:07:08,480
En als je dan die stappen hebt, hoe bepaal je dan welke stap je wel of niet in RLM gebruikt?

122
00:07:09,800 --> 00:07:10,880
oh dat is een hele goeie

123
00:07:12,320 --> 00:07:14,080
daar heb ik heel erg over na zitten denken

124
00:07:14,160 --> 00:07:16,160
van zou je dit regelgebaseerd moeten doen

125
00:07:17,060 --> 00:07:17,840
sommige dingen wel

126
00:07:18,040 --> 00:07:20,860
moet je wel echt regelgebaseerd gaan doen

127
00:07:21,100 --> 00:07:22,280
sterker nog ik raad iedereen aan

128
00:07:22,360 --> 00:07:24,440
om het vooral op basis van regels te gaan doen

129
00:07:24,940 --> 00:07:26,060
en pas als je denkt van

130
00:07:26,280 --> 00:07:27,120
nou gaat het niet meer

131
00:07:27,600 --> 00:07:29,180
dan een taalmodel in te zetten

132
00:07:29,700 --> 00:07:32,260
in dit voorbeeld is eigenlijk dat samenvatten

133
00:07:32,500 --> 00:07:34,380
is wel echt een taalmodel iets

134
00:07:34,620 --> 00:07:35,880
dat is heel duidelijk in beeld

135
00:07:36,020 --> 00:07:37,999
dat kan ik alleen met een taalmodel doen

136
00:07:38,580 --> 00:07:40,460
maar wat ik wel

137
00:07:40,560 --> 00:07:42,060
heb gedaan is ik heb gezegd van

138
00:07:42,420 --> 00:07:43,920
ik ga dat opdelen in allemaal kleine stukjes

139
00:07:44,040 --> 00:07:46,160
dus ik ga niet het hele verhaal in één keer erin gooien

140
00:07:46,820 --> 00:07:48,020
maar ik ga één doel

141
00:07:48,360 --> 00:07:50,240
ga ik erin stoppen in het taalmodel

142
00:07:50,440 --> 00:07:51,760
met een set instructies

143
00:07:52,340 --> 00:07:54,340
en dan laat ik hem zelf de documentatie erbij zoeken

144
00:07:54,340 --> 00:07:55,700
die dan relevant is voor die vraag

145
00:07:56,200 --> 00:07:56,860
die dan gesteld wordt

146
00:07:58,000 --> 00:08:00,140
daarmee heb ik dus een soort van hybride

147
00:08:00,260 --> 00:08:01,680
gecreëerd aan de ene kant regels

148
00:08:02,400 --> 00:08:04,420
namelijk wat ga ik precies vragen

149
00:08:05,020 --> 00:08:06,040
en dat klein houden

150
00:08:06,060 --> 00:08:07,980
en het andere deel is dan toch wel het taalmodel

151
00:08:08,240 --> 00:08:12,600
Je geeft heel expliciet aan, zeker ook met name regelgebaseerd.

152
00:08:13,120 --> 00:08:14,320
Dat zeg je denk ik met een reden.

153
00:08:14,420 --> 00:08:15,240
Maar wat is die reden dan?

154
00:08:15,280 --> 00:08:19,340
Dat je toch echt wel die regelgebaseerde aanpak als eerst zou adviseren?

155
00:08:20,160 --> 00:08:23,380
Ja, wat ik zelf heel erg gemerkt heb over de afgelopen jaren.

156
00:08:23,480 --> 00:08:26,440
Is dat taalmodellen, ze worden steeds beter.

157
00:08:27,080 --> 00:08:29,080
Maar het is nog steeds best wel instabiel.

158
00:08:29,180 --> 00:08:30,880
Dat is ook met dat testen merk je dat al.

159
00:08:31,580 --> 00:08:32,440
Het is steeds anders.

160
00:08:33,820 --> 00:08:35,740
En daar zit toch wel een lastigheid in.

161
00:08:35,799 --> 00:08:39,159
En dat mensen op een of andere manier toch de verwachting hebben dat het steeds hetzelfde is.

162
00:08:39,380 --> 00:08:42,179
Omdat het toch een automatisch proces is waar ze het over hebben.

163
00:08:43,919 --> 00:08:47,160
Dus als je denkt van ik heb een hoge mate van zekerheid nodig.

164
00:08:47,250 --> 00:08:49,120
Dan werkt het nou eenmaal beter met regels.

165
00:08:50,100 --> 00:08:53,180
Ja oké, dus als je vastigheid wil hebben in je antwoord.

166
00:08:53,320 --> 00:08:54,500
Makkelijker te kunnen testen.

167
00:08:54,560 --> 00:08:56,380
De consistentie nodig hebt bij die stappen.

168
00:08:57,440 --> 00:08:59,999
Daarom advies om dan regelgebaseerd mee aan de slag te gaan.

169
00:09:00,140 --> 00:09:03,840
Dat je dat makkelijker kan testen en reproduceerbaar kan maken.

170
00:09:04,040 --> 00:09:05,380
Voor wanneer dat van belang is.

171
00:09:06,799 --> 00:09:09,340
Het verhoogt de kwaliteit toch wel, nog steeds.

172
00:09:13,320 --> 00:09:18,120
Het is building effective LLM applications with Semantic Kernel.

173
00:09:18,870 --> 00:09:20,180
Wat is Semantic Kernel?

174
00:09:21,040 --> 00:09:21,820
Ja, dat is wel een goeie.

175
00:09:23,520 --> 00:09:25,900
Ik denk niet dat er veel mensen van gehoord hebben, nog niet.

176
00:09:26,880 --> 00:09:30,860
Het is een raamwerk door Microsoft ontwikkeld in dit geval,

177
00:09:33,080 --> 00:09:36,740
dit soort programma's, zoals chatbots en de workflows waar we het net over hadden,

178
00:09:37,220 --> 00:09:38,440
dat je die zelf kan bouwen.

179
00:09:38,870 --> 00:09:43,640
Het idee van Microsoft is dat het een soort van kern van je programma gaat vormen,

180
00:09:43,640 --> 00:09:46,700
dat semantic kernel, wat semantiek begrijpt.

181
00:09:47,160 --> 00:09:48,960
Vandaar de naam semantic kernel ook.

182
00:09:49,740 --> 00:09:55,060
Dus wat zij zeggen is eigenlijk, je kan ChatGPT gewoon gebruiken,

183
00:09:55,140 --> 00:09:57,180
of Microsoft Copilot in het geval van Microsoft.

184
00:09:59,000 --> 00:10:01,400
Daarnaast heb je natuurlijk Copilot Studio van Microsoft.

185
00:10:01,680 --> 00:10:04,560
Daarmee kun je dan aangepaste chatbots bouwen.

186
00:10:06,600 --> 00:10:09,680
En vervolgens, als dat dan nog steeds niet voldoende voor je is,

187
00:10:10,100 --> 00:10:11,980
dan kom je in de hoek van de semantic kernel terecht.

188
00:10:12,840 --> 00:10:15,180
En daar wil ik wel iets zeggen over de complexiteit.

189
00:10:15,440 --> 00:10:19,760
Kijk, voor het gebruik van Microsoft Copilot hoef je alleen maar zelf te begrijpen

190
00:10:19,880 --> 00:10:21,800
hoe je de juiste prompt stelt.

191
00:10:22,960 --> 00:10:25,360
En heb je hulp van een systeembeheerder denk ik wel nodig

192
00:10:25,560 --> 00:10:27,660
om je bedrijfsgegevens daarin te laden.

193
00:10:29,420 --> 00:10:33,740
Bij Copilot Studio moet je al iets meer verstand hebben van hoe werkt eigenlijk een taalmodel.

194
00:10:34,020 --> 00:10:37,160
En hoe ga ik die chatbot de goede kant op sturen.

195
00:10:37,960 --> 00:10:40,340
Bij Semantic Kernel moet je er echt verstand van hebben.

196
00:10:41,100 --> 00:10:42,220
Hoe zit dat dan met tools?

197
00:10:43,140 --> 00:10:45,320
Je moet in C Sharp kunnen programmeren ook nog eens.

198
00:10:46,040 --> 00:10:50,140
En je moet ook wel echt verstand hebben van beveiliging en hoe je de dingen test.

199
00:10:50,760 --> 00:10:51,780
Daar komt wel wat voor terug.

200
00:10:52,120 --> 00:10:53,780
Je hebt maximale flexibiliteit.

201
00:10:53,860 --> 00:10:55,540
Je kunt het zo gek maken als je zelf wilt.

202
00:10:55,600 --> 00:10:58,920
Je kunt audio, afbeeldingen, tekst, alles door elkaar doen in principe.

203
00:11:00,260 --> 00:11:02,039
Dus het is best een mooi apparaat.

204
00:11:02,980 --> 00:11:11,760
Waar zit dan die overgang tussen Copilot Studio, waarbij je het makkelijker in elkaar klikt en sleept,

205
00:11:12,480 --> 00:11:15,580
naar dat je naar zoiets gaat als Semantic Kernel?

206
00:11:16,460 --> 00:11:19,039
Ik denk dat dat vooral zit in de workflowhoek.

207
00:11:21,200 --> 00:11:25,340
Copilot Studio is het agent-achtige ideeën.

208
00:11:25,380 --> 00:11:29,220
Ik heb één set aan instructies en daar val ik steeds op terug.

209
00:11:31,000 --> 00:11:35,700
En het taalmodel bepaalt eigenlijk ook wel de soort van workflow wat er achter elkaar gaat gebeuren.

210
00:11:35,820 --> 00:11:40,380
Of die in SharePoint gaat kijken, eerst in SharePoint gaat kijken en daarna een Word document gaat lezen.

211
00:11:40,440 --> 00:11:44,420
Of dat die eerst jouw input pakt en dan antwoord geeft en daarna pas in SharePoint gaat kijken.

212
00:11:45,260 --> 00:11:47,420
Bij Cement and Kernel heb je daar heel veel controle over.

213
00:11:47,520 --> 00:11:50,700
Kun je echt zeggen van oké, ik ga eerst in SharePoint kijken.

214
00:11:51,420 --> 00:11:54,620
Dan ga ik kijken in de zoekindex en dan ga ik op mijn eigen harde schijf kijken.

215
00:11:55,160 --> 00:11:59,840
Ik kan ook mijn lokale data van mijn eigen laptop combineren met SharePoint in één keer.

216
00:12:00,080 --> 00:12:01,500
Omdat ik, ja dat programmeer ik zelf.

217
00:12:01,930 --> 00:12:03,680
Dat kan bij Copilot Studio allemaal niet.

218
00:12:04,090 --> 00:12:04,340
Oh ja.

219
00:12:05,080 --> 00:12:12,460
En wat ook wel denk ik een belangrijk verschil is met producten als Microsoft Copilot en Copilot Studio.

220
00:12:13,300 --> 00:12:17,380
Is dat bij Semantic Kernel kan ik modellen van Amazon in één keer gebruiken.

221
00:12:17,900 --> 00:12:18,440
Of van Google.

222
00:12:19,200 --> 00:12:20,420
Of zelfs open source modellen.

223
00:12:20,520 --> 00:12:23,240
Dus we hebben eerder een podcast opgenomen over DeepSeq.

224
00:12:23,700 --> 00:12:25,020
Dat werkt met Semantic Kernel.

225
00:12:25,460 --> 00:12:31,660
En dat gaat eigenlijk best wel prima. Kun je volledig op je laptop draaien en dan heb je geen internetverbinding meer nodig.

226
00:12:31,900 --> 00:12:37,740
Dus dat is ook voor mensen die juist een extra laag beveiliging zouden willen, is Cemented Kernel wel een veel betere oplossing.

227
00:12:38,180 --> 00:12:51,900
Ja, dat klinkt bij mij even een beetje contra-intuitief. In de zin van, je hebt meer vrijheid, je kan het security opzetten, maar je moet ook zelf meer gaan regelen voor je security, heb ik dan het gevoel, toch?

228
00:12:52,300 --> 00:12:55,520
Ja, dat is wel echt een nadeel van deze vorm van bouwen.

229
00:12:56,100 --> 00:12:58,800
Dus als je even snel wilt, dat gaat niet.

230
00:13:00,460 --> 00:13:02,560
Nee, ik moet er wel bij vertellen.

231
00:13:04,240 --> 00:13:06,600
Tegenwoordig met oplossingen als GitHub Copilot.

232
00:13:06,980 --> 00:13:09,860
De bekende Vibecode tools bijvoorbeeld zoals Lovable.

233
00:13:10,660 --> 00:13:12,720
Ik denk dat je in een middagje wel heel ver kan komen.

234
00:13:13,580 --> 00:13:15,320
Dus ja, het is meer werk.

235
00:13:15,620 --> 00:13:18,840
Maar het wordt ook wel weer een beetje opgeheven met de moderne softwareontwikkeltools.

236
00:13:18,920 --> 00:13:24,040
Ja, maar je moet wel bewust zijn dat je bepaalde dingen zelf moet inregelen die niet in het platform zit.

237
00:13:24,680 --> 00:13:27,080
Wat je de vrijheid geeft, de flexibiliteit geeft.

238
00:13:27,120 --> 00:13:30,000
Maar daarbij komt ook een verantwoordelijkheid om daar wel bewust over na te denken.

239
00:13:30,000 --> 00:13:33,740
Om die kwaliteit die je nodig hebt voor je oplossing dus wel in acht te nemen.

240
00:13:34,420 --> 00:13:42,620
Ja, ik zou ook zeggen dit is niet iets wat voor de kleinere bedrijven in Nederland in te zetten is zomaar.

241
00:13:43,120 --> 00:13:47,960
Of je moet echt een heel specifiek geval hebben dat je zegt ja, ik wil deze workflow graag maken.

242
00:13:48,600 --> 00:13:51,520
En dat lukt me niet met een custom GPT ofzo.

243
00:13:52,080 --> 00:13:53,920
Dan is dat nog steeds voor kleine bedrijven ook te doen.

244
00:13:54,440 --> 00:14:01,160
Ik denk dat er hier veel meer te halen valt voor de grotere enterprises in Nederland.

245
00:14:01,960 --> 00:14:05,500
Die ook echt een ontwikkelteam hebben rondlopen die hiermee kan werken.

246
00:14:05,540 --> 00:14:08,960
Dat doe je ook niet in je eentje, zo'n oplossing bouwen.

247
00:14:10,100 --> 00:14:11,360
Waarom doe je dat niet in je eentje?

248
00:14:11,720 --> 00:14:12,800
Onder dat het misschien veel werk is?

249
00:14:13,480 --> 00:14:16,620
Ja, het is veel werk en de complexiteit ligt gewoon een stuk hoger.

250
00:14:16,880 --> 00:14:19,000
We zien het ook wel bij Info Support gebeuren,

251
00:14:19,180 --> 00:14:23,020
dat we dan vaak een combinatie hebben van een softwareontwikkelaar en een data scientist,

252
00:14:23,180 --> 00:14:24,800
die dat bijvoorbeeld al samen aan het doen zijn.

253
00:14:25,540 --> 00:14:27,220
En wat hier ook wel heel erg gebeurt,

254
00:14:27,320 --> 00:14:31,740
de Semantic Kernel is geënt op het maken van agents eigenlijk.

255
00:14:31,920 --> 00:14:34,120
Het ultieme doel van het raamwerk is,

256
00:14:34,420 --> 00:14:39,700
we willen een zelfstandige agent maken die complexe business taken kan automatiseren.

257
00:14:40,320 --> 00:14:45,160
En dan krijg je automatisch ook nog eens te maken met integratie met jouw bestaande IT-landschap.

258
00:14:45,740 --> 00:14:49,440
Want zo'n agent, hoe moet die voor jou een factuur gaan versturen?

259
00:14:49,560 --> 00:14:51,900
Zal die toch iets met de facturatie moeten gaan doen?

260
00:14:53,120 --> 00:14:54,120
Daarmee moet je integreren.

261
00:14:54,520 --> 00:14:56,760
En het kan met cementen kernel kan dat,

262
00:14:57,000 --> 00:15:00,720
omdat je zelf gereedschap kan bouwen voor die agent in een taal als C-Sharp.

263
00:15:01,600 --> 00:15:02,880
Dan hebben we vooral de bouwkant.

264
00:15:03,240 --> 00:15:09,880
Zijn er nog andere teamleden nodig om te komen tot een goed passende effectieve LLM applicatie?

265
00:15:10,960 --> 00:15:11,700
Ja, ik denk het wel.

266
00:15:12,840 --> 00:15:18,320
Waar ik zelf ook best wel wat tijd in heb gestoken om uit te zoeken van hoe ga je daar nou mee om.

267
00:15:19,320 --> 00:15:20,940
Het is mooi als je het kan bouwen.

268
00:15:21,780 --> 00:15:24,100
Maar dan ga je het daarna installeren in productie.

269
00:15:24,320 --> 00:15:25,680
En dan? Wat gebeurt er dan?

270
00:15:25,940 --> 00:15:31,360
Dan krijg je te maken met toch wel het feit, omdat een taalmodel instabiel is en steeds een ander antwoord geeft.

271
00:15:32,080 --> 00:15:34,400
Mensen gaan ook vragen stellen die jij niet verwacht had.

272
00:15:35,180 --> 00:15:40,000
En dan krijg je te maken met hoe ga ik dan achterhalen dat iemand een bijzondere vraag heeft gesteld.

273
00:15:40,400 --> 00:15:42,240
En dat die agent verkeerd gereageerd heeft.

274
00:15:42,780 --> 00:15:49,380
Daar komt een stuk monitoring en een stuk analyse bij kijken in productie om fouten op te sporen en fouten op te lossen.

275
00:15:49,460 --> 00:15:53,680
En dat is toch ook nog wel weer wat lastiger dan bij een normale software applicatie.

276
00:15:54,340 --> 00:15:56,180
Juist omdat steeds het antwoord zo anders is.

277
00:15:56,980 --> 00:16:02,700
En daar zie je denk ik ook wel de rol van een business analist weggelegd.

278
00:16:03,140 --> 00:16:06,580
Of in ieder geval iemand die meer verstand heeft van monitoring tools.

279
00:16:07,120 --> 00:16:11,960
Ja, monitoring, domeinkennis, echt een combinatie van factoren die dan van belang zijn.

280
00:16:12,080 --> 00:16:12,680
Ja, ja.

281
00:16:16,320 --> 00:16:20,700
Kijk, die agents zijn dan bezig.

282
00:16:21,460 --> 00:16:26,800
Wat is eigenlijk het belangrijkste om te regelen dat zo'n agent ook blijft werken?

283
00:16:28,460 --> 00:16:37,240
En daarmee bedoel ik eigenlijk, de tijd schuift op, je omgeving verandert, je data kan veranderen, je bedrijf kan veranderen.

284
00:16:37,980 --> 00:16:39,680
Hoe ga je daar dan eigenlijk mee om?

285
00:16:40,800 --> 00:16:46,880
Ja, nou, ik heb dat eigenlijk benaderd vanuit meer de agile gedachte.

286
00:16:47,360 --> 00:16:50,100
We zijn tegenwoordig gewend om kortcyclisch software te bouwen.

287
00:16:50,600 --> 00:16:53,980
Ik denk dat dat een hele sterke kant is van dit verhaal ook weer.

288
00:16:54,320 --> 00:16:56,800
Behoud het kortcyclisch en begin ook klein.

289
00:16:57,030 --> 00:17:01,560
Dus je begint met een kleine agent, met een paar stukken gereedschap en dan gaat dat steeds verder.

290
00:17:01,980 --> 00:17:03,920
Schuift dat eigenlijk door je organisatie in.

291
00:17:04,480 --> 00:17:09,839
En wat ik heb gemerkt dat heel erg goed werkt, is door dat kortcyclisch te houden en heel erg te investeren

292
00:17:09,859 --> 00:17:11,280
en automatisering daaromheen.

293
00:17:11,839 --> 00:17:15,339
Dus automatisch testen, automatisch uitrollen, monitoring.

294
00:17:15,960 --> 00:17:19,460
Zet gerust AI in voor de monitoring, want dat werkt dan weer wel heel erg goed.

295
00:17:20,940 --> 00:17:25,240
En daarmee, wat je eigenlijk doet, is een soort feedback loop creëren voor jezelf.

296
00:17:25,660 --> 00:17:28,700
Dus je rolt het uit, je verzamelt feedback uit die agent

297
00:17:28,860 --> 00:17:30,880
en dan zie je dat die wel of niet goed reageert.

298
00:17:31,540 --> 00:17:34,620
En dan vervolgens kun je als team daar weer op reageren en zeggen van

299
00:17:35,040 --> 00:17:38,620
oh, ik zie dat dat enig stuk gereedschap niet goed herkend wordt.

300
00:17:39,160 --> 00:17:40,240
Ik moet dat aanpassen.

301
00:17:40,920 --> 00:17:42,520
Ik pas daar de testen ook weer op aan.

302
00:17:43,099 --> 00:17:46,060
En dan rol ik hem weer uit en ga kijken of het beter gaat op productie.

303
00:17:47,080 --> 00:17:51,900
Dus je ziet dat daar de agile practices die we langzamerhand in de hele wereld geadopteerd hebben,

304
00:17:52,020 --> 00:17:56,600
hier in best wel een flinke hefboom creëren, waardoor je hier succesvol mee kan worden.

305
00:17:57,700 --> 00:17:59,540
Is een agent dan wel eigenlijk af?

306
00:18:00,520 --> 00:18:02,180
Of heb je eigenlijk altijd wel onderhoud eraan?

307
00:18:02,860 --> 00:18:04,820
Ik denk dat hij af is als hij in de prullenbak ligt.

308
00:18:05,060 --> 00:18:05,420
Oké.

309
00:18:05,800 --> 00:18:06,480
Dat is een mooie ja.

310
00:18:07,120 --> 00:18:07,900
Ben ik met je eens.

311
00:18:08,260 --> 00:18:08,880
En waarom?

312
00:18:08,920 --> 00:18:09,720
Kan je dat uitleggen?

313
00:18:11,659 --> 00:18:15,800
Nou, in mijn ervaring zijn de laatste maanden ook weer Cloud4 is uitgekomen.

314
00:18:16,440 --> 00:18:18,160
Voilà, mijn agent werkte totaal anders.

315
00:18:19,880 --> 00:18:22,240
Vervolgens deden ze nog eens even een update van een ander model.

316
00:18:22,400 --> 00:18:24,600
Was er weer een andere agent kapot bij Info Support.

317
00:18:24,680 --> 00:18:26,200
Die reageerde weer op een bijzondere manier.

318
00:18:26,660 --> 00:18:31,040
Iedere drie maanden zit ik achter mijn computer met mijn handen in de weinige haar wat ik nog heb.

319
00:18:31,940 --> 00:18:33,280
Van, oh oh, nou is er weer wat stuk.

320
00:18:34,220 --> 00:18:36,700
Dus het is alleen al om die reden nooit af.

321
00:18:36,860 --> 00:18:39,740
Maar ik zie ook nog iets heel moois gebeuren eigenlijk.

322
00:18:40,370 --> 00:18:44,000
Een paar jaar geleden dachten we, ah, chatgpt, ik ga er gewoon mee praten.

323
00:18:44,090 --> 00:18:45,160
En dat is het wel zo ongeveer.

324
00:18:45,920 --> 00:18:47,780
Als je nu kijkt naar wat mensen ermee doen.

325
00:18:48,620 --> 00:18:51,560
Iedereen is een heel stuk volwassener geworden in het gebruik van AI.

326
00:18:51,740 --> 00:18:53,820
Gaan dus veel meer verwachten en veel meer doen.

327
00:18:54,560 --> 00:18:56,420
De opdrachten worden steeds complexer.

328
00:18:56,500 --> 00:19:01,740
Sommige mensen die typen prompt in bij onze interne chatbot Ricardo van bijna drie A4'tjes.

329
00:19:02,840 --> 00:19:05,100
Dat had ik vorig jaar nog niet, dat probleem.

330
00:19:05,420 --> 00:19:08,580
Dus je ziet, we worden steeds beter in het gebruik van AI.

331
00:19:08,740 --> 00:19:11,180
En daarom moet je agent ook steeds blijven veranderen.

332
00:19:11,180 --> 00:19:11,980
Die moet meebewegen.

333
00:19:12,720 --> 00:19:15,860
Je zegt van, er kwam een nieuwe versie van Claude.

334
00:19:16,060 --> 00:19:17,080
Maar agent deed het niet meer.

335
00:19:17,300 --> 00:19:18,120
Waarom deed hij het niet meer?

336
00:19:19,500 --> 00:19:21,000
Hij herkende zijn tools niet meer.

337
00:19:21,100 --> 00:19:22,300
Hij was in een keer de weg kwijt.

338
00:19:23,100 --> 00:19:24,980
Hij kon in documentatie kijken.

339
00:19:25,820 --> 00:19:28,720
En op een gegeven moment zei hij, ik ga gewoon niet meer kijken in die documentatie.

340
00:19:28,940 --> 00:19:30,460
Ik ga zelf wel iets verzinnen.

341
00:19:31,440 --> 00:19:32,600
En dat zat hem erin.

342
00:19:33,020 --> 00:19:39,500
Als je zo'n agent hebt, dan kun je daar dus gereedschap tools, noemen we die in het Engels.

343
00:19:40,080 --> 00:19:41,600
En iedere tool heeft een beschrijving.

344
00:19:41,600 --> 00:19:45,900
Er staat eigenlijk bij van wanneer zou je deze tool moeten gebruiken en wat doet deze tool eigenlijk.

345
00:19:46,620 --> 00:19:49,440
En welke data je mag je meegeven of moet je meegeven.

346
00:19:49,440 --> 00:19:54,380
Ja, welke input verwacht hij, welke parameters krijg je en welke output zou hij terug kunnen geven potentieel.

347
00:19:55,340 --> 00:20:04,840
En wat er gebeurt, dat taalmodel gebruikt die beschrijving of metadata om te bepalen is deze tool op dit moment van toepassing.

348
00:20:05,740 --> 00:20:10,760
En als die omschrijving net een beetje vaag is of dat model is anders getraind, want dat is wat er bij mij gebeurde.

349
00:20:11,240 --> 00:20:15,040
Dan op een gegeven moment denkt hij, nou weet ik niet, dat is niet meer van toepassing voor mij.

350
00:20:15,220 --> 00:20:17,140
Ik ga gewoon lekker verder met waar ik mee bezig was.

351
00:20:17,720 --> 00:20:18,780
En dan krijg je dus gekke dingen.

352
00:20:19,000 --> 00:20:24,800
Want in mijn geval vind ik het belangrijk dat hij zelf kan kiezen of hij in de documentatie moet kijken of dat hij wat anders moet gaan doen.

353
00:20:25,100 --> 00:20:27,000
in een ander systeem gaan kijken.

354
00:20:27,760 --> 00:20:29,900
Ja, en dan is die beschrijving wel heel erg belangrijk.

355
00:20:30,680 --> 00:20:31,360
Hoe kwam je erachter?

356
00:20:32,920 --> 00:20:33,240
Monitoring.

357
00:20:33,360 --> 00:20:37,160
Dus in mijn geval kreeg ik een opmerking van iemand.

358
00:20:37,800 --> 00:20:40,000
Dat is ook een vorm van monitoring, zou ik zeggen.

359
00:20:40,840 --> 00:20:42,820
Die belde me op en die zei tegen mij...

360
00:20:42,880 --> 00:20:44,280
Ja, ik ben een beetje teleurgesteld.

361
00:20:44,600 --> 00:20:45,960
Oh ja, dat is wel heel droevig.

362
00:20:47,200 --> 00:20:48,200
Wat is er aan de hand dan?

363
00:20:48,340 --> 00:20:49,380
Ja, ik probeerde dit te doen.

364
00:20:50,040 --> 00:20:51,180
Vorige week werkte dit nog.

365
00:20:52,220 --> 00:20:52,800
En nu niet meer.

366
00:20:52,900 --> 00:20:53,680
Heb je iets veranderd?

367
00:20:54,060 --> 00:20:54,660
Ik zei, ja, dat klopt.

368
00:20:54,920 --> 00:20:55,920
Het taalmodel is veranderd.

369
00:20:56,320 --> 00:20:57,300
Je hebt iets geüpdatet.

370
00:20:58,120 --> 00:20:59,780
Oh, nou ja, ik ga wel even kijken voor je.

371
00:20:59,980 --> 00:21:03,620
Gelukkig is het vrij vlot op te lossen, maar dat is meestal wel de trigger.

372
00:21:04,300 --> 00:21:08,880
Want deze kun je dus ook niet vangen met monitoring, want die gebruiker deed wat anders ook nog.

373
00:21:09,240 --> 00:21:10,360
Dat was extra lastig.

374
00:21:11,800 --> 00:21:18,320
Je noemde net, ik weet niet of het goed geïnterpreteerde, maar een agent langzaam uitrollen en daarna in de organisatie breder in gaan zetten.

375
00:21:19,020 --> 00:21:22,840
Heb je het dan over één agent die van mijn gevoel dan groter wordt?

376
00:21:23,960 --> 00:21:25,420
Of heb je dan meerdere agents?

377
00:21:26,560 --> 00:21:27,300
Hoe kijk je daar tegenaan?

378
00:21:29,900 --> 00:21:34,440
Degene waar ik aan werk, die nu in productie draaien, dat zijn losse agents.

379
00:21:34,620 --> 00:21:35,900
Dus die praten ook niet met elkaar.

380
00:21:36,780 --> 00:21:39,860
Maar ik zou me kunnen voorstellen dat dat wel nog gaat gebeuren in de toekomst.

381
00:21:40,000 --> 00:21:43,300
In dit geval, de groei zit hem erin dat hij meer tools krijgt.

382
00:21:43,440 --> 00:21:45,020
Dus meer functies die hij kan aanroepen.

383
00:21:45,660 --> 00:21:48,520
Dus dat de agent wordt rijker in wat hij dan kan dan?

384
00:21:48,800 --> 00:21:48,920
Ja.

385
00:21:50,140 --> 00:21:51,200
En waar houdt het op?

386
00:21:52,540 --> 00:21:58,120
Net als bij software systemen heb je grenzen aan hoe je iets modulair opzet.

387
00:21:58,820 --> 00:22:02,220
Waar houdt de grens van een AI agent op?

388
00:22:05,340 --> 00:22:09,880
Ja, dat is wel een best wel vloeibaar begrip eigenlijk op dit moment.

389
00:22:10,220 --> 00:22:15,560
Omdat als je kijkt naar vier maanden geleden,

390
00:22:16,420 --> 00:22:21,180
had Microsoft in Semantic Kernel alleen de mogelijkheid om functions te koppelen aan een agent.

391
00:22:21,380 --> 00:22:22,180
Dat waren dan de tools.

392
00:22:23,140 --> 00:22:27,240
En dat moest binnen de grens van je applicatie blijven zitten.

393
00:22:27,400 --> 00:22:29,640
Dat kon niet in een andere applicatie zitten of zo.

394
00:22:30,160 --> 00:22:34,400
Je kon dan vanuit die tool wel weer integreren met je CRM of met je Office pakket of zo.

395
00:22:34,560 --> 00:22:35,180
Dat is prima.

396
00:22:36,020 --> 00:22:40,280
Maar de tools zaten bij de agent echt in hetzelfde blok.

397
00:22:41,280 --> 00:22:43,000
En wat je dus nu ziet.

398
00:22:43,640 --> 00:22:46,360
Antropic heeft die MCP protocol hebben ze bedacht.

399
00:22:46,360 --> 00:22:47,540
Een model context protocol.

400
00:22:48,220 --> 00:22:49,500
Waardoor we eigenlijk kunnen zeggen.

401
00:22:49,940 --> 00:22:52,320
Nou, dat gereedschap zit niet in de agent.

402
00:22:52,840 --> 00:22:53,640
Die staat ergens anders.

403
00:22:54,070 --> 00:22:55,460
Die staat gewoon los op jouw laptop.

404
00:22:55,650 --> 00:22:57,600
Of die staat ergens op een andere server.

405
00:22:58,300 --> 00:22:59,680
En wat je nu krijgt is dat...

406
00:22:59,960 --> 00:23:00,720
Eerst was het zo.

407
00:23:01,220 --> 00:23:04,300
Als je honderd tools in je C-Sharp programma stopte.

408
00:23:05,480 --> 00:23:07,000
Dan werd het wat minder onderhoudbaar.

409
00:23:07,030 --> 00:23:08,600
Daar krijg je wel een klein beetje hoofdpijn van.

410
00:23:09,740 --> 00:23:11,200
Dus dan is dat de grens eigenlijk.

411
00:23:11,430 --> 00:23:13,920
Maar nu door het MCP-protocol kan ik gewoon zeggen.

412
00:23:14,080 --> 00:23:16,160
Ja, ik heb hier een groep gereedschap.

413
00:23:16,600 --> 00:23:17,760
En die heb ik op die machine staan.

414
00:23:17,790 --> 00:23:18,660
Op die andere server.

415
00:23:19,160 --> 00:23:20,580
En die kan ik los onderhouden.

416
00:23:20,820 --> 00:23:22,960
Dus in één keer kan ik veel grotere agents bouwen.

417
00:23:24,160 --> 00:23:28,640
Maar wat wel zo is, hoewel dat dus nu kan met het MCP-protocol,

418
00:23:29,320 --> 00:23:33,100
is het nog steeds zo dat als je je agent 250 tools geeft bijvoorbeeld,

419
00:23:33,800 --> 00:23:34,820
dan komt hij er niet meer uit.

420
00:23:34,980 --> 00:23:37,080
Dan gaat hij willekeurige dingen lopen doen,

421
00:23:37,740 --> 00:23:40,280
omdat het verschil tussen het gereedschap heel klein wordt.

422
00:23:41,320 --> 00:23:44,160
Het is alsof je 200 bitjes hebt voor een schroevendraaier.

423
00:23:44,819 --> 00:23:46,340
Dan wordt het toch een beetje moeilijk.

424
00:23:46,360 --> 00:23:47,540
Dan ga je gewoon maar wat proberen.

425
00:23:47,800 --> 00:23:48,600
Nee, dan pak ik de hamer.

426
00:23:49,800 --> 00:23:53,220
Ja, dat doet ChatGPT ook wel eens.

427
00:23:53,980 --> 00:23:55,380
En Ricardo bij ons intern ook.

428
00:23:56,920 --> 00:23:59,020
En toch nog eventjes voor de luisteraars.

429
00:23:59,120 --> 00:24:00,080
MCP-protocol.

430
00:24:00,860 --> 00:24:01,740
Wat kan ik daarmee?

431
00:24:02,100 --> 00:24:02,639
Wat doet dat functioneel?

432
00:24:03,440 --> 00:24:04,880
Want het klinkt heel erg leuk.

433
00:24:06,080 --> 00:24:07,060
Ja, dat is wel een goede vraag.

434
00:24:08,200 --> 00:24:15,380
Het MCP-protocol is bedacht eigenlijk als een manier om agents modulair op te zetten.

435
00:24:15,560 --> 00:24:20,280
Dus wat het bijvoorbeeld beschrijft is van welke gereedschappen er beschikbaar zijn.

436
00:24:20,840 --> 00:24:26,140
Dus dan kun je, de agent kan er een verzoek naartoe sturen en dan kan hij vragen, doe mij alle gereedschappen even.

437
00:24:26,700 --> 00:24:32,180
En wat hij dan terugkrijgt is een lijst van, ik heb deze gereedschappen met de beschrijving erbij hoe hij dat moet gebruiken.

438
00:24:34,220 --> 00:24:37,700
En dat zit allemaal in dat protocol vervangen, hoe je dat precies moet instellen.

439
00:24:38,260 --> 00:24:41,740
MCP doet nog meer, je kan namelijk ook standaard prompt daarin zetten.

440
00:24:42,340 --> 00:24:44,700
Dus we hebben allemaal wel eens een keer een prompt waar we zeggen van,

441
00:24:44,790 --> 00:24:46,940
oh ja, dit gebruik ik altijd om een offerte te schrijven.

442
00:24:47,520 --> 00:24:51,640
Dat zou je in een MCP-server kunnen stoppen en heb je hem altijd beschikbaar.

443
00:24:51,730 --> 00:24:56,480
En het voordeel daarvan is dat je, als je dat centraal in je organisatie regelt,

444
00:24:56,650 --> 00:25:01,340
dat je die ene MCP-server met die prompt door meerdere medewerkers kan laten gebruiken.

445
00:25:01,800 --> 00:25:05,480
Dus voor standaardisatie, herbruik binnen de organisatie zou je het kunnen inzetten.

446
00:25:06,620 --> 00:25:14,120
En je kan dus één keer zo'n applicatie of functie of activiteit beschikbaar stellen.

447
00:25:14,380 --> 00:25:17,480
En heel veel keer herbruiken, zodat je ook dat stukje heel goed kan testen.

448
00:25:18,160 --> 00:25:22,660
Het wordt ook een beetje vergeleken als de USB-poort voor agents.

449
00:25:23,320 --> 00:25:24,660
Dat vind ik een hele mooie.

450
00:25:25,820 --> 00:25:28,580
En vanwaar dan die vergelijking naar de USB?

451
00:25:29,840 --> 00:25:32,060
Omdat je prikt hem eigenlijk ergens in.

452
00:25:32,360 --> 00:25:37,440
Dus de makkelijkste vergelijking is nu, je hebt bijvoorbeeld Cloud Desktop.

453
00:25:37,820 --> 00:25:39,840
En daar prik je dan die MCP server in.

454
00:25:39,980 --> 00:25:44,040
En in één keer heeft die toegang tot jouw agent en kan die daarmee praten.

455
00:25:44,360 --> 00:25:47,000
En zitten ze in dat protocol wat Willem net beschrijft.

456
00:25:48,220 --> 00:25:49,940
Wisselen ze dus data uit.

457
00:25:49,990 --> 00:25:51,800
Die zeggen van, oh ja, ik kan dit.

458
00:25:52,720 --> 00:25:56,740
Oh, maar dan kan ik als Cloud Desktop data naar jou sturen.

459
00:25:56,790 --> 00:25:58,200
En jij handelt altijd weer voor mij af.

460
00:25:58,340 --> 00:26:00,540
En dat komt ook weer via een standaard manier terug.

461
00:26:02,060 --> 00:26:03,820
En dat hoeft niet een cloud desktop te zijn.

462
00:26:03,960 --> 00:26:05,420
Dat kan ook je eigen applicatie zijn.

463
00:26:05,610 --> 00:26:07,520
Als je zelf een MCP host maakt.

464
00:26:08,780 --> 00:26:12,340
Dus je kan een beetje dingen in elkaar pluggen.

465
00:26:12,520 --> 00:26:13,660
Dus hij is universeel.

466
00:26:14,080 --> 00:26:16,180
Iedereen begrijpt dat je hem overal kan inpluggen.

467
00:26:16,960 --> 00:26:18,120
Is dat op dit moment ook zo?

468
00:26:18,130 --> 00:26:19,060
Dat je hem overal kan inpluggen?

469
00:26:19,260 --> 00:26:20,500
Ga je hem tegen alle modellen aanzetten?

470
00:26:21,780 --> 00:26:24,000
Nou, die MCP ondersteunen.

471
00:26:24,120 --> 00:26:24,480
Ja, daarom.

472
00:26:25,120 --> 00:26:27,120
Dus dat is ook eigenlijk een standaard in de markt.

473
00:26:27,680 --> 00:26:31,860
Ja, OpenAI heeft zich hier aan gecommitteerd.

474
00:26:32,130 --> 00:26:33,620
Google heeft zich hier aan gecommitteerd.

475
00:26:35,270 --> 00:26:38,620
Het grappige is, ze zijn bij Antropic begonnen als van...

476
00:26:39,840 --> 00:26:42,280
Zouden we zoiets misschien kunnen maken?

477
00:26:42,520 --> 00:26:46,380
En binnen no time is het eigenlijk een soort van de facto standaard geworden.

478
00:26:46,860 --> 00:26:51,200
Ja, de tools die ik nu voor Ricardo gebruik...

479
00:26:51,200 --> 00:26:53,100
die zouden bij GitHub Copilot er ook gewoon in kunnen.

480
00:26:53,400 --> 00:26:55,619
Of dat nuttig is binnen de context van die agent...

481
00:26:56,400 --> 00:26:58,140
Ja, dat weet ik niet.

482
00:26:58,500 --> 00:26:59,360
Maar het kan wel.

483
00:27:00,200 --> 00:27:02,060
En wat je ziet, is dat door dat MCP,

484
00:27:02,260 --> 00:27:06,020
dat je dus heel makkelijk agents kan koppelen aan zo'n host,

485
00:27:07,220 --> 00:27:11,860
is dat je zo'n host dus steeds meer mogelijkheden geeft in wat hij kan doen.

486
00:27:12,020 --> 00:27:18,200
Dus hij kan dus ook data van die verschillende agents met elkaar combineren.

487
00:27:18,640 --> 00:27:22,140
Maar zelfs ook dat hij bepaalt van,

488
00:27:22,580 --> 00:27:27,400
Oh ja, maar nou roep ik tool X aan van agent 1.

489
00:27:28,220 --> 00:27:29,120
Dan krijg ik data terug.

490
00:27:29,470 --> 00:27:33,480
Oh, maar dan kan misschien tool van agent 2.

491
00:27:34,100 --> 00:27:35,520
Die kan daar misschien weer mee verder.

492
00:27:35,650 --> 00:27:39,460
Want dan kom ik verder tot mijn doelantwoord.

493
00:27:40,060 --> 00:27:42,260
Dus het gaat helemaal door elkaar lopen.

494
00:27:42,960 --> 00:27:47,980
Dus hoe meer agents je via zo'n MCP aan elkaar knoopt.

495
00:27:48,270 --> 00:27:49,400
Hoe meer zo'n host kan.

496
00:27:50,920 --> 00:27:53,060
Maar ook hoe meer er mis kan gaan.

497
00:27:53,390 --> 00:27:55,000
Ja, dat vraag ik me dus altijd.

498
00:27:55,620 --> 00:27:57,040
Het biedt heel veel mogelijkheden.

499
00:27:57,900 --> 00:28:00,340
Maar kan je dan ook wel je security daarop inbouwen?

500
00:28:00,520 --> 00:28:01,740
Wat je daar wel of niet mee kan.

501
00:28:01,960 --> 00:28:04,900
Want dat is dan wel, als ik mijn toolbox ga weggeven.

502
00:28:05,000 --> 00:28:06,100
En ik heb alle gereedschappen erin.

503
00:28:07,600 --> 00:28:10,400
Ja, dat is zeker een heel belangrijk punt in dit verhaal.

504
00:28:11,220 --> 00:28:14,320
Oorspronkelijk had het MCP-protocol geen beveiliging in zich zitten.

505
00:28:15,520 --> 00:28:18,440
Ja, ik zie je gezicht vertrekken dat je denkt, oh oh, dit is niet goed.

506
00:28:18,820 --> 00:28:20,120
Dat klopt ook, het is ook niet goed.

507
00:28:20,820 --> 00:28:22,580
Maar inmiddels is dat heel erg veranderd.

508
00:28:22,740 --> 00:28:28,520
Dus nu heb je bijvoorbeeld de mogelijkheid dat je één keer inlogt met je gebruikersaccount van je bedrijf.

509
00:28:29,000 --> 00:28:31,820
En dat je dan bij de MCP-service van het bedrijf kan komen.

510
00:28:32,910 --> 00:28:35,780
Daar kan de agent namens jouw taken uitvoeren.

511
00:28:36,340 --> 00:28:41,260
Dus als jij dan toegang hebt tot bepaalde gegevens, dan zie je ook alleen maar die gegevens en niet de rest.

512
00:28:41,980 --> 00:28:46,340
Dat is inmiddels, als je het zelf bouwt, moet je het natuurlijk zelf regelen.

513
00:28:47,000 --> 00:28:53,380
In het geval van bijvoorbeeld de GitHub MCP, die door heel veel ontwikkelaars wordt gebruikt.

514
00:28:53,800 --> 00:28:58,380
Dan heb je echt alleen maar toegang tot je eigen GitHub spullen en niet die van de buren.

515
00:29:00,079 --> 00:29:02,320
Ja, misschien gaan we nu een beetje te ver.

516
00:29:02,320 --> 00:29:05,440
Maar Joop vul gerust aan, want we moeten even iets meer terug.

517
00:29:06,280 --> 00:29:12,240
Maar moet ik dan een agent gaan markeren wat voor rechten die je in mijn systemen moet krijgen?

518
00:29:12,640 --> 00:29:13,340
Moet ik dat dan zo zien?

519
00:29:13,400 --> 00:29:17,020
Want nu zeg je, ik ga onder een gebruiker, onder een persoon, ga ik naar een systeem.

520
00:29:17,020 --> 00:29:20,360
En ik mag bijvoorbeeld wel sales zien, maar mijn collega mag bijvoorbeeld de sales niet zien.

521
00:29:20,980 --> 00:29:24,400
Ja, nou dat is dus het bijzondere aan het werken met agents.

522
00:29:26,400 --> 00:29:31,620
Tot voor kort was een agent, had geen eigen user account of identiteit.

523
00:29:32,700 --> 00:29:37,780
Dat is eigenlijk heel raar, want we maakten de agents een soort van superman binnen onze organisatie.

524
00:29:37,820 --> 00:29:39,320
En zeiden, jij mag overal bij.

525
00:29:39,620 --> 00:29:43,080
En daarna gingen we tegen hem zeggen in de instructies, ja maar wacht even.

526
00:29:43,860 --> 00:29:45,260
als je antwoord gaat geven aan deze gebruiker

527
00:29:45,360 --> 00:29:47,080
mag je dit niet vertellen. Praat niet over de

528
00:29:47,180 --> 00:29:49,020
roze olifant. En dat is heel raar.

529
00:29:49,300 --> 00:29:51,360
Dat kan eigenlijk niet. Dat is heel gevaarlijk.

530
00:29:51,560 --> 00:29:53,180
Er is vaak mee ingebroken ook.

531
00:29:54,080 --> 00:29:54,840
In Londen zijn we

532
00:29:55,220 --> 00:29:57,180
op QCon geweest. Daar hebben we

533
00:29:57,400 --> 00:29:59,240
ons helemaal slap gelachen, want daar werd

534
00:29:59,320 --> 00:30:01,120
gewoon ingebroken op een Amazon omgeving

535
00:30:01,960 --> 00:30:02,880
met een gedicht.

536
00:30:03,200 --> 00:30:05,320
Dus dat was echt spectaculair

537
00:30:05,390 --> 00:30:07,200
om te zien. Dat gaat veel te ver

538
00:30:07,210 --> 00:30:08,380
voor deze podcast.

539
00:30:09,900 --> 00:30:10,960
Het is vrij spectaculair

540
00:30:10,990 --> 00:30:13,140
hoe je het kapot kan maken. Dus wat we tegenwoordig

541
00:30:13,160 --> 00:30:14,880
doen eigenlijk, is we zeggen dan

542
00:30:15,680 --> 00:30:17,040
de agent krijgt

543
00:30:17,160 --> 00:30:19,180
een eigen identiteit binnen het bedrijf.

544
00:30:19,180 --> 00:30:20,880
Je zou bijna zeggen het is een medewerker.

545
00:30:21,680 --> 00:30:23,020
Die krijgt zelf rechten

546
00:30:23,130 --> 00:30:24,680
op systemen binnen onze

547
00:30:26,160 --> 00:30:27,200
landschap. En wat

548
00:30:27,200 --> 00:30:29,000
we ook nog eens zeggen, die agent

549
00:30:29,260 --> 00:30:30,820
die werkt namens

550
00:30:31,660 --> 00:30:32,480
iemand anders.

551
00:30:33,320 --> 00:30:35,020
Dus we vragen eerst aan jou om

552
00:30:35,020 --> 00:30:37,280
in te loggen. En dan kunnen we met jouw

553
00:30:37,300 --> 00:30:39,200
login gegevens een stapje verder gaan

554
00:30:39,360 --> 00:30:41,300
en dan kunnen we dan de taken uitvoeren

555
00:30:41,400 --> 00:30:42,260
die we zouden willen doen.

556
00:30:43,120 --> 00:30:50,620
Dus dan kan de agent binnen de vrijheid die de agent heeft gekregen bepalen, moet ik mijn Niels zijn account gebruiken om iets te doen?

557
00:30:50,760 --> 00:30:53,700
Of kan ik mijn eigen mandaat gebruiken om mijn oplossing te gaan doen?

558
00:30:54,180 --> 00:30:57,880
Het is een soort gelaagde beveiliging die we dus nu aan het inbouwen zijn overal.

559
00:30:58,280 --> 00:31:00,220
En ik zeg, we zijn aan het inbouwen.

560
00:31:00,760 --> 00:31:04,020
Er zijn nog erg veel agents in de wereld die dit principe niet kennen.

561
00:31:04,400 --> 00:31:06,620
Want het bestaat nog maar net, deze mogelijkheden.

562
00:31:07,900 --> 00:31:10,640
En het risico daarvan is dus dat die agent te veel mag.

563
00:31:11,040 --> 00:31:15,400
Of dat je zo druk bezig bent om het weer in te kaderen binnen de context van de opdracht.

564
00:31:16,020 --> 00:31:18,720
Om geen rare activiteit te krijgen.

565
00:31:18,920 --> 00:31:20,440
En dan krijg je dus hele mooie verhalen.

566
00:31:20,440 --> 00:31:25,320
Dan kun je een haiku schrijven waarmee je gewoon wachtwoorden en broncode van systemen kan ophalen.

567
00:31:25,540 --> 00:31:26,900
Als je het link hebt. Ik hou hem aan.

568
00:31:27,440 --> 00:31:30,780
Anders plaatsen we hem ook in de show notes voor de luisteraar.

569
00:31:30,900 --> 00:31:31,200
Zeker.

570
00:31:33,160 --> 00:31:35,520
We hebben ook het kaartspel. Daar ben je bekend mee natuurlijk.

571
00:31:36,280 --> 00:31:38,460
Dit keer generatieve AI in de zorg.

572
00:31:38,510 --> 00:31:40,340
We hebben allemaal met de zorg te maken.

573
00:31:40,430 --> 00:31:43,340
Dus we zijn benieuwd naar jouw perspectief hierop.

574
00:32:01,480 --> 00:32:02,500
Blijft een lekker nummertje.

575
00:32:03,460 --> 00:32:07,860
Willem, ik ga je even vragen om een nummer tussen de 1 en de 40 te noemen.

576
00:32:08,200 --> 00:32:09,420
En dan pak ik de stelling erbij.

577
00:32:09,500 --> 00:32:10,960
Ah, niet eens 42.

578
00:32:12,280 --> 00:32:13,800
Nee, dan had je al het antwoord op alles.

579
00:32:14,819 --> 00:32:16,120
39 vind ik toch wel leuk.

580
00:32:16,320 --> 00:32:18,560
Dan maken we er 38 van wat 39 is al gekozen.

581
00:32:18,620 --> 00:32:19,140
Oh, dat is.

582
00:32:21,420 --> 00:32:24,240
Het categorie en thema is wetgeving en beleid.

583
00:32:24,960 --> 00:32:26,360
En de stelling luidt als volgt.

584
00:32:26,820 --> 00:32:32,260
De zorgverlener is altijd eindverantwoordelijk bij inzet van AI in het zorgproces.

585
00:32:35,520 --> 00:32:37,200
ik zou heel kort kunnen zeggen

586
00:32:37,340 --> 00:32:37,860
ja dat klopt

587
00:32:39,000 --> 00:32:39,940
maar dat is omdat ik

588
00:32:41,780 --> 00:32:42,960
door de ervaring met de AI

589
00:32:43,720 --> 00:32:45,680
en ook de wetgeving tegenwoordig

590
00:32:46,640 --> 00:32:48,060
we mogen binnen Europa

591
00:32:48,300 --> 00:32:50,440
al AI niet zelfstandig een besluit laten nemen

592
00:32:50,620 --> 00:32:53,020
dus automatisch betekent dat eigenlijk wel

593
00:32:53,060 --> 00:32:54,300
dat degene die het gebruikt

594
00:32:54,460 --> 00:32:56,360
de verantwoordelijkheid draagt voor wat daar gebeurt

595
00:32:57,060 --> 00:32:58,180
en ik mag hopen dat de AI

596
00:32:58,260 --> 00:32:59,420
dan zodanig is gebouwd

597
00:32:59,640 --> 00:33:00,759
dat er ook even gecheckt wordt

598
00:33:01,900 --> 00:33:03,600
dus in dit geval zou ik zeggen

599
00:33:03,610 --> 00:33:05,680
als mijn huisarts dat bijvoorbeeld zou gebruiken

600
00:33:06,260 --> 00:33:08,160
zou ik zeggen ja, je bent wel verantwoordelijk

601
00:33:08,160 --> 00:33:09,560
jij bent degene met verstand van zaken

602
00:33:09,590 --> 00:33:12,060
die AI, die doet maar wat

603
00:33:12,660 --> 00:33:12,780
eigenlijk

604
00:33:14,960 --> 00:33:15,800
helder verhaal

605
00:33:15,940 --> 00:33:16,280
zeker

606
00:33:18,240 --> 00:33:19,280
even terug naar

607
00:33:20,040 --> 00:33:21,780
de LLM applicaties

608
00:33:22,460 --> 00:33:23,720
als mensen nou zouden

609
00:33:23,890 --> 00:33:25,860
willen beginnen, ja dan beginnen ze met het kopen van je boek

610
00:33:27,120 --> 00:33:28,540
links staat in de show notes

611
00:33:28,770 --> 00:33:29,359
maar even

612
00:33:30,180 --> 00:33:31,240
Hoe begin je?

613
00:33:31,340 --> 00:33:33,300
Want de opstap naar de agents.

614
00:33:33,580 --> 00:33:35,760
Zeker als je het op deze manier maakt.

615
00:33:35,840 --> 00:33:36,780
Is best wel groot.

616
00:33:37,740 --> 00:33:38,960
Dat is zeker waar.

617
00:33:40,700 --> 00:33:42,500
Ik heb zelf ook in mijn boek gekozen.

618
00:33:42,500 --> 00:33:43,360
Voor de opbouw.

619
00:33:44,460 --> 00:33:46,200
Begin eerst eens met een enkele prompt.

620
00:33:47,520 --> 00:33:48,480
Dus bouwen.

621
00:33:49,260 --> 00:33:50,300
Dus als we het even houden.

622
00:33:50,440 --> 00:33:52,480
Ik wil zelf zo'n programma.

623
00:33:52,640 --> 00:33:53,500
Vanaf begin bouwen.

624
00:33:54,360 --> 00:33:55,140
Dan zou ik zeggen.

625
00:33:55,380 --> 00:33:57,420
Begin met een eenvoudige webapplicatie.

626
00:33:57,560 --> 00:33:58,820
Waarbij je één prompt.

627
00:33:59,260 --> 00:34:00,860
met behulp van een taalmodel verwerkt.

628
00:34:02,559 --> 00:34:04,420
Wat bijvoorbeeld heel interessant kan zijn,

629
00:34:04,640 --> 00:34:07,560
als jij een content website aan het bouwen bent met C-Sharp,

630
00:34:07,600 --> 00:34:08,820
zou je bijvoorbeeld kunnen zeggen,

631
00:34:09,560 --> 00:34:12,520
ik moet een samenvatting hebben voor mijn SEO in Google,

632
00:34:13,260 --> 00:34:14,760
die laat ik door AI genereren.

633
00:34:14,860 --> 00:34:16,659
Daar ga ik dan Cement in Kernel voor gebruiken.

634
00:34:17,300 --> 00:34:19,880
Dan kun je er rustig aan wennen aan hoe dat werkt.

635
00:34:20,040 --> 00:34:23,780
Dan heb je nog geen tools, je hebt nog geen nauwelijks monitoring nodig eigenlijk.

636
00:34:25,159 --> 00:34:27,360
Je hebt ook geen moeilijkheden met verschillende modellen,

637
00:34:27,460 --> 00:34:28,760
want eigenlijk ieder model is goed.

638
00:34:30,280 --> 00:34:31,639
daar kun je dan heel mooi mee beginnen

639
00:34:31,780 --> 00:34:33,360
en dan kun je hem langzaamaan uitbreiden

640
00:34:33,500 --> 00:34:34,260
door bijvoorbeeld te zeggen

641
00:34:34,860 --> 00:34:35,679
ja maar voor die content

642
00:34:36,780 --> 00:34:38,719
heb ik geen zin om de hele content op te schrijven

643
00:34:39,260 --> 00:34:42,020
ik ga puntsgewijs content opschrijven

644
00:34:42,100 --> 00:34:43,679
en dan wil ik dat de AI dat gaat uitbreiden

645
00:34:43,780 --> 00:34:45,159
dus dan kun je een tweede punt pakken

646
00:34:45,760 --> 00:34:48,659
en eventueel zeggen van ja ik ga daar dan gereedschap bij halen

647
00:34:49,100 --> 00:34:50,918
dus dat zit ook in mijn boek ook heel erg die opbouw

648
00:34:50,980 --> 00:34:51,639
omdat ik denk van

649
00:34:52,619 --> 00:34:53,418
anders wordt het wel

650
00:34:53,580 --> 00:34:55,880
het zijn heel veel bewegende delen eigenlijk dit onderwerp

651
00:34:57,020 --> 00:34:58,259
dus dit helpt daar wel bij

652
00:34:58,280 --> 00:35:00,820
Als je het een beetje gelaagd opbouwt, dan kom je er wel uit, denk ik.

653
00:35:01,130 --> 00:35:02,600
En je zegt, heb je je boek ook opgebouwd?

654
00:35:02,800 --> 00:35:06,220
Neem je in het boek ook de lezer mee in een voorbeeld situatie?

655
00:35:06,270 --> 00:35:11,620
Of geef je juist die opdracht mee van bedenk eentje die past bij de lezer van het boek?

656
00:35:12,080 --> 00:35:13,340
Dat is heel erg lastig.

657
00:35:14,899 --> 00:35:17,659
Toen ik begon aan het boek, had ik dat eerst wel in mijn hoofd zitten.

658
00:35:17,820 --> 00:35:21,600
Ik ga één voorbeeld applicatie laten zien hoe je dat doet.

659
00:35:22,899 --> 00:35:26,080
Alleen alle verschillende concepten bouwen wel op elkaar voort.

660
00:35:26,260 --> 00:35:29,420
Maar als jij als einddoel een agent in gedachten hebt.

661
00:35:29,520 --> 00:35:31,020
Dat had ik namelijk als scenario.

662
00:35:31,960 --> 00:35:33,220
Dan is het bij semantic kernel.

663
00:35:33,960 --> 00:35:34,960
Dan begin je met een agent.

664
00:35:35,120 --> 00:35:36,020
En dan kun je de rest overslaan.

665
00:35:36,120 --> 00:35:37,340
Dat is heel flauw.

666
00:35:37,380 --> 00:35:38,360
Hij gebruikt dat intern.

667
00:35:38,540 --> 00:35:40,700
Dus dat maakt het wel eenvoudig natuurlijk.

668
00:35:41,000 --> 00:35:42,380
Als je echt professioneel bezig wilt.

669
00:35:42,940 --> 00:35:44,320
Maar aan de andere kant, daar leer je niks van.

670
00:35:44,920 --> 00:35:47,800
Dus ik heb een aantal losse voorbeelden erin staan.

671
00:35:47,920 --> 00:35:51,280
Dus bij ieder hoofdstuk staat er wel een voorbeeld wat je kan uitproberen.

672
00:35:52,020 --> 00:35:53,560
En ik heb er ook heel bewust voor gekozen.

673
00:35:53,740 --> 00:35:56,500
Om de voorbeelden op GitHub gewoon als open source aan te bieden.

674
00:35:56,680 --> 00:35:57,620
Doe ermee wat je wilt.

675
00:35:58,920 --> 00:36:00,340
Dus daar zit ook een hele leuke voorbeeld.

676
00:36:00,340 --> 00:36:03,360
Er zit ook een chatbot bij die je in principe zou kunnen uitrollen.

677
00:36:04,120 --> 00:36:05,080
Maar hij is niet beveiligd.

678
00:36:05,120 --> 00:36:07,760
Dus dat is het enige puntje van aandacht.

679
00:36:07,860 --> 00:36:09,760
Wat ik dan de mensen nog even mee moet geven vanaf hier.

680
00:36:11,380 --> 00:36:13,800
Maar ik heb dus echt wel verschillende ideeën neergezet.

681
00:36:13,940 --> 00:36:16,200
En ik denk eigenlijk dat het ook wel beter uitpakt.

682
00:36:16,680 --> 00:36:21,080
Omdat je dan ook doorkrijgt wat eigenlijk de breedte is van het onderwerp waar we het over hebben.

683
00:36:21,500 --> 00:36:29,660
Het is echt wel met het doel om langzaam stapjes bij te leren, te groeien en dan eigenlijk te gaan ervaren wat voor uitdagingen er op je afkomen.

684
00:36:30,220 --> 00:36:31,540
En die dan met elkaar te tackelen.

685
00:36:33,120 --> 00:36:40,460
Wat is nou het verschil met de handleiding die Microsoft eigenlijk gewoon geeft bij dit framework?

686
00:36:44,460 --> 00:36:47,160
Ik wil Microsoft zeker niet tekort doen in dit verhaal.

687
00:36:47,220 --> 00:36:51,560
Maar in het begin was de handleiding heel moeilijk te volgen.

688
00:36:51,640 --> 00:36:56,860
Hij was heel zo van ga hier kijken, ga daar kijken, ga daar kijken, ga daar kijken.

689
00:36:56,960 --> 00:36:58,380
Dus je werd alle kanten opgestuurd.

690
00:37:00,080 --> 00:37:02,060
En het is heel erg beperkt.

691
00:37:02,420 --> 00:37:06,640
Dus semantic kernel gebruiken met de handleiding, dan weet je een soort van,

692
00:37:06,840 --> 00:37:08,740
oh ja, dit is waar de knoppen zitten op het dashboard.

693
00:37:09,640 --> 00:37:11,060
Maar dat maak je nog niet ervaren.

694
00:37:11,560 --> 00:37:14,320
Dus wat ik heb geprobeerd in mijn boek is ook om aan te geven van

695
00:37:14,660 --> 00:37:16,820
Microsoft biedt deze en deze optie aan.

696
00:37:17,160 --> 00:37:20,840
Om bijvoorbeeld een tool te bouwen hebben ze wel vijf verschillende mogelijkheden.

697
00:37:21,780 --> 00:37:24,480
Maar ik weet uit ervaring dat alleen deze twee goed zijn.

698
00:37:24,980 --> 00:37:27,760
Dus in mijn boek zul je ook niet alle opties uit de handleiding vinden.

699
00:37:27,920 --> 00:37:32,220
Ik heb er bewust van gekozen om die opties aan te bieden waarvan ik denk,

700
00:37:32,780 --> 00:37:38,540
die zijn nuttig en die zijn van toepassing voor mensen die een enterprise-achtige applicatie willen bouwen.

701
00:37:39,580 --> 00:37:42,040
Ik ben geen boekenschrijver en ik zit hier met twee boekenschrijvers.

702
00:37:42,120 --> 00:37:43,620
Dus misschien dat het een hele domme vraag is.

703
00:37:44,720 --> 00:37:46,040
Ik heb je wel eens gehoord van je vorige boek.

704
00:37:46,120 --> 00:37:47,420
Dat was best wel een bevalling.

705
00:37:47,720 --> 00:37:49,300
Dat was best wel wat werk en dat soort zaken.

706
00:37:49,340 --> 00:37:52,800
Maar wat heeft je dan toch doen starten met je volgende boek?

707
00:37:53,599 --> 00:37:56,280
Oh ja, ik heb daar geen goede verklaring voor.

708
00:37:56,440 --> 00:37:57,980
Het is emotioneels denk ik.

709
00:38:00,460 --> 00:38:01,440
Ja, dat is het denk ik wel.

710
00:38:01,600 --> 00:38:03,780
Het is ook het gevoel van...

711
00:38:04,080 --> 00:38:08,720
De aanleiding van dit boek was toch wel een hoop frustratie over dat...

712
00:38:08,920 --> 00:38:11,280
Ik word ongeveer twintig keer per dag gebeld door mensen.

713
00:38:11,460 --> 00:38:12,760
Ik weet niet of het helemaal twintig keer is.

714
00:38:12,880 --> 00:38:14,580
Maar ik word heel vaak gebeld.

715
00:38:15,120 --> 00:38:17,420
Willem, we hebben hier bij deze klant een heel leuk idee.

716
00:38:18,060 --> 00:38:19,260
We willen daar AI voor inzetten.

717
00:38:19,740 --> 00:38:22,080
Wil jij even langskomen om ons te helpen?

718
00:38:22,640 --> 00:38:25,020
Nou, ik vind het allemaal heel erg cool.

719
00:38:25,560 --> 00:38:27,680
Maar natuurkundig gaat dat niet meer op den duur.

720
00:38:28,920 --> 00:38:31,800
En ik merkte ook wel dat ik er ook wel een beetje op leeg aan het lopen was.

721
00:38:31,870 --> 00:38:36,220
Om elke keer mensen daar steeds maar te helpen met ieder stapje die ze aan het nemen waren.

722
00:38:36,820 --> 00:38:38,700
En toen dacht ik, ja maar wacht even.

723
00:38:38,790 --> 00:38:41,739
Als ik het nou opschrijf, dan kan ik tegen mensen zeggen van...

724
00:38:42,000 --> 00:38:43,100
Ik wil je best helpen.

725
00:38:43,170 --> 00:38:45,840
Maar misschien is het handiger om eerst even mijn boek te lezen.

726
00:38:47,740 --> 00:38:48,920
Dan heb je in ieder geval een soort.

727
00:38:49,180 --> 00:38:50,960
Dan heb je mijn verhaal op een rijtje.

728
00:38:51,360 --> 00:38:52,580
En dan kun je daarna de rest wel vragen.

729
00:38:52,920 --> 00:38:54,160
Ja, dus een papieren kloon.

730
00:38:54,720 --> 00:38:56,800
Op een gat van informatie.

731
00:38:56,980 --> 00:38:57,720
Slash ervaring.

732
00:38:58,280 --> 00:38:58,980
Die je hebt opgedaan.

733
00:38:59,140 --> 00:39:00,280
Die dus eigenlijk ontbrak.

734
00:39:00,879 --> 00:39:03,700
Die je zover je kan klonen op dit moment op papier.

735
00:39:04,110 --> 00:39:05,040
Dus mogelijk heeft gemaakt.

736
00:39:05,040 --> 00:39:06,620
Ja, want echt klonen dat ging niet.

737
00:39:06,760 --> 00:39:08,680
Dat heeft onze CTO wel geprobeerd.

738
00:39:08,820 --> 00:39:09,880
Die had nog gebeld met China.

739
00:39:10,339 --> 00:39:10,800
Beweert hij.

740
00:39:10,960 --> 00:39:12,220
Dat weet ik niet zeker of dat zo is.

741
00:39:13,620 --> 00:39:14,720
Maar dat gaat natuurlijk niet.

742
00:39:15,800 --> 00:39:17,140
Dus daar is het eigenlijk uit voortgekomen.

743
00:39:17,300 --> 00:39:19,560
Daarom dacht ik op een gegeven moment in januari...

744
00:39:19,940 --> 00:39:21,340
Ja, ik ga het ook gewoon weer doen.

745
00:39:21,650 --> 00:39:21,920
Ach ja.

746
00:39:22,980 --> 00:39:24,180
Maar ik heb wel dingen aangepast.

747
00:39:24,820 --> 00:39:26,920
Mijn eerste boek was samen met een uitgever.

748
00:39:27,660 --> 00:39:30,040
En dat moest best wel onder druk geproduceerd worden.

749
00:39:30,960 --> 00:39:32,500
Dat vond ik echt wel heel erg lastig.

750
00:39:32,700 --> 00:39:35,620
Dan merkte ik ook op mezelf dat ik daar behoorlijk weerstand tegen ervaarde.

751
00:39:36,400 --> 00:39:38,519
En ik heb dit keer gekozen voor een aanpak zonder uitgever.

752
00:39:40,000 --> 00:39:42,080
Ik weet echt nog niet hoe dat gaat uitpakken.

753
00:39:42,170 --> 00:39:44,300
Tot nog toe gaat eigenlijk de verkoop best wel goed.

754
00:39:44,760 --> 00:39:45,580
Dan ben ik heel tevreden.

755
00:39:46,980 --> 00:39:49,620
Maar ik merk ook dat een uitgever...

756
00:39:49,620 --> 00:39:51,460
die geeft je ook extra ondersteuning.

757
00:39:51,540 --> 00:39:52,320
En die mis ik nu allemaal.

758
00:39:53,180 --> 00:39:55,100
Maar gelukkig heb ik goede vrienden zoals Joop.

759
00:39:55,500 --> 00:39:57,040
En mijn familie die meelezen.

760
00:39:57,160 --> 00:39:58,280
En collega's die meelezen.

761
00:39:58,940 --> 00:39:59,860
En wat ik had gedaan.

762
00:40:00,820 --> 00:40:02,480
Wat denk ik ook wel een mooie tip is hier.

763
00:40:03,560 --> 00:40:05,680
Ik heb hoofdstuk 1 direct uitgebracht.

764
00:40:06,280 --> 00:40:07,820
Ik ben direct begonnen met publiceren.

765
00:40:08,600 --> 00:40:09,320
En dat is supereng.

766
00:40:10,360 --> 00:40:12,240
de eerste keer dacht ik, oh wat heb ik nou weer gedaan

767
00:40:13,780 --> 00:40:14,480
maar dat helpt

768
00:40:14,680 --> 00:40:16,060
want mensen gaan het hoofdstuk lezen

769
00:40:16,240 --> 00:40:17,600
en die komen dan bij je terug, ik snap het niet

770
00:40:18,100 --> 00:40:20,620
oh ja, oké, dan moet ik het toch nog even anders insteken

771
00:40:20,700 --> 00:40:22,540
en dat kan dan gewoon, je kan gewoon terug gaan

772
00:40:22,980 --> 00:40:24,540
zolang het nog digitaal is kun je terug

773
00:40:25,339 --> 00:40:26,520
en dan kun je het aanpassen

774
00:40:26,680 --> 00:40:28,380
dat is wel heel mooi aan deze vorm

775
00:40:28,580 --> 00:40:29,960
van schrijven vind ik

776
00:40:31,320 --> 00:40:32,480
inmiddels is hij ook op papier

777
00:40:32,560 --> 00:40:33,980
te krijgen, dus nou ben ik het bokje

778
00:40:34,120 --> 00:40:36,160
nou moet ik iets anders bedenken

779
00:40:36,260 --> 00:40:38,159
maar ik denk ook dat nu de tijd rijp is

780
00:40:38,180 --> 00:40:41,600
Dus dat de tempo waarmee ik dingen aanpas gaat wat naar beneden.

781
00:40:41,960 --> 00:40:43,160
Ik ben er ook wel een beetje klaar mee hoor.

782
00:40:43,700 --> 00:40:44,980
Het was ook dit keer weer een bevalling.

783
00:40:45,700 --> 00:40:48,180
Maar ik ben wel een stuk tevredener dan over het vorige boek.

784
00:40:50,300 --> 00:40:54,900
Nou en wat ik weet is dat, want Samantha Kunnel is in ontwikkeling.

785
00:40:55,100 --> 00:40:57,560
En ze komen iedere keer features bij.

786
00:40:57,720 --> 00:41:01,520
Dat Willem best heel vaak de voorbeelden heeft moeten aanpassen.

787
00:41:03,460 --> 00:41:06,560
Omdat iets weer niet werkte of dat iets uit preview kwam.

788
00:41:07,940 --> 00:41:10,360
En dat gaat ongetwijfeld nog een keer gebeuren.

789
00:41:11,580 --> 00:41:12,660
Ik geef dat ook aan in mijn boek.

790
00:41:12,840 --> 00:41:16,020
Sommige delen zijn echt heel erg instabiel.

791
00:41:16,160 --> 00:41:18,420
Dus daar kun je maar zo zijn dat volgende week even niet werkt.

792
00:41:20,260 --> 00:41:21,720
En de andere delen zijn wel heel stabiel.

793
00:41:21,860 --> 00:41:23,340
Dus het wisselt ook heel snel.

794
00:41:23,440 --> 00:41:26,360
Ik heb hoofdstuk 7, zo even, ja dat was hoofdstuk 7.

795
00:41:26,700 --> 00:41:27,580
Die heb ik drie keer opnieuw gemaakt.

796
00:41:28,620 --> 00:41:30,800
Gewoon hele grote stukken van het hoofdstuk weg moeten gooien.

797
00:41:30,920 --> 00:41:32,560
Omdat er echt helemaal niets meer van klopte.

798
00:41:33,180 --> 00:41:36,400
En als we dan even kijken, wat is je doelgroep waar je het voor geschreven hebt?

799
00:41:36,820 --> 00:41:38,560
Is dat voor de techneut?

800
00:41:42,000 --> 00:41:47,900
Ja, mensen zeggen wel eens van ja, als je bij Willem in de buurt komt, moet je toch wel echt heel technisch onderlegd zijn.

801
00:41:48,820 --> 00:41:51,340
Ja, dit is echt voor techneuten bedoeld, voor software engineers.

802
00:41:52,340 --> 00:41:58,260
Ik denk, als je echt durft, dan moet je vooral lezen als je helemaal niks met techniek hebt.

803
00:41:59,120 --> 00:42:04,120
Er zitten ook hele blokken tussen met uitleg over wat een LLM is en hoe de statistiek in elkaar zit.

804
00:42:04,480 --> 00:42:05,920
Dat is misschien ook wel leuk om te lezen.

805
00:42:06,500 --> 00:42:08,280
maar het is wel echt gericht op softwareontwikkelaars.

806
00:42:08,540 --> 00:42:10,300
Dus voor de luisteraars die zelf niet technisch

807
00:42:10,460 --> 00:42:11,840
onderlegd zijn, geef hem aan je team

808
00:42:12,639 --> 00:42:13,920
om inderdaad in te zetten.

809
00:42:14,220 --> 00:42:16,100
Want als het goed is is er wel duidelijk geworden

810
00:42:16,580 --> 00:42:18,200
waarvoor je het kan inzetten en zie je de waarde

811
00:42:18,200 --> 00:42:19,000
voor je organisatie.

812
00:42:20,240 --> 00:42:22,140
Begin zelf met lezen en geef hem daarna door

813
00:42:22,280 --> 00:42:24,140
aan je development team om daar mooie

814
00:42:24,360 --> 00:42:24,960
stappen uit te halen.

815
00:42:25,670 --> 00:42:28,060
En de link staat in de show notes voor het bestellen

816
00:42:28,140 --> 00:42:29,120
van het boek. Leuk.

817
00:42:30,000 --> 00:42:31,240
Dankjewel Willem. Graag gedaan.

818
00:42:34,360 --> 00:42:35,940
Leuk dat je weer luisterde naar deze aflevering.

819
00:42:40,720 --> 00:42:41,700
Tot de volgende keer.


People on this episode