1
00:00:00,150 --> 00:00:02,870
Um komplexe Probleme mit 
künstlicher Intelligenz zu 

2
00:00:02,870 --> 00:00:06,670
lösen, sind der neueste Schrei 
im Moment AI Agents. 

3
00:00:06,910 --> 00:00:10,590
Dabei werden viele kleine, 
hochspezialisierte AIS gebaut, 

4
00:00:10,590 --> 00:00:13,710
die dann untereinander chatten, 
um Probleme zu lösen und dabei 

5
00:00:13,710 --> 00:00:16,750
sogar Code aufrufen oder auch 
selber schreiben können. 

6
00:00:17,150 --> 00:00:20,190
Wie das funktioniert und wie man
solche Agents baut, darum geht 

7
00:00:20,190 --> 00:00:29,080
es in dieser Folge. 
Und damit herzlich willkommen zu

8
00:00:29,080 --> 00:00:34,640
Folge 92 des to do Developer 
Podcast mit Robin Manuel Thiel 

9
00:00:34,640 --> 00:00:39,400
und mir malte lantin ich freue 
mich, dass wir wieder zum Thema 

10
00:00:39,400 --> 00:00:41,680
künstliche Intelligenz 
zusammenkommen. 

11
00:00:41,840 --> 00:00:45,680
Wir haben es in den letzten 
Folgen immer wieder gehabt, aber

12
00:00:45,680 --> 00:00:49,840
man kommt aktuell kaum drum 
herum und ich meine das Thema 

13
00:00:49,840 --> 00:00:53,680
Agents hatten wir ja schon hier 
und dort erwähnt, von daher 

14
00:00:53,920 --> 00:00:56,040
freue ich mich darauf, dass wir 
es heute mal ein bisschen im 

15
00:00:56,040 --> 00:00:58,120
Detail. 
Diskutieren können. 

16
00:00:58,920 --> 00:01:01,960
Aber bevor wir ins Thema 
einsteigen, natürlich erst mal 

17
00:01:01,960 --> 00:01:06,270
hier unsere Hausnotizen. 
Zu Beginn der Folge, und da 

18
00:01:06,550 --> 00:01:09,990
wollen wir uns natürlich es 
nicht nehmen lassen, uns zu 

19
00:01:09,990 --> 00:01:13,150
bedanken für diejenigen, die uns
einen Kaffee ausgegeben haben, 

20
00:01:13,270 --> 00:01:18,670
und das sind heute Hendrik mit 
einem Kaffee und Norman mit 3 

21
00:01:18,670 --> 00:01:20,910
Kaffee. 
Vielen. 

22
00:01:21,120 --> 00:01:23,280
Auch von meiner Seite. 
Wir freuen uns immer sehr, in 

23
00:01:23,320 --> 00:01:25,000
der letzten Folge ging es um 
offline first. 

24
00:01:25,000 --> 00:01:28,560
Das hat euch gut gefallen. 
Ich war auch ein bisschen 

25
00:01:28,560 --> 00:01:32,670
unterwegs letzte Woche. 
Ich war in der Schweiz und 

26
00:01:32,670 --> 00:01:36,190
demnach muss man da immer 2 
Kaffee zusammenrechnen um sich 

27
00:01:36,190 --> 00:01:38,230
einen echten Kaffee in der 
Schweiz leisten zu können. 

28
00:01:38,430 --> 00:01:40,550
Ich hab sie dann aber trotzdem 
genutzt, also ganz lieben dank, 

29
00:01:40,550 --> 00:01:44,030
ich hab an euch gedacht, als ich
im café saß, haben wir uns sehr 

30
00:01:44,030 --> 00:01:47,330
gefreut, Dankeschön. 
Ja, und gerade in dieser Woche 

31
00:01:47,330 --> 00:01:50,850
hab ich mir dann auch das erste 
Mal in diesem Jahr einen eiscafé

32
00:01:51,050 --> 00:01:55,370
dann gegönnt und von daher 
vielen Dank auch von meiner 

33
00:01:55,370 --> 00:01:57,930
Seite. 
Dafür hilft uns auf jeden Fall 

34
00:01:58,170 --> 00:02:01,690
die Motivation ganz 
hochzuhalten, diesen Bereich 

35
00:02:02,010 --> 00:02:06,650
Höhen Kopf zu bewahren und jede 
zweite Woche eine neue Folge des

36
00:02:06,650 --> 00:02:10,250
Podcasts zu produzieren. 
Und ja, die Themen gehen uns 

37
00:02:10,250 --> 00:02:15,170
nicht aus und Ai lässt uns nicht
los und dementsprechend heute 

38
00:02:15,170 --> 00:02:18,280
das Thema. 
Agents und da ist du Robin, 

39
00:02:18,280 --> 00:02:20,640
Manu, dich ein bisschen 
intensiver mit beschäftigt, von 

40
00:02:20,640 --> 00:02:25,120
daher bin ich froh heute von dir
was lernen zu können, aber 

41
00:02:25,120 --> 00:02:28,320
vielleicht zum Einstieg in das 
Thema einfach mal so mein 

42
00:02:28,320 --> 00:02:31,320
Verständnis warum man das Ganze 
braucht und korrigiere mich 

43
00:02:31,320 --> 00:02:36,440
gerne und dann führen wir das 
Ganze zusammen und zwar gibt es 

44
00:02:36,440 --> 00:02:40,840
ja schon viele KI basierte 
Chatsysteme, wir kennen alle 

45
00:02:40,880 --> 00:02:44,320
Chat GPS, wir kennen 
spezialisierte Systeme für zum 

46
00:02:44,320 --> 00:02:47,240
Beispiel du hattest gerade 
erwähnt die Software Entwicklung

47
00:02:47,240 --> 00:02:51,030
dort wahrscheinlich das Problem.
Beispiel github copilot wo wir 

48
00:02:51,030 --> 00:02:54,790
ein Chat Interface haben, wo wir
mit einer KI interagieren und 

49
00:02:54,790 --> 00:02:58,910
diese KI basiert in der Regel 
auf Large Language Models, die 

50
00:02:58,910 --> 00:03:02,710
eigentlich General Purpose 
Modelle sind, die auf extrem 

51
00:03:02,710 --> 00:03:06,230
viel Sprachen trainiert wurden, 
natürlicher Sprache, 

52
00:03:06,230 --> 00:03:09,630
Programmiersprache und damit 
ganz viele Aufgaben sehr gut 

53
00:03:09,630 --> 00:03:11,430
erledigen können. 
Die Modelle werden natürlich 

54
00:03:11,430 --> 00:03:15,710
immer besser, wir haben ja vor 
kurzem das Release zum Beispiel 

55
00:03:15,710 --> 00:03:19,720
von Gptv gesehen, welches? 
Welches in einer sehr hohen 

56
00:03:19,720 --> 00:03:23,240
Geschwindigkeit viele Aufgaben 
sehr gut erledigen kann. 

57
00:03:23,840 --> 00:03:28,360
Aber natürlich stößt das Ganze 
teilweise an Grenzen, wenn es um

58
00:03:29,080 --> 00:03:33,800
Spezialwissen geht, wenn es um 
bestimmte Aufgaben geht, wo man 

59
00:03:33,800 --> 00:03:37,640
vielleicht erstmal in Echtzeit 
wissen abrufen muss. 

60
00:03:38,910 --> 00:03:40,950
In manchen Bereichen geht das 
mittlerweile. 

61
00:03:41,030 --> 00:03:44,430
Wenn man jetzt Chat GPT hat, 
kann Chat GPT ja zum Beispiel 

62
00:03:44,430 --> 00:03:47,950
schon aufs Internet zugreifen, 
dort Informationen abrufen, aber

63
00:03:47,950 --> 00:03:49,910
es gibt natürlich viele 
Szenarien, gerade im 

64
00:03:50,030 --> 00:03:54,470
Unternehmenskontext, oder? 
Wenn es um spezielle Szenarien 

65
00:03:54,470 --> 00:03:56,230
wie die Softwareentwicklung 
geht, wo ich vielleicht aus 

66
00:03:56,230 --> 00:03:59,590
dritt systeminformationen 
brauche, von denen das Modell 

67
00:03:59,590 --> 00:04:03,470
nichts weiß und wo ich letzten 
Endes viele verschiedene 

68
00:04:03,470 --> 00:04:07,670
Informationen zusammenbringen 
muss, um eine gute Antwort zu 

69
00:04:07,670 --> 00:04:09,710
kriegen. 
Und zum anderen habe ich die 

70
00:04:09,710 --> 00:04:14,880
Herausforderung, dass ich häufig
immer komplexer werdende 

71
00:04:14,880 --> 00:04:18,079
Szenarien habe, wo ich die 
Herausforderung habe, dass 

72
00:04:18,079 --> 00:04:21,480
vielleicht meine Prompts immer 
länger werden und auch da das 

73
00:04:21,640 --> 00:04:27,800
Modell an die Grenzen gerät. 
Wirklich eine gute Antwort zu 

74
00:04:27,800 --> 00:04:29,920
liefern, insbesondere weil diese
Antworten ja immer länger 

75
00:04:29,920 --> 00:04:31,680
werden. 
Wir haben halt einen immer 

76
00:04:31,680 --> 00:04:34,920
größeren. 
Kontext zur Verfügung. 

77
00:04:34,920 --> 00:04:37,560
Das heißt, wir können immer mehr
Reingeben und auch die Antwort 

78
00:04:37,560 --> 00:04:41,600
wird immer größer, aber an 
bestimmten Stellen gerät man 

79
00:04:41,600 --> 00:04:44,440
dann natürlich an die Grenzen, 
wenn es darum geht, 

80
00:04:44,720 --> 00:04:47,680
Informationen hereinzuliefern 
und daher brauchen wir 

81
00:04:47,880 --> 00:04:52,080
spezielle. 
Plugins oder Agents? 

82
00:04:52,790 --> 00:04:56,230
Die es uns ermöglichen, diese 
spezialisierten Informationen 

83
00:04:56,230 --> 00:04:59,430
reinzuholen und auch aus 
verschiedenen Quellen aus zu 

84
00:04:59,430 --> 00:05:01,350
verschiedenen Themen 
Informationen zusammenzustellen,

85
00:05:01,350 --> 00:05:04,790
wie die dann wiederum am Ende 
als Gesamtantwort zu mir 

86
00:05:04,790 --> 00:05:08,110
zurückkommen, das ist mein 
Verständnis der Herausforderung 

87
00:05:08,110 --> 00:05:10,950
und warum man diese Systeme 
braucht. 

88
00:05:12,190 --> 00:05:14,830
Ist das aus deinem aus deiner 
Sicht so weit korrekt oder 

89
00:05:14,830 --> 00:05:18,030
würdest du es bisschen anders 
einordnen oder fehlen da noch 

90
00:05:18,030 --> 00:05:20,590
Aspekte? 
Nee, das gehört schon alles in 

91
00:05:20,590 --> 00:05:23,270
in diese Welt der Ages. 
Zu was du gesagt hast, ne, also 

92
00:05:23,430 --> 00:05:26,230
klar, dass man auch über externe
Daten in so n Modell reinbringen

93
00:05:26,230 --> 00:05:29,470
muss, da haben wir auch schon 
mal in Folge 80 als er zu Rack, 

94
00:05:29,470 --> 00:05:31,910
also Retrieval Augmented 
Generation gesprochen haben. 

95
00:05:32,790 --> 00:05:35,510
Ne ganze Folge zugemacht. 
Also es gibt immer wieder so 

96
00:05:35,510 --> 00:05:38,390
Techniken und Tools, wie man 
auch mehr wissen in solche Large

97
00:05:38,390 --> 00:05:42,440
Language Models hereinbringt. 
Aber Agents würde ich gar nicht 

98
00:05:42,440 --> 00:05:45,280
sagen, das sind diese ganzen 
Tools, sondern Agents nutzen 

99
00:05:45,280 --> 00:05:47,680
eher diese ganzen Tools und 
Mechanismen. 

100
00:05:48,390 --> 00:05:52,590
Um dann autonom, und das ist 
ganz, ganz wichtig, Aufgaben zu 

101
00:05:52,590 --> 00:05:54,070
lösen. 
Also ich definier mir ja agents 

102
00:05:54,070 --> 00:05:57,270
immer so n bisschen so, das sind
quasi so Software Bausteine, die

103
00:05:57,270 --> 00:06:00,110
autonom mit Hilfe von Large 
Language Models wie zum Beispiel

104
00:06:00,110 --> 00:06:04,150
GPT 4. 
Aufgaben erledigen also anders 

105
00:06:04,150 --> 00:06:07,510
als traditionelle Software, die 
immer einem bestimmten Ablauf 

106
00:06:07,510 --> 00:06:09,910
folgt, den, den die Software 
Entwicklerin, der 

107
00:06:09,910 --> 00:06:12,990
Softwareentwickler ja dann 
irgendwie gebaut hat, lösen 

