WEBVTT

1
00:00:00.840 --> 00:00:04.700
Hi, and welcome to this Microsoft Foundry video,

2
00:00:05.100 --> 00:00:07.840
which is part three, where we talk about

3
00:00:07.840 --> 00:00:08.300
agents.

4
00:00:09.020 --> 00:00:12.200
But before we do that, a small disclaimer,

5
00:00:12.700 --> 00:00:17.040
because Microsoft Foundry and the agent experience is

6
00:00:17.040 --> 00:00:17.820
still in preview [December 2025].

7
00:00:18.460 --> 00:00:21.620
And honestly, it's quite buggy and half complete

8
00:00:21.620 --> 00:00:25.840
in various places, almost to the point where

9
00:00:25.840 --> 00:00:27.160
I didn't make this video.

10
00:00:27.160 --> 00:00:29.640
So I will at the end of the

11
00:00:29.640 --> 00:00:32.760
video, after I explained how it should work

12
00:00:32.760 --> 00:00:35.840
and what works, I will explain a lot

13
00:00:35.840 --> 00:00:38.120
of the things that don't work and then

14
00:00:38.120 --> 00:00:41.320
talk a little about what we should do

15
00:00:41.320 --> 00:00:41.860
from here.

16
00:00:42.340 --> 00:00:45.500
But let's first dive in and see what

17
00:00:45.500 --> 00:00:48.460
the claim is that we can do when

18
00:00:48.460 --> 00:00:49.500
this goes out of preview.

19
00:00:52.380 --> 00:00:55.320
So in order to understand this best, I

20
00:00:55.320 --> 00:00:58.680
have put in a normal scenario, which is

21
00:00:58.680 --> 00:01:02.340
working with agents in memory, the old AI

22
00:01:02.340 --> 00:01:06.780
Foundry, classic agents, as they're called now, and

23
00:01:06.780 --> 00:01:10.180
this new Microsoft Foundry, and see them side

24
00:01:10.180 --> 00:01:12.720
by side in order for us to better

25
00:01:12.720 --> 00:01:15.860
understand what is new in Foundry, at least

26
00:01:15.860 --> 00:01:16.340
on paper.

27
00:01:17.710 --> 00:01:20.370
So when you make a new agent, you,

28
00:01:20.530 --> 00:01:22.970
of course, just take the raw client, Azure

29
00:01:22.970 --> 00:01:25.270
OpenAI or OpenAI or similar.

30
00:01:26.450 --> 00:01:29.650
You do something similar in AI Foundry, but

31
00:01:29.650 --> 00:01:32.430
you do it using the azure.ai.agents

32
00:01:32.430 --> 00:01:34.590
.persistent NuGet package instead.

33
00:01:35.670 --> 00:01:38.070
And now in Microsoft Foundry, they have made

34
00:01:38.070 --> 00:01:38.970
yet another package.

35
00:01:39.170 --> 00:01:41.830
In this case, it's Microsoft Agents AI Azure

36
00:01:41.830 --> 00:01:42.170
AI.

37
00:01:42.990 --> 00:01:45.670
So, so far now, nothing special.

38
00:01:46.110 --> 00:01:48.810
AI Foundry and Microsoft Foundry needs to do

39
00:01:48.810 --> 00:01:51.410
it using role-based access control.

40
00:01:51.550 --> 00:01:53.570
So you don't have an API key while

41
00:01:53.570 --> 00:01:55.930
you can choose up in normal systems.

42
00:01:57.050 --> 00:01:58.610
But here it begins to differ.

43
00:01:59.070 --> 00:02:01.390
In a normal scenario, you just create your

44
00:02:01.390 --> 00:02:02.710
agent in agent framework.

45
00:02:03.010 --> 00:02:06.690
You give it model, instruction, tools, and it

46
00:02:06.690 --> 00:02:07.810
all happens in memory.

47
00:02:09.090 --> 00:02:13.970
In AI Foundry, you create an agent as

48
00:02:13.970 --> 00:02:16.810
a persistent agent, meaning something where you create

49
00:02:16.810 --> 00:02:19.530
it, it's there, and then you can reference

50
00:02:19.530 --> 00:02:21.190
it later so you don't need to create

51
00:02:21.190 --> 00:02:21.990
it again and again.

52
00:02:22.310 --> 00:02:25.210
So the first time you create it, and

53
00:02:25.210 --> 00:02:28.150
then you use it after the fact by

54
00:02:28.150 --> 00:02:29.330
just referencing it.

55
00:02:29.590 --> 00:02:32.450
So you only need to go and change

56
00:02:32.450 --> 00:02:34.550
the agent if you need to update something.

57
00:02:37.600 --> 00:02:42.060
This is also the same for Microsoft Foundry,

58
00:02:42.680 --> 00:02:44.540
but can just do a little more.

59
00:02:44.840 --> 00:02:47.420
Because up here, we have model, tools, instructions,

60
00:02:48.280 --> 00:02:49.500
tools.

61
00:02:50.120 --> 00:02:54.440
Down here, we have knowledge up front, which

62
00:02:54.440 --> 00:02:56.900
is vector stores that it can automatically search

63
00:02:56.900 --> 00:02:58.780
into and stuff like that.

64
00:02:58.980 --> 00:03:01.160
That's more a manual process up here.

65
00:03:02.360 --> 00:03:05.740
In the new Foundry, you also have a

66
00:03:05.740 --> 00:03:08.420
new memory component where you can let it

67
00:03:08.420 --> 00:03:12.380
remember certain things about the user if you

68
00:03:12.380 --> 00:03:15.800
give it the user scope, like what is

69
00:03:15.800 --> 00:03:17.600
their name, location, and such things.

70
00:03:17.680 --> 00:03:21.840
A little like the AI provider context in

71
00:03:21.840 --> 00:03:22.740
agent framework.

72
00:03:23.500 --> 00:03:27.600
And then again, we reference them by the

73
00:03:27.600 --> 00:03:28.360
existing name.

74
00:03:28.600 --> 00:03:30.000
Up here, it's by ID.

75
00:03:30.340 --> 00:03:31.520
Down here, it's by name.

76
00:03:31.920 --> 00:03:34.100
And it can also now work with versions,

77
00:03:34.280 --> 00:03:35.920
which I will get into in a bit.

78
00:03:38.060 --> 00:03:42.260
So on paper here, an even greater system

79
00:03:42.260 --> 00:03:44.280
than the AI Foundry.

80
00:03:45.120 --> 00:03:47.340
And the final part is, of course, consuming

81
00:03:47.340 --> 00:03:49.460
it up in a normal one.

82
00:03:49.460 --> 00:03:51.360
You just consume the agent you just made

83
00:03:51.360 --> 00:03:52.280
in code.

84
00:03:53.260 --> 00:03:56.420
In AI Foundry, you either consume the agent

85
00:03:56.420 --> 00:03:59.480
you just made or got the reference to

86
00:03:59.480 --> 00:04:00.920
the agent, and then you used it.

87
00:04:01.480 --> 00:04:03.520
And then on the fly, you could add

88
00:04:03.520 --> 00:04:06.320
more knowledge and more tools to the file.

89
00:04:07.800 --> 00:04:11.720
In Microsoft Foundry, this is completely changed in

90
00:04:11.720 --> 00:04:13.220
various different ways.

91
00:04:14.840 --> 00:04:17.620
First up, all agents have a version.

92
00:04:18.420 --> 00:04:21.140
So you can now make a version 3,

93
00:04:21.420 --> 00:04:23.560
but still reference version 2, for example.

94
00:04:24.660 --> 00:04:28.640
So whenever you start here, you either need

95
00:04:28.640 --> 00:04:29.460
to...

96
00:04:29.460 --> 00:04:31.200
If you don't specify, you just get the

97
00:04:31.200 --> 00:04:33.360
latest, but you can specify an earlier version.

98
00:04:33.480 --> 00:04:34.860
I will show that in a live sample

99
00:04:34.860 --> 00:04:35.760
in just one second.

100
00:04:37.580 --> 00:04:41.880
And then you consume it, but the new

101
00:04:41.880 --> 00:04:44.100
system is that you should actually not do

102
00:04:44.100 --> 00:04:44.400
that.

103
00:04:45.680 --> 00:04:47.800
They're kind of vague on what you should

104
00:04:47.800 --> 00:04:48.960
do and what you shouldn't do.

105
00:04:49.300 --> 00:04:52.260
You can do it, but you can also

106
00:04:52.260 --> 00:04:56.440
publish an agent, meaning that it gets its

107
00:04:56.440 --> 00:04:57.740
own endpoint.

108
00:04:58.760 --> 00:05:01.920
And the reason for that is that then

109
00:05:01.920 --> 00:05:05.620
your users should not know about your Foundry,

110
00:05:05.620 --> 00:05:07.360
and if you make a new version and

111
00:05:07.360 --> 00:05:11.700
you publish that, you can choose when it

112
00:05:11.700 --> 00:05:12.940
should be published to the user.

113
00:05:13.060 --> 00:05:15.440
So you can set and build, while here

114
00:05:15.440 --> 00:05:18.700
you can choose when to publish.

115
00:05:19.760 --> 00:05:22.500
And these public versions can then be consumed

116
00:05:22.500 --> 00:05:26.780
by Agent Framework using the Responses API, or

117
00:05:26.780 --> 00:05:30.680
it can be consumed in Microsoft Teams and

118
00:05:30.680 --> 00:05:31.920
Microsoft 365.

119
00:05:33.880 --> 00:05:40.580
This is what the documentation and everything tells

120
00:05:40.580 --> 00:05:42.720
you what you can do and what's new.

121
00:05:43.220 --> 00:05:45.160
And this is really exciting because it's a

122
00:05:45.160 --> 00:05:47.540
really good system and having these things.

123
00:05:48.220 --> 00:05:50.000
But a few things break down.

124
00:05:50.640 --> 00:05:52.920
I will show a little of them now

125
00:05:52.920 --> 00:05:55.460
in a live demo, and then we will

126
00:05:55.460 --> 00:05:57.460
talk a little about the rest of them

127
00:05:57.460 --> 00:05:58.240
after the fact.

128
00:06:00.000 --> 00:06:01.820
But let's jump in here.

129
00:06:02.740 --> 00:06:05.500
And I have Microsoft Foundry here in my

130
00:06:05.500 --> 00:06:07.780
sample repo, which is linked in the description

131
00:06:07.780 --> 00:06:08.600
of this video.

132
00:06:09.100 --> 00:06:11.700
And I have a lot of old classic

133
00:06:11.700 --> 00:06:13.660
agents from the AI Foundry before.

134
00:06:14.160 --> 00:06:16.560
And then I have this new one, Agents

135
00:06:16.560 --> 00:06:16.940
Basic.

136
00:06:17.220 --> 00:06:18.580
And I made a basic one if we

137
00:06:18.580 --> 00:06:22.580
make more advanced stuff with tooling and stuff.

138
00:06:23.820 --> 00:06:26.500
And if we look at what we need

139
00:06:26.500 --> 00:06:27.960
in order to do this, we just need

140
00:06:27.960 --> 00:06:33.120
Azure Identity, and we need Azure AI package

141
00:06:33.120 --> 00:06:34.680
from the Agent Framework.

142
00:06:36.180 --> 00:06:40.220
And up in the portal here, I don't

143
00:06:40.220 --> 00:06:41.660
have any agents right now.

144
00:06:42.000 --> 00:06:43.560
I could go in and make an agent

145
00:06:43.560 --> 00:06:45.740
and then just use it in code, so

146
00:06:45.740 --> 00:06:47.740
I don't need to build the agent in

147
00:06:47.740 --> 00:06:49.340
code if I don't want to.

148
00:06:49.340 --> 00:06:54.520
I could simply say, just create an agent,

149
00:06:56.740 --> 00:07:00.860
choose what model I want to use, write

150
00:07:00.860 --> 00:07:04.040
some instructions, add some tools, and then I

151
00:07:04.040 --> 00:07:06.520
could test it from here, or I could

152
00:07:06.520 --> 00:07:12.020
go in and use it in code just

153
00:07:12.020 --> 00:07:17.400
using the name test, because all agents in

154
00:07:17.400 --> 00:07:19.380
the same project needs to have a unique

155
00:07:19.380 --> 00:07:19.700
name.

156
00:07:21.080 --> 00:07:22.480
I could then publish the agent.

157
00:07:27.430 --> 00:07:30.770
And when published, I will get some URLs.

158
00:07:37.370 --> 00:07:39.690
It takes a little extra time to publish

159
00:07:39.690 --> 00:07:40.010
today.

160
00:07:42.950 --> 00:07:45.070
And I could get an activity protocol that's

161
00:07:45.070 --> 00:07:49.110
for Microsoft Teams and the bot service and

162
00:07:49.110 --> 00:07:53.610
response API where I get that this URL

163
00:07:53.610 --> 00:07:58.910
is specific to this agent, meaning the name

164
00:07:58.910 --> 00:08:00.050
is in the URL.