108
00:06:12,990 --> 00:06:16,830
Agents eben autonome Workflows. 
Also das läuft so n bisschen so,

109
00:06:16,830 --> 00:06:20,990
dass ich quasi für so einen 
Gruppenchat mehr oder weniger so

110
00:06:20,990 --> 00:06:25,230
die definiere, was für AI 
Gesprächspartner es gibt und 

111
00:06:25,230 --> 00:06:28,430
dann lasse ich aber auch in 
diesem Chat eine andere AI zum 

112
00:06:28,430 --> 00:06:31,830
Beispiel entscheiden, welcher 
Gesprächspartner denn wann zu 

113
00:06:31,830 --> 00:06:34,470
Wort kommt und basierend auf 
ihrem Verständnis von der Welt 

114
00:06:34,470 --> 00:06:37,350
entscheiden diese Agents dann 
unter sich, wie sie Probleme 

115
00:06:37,350 --> 00:06:40,750
lösen und ich habe dann da eben 
in diesem Chat. 

116
00:06:41,560 --> 00:06:44,280
Da kann auch da können auch 
Menschen mitwirken, also human 

117
00:06:44,280 --> 00:06:46,360
in The Loop nennt man das. 
Das ist auf jeden Fall auch ein 

118
00:06:46,360 --> 00:06:49,840
Bestandteil davon, aber. 
In diesem Chat habe ich dann 

119
00:06:49,840 --> 00:06:53,320
eben ganz viele oder ganz viele,
weiß ich gar nicht, aber mehrere

120
00:06:53,320 --> 00:06:59,000
spezialisierte Chat Teilnehmer, 
also diese AI Agents eben, die 

121
00:06:59,160 --> 00:07:03,520
durch ihren ihren Meta prompt 
durch die Tools die 

122
00:07:03,520 --> 00:07:07,240
Wissensdatenbanken, die Sie zur 
Verfügung haben durch das Modell

123
00:07:07,240 --> 00:07:11,070
was sie benutzen. 
Für eine ganz bestimmte Aufgabe 

124
00:07:11,070 --> 00:07:16,830
eben Hochspezialisiert sind. 
Und meine Software, die letzten 

125
00:07:16,830 --> 00:07:21,070
Endes dazwischen steht, die weiß
basierend vielleicht auf 

126
00:07:21,070 --> 00:07:25,390
irgendwelchen Keywords oder 
triggern, welcher Agent an 

127
00:07:25,390 --> 00:07:30,110
welcher Stelle zum Tragen kommt 
oder entscheidet das das Large 

128
00:07:30,110 --> 00:07:32,630
Language Model, also wie hieß 
der Datenfluss, weil im 

129
00:07:32,630 --> 00:07:38,110
einfachsten Fall, wenn ich mit 
so etwas wie Chpt oder Copilot 

130
00:07:38,110 --> 00:07:41,670
rede, dann geht ja mein Input an
das Large changles Model und da 

131
00:07:41,670 --> 00:07:45,040
kommt eine Antwort zurück, also.
Das ist ja ein relativ einfacher

132
00:07:45,040 --> 00:07:47,520
Mechanismus. 
An welcher Stelle klingt denn 

133
00:07:47,520 --> 00:07:51,240
dann mit welcher Logik die 
Agents ein und soweit ich das 

134
00:07:51,240 --> 00:07:53,760
gesehen habe, gibt es da ja auch
dann 2 Varianten, einmal die 

135
00:07:53,760 --> 00:07:56,360
Variante wo das völlig im 
Hintergrund passiert, das heißt 

136
00:07:56,360 --> 00:07:58,000
ich kriege da als User 
vielleicht gar nichts von mit, 

137
00:07:58,000 --> 00:08:02,200
sondern ich habe quasi nur einen
Gesprächspartner und die 

138
00:08:02,200 --> 00:08:05,040
Variante, wo ich tatsächlich 
entweder einfach markiert habe, 

139
00:08:05,040 --> 00:08:08,280
wo kommt diese Antwort her, 
quasi dort hat sich jetzt quasi 

140
00:08:08,280 --> 00:08:12,520
ein Spezialistin Spezialist 
eingeklinkt oder ich bekomme die

141
00:08:12,520 --> 00:08:15,120
Antwort zurück und sagt Hey, die
Informationen stammt da und da. 

142
00:08:16,230 --> 00:08:20,510
Wo klinken sich diese Agents in 
diese ganze Kommunikation ein? 

143
00:08:20,790 --> 00:08:23,830
Ja, da gibt es mehrere. 
Also das entscheidet am am Ende 

144
00:08:23,830 --> 00:08:25,750
der Developer ne. 
Also da gibt es mehrere 

145
00:08:25,750 --> 00:08:27,350
Herangehensweisen. 
Ich kann entweder sagen, das 

146
00:08:27,350 --> 00:08:31,470
folgt einem ganz festen Flow. 
Oder die Variante, die du gerade

147
00:08:31,470 --> 00:08:33,870
gesagt hast. 
Ich lasse den den menschlichen 

148
00:08:33,870 --> 00:08:39,070
User entscheiden, wann welcher 
Agent hinzugezogen werden soll. 

149
00:08:39,470 --> 00:08:43,789
Oder ich lasse komplett noch mal
ne AI entscheiden, wann welcher 

150
00:08:43,789 --> 00:08:47,190
Agent hinzugezogen werden soll. 
Ich geb dir mal n Beispiel, wir 

151
00:08:47,190 --> 00:08:49,910
haben vor n paar folgen und ich 
mein ne niemand kennt es besser 

152
00:08:49,910 --> 00:08:51,550
als du malte ich hab du bist 
einer der wenigen Menschen ich 

153
00:08:51,550 --> 00:08:53,790
kenn die schon Zugriff darauf 
haben wir haben vor n paar 

154
00:08:53,790 --> 00:08:57,070
folgen über github Copilot 
Workspace gesprochen, ganz kurz 

155
00:08:57,070 --> 00:08:59,710
als Reminder gerne die ganze 
Folge nochmal anhören aber ganz 

156
00:08:59,710 --> 00:09:04,590
kurz als Reminder man stellt 
einen Issue ein bei github und 

157
00:09:04,590 --> 00:09:08,310
dann folgt dann wird ein 
bestimmter Workflow getriggert 

158
00:09:08,310 --> 00:09:12,110
der dieses dann automatisiert 
lösen soll da geht der erste 

159
00:09:12,110 --> 00:09:15,670
Agent hin und sagt Pass auf ich 
erstelle. 

160
00:09:15,760 --> 00:09:19,160
Dir jetzt mal ein Verständnis 
davon im ist Zustand, denn dein 

161
00:09:19,320 --> 00:09:22,720
Projekt hat und dem soll Zustand
denn dein Projekt erreichen 

162
00:09:22,720 --> 00:09:24,680
soll. 
Das macht ein Agent, das heißt 

163
00:09:24,680 --> 00:09:28,040
da ist irgendein Large Language 
Model zusammen mit einem prompt 

164
00:09:28,120 --> 00:09:30,000
zusammen mit Zugriff auf dein 
Reporsutorial. 

165
00:09:30,000 --> 00:09:32,760
Was genau für diese Aufgabe 
getrimmt wurde und da wirst du 

166
00:09:32,760 --> 00:09:35,080
als Mensch ja gefragt, ob du da 
Feedback zu hast oder ob das so 

167
00:09:35,080 --> 00:09:37,640
passt. 
Und dann ergibst du, dann gibst 

168
00:09:37,640 --> 00:09:40,360
du das quasi weiter an den 
zweiten Agent, der dann diesen 

169
00:09:40,360 --> 00:09:42,870
Plan erstellt und. 
Und dieser Plan sagt dann 

170
00:09:42,870 --> 00:09:45,910
wirklich OK, um dann diesen 
Sollzustand zu erreichen, 

171
00:09:45,910 --> 00:09:49,990
müssten wir folgende Codedateien
anfassen und in denen Logik 

172
00:09:49,990 --> 00:09:52,550
hinzufügen oder löschen, die ich
jetzt mal wie folgt beschreibe 

173
00:09:52,630 --> 00:09:55,310
und auch dann wirst du als als 
Human in The Loop wieder 

174
00:09:55,310 --> 00:09:56,350
gefragt. 
Passt das so? 

175
00:09:56,790 --> 00:09:58,950
Und dann wird das in den dritten
Agent übergeben, der 

176
00:09:58,950 --> 00:10:00,670
Hochspezialisiert darauf ist, 
Code zu schreiben. 

177
00:10:00,670 --> 00:10:02,390
Und vielleicht nutzt er ja n 
ganz anderes Modell ne, 

178
00:10:02,390 --> 00:10:04,430
vielleicht nutzt er ja wie Codex
im Hintergrund und die anderen 

179
00:10:04,430 --> 00:10:07,110
nutzen GPT 4 oder vielleicht hat
man die Erfahrung gemacht, dass 

180
00:10:07,110 --> 00:10:09,310
dieser ist Zustand mit Lama 
wahnsinnig gut abzubilden. 

181
00:10:09,310 --> 00:10:12,230
Es ist ist um mit ner bestimmten
Promptanweisung und und und so 

182
00:10:12,230 --> 00:10:14,710
weiter. 
Das heißt, bei Gitter Copilen 

183
00:10:14,710 --> 00:10:18,470
Workspace oder auch bei Devil AI
folgt das ja einem ganz klaren 

184
00:10:18,870 --> 00:10:21,830
Ablauf. 
Jetzt gibt es aber auch Gitarre,

185
00:10:21,830 --> 00:10:24,710
copalle, Chat ja zum Beispiel, 
wo ich einfach in der IDI mit 

186
00:10:24,710 --> 00:10:27,790
meinem Code chatten kann und 
dann könnte ich ja sagen, hey, 

187
00:10:28,470 --> 00:10:30,870
ich müsste jetzt, ich brauch 
jetzt keine Ahnung. 

188
00:10:32,640 --> 00:10:35,720
Was wäre denn der beste Ort, um 
diese Datenstruktur zu 

189
00:10:35,720 --> 00:10:37,560
speichern? 
Und dann sagt die Guitar Copilot

190
00:10:37,720 --> 00:10:40,800
ja, das wäre am besten in der 
Post resk Datenbank und dann 

191
00:10:40,800 --> 00:10:44,560
könntest du dir den den Agent 
von Deinem Cloud Provider, also 

192
00:10:44,560 --> 00:10:47,200
wie Abs oder sowas mit 
Dazuziehen und dann sagen sagst 

193
00:10:47,200 --> 00:10:49,960
du einfach in deinem Chat at aws
hey kannst du mir so eine 

194
00:10:49,960 --> 00:10:53,280
Postkreisdatenbank dann mal 
deployen und diese AWS Agent ist

195
00:10:53,280 --> 00:10:57,080
dann halt der kennt dann halt 
deine deinen Cloud Zugang und 

196
00:10:57,080 --> 00:11:01,360
der weiß dann der ist dann halt 
hoch drauf spezialisiert solche 

197
00:11:01,360 --> 00:11:04,960
Deployments in die Cloud zu 
machen, das heißt da sagst da 

198
00:11:04,960 --> 00:11:08,360
fügst du als Mensch hinzu wann 
welcher Agent gecallt werden 

199
00:11:08,360 --> 00:11:10,080
soll. 
Es gibt doch noch eine dritte 

200
00:11:10,080 --> 00:11:12,120
Variante wenn ich jetzt sage 
keine Ahnung ich. 

201
00:11:12,320 --> 00:11:13,520
Möchte. 
Ich habe jetzt einen Kalender 

202
00:11:13,520 --> 00:11:15,440
planner geschrieben und ich 
möchte zwischen deinem und 

203
00:11:15,440 --> 00:11:19,150
meinem Kalender. 
Irgendwie nen nen Termin finden 

204
00:11:19,150 --> 00:11:21,710
der beiden passt. 
Dann geb ich das in in so n Chat

205
00:11:21,710 --> 00:11:25,390
rein und da ist vielleicht eine 
Agent drin der der der der 

206
00:11:25,390 --> 00:11:27,870
Zugriff auf auf auf Kalender hat
und sich die Kalendertermine 

207
00:11:27,870 --> 00:11:31,110
Fedgt das ist n zweiter Agent 
drin der der diese diese diese 

208
00:11:31,110 --> 00:11:32,470
Vergleiche hat, da ist n dritter
A. 

209
00:11:32,590 --> 00:11:34,510
Agent drin, der vielleicht 
checken kann, dass es keine gute

210
00:11:34,510 --> 00:11:38,470
Idee ist, dass wir um 23:00 Uhr 
irgendwie n Call haben, es sei 

211
00:11:38,470 --> 00:11:40,550
denn, wir müssen, wir müssen die
letzte Folge kurz vor knapp dem 

212
00:11:40,550 --> 00:11:43,150
Podcast aufnehmen, aber ne, du 
verstehst glaub ich was ich 