165
00:08:03.750 --> 00:08:05.770
So everything can be done up from here.

166
00:08:05.870 --> 00:08:07.450
I could go in and say I want

167
00:08:07.450 --> 00:08:09.630
the code interpreter tool, and then it would

168
00:08:09.630 --> 00:08:12.070
know the code interpreter tool and so on.

169
00:08:14.700 --> 00:08:17.140
But I can also make them in code.

170
00:08:17.540 --> 00:08:19.440
And you can see I actually saved it

171
00:08:19.440 --> 00:08:22.260
twice, one when I published and the other

172
00:08:22.260 --> 00:08:23.980
when I added the code interpreter tool.

173
00:08:24.180 --> 00:08:26.340
So now I have two versions, by the

174
00:08:26.340 --> 00:08:26.540
way.

175
00:08:27.060 --> 00:08:29.020
And I can go back to version 1

176
00:08:29.020 --> 00:08:30.760
where I didn't have the tool.

177
00:08:32.850 --> 00:08:34.929
So pretty neat that you can do it

178
00:08:34.929 --> 00:08:35.190
up here.

179
00:08:35.890 --> 00:08:39.850
Of course, it's all about normal resources.

180
00:08:40.110 --> 00:08:43.250
This infrastructure as code probably would be best

181
00:08:43.250 --> 00:08:46.950
if we made the agents in code, and

182
00:08:46.950 --> 00:08:49.950
they will auto-create themselves if someone goes

183
00:08:49.950 --> 00:08:52.790
and, by mistake, delete the agent up here.

184
00:08:55.100 --> 00:08:57.100
But that's all a matter of opinion.

185
00:08:57.940 --> 00:08:59.460
Let's see it in code at least.

186
00:09:01.280 --> 00:09:04.160
So if we run the code, we will

187
00:09:04.160 --> 00:09:05.480
just take it line by line.

188
00:09:09.740 --> 00:09:12.660
So first we make something called an AI

189
00:09:12.660 --> 00:09:14.060
project client.

190
00:09:15.040 --> 00:09:16.640
Let me just move it down here.

191
00:09:17.460 --> 00:09:21.580
And this comes from this Azure AI project.

192
00:09:22.580 --> 00:09:27.840
And then there's another subfolder for OpenAI, which

193
00:09:27.840 --> 00:09:30.580
is kind of silly now that Claude can

194
00:09:30.580 --> 00:09:32.100
be used as tools.

195
00:09:32.420 --> 00:09:36.720
So we are using technically a namespace called

196
00:09:36.720 --> 00:09:39.840
projects.openai to work with Claude as well.

197
00:09:40.040 --> 00:09:42.020
But we have done that for ages with

198
00:09:42.020 --> 00:09:45.920
the Azure OpenAI tool that can run Mistral

199
00:09:45.920 --> 00:09:48.460
and all the other models anyway.

200
00:09:49.640 --> 00:09:52.560
In any case, we have the AI project

201
00:09:52.560 --> 00:09:56.040
client where we just give an endpoint and

202
00:09:56.040 --> 00:09:58.100
our Azure CLI credentials.

203
00:09:58.700 --> 00:10:01.340
In my case, I set up Azure CLI.

204
00:10:01.800 --> 00:10:07.140
Let me find it up here.

205
00:10:07.660 --> 00:10:11.960
There's the AZ tool where I've logged in.

206
00:10:11.960 --> 00:10:16.300
And that will give me my credentials.

207
00:10:17.300 --> 00:10:20.920
Up in Azure, of course, they are given

208
00:10:20.920 --> 00:10:23.760
by the tool and the managed identities.

209
00:10:24.320 --> 00:10:27.800
And here you could use default Azure credentials

210
00:10:27.800 --> 00:10:30.120
in order to get them from the Visual

211
00:10:30.120 --> 00:10:31.800
Studio and stuff instead.

212
00:10:32.480 --> 00:10:34.780
But I just use this because it's the

213
00:10:34.780 --> 00:10:36.380
fastest one, despite it being slow.

214
00:10:38.480 --> 00:10:40.600
Then if we want to make an agent,

215
00:10:40.720 --> 00:10:41.960
we, of course, need the model.

216
00:10:41.960 --> 00:10:45.920
And this client can actually also work with

217
00:10:45.920 --> 00:10:46.600
the deployments.

218
00:10:46.720 --> 00:10:49.160
It can list the deployments, but unfortunately, it

219
00:10:49.160 --> 00:10:50.940
can't create the deployments.

220
00:10:51.000 --> 00:10:52.800
So we couldn't go from just having a

221
00:10:52.800 --> 00:10:56.280
project to getting the model deployed and up

222
00:10:56.280 --> 00:10:56.580
and running.

223
00:10:56.840 --> 00:10:58.560
But at least we can check if our

224
00:10:58.560 --> 00:10:59.340
model exists.

225
00:11:00.180 --> 00:11:02.300
I'm doing it with a try-catch method

226
00:11:02.300 --> 00:11:04.420
here, but I could also just list all

227
00:11:04.420 --> 00:11:07.280
deployments and then loop through, is there a

228
00:11:07.280 --> 00:11:09.900
deployment called dbt-41-mini.

229
00:11:11.000 --> 00:11:15.100
In my case, it exists, so I don't

230
00:11:15.100 --> 00:11:16.600
get this error, but else I would get

231
00:11:16.600 --> 00:11:16.940
the error.

232
00:11:17.160 --> 00:11:18.560
And in my case, I would just write

233
00:11:18.560 --> 00:11:20.020
out that it wasn't found.

234
00:11:22.050 --> 00:11:24.590
I do this similar with the agents, where

235
00:11:24.590 --> 00:11:27.150
I just ask for the agent by name.

236
00:11:27.870 --> 00:11:33.430
And if that fails, which it will, because

237
00:11:33.430 --> 00:11:35.750
we don't have it, we get a 404.

238
00:11:40.200 --> 00:11:42.760
And we will just say, okay, the agent

239
00:11:42.760 --> 00:11:43.420
doesn't exist.

240
00:11:43.600 --> 00:11:44.520
Let's create it.

241
00:11:46.380 --> 00:11:48.460
And in my case, I'm sending in the

242
00:11:48.460 --> 00:11:52.360
instructions here, because I later on want to

243
00:11:52.360 --> 00:11:54.260
make a version 2 with other instructions.

244
00:11:54.660 --> 00:11:56.180
And in this case, it was urnici.

245
00:11:58.000 --> 00:12:02.400
And then we use the client.agents.createAgentVersion.

246
00:12:03.760 --> 00:12:07.880
So we always make versions instead of agents,

247
00:12:08.400 --> 00:12:10.280
because the first time it will just be

248
00:12:10.280 --> 00:12:10.900
version 1.

249
00:12:11.000 --> 00:12:12.880
We don't specify the version or anything.

250
00:12:13.200 --> 00:12:14.760
That just happens automatically.

251
00:12:15.560 --> 00:12:17.800
So in order to create an agent, we

252
00:12:17.800 --> 00:12:20.160
need a name, and we need to give

253
00:12:20.160 --> 00:12:23.740
it some options in terms of agent version

254
00:12:23.740 --> 00:12:24.800
creation options.

255
00:12:25.960 --> 00:12:31.820
And there's various different agent versions, some being

256
00:12:31.820 --> 00:12:35.580
hosted, some being file-based, image-based, and

257
00:12:35.580 --> 00:12:36.060
so on.

258
00:12:36.200 --> 00:12:39.360
But we want a prompt agent definition, meaning

259
00:12:39.360 --> 00:12:40.820
a normal agent.

260
00:12:41.460 --> 00:12:43.340
I haven't seen what the others can be

261
00:12:43.340 --> 00:12:46.080
used for at the moment, so it might

262
00:12:46.080 --> 00:12:48.520
be for some future projects or something I

263
00:12:48.520 --> 00:12:50.200
haven't noticed in the system.

264
00:12:51.420 --> 00:12:54.340
But if we make this, let me just

265
00:12:54.340 --> 00:12:57.080
make it so we can see the code.

266
00:12:57.580 --> 00:12:59.680
We can give tools in here.

267
00:13:00.160 --> 00:13:01.680
So we give tools, for example.

268
00:13:02.460 --> 00:13:03.940
And if we want to make a code

269
00:13:03.940 --> 00:13:07.980
interpreter tool, like OpenAI have it, we can

270
00:13:07.980 --> 00:13:08.400
do that.

271
00:13:08.500 --> 00:13:10.880
We need to tell what container that should

272
00:13:10.880 --> 00:13:13.240
be in, and we can make it create

273
00:13:13.240 --> 00:13:15.160
an automatic container so we don't need to

274
00:13:15.160 --> 00:13:15.580
do anything.

275
00:13:16.160 --> 00:13:17.860
This is a little more cumbersome than the

276
00:13:17.860 --> 00:13:22.380
old Azure AI Foundry, where we just told

277
00:13:22.380 --> 00:13:24.960
it code interpreter tools, but it's because it

278
00:13:24.960 --> 00:13:28.800
can also hook up to existing containers so

279
00:13:28.800 --> 00:13:30.260
it doesn't need to spin them up.

280
00:13:31.560 --> 00:13:32.980
In our case, we just do that.

281
00:13:33.820 --> 00:13:36.620
We can also give it web search, which

282
00:13:36.620 --> 00:13:37.040
is fine.

283
00:13:37.540 --> 00:13:40.460
And you can technically give MCP tools, but

284
00:13:40.460 --> 00:13:42.020
this is one of the buggy things that

285
00:13:42.020 --> 00:13:45.240
are right now, in that we can make

286
00:13:45.240 --> 00:13:50.280
a tool, meaning a remote MCP tool, but

287
00:13:50.280 --> 00:13:54.680
if we do that, it will just call

288
00:13:54.680 --> 00:13:58.360
it but never complete it because built into

289
00:13:58.360 --> 00:14:01.440
the portal is that it needs approval for

290
00:14:01.440 --> 00:14:05.180
MCP tools, and Agent Framework can't handle that

291
00:14:05.180 --> 00:14:07.060
approval process right now.

292
00:14:07.600 --> 00:14:09.240
So that's the reason I've taken it away,

293
00:14:09.400 --> 00:14:11.900
but else it's just a name and a

294
00:14:11.900 --> 00:14:15.920
URL, which also is a bit buggy in

295
00:14:15.920 --> 00:14:19.140
my mind because if you had a remote

296
00:14:19.140 --> 00:14:22.300
MCP tool that needed an API key in

297
00:14:22.300 --> 00:14:24.500
its headers, you wouldn't be able to give

298
00:14:24.500 --> 00:14:29.280
that through this agent NuGet package right now.

299
00:14:32.500 --> 00:14:34.280
Moving on, we can do instructions.

300
00:14:34.720 --> 00:14:35.760
We have talked about that.

301
00:14:36.040 --> 00:14:39.340
And there's also options for reasoning options, but

302
00:14:39.340 --> 00:14:41.580
this is also buggy at the moment, so

303
00:14:41.580 --> 00:14:45.720
if you set them, the portal will completely

304
00:14:45.720 --> 00:14:50.180
ignore it, set every model to high for

305
00:14:50.180 --> 00:14:54.860
some reason, even though the default is medium,

306
00:14:56.600 --> 00:14:58.880
and if you try to set it like

307
00:14:58.880 --> 00:15:02.040
this, it will not recognise it, and it

308
00:15:02.040 --> 00:15:05.480
will ask every time you do anything to

309
00:15:05.480 --> 00:15:09.260
an agent, hey, it's unsaved because it looks

310
00:15:09.260 --> 00:15:11.880
at the behind-the-scenes data and that's

311
00:15:11.880 --> 00:15:13.440
different from what it sees itself.

312
00:15:13.440 --> 00:15:16.640
So right now, effectively, we can't set the

313
00:15:16.640 --> 00:15:18.700
reasoning, which is a huge bug in my

314
00:15:18.700 --> 00:15:19.720
opinion.

315
00:15:20.840 --> 00:15:23.720
The old portal also has it, unfortunately.

316
00:15:26.060 --> 00:15:29.220
There's also file search tools and such things,

317
00:15:29.400 --> 00:15:31.060
but these were just a simple one to

318
00:15:31.060 --> 00:15:31.420
set up.

319
00:15:33.340 --> 00:15:36.280
So now we have created our agents, and

320
00:15:36.280 --> 00:15:39.620
now we can get it as Microsoft Agent

321
00:15:39.620 --> 00:15:40.200
Framework.

322
00:15:40.540 --> 00:15:43.220
And for that, we just simply say client

323
00:15:43.220 --> 00:15:45.880
.getAIAgent, and we just give it a name,

324
00:15:47.260 --> 00:15:49.240
and behind the scenes, it will go up

325
00:15:49.240 --> 00:15:51.920
and find the right one because everyone has

326
00:15:51.920 --> 00:15:52.700
a unique name.

327
00:15:53.580 --> 00:15:56.300
So now we have a normal client with