213
00:11:43,150 --> 00:11:44,470
meine. 
Also es gibt alle 3 Varianten wo

214
00:11:44,470 --> 00:11:48,070
das nen festen Workflow folgt wo
ich als user entscheide wann ich

215
00:11:48,070 --> 00:11:50,630
da vielleicht welchen Agent 
hinzufüge oder wo ne AI 

216
00:11:50,630 --> 00:11:54,590
entscheidet unter dem Wissen 
welche Agents es denn so gibt, 

217
00:11:54,910 --> 00:11:58,990
wann was oder wann wann welcher 
Agent mit in diese Konversation 

218
00:11:58,990 --> 00:12:01,470
reingebracht werden soll und der
liest dann und die lesen dann 

219
00:12:01,470 --> 00:12:03,470
natürlich auch die bestehende 
Chat Historie mit. 

220
00:12:04,520 --> 00:12:07,080
Ja, aus dieser dritten Variante.
2 Beispiele, so aus meinem 

221
00:12:07,080 --> 00:12:10,560
Alltag. 
Zum einen, wenn ich irgendwie in

222
00:12:10,560 --> 00:12:15,240
Chat GP t eine URL hinterlasse, 
dann erkennt das System, dass es

223
00:12:15,240 --> 00:12:17,720
einen Abruf dieser Seite machen 
muss, um dort Informationen 

224
00:12:17,720 --> 00:12:21,520
einzusammeln oder auch wenn ich 
mit github Copilot Interagiere 

225
00:12:21,520 --> 00:12:25,560
auf github.com auf der Webseite 
und dann nach einem issue Inhalt

226
00:12:25,560 --> 00:12:29,960
frage, dann wird unter der Haube
ein spezieller Agent verwendet 

227
00:12:29,960 --> 00:12:33,560
um halt über die Github API die 
Informationen zu zielen. 

228
00:12:33,710 --> 00:12:36,750
Was halt in den entsprechenden 
Issues drin steht und für mich 

229
00:12:36,750 --> 00:12:40,830
als User ist das nur ein 
Interface, mit dem ich dort 

230
00:12:40,830 --> 00:12:42,550
agiere. 
Also das ist ja auch im 

231
00:12:42,550 --> 00:12:45,270
Hintergrund, dass dort 
verschiedene Agents zum Einsatz 

232
00:12:45,270 --> 00:12:48,030
kommen, aber wie du gesagt 
hattest, basierend auf. 

233
00:12:48,990 --> 00:12:53,670
Irgendeine Art von 
Entscheidungsimplementierung? 

234
00:12:53,670 --> 00:12:58,230
Das kann ja einfach irgendwie ne
ganz einfache Erkennung von 

235
00:12:58,230 --> 00:13:00,070
Keywords sein. 
Es kann aber auch wieder n 

236
00:13:00,070 --> 00:13:03,350
anderes Sprachmodell sein, was 
basierend auf bestimmte 

237
00:13:03,630 --> 00:13:06,670
bestimmte Informationen eine 
Klassifizierung vornimmt. 

238
00:13:06,910 --> 00:13:08,390
Genau. 
Und es muss auch kein Agent 

239
00:13:08,390 --> 00:13:11,030
sein, der da aufgerufen wird. 
Wenn du in chatsybutton url 

240
00:13:11,030 --> 00:13:15,630
eingibst. 
Vielleicht kann Jgpt das Modell 

241
00:13:15,630 --> 00:13:18,190
oder die Anwendung einfach die 
Fähigkeiten URL aufzurufen und 

242
00:13:18,190 --> 00:13:20,990
den Content dann sich 
reinzuziehen, aber es kann sein,

243
00:13:20,990 --> 00:13:23,430
dass es unter der Haube auch 
noch andere Agent weitergeben 

244
00:13:23,430 --> 00:13:25,590
wird, das heißt, das wird ja 
dann mir als Developer meiner 

245
00:13:25,590 --> 00:13:26,950
Anwendung überlassen, ob ich 
diese. 

246
00:13:27,800 --> 00:13:30,640
Diese verschiedenen Agency unter
sich dann eine Problemlösung 

247
00:13:30,640 --> 00:13:33,280
ausmachen, ob ich das an den 
User hoch Bubble lasse und dem 

248
00:13:33,280 --> 00:13:37,600
das überhaupt visualisiere oder 
ob ich vielleicht am Ende, wenn 

249
00:13:37,600 --> 00:13:40,400
da 34 Agents irgendwie eine 
coole Lösung gebaut haben, ob 

250
00:13:40,400 --> 00:13:43,120
ich dann einfach eine Summary 
von diesem ganzen Chat Historie 

251
00:13:43,120 --> 00:13:46,440
generiere und das an den User 
Weiterleite, das bleibt mir 

252
00:13:46,440 --> 00:13:48,160
überlassen. 
Aber erstmal ist diese Technik 

253
00:13:48,320 --> 00:13:51,400
verschiedene kleine AI Bausteine
zu haben die Hochspezialisiert 

254
00:13:51,400 --> 00:13:55,440
sind und die miteinander reden 
zu lassen, das sind Agents und 

255
00:13:55,440 --> 00:13:58,150
warum macht man das? 
Weil man einfach gemerkt hat, 

256
00:13:58,150 --> 00:13:59,750
dass das bessere Ergebnisse 
bringt. 

257
00:13:59,750 --> 00:14:02,910
Also wenn man, wenn ich jetzt 
das Beispiel Podcaster hinnehme,

258
00:14:02,910 --> 00:14:05,270
wir hören ja gerade diesen 
Podcast und jetzt könnt ich 

259
00:14:05,270 --> 00:14:07,990
jetzt zum Beispiel die eine neue
Folge von diesem Podcast hier 

260
00:14:07,990 --> 00:14:09,670
komplett von einer AI skrippen 
lassen. 

261
00:14:10,110 --> 00:14:12,590
Das heißt ich würde dann nen nen
langen prompt schreiben wo ich 

262
00:14:12,590 --> 00:14:15,870
beschreibe wer ist der malte, 
was kann der alles, was weiß der

263
00:14:15,870 --> 00:14:18,230
alles und wie ist so seine 
Persönlichkeit, wer ist der 

264
00:14:18,230 --> 00:14:20,190
Robin Manuel, was kann der 
alles, was weiß der alles, wie 

265
00:14:20,190 --> 00:14:22,910
ist seine Persönlichkeit, worum 
geht es im Podcast allgemein, 

266
00:14:22,910 --> 00:14:25,870
worum soll es in dieser Folge 
gehen, wie lang soll die Folge 

267
00:14:25,870 --> 00:14:28,190
sein, was gibt es denn für 
Audioeinspielungen, wie viele 

268
00:14:28,190 --> 00:14:33,150
Sprecherwechsel, was hat was für
Komponenten hat der Podcast und 

269
00:14:33,150 --> 00:14:36,150
so weiter das heißt sehr viele 
Informationen in einem großen 

270
00:14:36,150 --> 00:14:40,110
prompt, das würde gehen, aber 
das gibt am Ende schlechtere 

271
00:14:40,110 --> 00:14:44,000
Ergebnisse als. 
Wenn man den kleinen LMS ganz 

272
00:14:44,000 --> 00:14:46,960
klare Anweisungen gibt, das 
heißt, ich könnte zum Beispiel 

273
00:14:46,960 --> 00:14:50,680
folgende Agents erstellen, 
einmal den Agent malte mit einem

274
00:14:50,680 --> 00:14:53,960
personifizierten prompt darüber,
wie du bist, wie deine 

275
00:14:53,960 --> 00:14:56,720
Persönlichkeit bist, was du 
weißt, vielleicht auch mit ner 

276
00:14:56,720 --> 00:15:00,680
RAG Komponente für maltes wissen
und vielleicht irgendwie sogar 

277
00:15:00,680 --> 00:15:02,880
kann ich Code generieren für die
Programmiersprachen, die du 

278
00:15:02,880 --> 00:15:05,280
beherrschst. 
Dasselbe mache ich für mich, 

279
00:15:05,840 --> 00:15:07,800
dann könnte es doch ein Agent 
geben, der wäre so der 

280
00:15:07,800 --> 00:15:10,360
Audiomixer, das heißt, der 
erkennt, wenn vielleicht das 

281
00:15:10,360 --> 00:15:13,400
Intro eingespielt werden soll 
oder diese Yeah, die wir haben, 

282
00:15:13,400 --> 00:15:15,520
wenn uns jemand einen Kaffee 
ausgibt und der. 

283
00:15:15,680 --> 00:15:17,960
Bekommt dann Zugriff auf eine 
Audiolibrary und der kann dann 

284
00:15:17,960 --> 00:15:19,400
wirklich nur das. 
Das heißt der Scan. 

285
00:15:20,950 --> 00:15:23,310
War alles den Chat, der bisher 
passiert und sagt, Boah jetzt 

286
00:15:23,310 --> 00:15:26,710
bin glaub ich ich dran und spiel
das das Intro ein und da gibt es

287
00:15:26,710 --> 00:15:29,070
bestimmt noch nen vierten Agent 
so n bisschen diesen Orchestra 

288
00:15:29,070 --> 00:15:31,350
oder kann man im Podcast Umfeld 
auch wenn man den auch irgendwie

289
00:15:31,350 --> 00:15:34,750
Moderator nennen der dann nach 
mehr oder weniger freiem Willen 

290
00:15:34,750 --> 00:15:37,990
diese Agency called und 
entscheidet wann ist denn der 

291
00:15:37,990 --> 00:15:41,310
Zeitpunkt wann ich weiß ich 
nicht sag ich mal den den 

292
00:15:41,310 --> 00:15:45,030
Redestab an Robin Manuel oder an
den Malte übergebe oder? 

293
00:15:46,760 --> 00:15:51,080
Möchte ich hier nochmal weiter 
nachhaken und wenn und dem Malte

294
00:15:51,080 --> 00:15:53,800
Agent vielleicht noch mal einen 
weiteren prompt geben, weil ich 

295
00:15:53,800 --> 00:15:57,240
das Gefühl habe, dass das Thema 
noch tiefer erläutert werden 

296
00:15:57,240 --> 00:16:01,320
soll und so weiter und diese 4 
Agents, die würden sich wie in 

297
00:16:01,320 --> 00:16:04,600
so whatsapp Gruppen Chat dann im
Prinzip eigentlich unterhalten 

298
00:16:04,600 --> 00:16:07,200
und was am Ende rauskommt die 
Chat Historie, das wäre dann 

299
00:16:07,200 --> 00:16:10,600
eigentlich dieses Podcast 
Skript, was man dann eventuell 

300
00:16:10,600 --> 00:16:13,160
sogar irgendeine AI geben kann, 
die das dann laut vorliest. 

301
00:16:15,240 --> 00:16:17,040
Wir haben ja schon mal gesagt, 
Ai wird vielleicht irgendwann 

302
00:16:17,040 --> 00:16:19,400
alle unsere Jobs ersetzen, wird 
also unsere podcaster Jobs 

303
00:16:19,480 --> 00:16:21,560
werden, wenn dann von diesen 
Agenturen. 

304
00:16:21,710 --> 00:16:24,870
Setzt aber wie gesagt, was Agent
Frameworks eigentlich lösen, 

305
00:16:25,110 --> 00:16:28,350
sind es eben mit kleineren Proms
und spezialisierteren Proms 

306
00:16:28,350 --> 00:16:30,990
bessere Ergebnisse zu liefern. 
Und vielleicht ist es ja 

307
00:16:30,990 --> 00:16:33,630
wirklich so, dass keine Ahnung 
maltes Persönlichkeit von einem 

308
00:16:33,630 --> 00:16:36,270
Lama Model viel besser 
abgebildet wird oder diese. 

309
00:16:36,790 --> 00:16:40,550
Audiomixer Agent der hat, der 
hinter dem steckt, vielleicht 

310
00:16:40,550 --> 00:16:42,670
gar kein Large Language Model, 
sondern der hat einfach nur die 

311
00:16:42,670 --> 00:16:45,670
Möglichkeit, wenn man dem sagt. 
Jo Jo, das war jetzt da das 

312
00:16:45,670 --> 00:16:48,950
Intro Spiel mal die Intromusik 
ein, dann hat der kann der 

313
00:16:48,950 --> 00:16:51,190
einfach auf auf irgend ne 
Audiolibry zugreifen oder 

314
00:16:51,190 --> 00:16:53,110
irgendwas. 
Das heißt, man kann eben auch 

315
00:16:53,110 --> 00:16:54,350
verschiedene Modelle 
kombinieren. 

316
00:16:54,350 --> 00:16:57,710
Vielleicht ist 1 ja gefinet und 
so weiter das heißt, man man 

317
00:16:57,710 --> 00:16:59,670
guckt wirklich, dass man 
Aufgaben bisschen kleiner macht 

318
00:16:59,670 --> 00:17:03,830
und dann ja diese Agents, wieso 
n kleine Mini Menschen oder 