328
00:15:56.300 --> 00:16:01.500
instructions and our normal steps with the tools

329
00:16:01.500 --> 00:16:03.740
we have made.

330
00:16:04.620 --> 00:16:06.200
And now we can ask it, of course.

331
00:16:06.400 --> 00:16:11.520
Let's say hi there to it, and it

332
00:16:11.520 --> 00:16:12.080
will come back.

333
00:16:12.320 --> 00:16:13.360
Hello, how can I assist you?

334
00:16:13.460 --> 00:16:14.340
So nothing special there.

335
00:16:15.020 --> 00:16:17.580
Then I will tell it what is this

336
00:16:17.580 --> 00:16:20.720
last number times this line now divided by

337
00:16:20.720 --> 00:16:23.440
this number and ask it to use tools

338
00:16:23.440 --> 00:16:26.500
to calculate, showing that it can use the

339
00:16:26.500 --> 00:16:27.520
code interpreter tool.

340
00:16:28.040 --> 00:16:31.200
This will take a little while because it

341
00:16:31.200 --> 00:16:33.760
needs to spin up a container up in

342
00:16:33.760 --> 00:16:39.120
Azure, do the Python code it will generate

343
00:16:39.120 --> 00:16:43.980
to answer this, execute that Python, get it

344
00:16:43.980 --> 00:16:46.200
back, and then we are on run.

345
00:16:47.080 --> 00:16:49.640
But we can see that it calculated what

346
00:16:49.640 --> 00:16:52.580
it was, and behind the scenes in the

347
00:16:52.580 --> 00:16:57.400
messages, we can see some content about that

348
00:16:57.400 --> 00:17:01.740
it was called with code interpreter and what

349
00:17:01.740 --> 00:17:04.760
code it was behind the scenes and stuff.

350
00:17:05.520 --> 00:17:09.540
So it was this down here.

351
00:17:09.540 --> 00:17:10.560
Nothing special.

352
00:17:10.680 --> 00:17:11.859
We get the result back.

353
00:17:13.770 --> 00:17:15.589
Now we try to say what is the

354
00:17:15.589 --> 00:17:18.150
biggest story for today, and today is the

355
00:17:18.150 --> 00:17:21.210
9th of December, 2025, when this is recorded.

356
00:17:25.619 --> 00:17:28.840
And if I know my American politics, it's

357
00:17:28.840 --> 00:17:30.340
probably something about Trump.

358
00:17:31.480 --> 00:17:32.260
But let's see.

359
00:17:37.190 --> 00:17:39.850
So this is behind the scenes using Bing

360
00:17:39.850 --> 00:17:42.210
now, but in the past, you needed to

361
00:17:42.210 --> 00:17:44.150
make a Bing account and stuff.

362
00:17:44.610 --> 00:17:46.450
Now they just say you don't need to

363
00:17:46.450 --> 00:17:48.510
do that, but you're still built for the

364
00:17:48.510 --> 00:17:53.550
calls, just like you are for the code

365
00:17:53.550 --> 00:17:54.470
interpreter calls.

366
00:17:56.290 --> 00:17:58.730
So it will say that it's something about

367
00:17:58.730 --> 00:18:01.250
the Supreme Court and President Trump.

368
00:18:01.510 --> 00:18:04.030
Don't want to go into politics, so we

369
00:18:04.030 --> 00:18:04.850
just have it.

370
00:18:05.870 --> 00:18:08.030
So now we have asked it and used

371
00:18:08.030 --> 00:18:11.030
its tools and stuff, and so far, sort

372
00:18:11.030 --> 00:18:16.710
of okay, except for a few mistakes or

373
00:18:16.710 --> 00:18:17.570
limitations.

374
00:18:18.850 --> 00:18:21.230
Now we're going to try and call the

375
00:18:21.230 --> 00:18:22.490
create agent again.

376
00:18:22.870 --> 00:18:25.130
By the way, if we just look up

377
00:18:25.130 --> 00:18:27.750
in the portal and refresh, we can see

378
00:18:27.750 --> 00:18:30.750
our agent up here, and we can see

379
00:18:30.750 --> 00:18:33.910
that it has what it was.

380
00:18:34.090 --> 00:18:37.630
It has the code interpreter tool, and here's

381
00:18:37.630 --> 00:18:40.370
one more mistake the system has.

382
00:18:40.490 --> 00:18:43.710
It can't show the web search tool, despite

383
00:18:43.710 --> 00:18:46.050
it being here, because the real web search

384
00:18:46.050 --> 00:18:48.350
tool is in preview, but it still reacts

385
00:18:48.350 --> 00:18:52.290
to web search, so a bit messy again.

386
00:18:53.210 --> 00:18:56.270
Up here, we can also see the conversations

387
00:18:56.270 --> 00:18:57.230
we had with it.

388
00:18:58.310 --> 00:19:01.090
I've used this name before, so it has

389
00:19:01.090 --> 00:19:04.190
multiple conversations, and we can see that it

390
00:19:04.190 --> 00:19:06.930
used the web search tool to get this

391
00:19:06.930 --> 00:19:10.250
text and generated the response back and so

392
00:19:10.250 --> 00:19:10.530
on.

393
00:19:13.120 --> 00:19:15.300
But what we can also see is that

394
00:19:15.300 --> 00:19:19.460
this is in version 1, and if I

395
00:19:19.460 --> 00:19:23.480
go in and give it a new instruction,

396
00:19:24.200 --> 00:19:26.400
meaning I just call the same code as

397
00:19:26.400 --> 00:19:28.700
I did when I created it, and the

398
00:19:28.700 --> 00:19:30.980
only difference is that it has to speak

399
00:19:30.980 --> 00:19:31.900
like a pirate now.

400
00:19:32.860 --> 00:19:37.390
So if I do that, and we go

401
00:19:37.390 --> 00:19:43.430
up in system here, we can now see

402
00:19:43.430 --> 00:19:46.670
that it's version 2, and it has speak

403
00:19:46.670 --> 00:19:49.910
like a pirate and version 1 had UL

404
00:19:49.910 --> 00:19:50.490
and ICI.

405
00:19:53.440 --> 00:19:55.460
What I can do is I could also

406
00:19:55.460 --> 00:19:58.500
just drag it up here and say, oh,

407
00:19:58.540 --> 00:19:59.840
I want a version 3.

408
00:20:01.680 --> 00:20:05.200
So if we do that and call the

409
00:20:05.200 --> 00:20:10.600
same code again and go to the portal,

410
00:20:11.900 --> 00:20:13.900
we will see we don't get a version