319
00:17:03,830 --> 00:17:05,750
wirklich ne künstliche 
Intelligenzen? 

320
00:17:05,990 --> 00:17:11,550
Miteinander chatten lässt. 
Letzten Endes sind ja auch die 

321
00:17:12,589 --> 00:17:14,710
du gerade gesagt hast, die 
verschiedenen Charaktere, die 

322
00:17:14,710 --> 00:17:17,310
verschiedenen Fähigkeiten völlig
unterschiedlich und wenn ich mir

323
00:17:17,310 --> 00:17:20,310
das wirklich vorstelle, ich muss
in einen System prompt alle 

324
00:17:20,310 --> 00:17:22,750
diese Informationen reinbringen,
dann. 

325
00:17:23,310 --> 00:17:27,069
Schränkt das natürlich auch den 
den Raum sehr stark ein von dem,

326
00:17:27,069 --> 00:17:29,150
was ich letzten Endes mit dieser
Applikation tun. 

327
00:17:29,230 --> 00:17:31,830
Kann auch ja. 
Genau und ich. 

328
00:17:32,510 --> 00:17:34,430
Mir fällt es natürlich sehr 
schwer, angenommen, wir machen 

329
00:17:34,430 --> 00:17:38,630
jetzt wirklich diesen KI 
generierten Podcast wirklich dem

330
00:17:38,630 --> 00:17:42,430
Sprachmodell die Informationen 
zu geben, die es braucht um 

331
00:17:42,430 --> 00:17:45,390
wirklich so zu sprechen, deine 
Wortwahl zu übernehmen etc. 

332
00:17:45,550 --> 00:17:48,550
Das ist ja wirklich 
spezialisiert und natürlich kann

333
00:17:48,550 --> 00:17:51,870
man jetzt hingehen und schauen 
okay ist das jetzt auch 

334
00:17:51,870 --> 00:17:54,550
vielleicht schon Teil des 
Trainingsets gewesen oder hat 

335
00:17:54,550 --> 00:17:57,430
man ein speziell trainiertes 
Modell oder gibt man diese 

336
00:17:57,430 --> 00:18:00,920
Information? 
Über den System prompt irgendwie

337
00:18:00,920 --> 00:18:04,200
rein und da brauche ich 
natürlich relativ viel Input, 

338
00:18:04,200 --> 00:18:07,800
damit das Sprachmodell dann am 
Ende genauso spricht, wie du es 

339
00:18:07,800 --> 00:18:09,720
tun würdest. 
Wir haben das ja mal 

340
00:18:09,720 --> 00:18:13,680
spaßeshalber für so eine Podcast
Folge in Chat GPT ausprobiert 

341
00:18:13,880 --> 00:18:18,200
und da sieht man dann auch am 
Ende, dass vielleicht wir beide 

342
00:18:18,200 --> 00:18:21,520
eigentlich genau gleich oder 
sehr ähnlich sprechen oder 

343
00:18:21,520 --> 00:18:24,680
zumindest nicht so, wo wir, wie 
wir es in der Realität tun 

344
00:18:24,680 --> 00:18:26,790
würden. 
Und wenn wir jetzt alle diese 

345
00:18:26,790 --> 00:18:30,230
Informationen schon am Anfang 
auf einmal reingeben muss, wird 

346
00:18:30,230 --> 00:18:33,310
das von der Qualität 
offensichtlich schlecht. 

347
00:18:33,310 --> 00:18:36,190
Einfach ähnlicher ne, weil ich 
in denselben prompt sowohl deine

348
00:18:36,190 --> 00:18:38,430
als auch meine charakterlichen 
Eigenschaften reinfüge. 

349
00:18:38,870 --> 00:18:40,950
Und ne, wenn man so n bisschen 
versteht, wieso n Large Angry 

350
00:18:40,950 --> 00:18:43,750
funktioniert, dann wird eben 
alles was in dem prompt ist dazu

351
00:18:43,750 --> 00:18:46,030
genommen, um die 
Wahrscheinlichkeit des nächsten 

352
00:18:46,030 --> 00:18:47,910
Tokens der ausgespuckt wird zu 
berechnen. 

353
00:18:48,030 --> 00:18:50,310
Und ne wenn ich da 3 
verschiedene Persönlichkeiten 

354
00:18:50,310 --> 00:18:53,790
reinfüge, dann werden die halt 
schon auch alle sich angeschaut 

355
00:18:53,790 --> 00:18:56,310
um diesen ersten Token zu 
rechnen, das heißt es hat schon 

356
00:18:56,310 --> 00:18:58,390
auch einen Einfluss, auch wenn 
ich natürlich sagen kann, immer 

357
00:18:58,390 --> 00:19:01,190
abwechselnd Persönlichkeit a 
Persönlichkeit b, aber man hat 

358
00:19:01,190 --> 00:19:03,470
einfach bessere Ergebnisse 
gesehen, wenn man das eben diese

359
00:19:03,670 --> 00:19:07,630
2 komplett individuellen Prompts
aufteilt und das vielleicht wie 

360
00:19:07,630 --> 00:19:10,390
gesagt auch sogar noch von 
anderen Modellen. 

361
00:19:11,480 --> 00:19:13,280
Lässt aber diese Agents haben 
eben nicht nur andere Modelle, 

362
00:19:13,280 --> 00:19:14,600
sondern vielleicht einfach auch 
Zugriff auf andere 

363
00:19:14,600 --> 00:19:17,400
Wissensdatenbanken. 
Auf andere Tools, können Code 

364
00:19:17,880 --> 00:19:20,000
ausführen oder vielleicht 
generieren und solche Sachen. 

365
00:19:21,800 --> 00:19:25,160
Ich glaube, das ist insoweit 
alles nachvollziehbar, wenn es 

366
00:19:25,160 --> 00:19:28,400
um die einzelnen Agents geht. 
Aber die große Herausforderung, 

367
00:19:28,400 --> 00:19:31,880
glaube ich, liegt dann am Ende 
in dieser Orchestrierung. 

368
00:19:31,880 --> 00:19:34,880
Wie führe ich das Ganze zusammen
und wie Sorge ich dafür, dass 

369
00:19:34,880 --> 00:19:37,920
bei einem bestimmten Input ein 
bestimmter Plan ausgeführt wird.

370
00:19:38,160 --> 00:19:39,520
Planen muss man sich jetzt nicht
unbedingt. 

371
00:19:40,470 --> 00:19:45,310
Vorstellen, wie es bei bei Devon
oder bei bei Workspace ist, 

372
00:19:45,310 --> 00:19:49,390
sondern tatsächlich ein Plan im 
Sinne von wenn ich jetzt Input 

373
00:19:49,390 --> 00:19:52,990
gebe, welche Agents werden wann 
aufgerufen und wenn wir jetzt 

374
00:19:52,990 --> 00:19:55,630
noch mal an uns, an das Podcast 
Beispiel zurückerinnern, du hast

375
00:19:55,630 --> 00:19:59,470
ja auch über diesen Orchestra 
gesprochen, also wie ruft der 

376
00:19:59,470 --> 00:20:02,550
Orchestra dann die einzelnen 
Chat Teilnehmer auf um dann halt

377
00:20:02,550 --> 00:20:06,190
wirklich so ein Skript zu 
erstellen und ich denke mal da 

378
00:20:06,190 --> 00:20:08,190
liegt in der Implementierung 
eigentlich die größte 

379
00:20:08,190 --> 00:20:11,720
Herausforderung nicht. 
In diesen spezialisierten Agent,

380
00:20:11,720 --> 00:20:15,120
die ja sehr kleinteilig sein 
können, sondern wie kriege ich 

381
00:20:15,120 --> 00:20:18,560
das Ganze so zusammen gebunden, 
dass am Ende eine nahtlose User 

382
00:20:18,560 --> 00:20:21,600
Experience daraus entsteht. 
Ja, im Idealfall wissen diese 

383
00:20:21,600 --> 00:20:23,400
Agents ja gar nicht, dass es 
noch ganz viele andere gibt, 

384
00:20:23,400 --> 00:20:25,840
sondern vielleicht werden die 
auch irgendwie so Microservices 

385
00:20:25,840 --> 00:20:29,920
von verschiedenen Teams gebaut 
und für diese Orchestrierung, da

386
00:20:29,920 --> 00:20:32,600
kommen dann halt so Agent 
Frameworks ins Spiel. 

387
00:20:32,600 --> 00:20:35,480
Also ich habe mir jetzt in 
Vorbereitung zu dieser Folge 

388
00:20:35,480 --> 00:20:39,200
Auto gen angeguckt, das ist ein 
Python Framework, es gibt aber 

389
00:20:39,200 --> 00:20:41,720
ganz viele, also ich habe 
gesehen, also gerade poppen so 

390
00:20:41,720 --> 00:20:45,150
Agentur Agent Framework. 
Aus dem Boden wie javascript 

391
00:20:45,150 --> 00:20:48,390
Frameworks. 
Also es gibt autodef, meta, GPT.

392
00:20:50,120 --> 00:20:52,760
Langchain hat ne Möglichkeit 
Agents zu bauen. 

393
00:20:52,760 --> 00:20:57,320
Open AI hat mit der Assistance 
API was was eigenes gebaut, aber

394
00:20:57,320 --> 00:20:59,840
wie das eigentlich, wie alt 
diese Frameworks unter der Haube

395
00:20:59,840 --> 00:21:02,360
funktionieren ist die bieten wir
dann eben halt an sowas wie 

396
00:21:02,360 --> 00:21:05,840
einen Agent zu definieren, aber 
auch was wie ein Orchestrator zu

397
00:21:05,840 --> 00:21:09,320
definieren und eben mal zu sagen
wie der wie der Gesprächs wieder

398
00:21:09,480 --> 00:21:12,240
wie der Redestab übergeben 
werden soll und wie das aber 

399
00:21:12,240 --> 00:21:14,000
eigentlich technisch 
funktioniert ist, dass ich 

400
00:21:15,040 --> 00:21:18,520
zusammen mit zusammen mit dem 
Agent den, den ich als Developer

401
00:21:18,520 --> 00:21:20,680
irgendwie bauen muss, auch eine 
Beschreibung. 

402
00:21:21,800 --> 00:21:25,840
Diesen Agent generiere also was 
kann der, was ist der, wann soll

403
00:21:25,840 --> 00:21:29,320
der zu Wort kommen, was sind die
Fähigkeiten die er besitzt usw. 

404
00:21:31,080 --> 00:21:34,200
Und dann gebe ich, das ist einer
der vielen, vielen Prompts, die 

405
00:21:34,200 --> 00:21:36,360
in so einer Agent Konversation 
am Ende gegen einen Large 

406
00:21:36,360 --> 00:21:38,960
Language Model geschickt werden,
gebe ich quasi nach jeder 

407
00:21:38,960 --> 00:21:41,920
Antwort von jedem Agent wieder 
in ein neues Large Language 

408
00:21:41,920 --> 00:21:45,590
Model und das ist 1 was relativ.
Performant also, wer relativ 

409
00:21:45,590 --> 00:21:49,710
mächtig sein sein sollte, also 
GPT 4 oder sowas geb ich in das 

410
00:21:49,710 --> 00:21:52,910
Ding rein, pass auf das hier war
die war die bisherige Chat 

411
00:21:52,910 --> 00:21:56,630
Historie, die geb ich in den 
Pomp mit rein an wen möchtest du

412
00:21:56,990 --> 00:22:01,270
als nächstes? 
Die das Wort wenden. 

413
00:22:01,310 --> 00:22:04,590
Und dann gebe ich eine Liste in 
mit in den prompt 3 mit du hast 

414
00:22:04,590 --> 00:22:07,590
folgende Optionen, du könntest 
den Malte Agent Fragen, der weiß

415
00:22:07,590 --> 00:22:10,670
das und das der der hat die und 
die Persönlichkeit, der kann auf

416
00:22:10,670 --> 00:22:12,950
die und die Tools zugreifen, der
hat das und das Wissen. 

417
00:22:13,230 --> 00:22:15,670
Du könntest einen Robin Manuel 
Agent übergeben, der weiß, dass 

418
00:22:15,670 --> 00:22:17,950
und das hat er kann auch die 
Tools zugreifen, das und das 

419
00:22:17,950 --> 00:22:20,310
Wissen. 
Du könntest an den Audiomixer 

420
00:22:20,310 --> 00:22:24,910
Agent übergeben oder du könntest
sagen wir sind fertig und dann. 

421
00:22:26,070 --> 00:22:27,750
Wird das wird dieses Large Ding 
gefordert? 

422
00:22:27,750 --> 00:22:30,510
Wahrscheinlich einfach sagen, 
ich würde gerne an den Malte 

423
00:22:30,510 --> 00:22:36,470
übergeben und den Fragen, was 
was kommt denn als nächstes und 

424
00:22:36,470 --> 00:22:39,990
diese Frameworks, die gehen dann
hin und nehmen diese Antwort und