411
00:20:13.900 --> 00:20:16.880
3 because it would like to check, is

412
00:20:16.880 --> 00:20:21.160
there any differences in the agent definition, and

413
00:20:21.160 --> 00:20:24.440
if not, then let's not make a new

414
00:20:24.440 --> 00:20:24.780
version.

415
00:20:25.800 --> 00:20:28.960
So it's perfectly safe to call create version

416
00:20:28.960 --> 00:20:30.980
if you are okay with the extra time

417
00:20:30.980 --> 00:20:34.820
it takes in order to be sure that

418
00:20:34.820 --> 00:20:36.940
your agent is just like as you have

419
00:20:36.940 --> 00:20:37.900
defined it in the code.

420
00:20:40.780 --> 00:20:43.280
In any case, we have now said it

421
00:20:43.280 --> 00:20:44.960
needs to speak like a pirate, so we

422
00:20:44.960 --> 00:20:46.300
just get the agent again.

423
00:20:46.420 --> 00:20:48.300
So this is version 2 of the agent,

424
00:20:49.320 --> 00:20:55.090
and we'll just say hi there, and it

425
00:20:55.090 --> 00:20:56.990
will come back with ohoi matey.

426
00:20:57.470 --> 00:21:01.470
So we now hit version 2, but if

427
00:21:01.470 --> 00:21:03.790
we want to hit version 1, we can,

428
00:21:04.590 --> 00:21:06.650
in that we can go to client-agents

429
00:21:06.650 --> 00:21:09.610
.get-agent-version-async, and we can say

430
00:21:09.610 --> 00:21:13.350
give me my agent in version number 1,

431
00:21:14.090 --> 00:21:17.450
and if we do that, we get a

432
00:21:17.450 --> 00:21:20.910
version back, something called an Asian version from

433
00:21:20.910 --> 00:21:24.870
the portal, and we can now get our

434
00:21:24.870 --> 00:21:25.750
agent by version.

435
00:21:26.150 --> 00:21:27.810
So this one might be a good idea

436
00:21:27.810 --> 00:21:30.690
if you use it like this and you

437
00:21:30.690 --> 00:21:34.410
want to build new versions, but have the

438
00:21:34.410 --> 00:21:37.170
users still run on a version and then

439
00:21:37.170 --> 00:21:39.870
in your code bump up, now I want

440
00:21:39.870 --> 00:21:41.730
to run version 3, now I want to

441
00:21:41.730 --> 00:21:43.250
run version 4, and so on.

442
00:21:45.130 --> 00:21:47.890
So agent by version we get, and we

443
00:21:47.890 --> 00:21:50.090
can now ask agent 1.

444
00:21:50.290 --> 00:21:53.530
It doesn't know it's agent 1, but it

445
00:21:53.530 --> 00:21:55.710
was fun to write, and when it comes

446
00:21:55.710 --> 00:21:58.110
back, it doesn't say hello matey because this

447
00:21:58.110 --> 00:22:00.050
is the version that had it was just

448
00:22:00.050 --> 00:22:03.470
a nice AI, but if we asked version

449
00:22:03.470 --> 00:22:05.370
2, it would speak like a pirate.

450
00:22:06.530 --> 00:22:11.050
And that is all the code, but let's

451
00:22:11.050 --> 00:22:14.130
run it again and see what happens up

452
00:22:14.130 --> 00:22:14.350
here.

453
00:22:16.210 --> 00:22:19.530
Now that we have our agent, and it

454
00:22:19.530 --> 00:22:21.990
shouldn't surprise that, of course, we have our

455
00:22:21.990 --> 00:22:22.330
model.

456
00:22:22.570 --> 00:22:27.170
We have that before, and if we ask

457
00:22:27.170 --> 00:22:33.870
for our agent, it has the agent, so

458
00:22:33.870 --> 00:22:35.890
it didn't show an exception, so we can

459
00:22:35.890 --> 00:22:37.050
just use the agent.

460
00:22:37.050 --> 00:22:40.510
So now we're not calling create agent anymore,

461
00:22:40.830 --> 00:22:42.730
and we're just using the one that was

462
00:22:42.730 --> 00:22:43.150
up there.

463
00:22:47.430 --> 00:22:51.150
And the answers will be the same, but

464
00:22:51.150 --> 00:22:53.250
remember that now that we're just calling the

465
00:22:53.250 --> 00:22:55.370
agent, it will be version 2, which is

466
00:22:55.370 --> 00:22:56.790
the one that speaks like a pirate.

467
00:23:00.310 --> 00:23:03.430
So for that reason, we will see that

468
00:23:03.430 --> 00:23:05.690
it will come back, but else it will

469
00:23:05.690 --> 00:23:07.170
be exactly the same.

470
00:23:10.080 --> 00:23:12.300
Once it wakes up.

471
00:23:13.960 --> 00:23:15.400
But I think you get the point.

472
00:23:15.540 --> 00:23:17.160
We could then make a version 3 that

473
00:23:17.160 --> 00:23:19.220
didn't speak like a pirate, so when we

474
00:23:19.220 --> 00:23:22.920
hit this, it will essentially not do anything.

475
00:23:23.080 --> 00:23:25.500
It will make version 2 again.

476
00:23:26.480 --> 00:23:29.140
So now we come back with that, and

477
00:23:29.140 --> 00:23:31.740
I don't want to spend your time on

478
00:23:31.740 --> 00:23:36.720
this, but we need to talk a little

479
00:23:36.720 --> 00:23:40.840
about the limitations, because it has been a

480
00:23:40.840 --> 00:23:43.360
real struggle making this video.

481
00:23:44.020 --> 00:23:46.340
It's taken me all day to find these

482
00:23:46.340 --> 00:23:49.500
simple things, because when you just look at

483
00:23:49.500 --> 00:23:52.860
the surface, 80 to 90% works, but

484
00:23:52.860 --> 00:23:55.880
the last percentages, which are very important, at

485
00:23:55.880 --> 00:24:00.280
least in my mind, makes this a very

486
00:24:00.280 --> 00:24:02.740
tough sell, meaning I would never, ever go

487
00:24:02.740 --> 00:24:05.460
live with what we have right now, to

488
00:24:05.460 --> 00:24:06.000
be honest.

489
00:24:06.740 --> 00:24:09.040
But let's talk a little about the eight

490
00:24:09.040 --> 00:24:10.940
things I have found that are broken and

491
00:24:10.940 --> 00:24:12.840
buggy right now, and there might be more.

492
00:24:15.130 --> 00:24:18.330
First up, one of the big problems is

493
00:24:18.330 --> 00:24:19.870
that we can't set the reasoning effort.