425
00:22:39,990 --> 00:22:44,190
senden dann was kommt denn als 
nächstes an den Agent malte, das

426
00:22:44,190 --> 00:22:46,030
heißt die interpretieren dann 
die Antwort wieder, die von dem 

427
00:22:46,030 --> 00:22:48,070
Lutsch Language Model kommen, 
was in dem Fall die Entscheidung

428
00:22:48,070 --> 00:22:50,230
getroffen hat, welcher Agent als
nächstes kommt. 

429
00:22:50,990 --> 00:22:52,830
Diese Agent Frameworks haben 
aber natürlich auch die 

430
00:22:52,830 --> 00:22:54,790
Möglichkeit deshalb, dass sie 
sagen an der Stelle möchte ich 

431
00:22:54,790 --> 00:22:59,030
den den User befragen an wen 
weitergegeben werden soll oder? 

432
00:22:59,200 --> 00:23:00,680
An der Stelle möchte ich 
entscheiden, dass die 

433
00:23:00,680 --> 00:23:02,960
Unterhaltung vorbei ist, denn 
das ist ja auch auch eine 

434
00:23:02,960 --> 00:23:05,360
Challenge, auch eine Challenge, 
die diese Frameworks lösen. 

435
00:23:05,360 --> 00:23:08,640
Aber dieses Thema, wenn das in 
dieser Welt termination, also 

436
00:23:08,640 --> 00:23:11,040
wann ist denn die Unterhaltung 
vorbei, also wie erkenne ich 

437
00:23:11,040 --> 00:23:14,440
denn, dass das Problem gelöst 
wurde oder dass man vielleicht 

438
00:23:14,440 --> 00:23:17,200
nicht weiter kommt, und das muss
ja auch irgendwie mit 

439
00:23:17,200 --> 00:23:19,200
implementiert sein, und das kann
ich in diesen Framings dann halt

440
00:23:19,200 --> 00:23:21,040
irgendwie direkt sagen, wenn wir
uns in den Kreis sehen oder wenn

441
00:23:21,040 --> 00:23:23,240
es ein Ping Pong Spiel dreimal 
zwischen den gleichen Agent gab 

442
00:23:23,360 --> 00:23:26,360
und das Large Language Model, 
wenn ich es befrage, nicht der 

443
00:23:26,360 --> 00:23:28,440
Meinung ist, dass das Problem 
schon gelöst wird oder dass die 

444
00:23:28,440 --> 00:23:31,400
Folge vorbei ist oder so weiter 
oder man sagt, ich möchte jetzt 

445
00:23:31,400 --> 00:23:33,920
doch human Human Feedback 
bekommen, man kann. 

446
00:23:34,080 --> 00:23:35,760
Diesen Agent Frameworks 
natürlich, aber auch sagen, dass

447
00:23:35,760 --> 00:23:38,520
für diesen, für diesen 
Anwendungsfall man sich nie 

448
00:23:38,520 --> 00:23:40,680
human Feedback holen soll oder 
kann, weil es vielleicht gar 

449
00:23:40,680 --> 00:23:43,190
nicht möglich ist. 
Und so weiter. 

450
00:23:44,960 --> 00:23:48,440
Wir als Menschen haben ja n 
relativ guten Zwischenspeicher, 

451
00:23:48,440 --> 00:23:50,600
das heißt, ich kann mich 
eigentlich an alles erinnern, 

452
00:23:50,600 --> 00:23:54,040
was wir jetzt in den letzten 20 
Minuten besprochen haben und 

453
00:23:54,040 --> 00:23:56,800
kann darauf zurückgreifen, um 
jetzt meine Antwort zu 

454
00:23:56,800 --> 00:23:59,870
formulieren. 
Wie mache ich das, wenn ich 

455
00:23:59,870 --> 00:24:03,470
solche Orchestrater habe, wo ich
vielleicht n relativ großes 

456
00:24:03,470 --> 00:24:06,910
mächtiges Modell hab, wo ich 
viele Informationen reingeben 

457
00:24:06,910 --> 00:24:09,190
kann? 
Aber wie mache ich das jetzt mit

458
00:24:09,190 --> 00:24:12,790
solchen kleinen spezialisierten 
Modellen, die müssten ja auch. 

459
00:24:13,550 --> 00:24:15,910
Den Kontext haben des gesamten 
Gesprächs. 

460
00:24:15,910 --> 00:24:19,430
Wenn ich jetzt um in unserem 
Podcast Beispiel zu bleiben, den

461
00:24:19,830 --> 00:24:23,470
Robin Manuel Agent Frage, Was 
kommt als nächstes, muss ja an 

462
00:24:23,470 --> 00:24:28,030
der Stelle der komplette Kontext
unseres Gespräches bisher zu 

463
00:24:28,030 --> 00:24:30,270
Verfügung stehen. 
Gibt es da bestimmte 

464
00:24:30,270 --> 00:24:34,030
Technologien, die man da 
einsetzen kann um halt das nicht

465
00:24:34,030 --> 00:24:37,110
zu groß werden zu lassen, weil 
sonst kann ich mir vorstellen, 

466
00:24:37,110 --> 00:24:41,870
dass irgendwann so ein gewisser 
Gedächtnisverlust einsetzt, wenn

467
00:24:41,870 --> 00:24:45,680
dann irgendwann das Gespräch. 
Oder es muss ja kein wirkliches 

468
00:24:45,680 --> 00:24:48,080
Gespräch sein, aber in 
Anführungsstrichen das Gespräch.

469
00:24:48,080 --> 00:24:51,360
Wenn wir jetzt hier bei dart 
Language Modus reden zu lang 

470
00:24:51,360 --> 00:24:53,400
wird. 
Ja klar, es kann ja auch sein, 

471
00:24:53,400 --> 00:24:56,360
dass wir einer unserer Modelle 
ein ganz, ganz kleines Modell 

472
00:24:56,360 --> 00:24:59,880
ist, was gar nicht den den 
Rahmen hat, den sag ich mal, die

473
00:24:59,880 --> 00:25:02,680
komplette, also die komplette 
Kontextgröße hat er sich da 

474
00:25:02,680 --> 00:25:05,200
jetzt die komplette Chat 
Historie mit Reingeben, kann die

475
00:25:05,200 --> 00:25:06,880
Frameworks die ich mir 
angeschaut haben das Problem 

476
00:25:06,880 --> 00:25:09,760
alle schon gelöst, indem ich 
einfach wirklich pro Agent den 

477
00:25:09,760 --> 00:25:11,520
ich da definiere? 
Man kann sich vorstellen Agency 

478
00:25:11,520 --> 00:25:13,960
wie eine Klasse oder wie eine 
Instanz von einer Klasse, die 

479
00:25:13,960 --> 00:25:15,360
ich dann so ein bisschen 
beschreibe, wo ich dann 

480
00:25:15,360 --> 00:25:18,400
Properties mit Reingebe und 
denen kann ich dann sagen, wie 

481
00:25:18,400 --> 00:25:21,200
sollen die den Kontext von der 
bisherigen Unterhaltung bekommen

482
00:25:21,560 --> 00:25:22,760
kann. 
Sagen gib mir einfach die 

483
00:25:22,760 --> 00:25:24,920
komplette bisherige Chat 
Historie rein. 

484
00:25:25,000 --> 00:25:27,000
Manche können das, manche nicht,
für manche ist das vielleicht 

485
00:25:27,000 --> 00:25:29,990
auch sogar. 
Ja, quasi kontraproduktiv. 

486
00:25:30,070 --> 00:25:32,870
Ich kann sagen, gib nur die 
letzte Nachricht mit rein, ich 

487
00:25:32,870 --> 00:25:36,310
könnte sagen gib die letzten 3 
Nachrichten mit rein und alles 

488
00:25:36,310 --> 00:25:39,470
was und von unten ist summary 
von allem was was vorher 

489
00:25:39,470 --> 00:25:41,270
passiert ist. 
Das heißt da wird noch mal kurz 

490
00:25:41,270 --> 00:25:44,390
n mal gefragt fassen wir mal 
diesen Chat zusammen in weiß ich

491
00:25:44,390 --> 00:25:48,150
nicht maximal 100 Wörtern und 
dann packe ich das mit rein, das

492
00:25:48,150 --> 00:25:52,030
heißt auch das muss ich als 
developer steuern bis ich also 

493
00:25:52,030 --> 00:25:53,750
du merkst schon bis ich dahin 
komme, dass ich eine 

494
00:25:53,750 --> 00:25:57,310
funktionierende Konversation 
zwischen mehr als 2 Parteien 

495
00:25:57,310 --> 00:26:00,560
habe ist das ganz schön viel 
testen und ausprobieren und 

496
00:26:00,560 --> 00:26:04,400
schauen, wie was was 
funktioniert denn da für diese 

497
00:26:04,400 --> 00:26:06,560
Unterhaltung oder für diesen 
Agent am besten. 

498
00:26:06,560 --> 00:26:09,480
Manche sind vielleicht total 
verwirrt davon, wenn sie 50 Chat

499
00:26:09,480 --> 00:26:12,760
Nachrichten bekommen, kommt aber
auch auf Newscase an, wenn ich 

500
00:26:12,760 --> 00:26:15,080
jetzt den Summary Agent habe, 
dann will ich dem natürlich so 

501
00:26:15,080 --> 00:26:17,880
viele Details wie möglich 
reingeben können und so weiter. 

502
00:26:19,640 --> 00:26:22,360
Wo du gerade sagst, testen wir 
sprechen ja jetzt hier über 

503
00:26:22,360 --> 00:26:26,040
irgendwelche statistischen 
Systeme zufallsbasiert oder 

504
00:26:26,040 --> 00:26:29,160
zumindest nicht zufallsbasiert, 
aber zumindest wahrscheinlich. 

505
00:26:29,270 --> 00:26:33,150
Als basiert werden dort 
Informationen zurückgegeben und 

506
00:26:33,630 --> 00:26:37,630
bei dem gleichen Beginn oder bei
der gleichen Anfrage kann ja der

507
00:26:37,830 --> 00:26:41,830
Verlauf unterschiedlich 
durchgeführt werden. 

508
00:26:42,070 --> 00:26:43,870
Wie teste ich sowas denn 
sinnvoll? 

509
00:26:44,350 --> 00:26:47,150
Ja, das ist die große Frage, 
weil es ist halt nicht mehr 

510
00:26:47,150 --> 00:26:49,270
deterministisch. 
Ne, ich hab ja normalerweise in 

511
00:26:49,270 --> 00:26:51,390
der Softwareentwicklung, kann 
ich ja den Code testen, weil es 

512
00:26:51,390 --> 00:26:54,550
immer den gleichen Ablauf folgt,
hier weniger ich kann. 

513
00:26:55,230 --> 00:26:58,350
Für die Testphase n bisschen mit
Parametern umspielen und sagen 

514
00:26:58,350 --> 00:27:01,270
sei mal weniger kreativ, da gibt
es sowas wie wie Temperatur und 

515
00:27:01,270 --> 00:27:02,710
Top P. 
Das sind so Werte mit denen man 

516
00:27:02,710 --> 00:27:05,750
spielen kann, die könnte man 
ganz niedrig schalten, da kriegt

517
00:27:05,750 --> 00:27:08,110
man nen halbwegs 
deterministischen Ablauf, aber 

518
00:27:08,110 --> 00:27:09,870
kann natürlich auch nur den 
einen Test. 

519
00:27:10,630 --> 00:27:13,070
In der Regel ist es aber so, 
dass man in diesen, dass wenn 

520
00:27:13,070 --> 00:27:15,270
man für diese Tests dann stand 
heute, es gibt auch keine 

521
00:27:15,270 --> 00:27:17,070
richtig gute Lösung dafür, 
zumindest keinen, die mir 

522
00:27:17,070 --> 00:27:19,430
bekannt ist. 
So bisschen Custom Logik 

523
00:27:19,430 --> 00:27:21,790
schreibt, dass man so grob 
absteckt, ob das was das 

524
00:27:21,790 --> 00:27:24,510
sinnvoll ist, was rausgekommen 
ist und dann aber auch fürs 

525
00:27:24,510 --> 00:27:28,030
Testen wieder. 
Large language Model befragt. 

526
00:27:28,030 --> 00:27:31,630
Man kann ja sagen, Pass auf, das
war jetzt das Ergebnis von 

527
00:27:31,630 --> 00:27:33,750
diesen, wie diese Agents sich 
unterhalten haben. 

528
00:27:35,350 --> 00:27:38,990
Bewerte doch mal selber wie wie 
wie findest du das Ergebnis und 

529
00:27:38,990 --> 00:27:41,470
da sind Lautstänke eigentlich 
ziemlich gut da drin. 

530
00:27:41,950 --> 00:27:43,870
Wenn ich jetzt irgendwie keine 
Ahnung ich hab n paar Agents und

531
00:27:43,870 --> 00:27:46,150
die machen meinen nächsten 
Urlaub aus weil dir der eine ist

532
00:27:46,150 --> 00:27:48,790
gut in Flüge buchen, der andere 
kann Hotels planen der der der 

533
00:27:48,790 --> 00:27:52,550
vierte hat tolle Wanderrouten 
was weiß ich dass man im 

534
00:27:52,550 --> 00:27:55,510
Längshotel fragen kann Hey das 
Ergebnis ist das ein Reiseplan 

535
00:27:56,150 --> 00:27:58,710
und wenn die jetzt komplett Müll
erzählt haben dann sind 

536
00:27:58,710 --> 00:28:02,510
Solarstellungen ganz gut da drin
das zu erkennen und sagen nee 

537
00:28:02,510 --> 00:28:04,670
also da sehe ich gerade keinen 
Reiz oder der Fehler komplett 

538
00:28:04,670 --> 00:28:07,520
die Flügel. 
Oder du sagst natürlich, 

539
00:28:07,520 --> 00:28:09,880
idealerweise ist es ein 
Reiseplan, was sowohl Flüge als 

540
00:28:09,880 --> 00:28:12,120
auch Hotel als auch Aktivitäten 
beinhaltet. 

541
00:28:12,160 --> 00:28:14,360
Mindestens so und so viel Tage 
ist wie der User Reingegeben 

542
00:28:14,360 --> 00:28:18,040
hat, die können sich ganz gut 
selber überprüfen, aber du 

543
00:28:18,040 --> 00:28:23,000
merkst schon so richtig knackig 
boolean Yes no Test bestanden, 

544
00:28:23,000 --> 00:28:25,000
Test nicht bestanden, mäßig ist 
das stand heute nicht, also das 

545
00:28:25,000 --> 00:28:28,160
ist schon noch sehr viel 
manuelles menschliches Testen 

546
00:28:28,360 --> 00:28:31,880
und das wird vor allem dann 
schwierig, wenn ich noch 

547
00:28:31,880 --> 00:28:34,720
weitergehe und diese Agents eben
nicht nur chatten lasse. 

548
00:28:35,150 --> 00:28:37,830
Sondern also ne. 
Also chatten heißt die können 

549
00:28:37,830 --> 00:28:40,390
einfach auf ihr Large Angriff 
Model Hinzugreifen zugreifen, 

550
00:28:40,590 --> 00:28:45,590
sondern Agents werden ja dann 
cool wenn sie selber noch 

551
00:28:45,590 --> 00:28:47,510
irgendwie knowledge irgendwo 
abrufen können. 

552
00:28:47,510 --> 00:28:50,390
Über RAG Das war das Thema was 
wir in Folge 80 mal gesprochen 

553
00:28:50,390 --> 00:28:54,390
haben auf den eigenen Daten, 
aber was man so Agents heute 

554
00:28:54,390 --> 00:28:59,990
auch mitgibt ist die Möglichkeit
nativen Code aufzurufen, das 

555
00:28:59,990 --> 00:29:02,190
nennt man zum Beispiel Function 
Calling, das heißt ich kann ja 

556
00:29:02,190 --> 00:29:05,190
sagen, also wenn ich diesen Flug
Buche oder einen Reiseplan 

557
00:29:05,190 --> 00:29:07,830
mache, dann ist eine AI 
natürlich gänzlich ungeeignet 

558
00:29:07,830 --> 00:29:11,270
dafür Flüge nach weiß ich nicht 
nach Südfrankreich zu buchen, 

559
00:29:11,550 --> 00:29:15,320
weil das Trainingsset ja 
vielleicht im September 2023 

560
00:29:15,520 --> 00:29:18,440
aufgehört hat und wenn ich jetzt
GPT 4 Frage, buchen wir einen 

561
00:29:18,440 --> 00:29:20,760
Flug nächste Woche nach nach 
Südfrankreich. 

562
00:29:22,880 --> 00:29:25,320
Kann das also. 
Woher soll das wissen, welche 

563
00:29:25,320 --> 00:29:27,640
Flüge das hat? 
Wenn ich aber eine kleine native

564
00:29:27,640 --> 00:29:30,560
Funktion schreibe, wo ich jetzt,
ich sage mal die skyscanner API 

565
00:29:30,760 --> 00:29:34,200
mit Abfrage, dann kann ich sowas
machen wie function calling, das

566
00:29:34,200 --> 00:29:37,230
heißt ich sag dem Modell wo. 
Auf der Robin Manuel hat gesagt 

567
00:29:37,230 --> 00:29:40,750
Buchen wir einen Flug nach von 
München nach Südfrankreich zur 

568
00:29:40,750 --> 00:29:44,350
Beantwortung der Frage könntest 
du entweder ganz normal aus dem 

569
00:29:44,350 --> 00:29:46,750
Large Language Model heraus, die
die Antwort generieren und ins 

570
00:29:46,750 --> 00:29:50,510
Plaudern kommen, oder du kannst 
mir auch Bescheid sagen, also 

571
00:29:50,510 --> 00:29:54,630
mir als die Runtime dir gerade 
Code diesen Code hier aufruft, 

572
00:29:55,150 --> 00:29:57,790
du könntest nämlich auch einen 
der folgenden Funktionen 

573
00:29:57,790 --> 00:30:00,830
aufrufen und dann ist in dieser 
Liste dieser Funktion eine von 

574
00:30:00,830 --> 00:30:03,150
den Funktionen die ich 
geschrieben habe, nämlich Call 

575
00:30:03,150 --> 00:30:07,030
Skyscanner API und die nimmt 
folgende Parameter entgegen und 

576
00:30:07,030 --> 00:30:09,470
dann kann das Large Language 
Model entscheiden, ob es diese 

577
00:30:09,470 --> 00:30:11,630
Funktion braucht zur 
Beantwortung der Frage und wenn 

578
00:30:11,630 --> 00:30:13,680
es sagt Ja. 
Dann. 

579
00:30:15,640 --> 00:30:17,720
Dann sag mir das Bescheid, mit 
welchen Parametern die Funktion 

580
00:30:17,720 --> 00:30:20,840
aufgerufen soll. 
Ich führe dann die Runtime, 

581
00:30:20,840 --> 00:30:24,120
führt dann diese Funktion aus, 
gibt das Ergebnis wieder in 

582
00:30:24,120 --> 00:30:26,760
diese Chat Historie in den Chat 
mit rein, sagt ja Pass auf habe 

583
00:30:26,760 --> 00:30:29,600
ich ausgeführt das und das ist 
das json was zurückkommt wenn 

584
00:30:29,600 --> 00:30:34,120
man Flüge am 21 Oktober von 
München nach Nizza oder so was 

585
00:30:34,120 --> 00:30:37,440
weiß ich bucht und da kann das 
Nudeln Modell mir darauf jetzt 

586
00:30:37,440 --> 00:30:40,160
eine Antwort generieren weil das
wissen was die skyscanner API 

587
00:30:40,160 --> 00:30:42,760
geliefert hat plus natürlich 
sehr gut darin ist Menschen 

588
00:30:42,760 --> 00:30:45,920
lesbare Antworten zu zu 
generieren, das heißt es ist so 

589
00:30:45,920 --> 00:30:48,870
ein Ping Pong Spiel. 
In dieser Chat Historie, das 

590
00:30:48,870 --> 00:30:51,190
heißt das wurde sagt Ja führ mal
lieber diese Funktion aus. 

591
00:30:51,310 --> 00:30:54,110
Auf das sind Funktionen die ich 
als Developer geschrieben und 

592
00:30:54,110 --> 00:30:56,550
dann am Large Language Model 
mehr oder weniger registriert 

593
00:30:56,550 --> 00:30:58,150
habe. 
Auch das übernehmen natürlich in

594
00:30:58,150 --> 00:31:00,830
Wahrheit diese Frameworks, also 
alles was ich sage so 

595
00:31:00,830 --> 00:31:02,910
registriert aufrufen, das sind 
am Ende ist alles. 

596
00:31:04,600 --> 00:31:05,800
Wird das irgendwie in prompt 
gegossen? 

597
00:31:05,800 --> 00:31:08,320
Da wird dann einfach eine Liste,
hey, du könntest auch eine 

598
00:31:08,320 --> 00:31:12,360
dieser folgenden Tools, wenn das
auf Tools diese Functions tools 

599
00:31:12,360 --> 00:31:15,000
hier aufrufen, das wäre die 
Funktion, die heißt get flights 

600
00:31:15,000 --> 00:31:18,760
from Skyscanner und die möchte 
einen String für den From einen 

601
00:31:18,760 --> 00:31:22,720
String für den to Code und ein 
Date Time für from und 2 haben. 

602
00:31:24,480 --> 00:31:26,760
Musste aber nicht aufrufen, 
könntest du aber und da kann das

603
00:31:26,760 --> 00:31:28,560
Large Language Model mir damit 
antworten. 

604
00:31:29,550 --> 00:31:33,670
Die können aber auch selber Code
generieren, also Large Language 

605
00:31:33,670 --> 00:31:36,630
Modelle können auch selber Code 
generieren, weil die sind zum 

606
00:31:36,630 --> 00:31:38,870
Beispiel ja super schlecht da 
drin Sachen zu brechen. 

607
00:31:39,070 --> 00:31:41,630
Aber ich könnte sagen Hey du die
bei Agent du hast die 

608
00:31:41,630 --> 00:31:45,390
Funktionalität wenn du ne 
Berechnung machen willst dann 

609
00:31:45,390 --> 00:31:47,110
generiere mir einfach ein 
bisschen, ich sag mal Python 

610
00:31:47,110 --> 00:31:51,310
Code, schick mir den und wenn du
willst fürchten für dich aus, da

611
00:31:51,310 --> 00:31:53,710
wird es natürlich dann kommen 
dann komplett verrückt, denn das

612
00:31:53,710 --> 00:31:56,550
ist dann fast gar nicht mehr 
Testbar, das heißt das nennt man

613
00:31:56,550 --> 00:32:00,470
dann Code executions, das heißt 
in der AI generiert Quellcode. 

614
00:32:01,480 --> 00:32:04,240
Um den um die Aufgabe zu lösen, 
die die, die ich ihm gestellt 

615
00:32:04,240 --> 00:32:06,920
habe und dann brauche ich 
irgendwo eine Execution 

616
00:32:06,920 --> 00:32:10,440
Umgebung, entweder die lokale 
Runtime, die gerade ohnehin 

617
00:32:10,440 --> 00:32:13,320
meinen Code ausführt, das ist 
natürlich hoch unsicher, das 

618
00:32:13,320 --> 00:32:16,560
heißt, würde ich nur in dev 
testszenarien machen, oder ich 

619
00:32:17,000 --> 00:32:19,560
stelle solche sowieso 
wegwerfdocker Umgebungen bereit,

620
00:32:19,560 --> 00:32:21,280
ich könnte ja sagen, wenn das 
lutsch Englisch wurde mir Python

621
00:32:21,280 --> 00:32:23,520
Code generiert, dann ziehe ich 
hier irgendwo mal kurz ein 

622
00:32:23,520 --> 00:32:26,400
Docker Container hoch, der 
komplett im Netzwerk isoliert 

623
00:32:26,400 --> 00:32:29,080
ist, der vielleicht auch gar 
nicht ins Internet raus kann für

624
00:32:29,080 --> 00:32:32,950
den Code aus und. 
Füttert die Ergebnisse von 

625
00:32:32,950 --> 00:32:35,950
dieser Code Execution wieder in 
in unsere Chat Historie mit dem 

626
00:32:35,990 --> 00:32:38,590
Models rein und löscht dann 
diesen Docker Container wieder, 

627
00:32:38,590 --> 00:32:40,470
dass er gar kein Schadcode auch 
irgendwie ausgeführt werden 

628
00:32:40,470 --> 00:32:42,990
kann. 
Und so komme ich dann durch 

629
00:32:42,990 --> 00:32:44,750
diese ganzen Tools. 
Also entweder ich hab schon Code

630
00:32:44,750 --> 00:32:46,750
geschrieben, die das Modell 
aufrufen will, oder dass ich 

631
00:32:46,750 --> 00:32:48,390
lass das Modell selber Code 
schreiben. 

632
00:32:48,550 --> 00:32:50,950
Ganz ganz spannend, aber auch 
irgendwie ganz ganz also klingt 

633
00:32:50,950 --> 00:32:55,430
natürlich auch super gefährlich.
Aber aber funktioniert, oder? 

634
00:32:55,430 --> 00:32:57,470
Ich lass das Modell ne Anfrage 
an meine Wissensdatenbank 

635
00:32:57,470 --> 00:32:59,870
stellen oder ich mach wie du 
eben bei Chips ne Internet 

636
00:32:59,870 --> 00:33:02,670
request und so kann ich eben 
jedem Agent sagen, ja du darfst 

637
00:33:02,670 --> 00:33:06,550
Code generieren, du brauchst 
keinen Code generieren, du. 

638
00:33:07,230 --> 00:33:10,190
Passende also, wenn du Code 
generierst, gibt das wieder 