494
00:24:20.790 --> 00:24:23.150
We could go up in the GUI and

495
00:24:23.150 --> 00:24:27.610
do it, but then we couldn't use code

496
00:24:27.610 --> 00:24:28.970
to make our agents.

497
00:24:28.970 --> 00:24:31.610
So if you want to live with you

498
00:24:31.610 --> 00:24:33.890
needing to set the reasoning effort up in

499
00:24:33.890 --> 00:24:37.350
code instead, or in the GUI, you might

500
00:24:37.350 --> 00:24:39.370
could live with this problem.

501
00:24:39.770 --> 00:24:43.010
To me, reasoning effort is so important, because

502
00:24:43.010 --> 00:24:46.550
it's simply too expensive to run the Chatterjee

503
00:24:46.550 --> 00:24:49.850
V5 models with reasoning on for every single

504
00:24:49.850 --> 00:24:50.870
little question.

505
00:24:51.190 --> 00:24:53.890
For the good stuff and hard and complex

506
00:24:53.890 --> 00:24:56.250
stuff, it's really good, but for the other

507
00:24:56.250 --> 00:24:57.790
ones I want to go down to minimal

508
00:24:57.790 --> 00:24:59.590
or none, and we can't do that.

509
00:25:01.940 --> 00:25:05.920
Second, we can't mix hosted tools and ad

510
00:25:05.920 --> 00:25:06.480
hoc tools.

511
00:25:07.040 --> 00:25:09.520
You could in the old AI foundry, so

512
00:25:09.520 --> 00:25:10.840
it might come back.

513
00:25:11.820 --> 00:25:14.460
But right now, for example, we couldn't go

514
00:25:14.460 --> 00:25:17.060
and have the code interpreter tool and then

515
00:25:17.060 --> 00:25:20.520
a local ad hoc tool, like get the

516
00:25:20.520 --> 00:25:22.960
weather or whatever we want.

517
00:25:23.240 --> 00:25:24.900
That is simply not possible.

518
00:25:25.820 --> 00:25:29.800
We can get ad hoc tools to work,

519
00:25:29.900 --> 00:25:31.640
but then it's only ad hoc tools, or

520
00:25:31.640 --> 00:25:34.600
we can get hosted tools to work, and

521
00:25:34.600 --> 00:25:36.040
then it's only ad hoc tools.

522
00:25:36.160 --> 00:25:39.120
But we can't mix the two in a

523
00:25:39.120 --> 00:25:40.700
good manner at the moment.

524
00:25:41.560 --> 00:25:43.820
A few things works, but not all, and

525
00:25:43.820 --> 00:25:45.600
this is a really deal breaker for me

526
00:25:45.600 --> 00:25:45.980
as well.

527
00:25:49.060 --> 00:25:51.680
Hosted MCP tools, yes, we can define them,

528
00:25:51.800 --> 00:25:54.780
but the agent framework will just get back,

529
00:25:54.780 --> 00:25:56.980
hey, I want to do this tool call,

530
00:25:57.060 --> 00:25:59.840
but it doesn't know about the tools, so

531
00:25:59.840 --> 00:26:04.100
it can't understand what's going on and ask

532
00:26:04.100 --> 00:26:05.560
us to approve it.

533
00:26:06.320 --> 00:26:10.200
And on the foundry side, we don't have

534
00:26:10.200 --> 00:26:15.440
the setting to say if something doesn't need

535
00:26:15.440 --> 00:26:18.740
to ask for approval, and we can't set

536
00:26:18.740 --> 00:26:21.900
headers in any way or authentication.

537
00:26:21.900 --> 00:26:25.300
So that's also a big deal breaker compared

538
00:26:25.300 --> 00:26:26.900
to running them locally.

539
00:26:30.080 --> 00:26:33.540
The web server tool works, and again, it's

540
00:26:33.540 --> 00:26:35.440
easier to work, but the GUI doesn't display

541
00:26:35.440 --> 00:26:35.600
it.

542
00:26:35.680 --> 00:26:37.560
That is not a big deal.

543
00:26:38.820 --> 00:26:41.580
We can go around that, of course, but

544
00:26:41.580 --> 00:26:45.380
it's annoying that it isn't there and being

545
00:26:45.380 --> 00:26:45.700
shown.

546
00:26:48.320 --> 00:26:51.960
Then I didn't show it, but up here

547
00:26:51.960 --> 00:26:55.780
in the agents, there's something called a memory

548
00:26:55.780 --> 00:26:58.820
component, and if you turn it on, it

549
00:26:58.820 --> 00:27:01.500
will make a memory store, and then you

550
00:27:01.500 --> 00:27:03.580
should be able to go in and say,

551
00:27:03.840 --> 00:27:06.760
hey, my name is Rasmus, remember that, go

552
00:27:06.760 --> 00:27:10.300
to a new thread, a new conversation, and

553
00:27:10.300 --> 00:27:11.380
ask what is my name.

554
00:27:12.320 --> 00:27:15.240
That works 50% of the time, it

555
00:27:15.240 --> 00:27:19.360
seems, and we can't define this in code

556
00:27:19.360 --> 00:27:20.100
in any way.

557
00:27:20.100 --> 00:27:23.540
It's simply not in the NuGet package that

558
00:27:23.540 --> 00:27:24.120
we can do.

559
00:27:25.980 --> 00:27:28.920
So I wouldn't rely on this.

560
00:27:29.060 --> 00:27:33.620
I would use AI context provider instead myself,

561
00:27:34.180 --> 00:27:38.760
but it simply doesn't work at the moment.

562
00:27:42.900 --> 00:27:45.820
Then there's the knowledge system, which is kind

563
00:27:45.820 --> 00:27:46.700
of a big mess.

564
00:27:47.700 --> 00:27:51.180
You can press knowledge here and say ads.

565
00:27:51.180 --> 00:27:54.600
I have never really gotten it to work

566
00:27:54.600 --> 00:27:57.480
really well, and even when I get it

567
00:27:57.480 --> 00:28:00.600
to work, it can call it sometimes, but

568
00:28:00.600 --> 00:28:03.260
it can't really do anything with it, and

569
00:28:03.260 --> 00:28:05.560
I've tried various ways to try and get

570
00:28:05.560 --> 00:28:07.020
this to work together.

571
00:28:07.620 --> 00:28:12.700
The entire knowledge section here is rough too,

572
00:28:13.200 --> 00:28:16.240
to be honest, and it's mostly built on

573
00:28:16.240 --> 00:28:19.300
AI search, which is a really expensive resource