639
00:33:10,190 --> 00:33:12,070
diesen Chat rein, da kann der 
Orcus Trader sagen, ah ich sehe 

640
00:33:12,070 --> 00:33:15,670
hier Code den den übergeb ich 
mal dem Code Execution Agent, 

641
00:33:15,670 --> 00:33:17,830
weil der vielleicht irgendwie ne
sichere Umgebung bereitstellen 

642
00:33:17,830 --> 00:33:20,390
kann und so komm ich dann 
irgendwann in diesen Gruppenchat

643
00:33:20,430 --> 00:33:23,520
ganz am Ende. 
An mein Ergebnis, was 

644
00:33:23,520 --> 00:33:24,960
hoffentlich der aux Twitter 
erkennt. 

645
00:33:25,400 --> 00:33:28,760
Und dann hab ich durch sehr viel
Kontext ne sehr lange 

646
00:33:28,760 --> 00:33:33,560
Konversation, was gut ist, weil 
diese brauchen lange brauchen 

647
00:33:33,560 --> 00:33:35,800
Tokens um zu denken je kürzer 
die Antwort ist, desto dümmer 

648
00:33:35,800 --> 00:33:38,390
ist die Antwort oft auch. 
Und kann das dann natürlich eben

649
00:33:38,390 --> 00:33:40,430
wieder zusammenfassen. 
Da sind Agent ja sehr, sehr, da 

650
00:33:40,430 --> 00:33:45,550
sind ja sehr, sehr gut drin und 
hab dann irgendwie mein Ergebnis

651
00:33:45,550 --> 00:33:47,310
oder je nachdem wenn ich jetzt 
vielleicht n Podcast Skript 

652
00:33:47,310 --> 00:33:49,830
haben will, dann muss ich ja 
dazu, dann dann schmeiß ich 

653
00:33:49,830 --> 00:33:52,630
dazwischen irgendwie all diese 
Code executions raus und liefer 

654
00:33:52,630 --> 00:33:54,630
am Ende nur nur noch das finale 
Skript. 

655
00:33:55,710 --> 00:33:57,590
Und das machen Agents und ihr 
man. 

656
00:33:57,590 --> 00:33:59,270
Man merkt schon, wenn man 
darüber spricht, dass es 

657
00:33:59,270 --> 00:34:02,230
eigentlich wahnsinnig mächtig 
ist, auch so n bisschen. 

658
00:34:02,470 --> 00:34:04,630
Also mir macht es auch n 
bisschen Angst, aber auch 

659
00:34:04,630 --> 00:34:07,430
irgendwie genauso faszinierend 
ist das, wie die meisten Dinge 

660
00:34:07,430 --> 00:34:10,030
die Angst machen. 
Und eigentlich auch ziemlich 

661
00:34:10,030 --> 00:34:13,389
cool. 
Ja, ich glaub das Faszinierende 

662
00:34:13,389 --> 00:34:16,989
daran ist halt, dass ne gewisse 
Autonomität dann nachher 

663
00:34:16,989 --> 00:34:18,710
stattfindet. 
Das heißt diese Agents, die 

664
00:34:18,710 --> 00:34:21,389
reden irgendwie miteinander, 
generieren Code gegebenenfalls 

665
00:34:21,389 --> 00:34:23,550
ausgeführt wird, ohne dass es 
da. 

666
00:34:24,270 --> 00:34:27,429
Kann man natürlich machen, aber 
ohne dass es da gezwungenermaßen

667
00:34:27,429 --> 00:34:30,909
noch einen menschlichen Einfluss
hat. 

668
00:34:30,909 --> 00:34:33,710
Ne, also wir haben jetzt 
gegebenenfalls human in the Loop

669
00:34:33,710 --> 00:34:36,469
und wir können halt die 
einzelnen Prozessschritte noch 

670
00:34:36,469 --> 00:34:39,710
irgendwie überwachen, wir kennen
es halt von den Tools, die wir 

671
00:34:39,710 --> 00:34:42,389
in den vergangenen Folgen 
besprochen haben rund um das 

672
00:34:42,389 --> 00:34:44,230
Thema Softwareentwicklung, das 
ist da auch die Möglichkeit 

673
00:34:44,230 --> 00:34:46,830
gibt, in jedem Schritt als 
Mensch ein Review zu machen, 

674
00:34:46,989 --> 00:34:49,469
aber man kann das natürlich auch
komplett autark durchlaufen 

675
00:34:49,469 --> 00:34:52,790
lassen und dort auch 
verschiedene Iterationen und 

676
00:34:52,790 --> 00:34:55,790
Loops machen, bis man dann zu 
diesem Endergebnis kommt und ich

677
00:34:55,790 --> 00:34:58,110
glaube, das ist das, was so ein 
bisschen gruselig macht, weil 

678
00:34:58,110 --> 00:35:00,670
man das Gefühl hat, da passiert 
so viel, was man am Ende 

679
00:35:00,670 --> 00:35:03,990
vielleicht gar nicht mehr so 111
zu 1 nachvollziehen kann. 

680
00:35:03,990 --> 00:35:06,750
Natürlich, man kann ganz viel 
loggen, aber da ist halt 

681
00:35:06,750 --> 00:35:10,470
irgendwie nicht deterministisch,
kann das natürlich in jedem 

682
00:35:10,470 --> 00:35:15,200
Ablauf unter. 
Sein und was ich jetzt aus 

683
00:35:15,200 --> 00:35:18,080
diesem Gespräch mitnehme, ist, 
dass wenn wir über das Thema 

684
00:35:18,080 --> 00:35:22,160
Agents reden, wir vor allen 
Dingen über das Thema Agent, 

685
00:35:22,160 --> 00:35:25,520
Frameworks und Orchestrierung 
reden, weil da eigentlich. 

686
00:35:26,070 --> 00:35:28,910
Die Magie drinsteckt, also die 
Magie, die steckt dann weniger 

687
00:35:28,910 --> 00:35:32,670
in den einzelnen Agents. 
Ich glaub, das ist für uns, die 

688
00:35:32,670 --> 00:35:35,150
wir uns mit Softwareentwicklung 
beschäftigen, irgendwo noch 

689
00:35:35,270 --> 00:35:38,510
nachvollziehbar, das ist 
irgendwie ne ganz bekanntes 

690
00:35:38,510 --> 00:35:40,230
Pattern. 
Du hattest auch vorhin gesagt, 

691
00:35:40,230 --> 00:35:43,030
du bist mein Microservice, das 
heißt? 

692
00:35:43,320 --> 00:35:46,400
Wir haben einzelne Dienste, die 
werden irgendwie aufgerufen, 

693
00:35:46,400 --> 00:35:51,360
aber dann nicht wie in der 
Vergangenheit ganz. 

694
00:35:51,640 --> 00:35:53,240
Klar, deterministisch, 
algorithmisch. 

695
00:35:53,240 --> 00:35:56,080
Wir wissen, wann welcher Service
aufgerufen wird, sondern es gibt

696
00:35:56,080 --> 00:35:59,480
halt irgendwie diesen Orchestra 
davor, der dann die Entscheidung

697
00:35:59,960 --> 00:36:05,040
am Ende relativ autark treffen 
kann, wann welcher Agent dort 

698
00:36:05,280 --> 00:36:08,600
genutzt wird, zu Wort kommt und 
ich glaube, da steckt halt viel 

699
00:36:08,600 --> 00:36:12,080
in Anführungsstrichen der Magie 
drin und das ist, glaube ich das

700
00:36:12,080 --> 00:36:14,720
Thema, mit dem man sich dann am 
meisten auseinandersetzen muss, 

701
00:36:14,720 --> 00:36:17,880
wie funktioniert das alles, wie 
baut man sowas, weil ich denke, 

702
00:36:17,880 --> 00:36:22,000
das ist etwas, was sich wirklich
auch von klassischer Software 

703
00:36:22,000 --> 00:36:25,000
Entwicklung, wie wir sie alle 
kennengelernt haben, entscheidet

704
00:36:25,200 --> 00:36:27,360
unterscheidet. 
Weil wir halt dort keine. 

705
00:36:28,230 --> 00:36:30,630
Klar deterministischen 
Ablauffluss mehr haben. 

706
00:36:30,630 --> 00:36:33,150
Klar, wir schreiben immer noch 
Code, der irgendwie klar 

707
00:36:33,150 --> 00:36:36,630
deterministisch ist, aber das 
was halt dann an den Stellen 

708
00:36:36,630 --> 00:36:41,270
jeweils durch das KI Modell 
entschieden wird, das wissen wir

709
00:36:41,270 --> 00:36:44,310
zum Zeitpunkt. 
Der Entwicklung noch nicht. 

710
00:36:44,310 --> 00:36:46,750
Wir können uns da eine gewisse 
Hypothese drüber bilden, weil 

711
00:36:46,750 --> 00:36:49,990
wir wissen ja. 
Wie wir zum Beispiel so einen 

712
00:36:49,990 --> 00:36:54,390
prompt zusammenbauen, aber am 
Ende, was das Ergebnis ist, das 

713
00:36:54,390 --> 00:36:56,470
wissen wir erst, wenn wir das 
ganze letzten Endes ausführen 

714
00:36:56,470 --> 00:37:00,390
mit dem Inputdaten Befüttern. 
Und dann beobachten, wie sich 

715
00:37:00,390 --> 00:37:03,070
das wirklich im realen Betrieb 
verhält? 

716
00:37:03,070 --> 00:37:04,110
Genau. 
Wir können natürlich so n 

717
00:37:04,110 --> 00:37:06,510
bisschen in den Rahmen setzen. 
Ne wenn ich jetzt sage Ey dieses

718
00:37:06,990 --> 00:37:09,590
generieren und ausführen von 
eigenem Code, das lass ich mal 

719
00:37:09,590 --> 00:37:11,270
komplett weg aus meiner Agent 
Landschaft, das ist mir zu 

720
00:37:11,270 --> 00:37:14,470
gruselig oder ich ne also dann 
mach ich das halt nicht. 

721
00:37:14,670 --> 00:37:16,550
Ich kann mir natürlich in den 
Rahmen setzen aber du Grad das 

722
00:37:16,550 --> 00:37:19,870
die Magie ist eigentlich da 
drin, dass entweder der Oxfator 

723
00:37:20,070 --> 00:37:23,630
auswählt welcher Agent gerade zu
Wort kommt, Magie ist aber auch 

724
00:37:23,630 --> 00:37:27,390
innerhalb des Agents, dass der 
Agent selber entscheidet welche 

725
00:37:27,390 --> 00:37:29,350
seiner Tools die ihm zur 
Verfügung stehen. 

726
00:37:30,440 --> 00:37:34,400
Also function Calling oder wie 
Wreck, in dem es halt 

727
00:37:34,400 --> 00:37:38,400
irgendwelche Daten, Daten noch 
mit Hinzuzieht oder AP is 

728
00:37:38,400 --> 00:37:41,640
aufrufen, also welche dieser 
Tools denn verwendet werden 

729
00:37:41,640 --> 00:37:43,480
sollen um die Frage zu 
beantworten, auch das wissen wir

730
00:37:43,480 --> 00:37:46,440
nicht, das heißt überall wenn 
wir eine AI entscheiden lassen, 

731
00:37:46,520 --> 00:37:48,440
wie geht's weiter? 
Du hast folgende Optionen, sag 

732
00:37:48,440 --> 00:37:51,560
mir mal wie du bestehend auf 
allem was du weißt über die Welt

733
00:37:51,560 --> 00:37:53,640
und über diese Agents die du 
hast und was diese Agency 

734
00:37:53,640 --> 00:37:56,280
können. 
Sag mal wie es weitergehen soll.

735
00:37:57,070 --> 00:37:59,510
Das ist ja auch schon Magic ne. 
Also selbst wenn ich die Sorge 

736
00:37:59,510 --> 00:38:03,390
ist heute weglasse und jetzt wie
bei github Pilot Workspace, wo 

737
00:38:03,390 --> 00:38:05,830
die Abfolge der Agents völlig 
klar ist. 

738
00:38:06,750 --> 00:38:08,750
Oder wenn oder wenn ich einfach 
so n so n so n Chat mache und 

739
00:38:08,750 --> 00:38:10,710
dann irgendwie den Azure Agent 
mit dazu hole und sag hey, 

740
00:38:10,710 --> 00:38:13,230
kannst du mir hier mal so n 
kubaniertes Cluster anlegen, 

741
00:38:13,750 --> 00:38:16,830
auch dann weiß ich ja nicht wie 
der auf diese von mir 

742
00:38:16,830 --> 00:38:19,070
formulierte Frage ey, kannst du 
mir mal n Kobold Cluster 

743
00:38:19,070 --> 00:38:22,230
anlegen, was der dann intern 
macht, der hat ja dann alle 

744
00:38:22,230 --> 00:38:24,430
möglichen Tools in meinem Namen 
mit der Azure API zu 

745
00:38:24,430 --> 00:38:26,350
interagieren. 
Schafft das überhaupt einen 

746
00:38:26,350 --> 00:38:28,670
richtigen API Request zu bauen 
oder muss ich da noch mal 

747
00:38:28,670 --> 00:38:31,270
nachhelfen über einen guten 
prompt oder über fertige 

748
00:38:31,270 --> 00:38:33,070
Funktionen? 
Und das ist ja auch schon die 

749
00:38:33,070 --> 00:38:34,510
Magie. 
Also selbst wenn ich diese Magie

750
00:38:34,510 --> 00:38:36,710
der Orchestrierung weglasse und 
sage, es hat einen ganz klaren 

751
00:38:36,710 --> 00:38:40,390
Ablauf oder der User bestimmt, 
welcher Agent jetzt gerade den 

752
00:38:40,390 --> 00:38:43,040
Ball aufnehmen soll. 
Auch dann ist also ganz viel 

753
00:38:43,040 --> 00:38:46,880
Magie. 
Kleine Zaubershow. 

754
00:38:46,880 --> 00:38:50,880
Hier der Podcast. 
Absolut ja. 

755
00:38:50,880 --> 00:38:54,280
Vielleicht können wir in einer 
der kommenden Folgen nicht 

756
00:38:54,280 --> 00:38:57,880
unbedingt in einer der direkt 
nächsten, aber uns mal so ein 2 

757
00:38:57,880 --> 00:39:00,240
von diesen Frameworks rauspicken
und so ein bisschen darüber 

758
00:39:00,240 --> 00:39:02,600
sprechen, wie sind die 
aufgebaut, wie arbeite ich 

759
00:39:02,600 --> 00:39:05,200
damit, ich glaube, es 
interessiert jetzt einige, wie 

760
00:39:05,200 --> 00:39:08,720
man dann auch wirklich loslegt. 
Ich habe es wie gesagt auch noch

761
00:39:08,720 --> 00:39:11,030
nicht selber. 
Ausprobiert von daher auch für 

762
00:39:11,030 --> 00:39:13,710
mich n super spannendes Thema, 
einfach auch zu verstehen. 

763
00:39:13,710 --> 00:39:16,910
Wie sieht das dann in der Praxis
aus, also wie kann man so etwas 

764
00:39:16,910 --> 00:39:19,270
dann auch vielleicht erstmal im 
kleinen Rahmen umsetzen, die 

765
00:39:19,270 --> 00:39:24,150
ersten Schritte damit machen und
dann so n bisschen die erste 

766
00:39:24,150 --> 00:39:27,950
Hello World komplexe KI 
Applikation bauen, die einen 

767
00:39:27,950 --> 00:39:31,870
sinnvollen Use Case erfüllt 
finde ich auf jeden Fall super 

768
00:39:31,870 --> 00:39:34,310
interessant und das ist glaube 
ich etwas was jetzt. 

769
00:39:35,310 --> 00:39:37,750
Glaub ich in diesem Jahr gerade 
so startet ne ich glaub wir 

770
00:39:37,750 --> 00:39:40,630
hatten in den letzten ein 2 
Jahren hatten wir das Thema erst

771
00:39:40,630 --> 00:39:45,190
mal irgendwie mächtige Large 
Language Models und natürlich 

772
00:39:45,190 --> 00:39:49,670
diverse andere. 
KI Modelle, generative AI et 

773
00:39:49,670 --> 00:39:52,190
cetera. 
Aber jetzt kommen wir glaube ich

774
00:39:52,630 --> 00:39:56,110
in die nächste Stufe, wo wir 
verschiedene Spezialfähigkeiten 

775
00:39:56,270 --> 00:40:00,750
zusammenbringen und dann halt 
immer näher an solche. 

776
00:40:01,750 --> 00:40:04,510
Intelligenzen rankommen, die 
halt verschiedene Fähigkeiten 

777
00:40:04,510 --> 00:40:05,870
nutzen sowie auch Menschen es 
tun. 

778
00:40:05,870 --> 00:40:08,070
Ne, wir greifen natürlich auch 
auf verschiedene Werkzeuge 

779
00:40:08,070 --> 00:40:11,670
zurück um verschiedene Probleme 
zu lösen und genauso kann eine 

780
00:40:11,670 --> 00:40:13,750
Applikation letzten Endes dann 
auch. 

781
00:40:14,550 --> 00:40:17,270
Mehr oder weniger autark 
entscheiden was ist jetzt das 

782
00:40:17,270 --> 00:40:20,870
richtige Werkzeug, um diesen Job
zu erledigen und kann dann über 

783
00:40:20,870 --> 00:40:24,950
das, was es vielleicht von Haus 
aus an Fähigkeiten mitbringt, 

784
00:40:25,030 --> 00:40:28,510
dann noch ganz andere 
Spezialisierungen mit reinholen,

785
00:40:28,510 --> 00:40:30,790
um dann auch ein Problem zu 
lösen, wie in deinem Beispiel 

786
00:40:30,790 --> 00:40:33,190
jetzt die Flugbuchung, die 
vielleicht einen. 

787
00:40:34,190 --> 00:40:36,630
Cheti Pitti nicht kann, aber 
wenn ich jetzt dann vielleicht 

788
00:40:36,630 --> 00:40:39,350
nen speziellen vielleicht gibt 
es das auch, ich hab noch nicht 

789
00:40:39,350 --> 00:40:42,990
reingeguckt, speziellen Agent 
von Skyscanner gibt, den ich 

790
00:40:42,990 --> 00:40:46,910
direkt dort in meinen Chat mit 
dazu holen kann, dann kann ich 

791
00:40:46,910 --> 00:40:50,510
das plötzlich und das macht die 
Sachen natürlich viel mächtiger.

792
00:40:51,510 --> 00:40:53,150
Wer sich das mal anschauen 
möchte, wie gesagt, ich hab mir 

793
00:40:53,150 --> 00:40:56,430
Auto gen angeguckt, das ist ein 
Python Framework, aber diese 

794
00:40:56,430 --> 00:40:58,310
Python zu jeder der ein bisschen
Code schreiben kann kann 

795
00:40:58,310 --> 00:41:01,830
zumindest Python Code lesen, die
haben ganz coole Tutorials wo 

796
00:41:01,830 --> 00:41:03,950
man wirklich wirklich so Hello 
World Like sich mal 

797
00:41:03,950 --> 00:41:06,550
durchprobieren kann, die haben 
mir jetzt sehr gut gefallen, 

798
00:41:06,550 --> 00:41:08,110
dass man auch so in ein 2 
Stunden durch. 

799
00:41:08,920 --> 00:41:11,640
Werde sich die Zeit nehmen 
möchte, ansonsten werde einfach 

800
00:41:11,640 --> 00:41:16,000
mit mal ein bisschen rumklicken 
möchte es gibt von Open Ai die 

801
00:41:16,000 --> 00:41:18,880
Assistance API, das die nennen 
ihre Agencystens. 

802
00:41:20,760 --> 00:41:24,040
Da kann man während Open ein 
Open Air Account hat, der kann 

803
00:41:24,040 --> 00:41:25,960
dann diesen Playground reingehen
und sie einfach mal so einen 

804
00:41:25,960 --> 00:41:28,920
Assistant erstellen und dem kann
man dann sagen Pass auf, du hast

805
00:41:28,920 --> 00:41:31,120
Zugriff auf folgende Daten, das 
ist dein prompt. 

806
00:41:31,120 --> 00:41:33,480
Also dein bei Metapromp oder ein
System prompt den du irgendwie 

807
00:41:33,480 --> 00:41:34,480
hast. 
Du könntest auch folgende 

808
00:41:34,480 --> 00:41:37,150
Funktion. 
Aufrufen und so weiter und dann 

809
00:41:37,150 --> 00:41:39,270
kann man einfach mal mit diesem 
Assistant chatten, das ist dann 

810
00:41:39,270 --> 00:41:41,590
halt erstmal nur ein Agent, aber
da kann man zumindest schon mal 

811
00:41:41,590 --> 00:41:43,350
diesen Gedankenprozess so n 
bisschen folgen, der dann sagt, 

812
00:41:43,350 --> 00:41:46,190
Jo um die Frage zu beantworten 
würd ich gerne ne Funktion 

813
00:41:46,190 --> 00:41:48,190
aufrufen. 
Sag mal, sag mir doch mal bitte 

814
00:41:48,190 --> 00:41:50,430
was dabei rausgekommen ist. 
Da muss man zwar selber diesen 

815
00:41:50,430 --> 00:41:52,990
Code aufrufen, weil das macht 
Openay nicht für einen, das ist 

816
00:41:52,990 --> 00:41:55,750
denen auch zu heiß, aber man 
könnte das Ergebnis dieser 

817
00:41:55,750 --> 00:41:59,190
Funktion dann quasi wieder da 
rein füttern und da muss man gar

818
00:41:59,190 --> 00:42:01,230
keinen Code für schreiben, das 
kann man zusammenklicken. 

819
00:42:01,230 --> 00:42:04,750
Also Assistance heißt das bei 
open AI und Auto gen ist das 

820
00:42:04,750 --> 00:42:07,470
Framework was ich mir angeguckt 
habe, gibt aber noch 12 andere 

821
00:42:07,470 --> 00:42:09,750
Frameworks, die würde ich 
einfach mal verlinken unten in 

822
00:42:09,750 --> 00:42:10,950
den Shownotes von diesem 
Podcast. 

823
00:42:13,720 --> 00:42:16,800
Cool, damit sind wir, glaube 
ich, eine Ende dieser am Ende 

824
00:42:16,800 --> 00:42:19,400
dieser Folge angekommen. 
Wir haben, glaube ich, ein 

825
00:42:19,400 --> 00:42:22,320
bisschen länger geredet, als wir
eigentlich geplant hatten, von 

826
00:42:22,320 --> 00:42:25,800
daher eine lange Folge heute 
aber zu einem sehr spannenden 

827
00:42:25,800 --> 00:42:27,840
Thema. 
Ich hoffe für euch war es 

828
00:42:27,840 --> 00:42:30,320
genauso interessant wie für uns 
sich zu dem Thema so ein 

829
00:42:30,320 --> 00:42:33,760
bisschen weiterzubilden, 
auszutauschen und wie immer, 

830
00:42:33,760 --> 00:42:36,800
wenn euch diese Folge gefallen 
hat, dann lasst uns gerne eine 

831
00:42:36,800 --> 00:42:41,240
Bewertung da entweder auf 
Spotify oder bei Apple Podcasts 

832
00:42:41,560 --> 00:42:44,440
und wir freuen uns natürlich 
auch, wenn ihr uns über bei mir 

833
00:42:44,440 --> 00:42:47,230
Coffee ein. 
Kaffee ausgibt und dann werdet 

834
00:42:47,230 --> 00:42:51,510
ihr natürlich wie immer in der 
nächsten Folge auch namentlich 

835
00:42:51,510 --> 00:42:54,070
erwähnt. 
Genau, oder wenn ihr zu eurem 

836
00:42:54,070 --> 00:42:56,750
eigenen Kaffee die passende Nerd
Tasse haben wollt, dann schaut 

837
00:42:56,750 --> 00:42:58,350
auch gern mal in unserem kleinen
Shop vorbei. 

838
00:42:58,790 --> 00:43:01,350
Auch da gibt's den Link in der 
Beschreibung und nochmal sorry, 

839
00:43:01,350 --> 00:43:03,270
dass es ein bisschen länger 
gedauert hat diese Folge, aber 

840
00:43:03,270 --> 00:43:05,230
es war schließlich die letzte 
Folge, die malte und ich hier 

841
00:43:05,230 --> 00:43:07,910
selber aufnehmen. 
Ab heute übernehmen natürlich 

842
00:43:07,910 --> 00:43:10,110
die Agency, ihr sitzt natürlich 
im Hintergrund schon daran den 

843
00:43:10,110 --> 00:43:15,600
perfekten Podcast zu bauen. 
Und jetzt kommen nie wieder 

844
00:43:15,600 --> 00:43:17,920
folgen zu spät und der Walter 
und ich haben ein entspannteres 

845
00:43:17,920 --> 00:43:21,920
Wochenende. 
Ist auch schon trainiert, von 

846
00:43:21,920 --> 00:43:25,400
daher läuft. 
Nein. 

847
00:43:25,640 --> 00:43:27,720
Wir bleiben natürlich so lange 
es geht hier menschlich und 

848
00:43:27,720 --> 00:43:28,920
handgemacht. 
Das ist noch ein ehrlicher 

849
00:43:28,920 --> 00:43:30,800
Podcast. 
Deswegen freuen wir uns ganz 

850
00:43:30,800 --> 00:43:32,720
toll, wenn ihr in 2 Wochen auch 
wieder mit dabei seid. 

851
00:43:33,400 --> 00:43:36,880
Bis dahin schreibt viel Code und
habt eine gute Zeit. 

852
00:43:37,680 --> 00:43:38,240
Bis dann.