574
00:28:19.300 --> 00:28:20.000
to run.

575
00:28:20.000 --> 00:28:22.700
At the same time, so I would probably

576
00:28:22.700 --> 00:28:24.800
not use it in real life anyway.

577
00:28:27.480 --> 00:28:34.060
I haven't looked endlessly into it, but when

578
00:28:34.060 --> 00:28:37.220
I even can't use this GUI to set

579
00:28:37.220 --> 00:28:39.340
it up, then there is something wrong, and

580
00:28:39.340 --> 00:28:42.720
you can't set it up in the code

581
00:28:42.720 --> 00:28:42.980
either.

582
00:28:45.140 --> 00:28:47.980
Then there is that these publish agents are

583
00:28:47.980 --> 00:28:49.060
not properly supported.

584
00:28:49.800 --> 00:28:53.420
You get this URL, but the agent framework

585
00:28:53.420 --> 00:28:59.040
or OpenAI's own NuGet packets can't support that

586
00:28:59.040 --> 00:29:00.340
URL.

587
00:29:00.960 --> 00:29:03.800
There is some breaking glass, meaning go in

588
00:29:03.800 --> 00:29:06.000
and do some hacks to get it working

589
00:29:06.000 --> 00:29:09.420
in the system, but I talked with the

590
00:29:09.420 --> 00:29:13.120
team, and they said that there's no documentation

591
00:29:13.120 --> 00:29:17.060
and no information about it, and you need

592
00:29:17.060 --> 00:29:19.180
to go into the raw call and on

593
00:29:19.180 --> 00:29:21.720
the fly get rid of stuff to get

594
00:29:21.720 --> 00:29:24.900
it working, and I would not be very

595
00:29:24.900 --> 00:29:25.880
happy to do that.

596
00:29:27.480 --> 00:29:29.900
And then we end up, why have they

597
00:29:29.900 --> 00:29:33.860
made publish agents in the first place when

598
00:29:33.860 --> 00:29:36.860
we can already hit them by a version

599
00:29:36.860 --> 00:29:37.420
and stuff?

600
00:29:40.170 --> 00:29:42.910
It must be because they want us to

601
00:29:42.910 --> 00:29:46.650
actually go live in production scenarios with these

602
00:29:46.650 --> 00:29:51.010
versions instead of hooking up to Microsoft Foundry,

603
00:29:51.650 --> 00:29:55.670
but given that it doesn't work, it's yet

604
00:29:55.670 --> 00:29:57.390
another issue.

605
00:29:58.330 --> 00:30:00.750
I could probably live with this one because

606
00:30:00.750 --> 00:30:04.170
why not just use the Foundry, but bigger

607
00:30:04.170 --> 00:30:07.070
companies might have a problem with this.

608
00:30:11.370 --> 00:30:15.850
Then publish to Microsoft Teams, and Microsoft 365

609
00:30:15.850 --> 00:30:18.790
sounds so cool on paper that you can

610
00:30:18.790 --> 00:30:21.670
more or less without any code, if you

611
00:30:21.670 --> 00:30:23.570
just use the portal, get an agent in

612
00:30:23.570 --> 00:30:26.770
there with your own instructions and everything.

613
00:30:27.790 --> 00:30:30.490
I have not made it to work.

614
00:30:31.390 --> 00:30:35.510
It makes some agent services, and it says

615
00:30:35.510 --> 00:30:38.130
prepare agent, press okay, and nothing happens, and

616
00:30:38.130 --> 00:30:40.130
then you can try again, and then you

617
00:30:40.130 --> 00:30:41.490
can't publish the agent again.

618
00:30:42.470 --> 00:30:44.070
I might be doing something wrong.

619
00:30:44.890 --> 00:30:47.230
It could be that I might have not

620
00:30:47.230 --> 00:30:52.750
enough permissions in the setups I have, but

621
00:30:52.750 --> 00:30:54.870
if it works, it's at least not easy

622
00:30:54.870 --> 00:30:55.290
to do.

623
00:30:58.360 --> 00:31:03.420
So this and then the portal being slow

624
00:31:03.420 --> 00:31:05.740
at times and stuff, but these are the

625
00:31:05.740 --> 00:31:09.100
big things I have found that really makes

626
00:31:09.100 --> 00:31:11.400
me hesitant on what to do from now

627
00:31:12.480 --> 00:31:14.940
because what do we do with this series?

628
00:31:16.200 --> 00:31:17.240
I can soldier on.

629
00:31:17.440 --> 00:31:22.000
The next video would be about workflows, which

630
00:31:22.000 --> 00:31:23.620
probably are also a lot of buggy.

631
00:31:25.400 --> 00:31:28.280
So I'm a bit unsure if it's better

632
00:31:28.280 --> 00:31:31.200
to wait a couple of months to continue

633
00:31:31.200 --> 00:31:35.740
this series, make a version three, take two,

634
00:31:35.920 --> 00:31:39.780
where all the stuff works, and then continue

635
00:31:39.780 --> 00:31:44.180
there, or if you want to see everything

636
00:31:44.180 --> 00:31:46.880
that is in there right now with all

637
00:31:46.880 --> 00:31:50.420
the buggy stuff as well, where there are

638
00:31:50.420 --> 00:31:51.640
certain things I can't show.

639
00:31:52.560 --> 00:31:56.160
So I'm generally interested in figuring out if

640
00:31:56.160 --> 00:31:58.400
you want more in this series, or this

641
00:31:58.400 --> 00:32:00.720
was the first step in the series, and

642
00:32:00.720 --> 00:32:03.360
we will take a break and come back

643
00:32:03.360 --> 00:32:06.900
when things are actually working because you can

644
00:32:06.900 --> 00:32:09.500
definitely not go live on this, in my

645
00:32:09.500 --> 00:32:11.380
opinion, or I wouldn't do it.

646
00:32:12.820 --> 00:32:15.260
The needs might be less than what I

647
00:32:15.260 --> 00:32:18.760
have, but especially reasoning effort and mix of

648
00:32:18.760 --> 00:32:21.280
tools is a major deal breaker for me,

649
00:32:21.940 --> 00:32:23.400
in my opinion.

650
00:32:24.340 --> 00:32:26.700
But sound off in the comments, and let's

651
00:32:26.700 --> 00:32:30.260
see if there will be a part four

652
00:32:30.260 --> 00:32:32.700
or not in this series.

653
00:32:33.780 --> 00:32:34.820
Up to you guys.

654
00:32:35.980 --> 00:32:38.160
But in any case, see you in whatever

655
00:32:38.160 --> 00:32:39.680
next video is there.
