1
00:00:00,040 --> 00:00:02,919
Semantic kernel is the layer
under Microsoft's AI tools that
2
00:00:02,919 --> 00:00:04,120
almost nobody explains.
3
00:00:04,120 --> 00:00:07,360
It's a free open source kit that
lets your own code talk to a
4
00:00:07,360 --> 00:00:10,119
large language model, and lets
that model call your code back.
5
00:00:10,119 --> 00:00:11,240
You might expect a chatbot
6
00:00:11,240 --> 00:00:12,320
builder, but it's really
7
00:00:12,320 --> 00:00:13,759
middleware, the quiet part in
8
00:00:13,759 --> 00:00:14,400
the middle.
9
00:00:14,400 --> 00:00:16,760
Once you see the handful of
pieces inside it, the way
10
00:00:16,760 --> 00:00:19,839
Microsoft builds agents stops
feeling like a mystery.
11
00:00:19,839 --> 00:00:23,440
Welcome to the M365 FM podcast,
where we explore the people,
12
00:00:23,440 --> 00:00:26,320
ideas, and technologies shaping
the future of work.
13
00:00:26,320 --> 00:00:29,280
Today, we're breaking down
semantic kernel piece by piece
14
00:00:29,280 --> 00:00:30,960
in plain English.
15
00:00:30,960 --> 00:00:32,640
What semantic kernel actually
is?
16
00:00:32,640 --> 00:00:33,880
Let's start with the plainest
17
00:00:33,880 --> 00:00:35,159
version, because the name makes
18
00:00:35,159 --> 00:00:36,359
it sound heavier than it really
19
00:00:36,359 --> 00:00:37,320
is.
20
00:00:37,320 --> 00:00:40,439
Semantic kernel is a free open
source kit from Microsoft that
21
00:00:40,439 --> 00:00:43,079
connects the software you're
already building to an AI model,
22
00:00:43,079 --> 00:00:45,520
and then lets the model call
your own code back.
23
00:00:45,520 --> 00:00:48,200
Microsoft describes it as
middleware, which is just a word
24
00:00:48,200 --> 00:00:51,560
for the layer that sits in the
middle and passes messages
25
00:00:51,560 --> 00:00:54,039
between two things that don't
speak the same language.
26
00:00:54,039 --> 00:00:55,679
Now what it isn't matters just
as much.
27
00:00:55,679 --> 00:00:58,380
It isn't an app you open, it
isn't a chatbot you type into,
28
00:00:58,380 --> 00:01:01,020
and it isn't a model like the
ones running behind copilot.
29
00:01:01,020 --> 00:01:03,740
You install it inside a project
you're already working on, and
30
00:01:03,740 --> 00:01:06,459
it takes over the awkward part
of talking to an AI.
31
00:01:06,459 --> 00:01:09,420
The kit first appeared in March
of twenty twenty three under an
32
00:01:09,420 --> 00:01:11,099
open license called MIT.
33
00:01:11,099 --> 00:01:13,659
That license means anyone can
use it, read the code and change
34
00:01:13,659 --> 00:01:16,219
it to fit their own needs, which
is a big reason it spread
35
00:01:16,219 --> 00:01:17,459
quickly among developers.
36
00:01:17,459 --> 00:01:19,700
It also doesn't care where your
software runs.
37
00:01:19,700 --> 00:01:20,980
The kit works inside your own
38
00:01:20,980 --> 00:01:22,219
application, on Microsoft's
39
00:01:22,219 --> 00:01:23,620
cloud, or on another cloud, or
40
00:01:23,620 --> 00:01:24,819
on a machine sitting under your
41
00:01:24,819 --> 00:01:25,260
desk.
42
00:01:25,260 --> 00:01:28,060
Azure is the most common home
for it, but Microsoft is quick
43
00:01:28,060 --> 00:01:29,540
to say Azure isn't required.
44
00:01:29,540 --> 00:01:31,459
There's a clear reason this
layer exists.
45
00:01:31,459 --> 00:01:34,379
Picture a working app full of
real features like looking up
46
00:01:34,379 --> 00:01:36,019
orders or sending emails.
47
00:01:36,019 --> 00:01:37,260
A language model is great at
48
00:01:37,260 --> 00:01:38,819
understanding requests, but it
49
00:01:38,819 --> 00:01:40,140
can't touch any of that by
50
00:01:40,140 --> 00:01:41,180
itself.
51
00:01:41,180 --> 00:01:43,780
Semantic kernel closes that gap
so the model can reach into your
52
00:01:43,780 --> 00:01:45,579
app, and your app can reach back
into the model.
53
00:01:45,579 --> 00:01:47,579
Here's a small example to make
it real.
54
00:01:47,579 --> 00:01:48,819
Say a customer types a question
55
00:01:48,819 --> 00:01:49,980
about an order, and your app
56
00:01:49,980 --> 00:01:51,439
needs to look up that order,
57
00:01:51,439 --> 00:01:53,180
check its status, and reply in
58
00:01:53,180 --> 00:01:53,939
plain language.
59
00:01:53,939 --> 00:01:55,140
A model can write that reply,
60
00:01:55,140 --> 00:01:56,219
but it can't look up the order
61
00:01:56,219 --> 00:01:57,180
by itself.
62
00:01:57,180 --> 00:02:00,299
Semantic kernel lets the model
ask your app to do that lookup,
63
00:02:00,299 --> 00:02:03,319
and then use the answer in its
reply all in one flow.
64
00:02:03,319 --> 00:02:05,799
Microsoft says fortune five
hundred companies already build
65
00:02:05,799 --> 00:02:09,639
on it, and the reason they give
is that it's flexible, modular
66
00:02:09,639 --> 00:02:14,000
and easy to watch while it
works, the kernel and the name.
67
00:02:14,000 --> 00:02:16,000
The first word that trips people
up is kernel.
68
00:02:16,000 --> 00:02:17,400
So let's take the name apart.
69
00:02:17,400 --> 00:02:19,719
Semantic points at meaning and
natural language.
70
00:02:19,719 --> 00:02:21,479
The kind of thing a model is
good at.
71
00:02:21,479 --> 00:02:22,800
Kernel points at the center.
72
00:02:22,800 --> 00:02:24,879
The one object that everything
else plugs into.
73
00:02:24,879 --> 00:02:27,680
Microsoft's own description is
refreshingly simple.
74
00:02:27,680 --> 00:02:30,479
At its simplest, the kernel is a
container that holds all the
75
00:02:30,479 --> 00:02:33,439
services and plugins your AI
application needs to run.
76
00:02:33,439 --> 00:02:35,960
Think of it as a single box
where every part of your AI app
77
00:02:35,960 --> 00:02:38,520
gets registered, so the app
always knows where to find them.
78
00:02:38,520 --> 00:02:40,120
You hand the kernel two kinds of
things.
79
00:02:40,120 --> 00:02:43,159
The first is services, which are
the AI models themselves, plus
80
00:02:43,159 --> 00:02:45,080
ordinary utilities like logging.
81
00:02:45,080 --> 00:02:46,840
The second is plugins, which are
82
00:02:46,840 --> 00:02:48,159
the parts that do the actual
83
00:02:48,159 --> 00:02:48,599
work.
84
00:02:48,599 --> 00:02:50,120
And we'll get to those in a
moment.
85
00:02:50,120 --> 00:02:53,280
When your app sends a request,
the kernel runs through a short
86
00:02:53,280 --> 00:02:54,479
sequence of jobs.
87
00:02:54,479 --> 00:02:57,400
It picks the best AI service for
the task, builds the prompt from
88
00:02:57,400 --> 00:03:00,439
your template, sends it off,
reads the reply, and hands the
89
00:03:00,439 --> 00:03:02,099
result back to your application.
90
00:03:02,099 --> 00:03:03,780
If that sounds like plumbing
you've seen before.
91
00:03:03,780 --> 00:03:04,860
That's because it is.
92
00:03:04,860 --> 00:03:08,020
Microsoft modeled the kernel on
a common pattern from a net
93
00:03:08,020 --> 00:03:10,900
called dependency injection,
where one central place supplies
94
00:03:10,900 --> 00:03:13,159
the pieces that other parts of
the code need, so nobody has to
95
00:03:13,159 --> 00:03:14,340
hardwire them for you.
96
00:03:14,340 --> 00:03:16,939
The practical point is simple
the kernel is the control room.
97
00:03:16,939 --> 00:03:17,939
Everything else is a tool.
98
00:03:17,939 --> 00:03:21,020
You register there, and from
that one place you can set up
99
00:03:21,020 --> 00:03:22,419
and watch the whole thing.
100
00:03:22,419 --> 00:03:23,699
There's one more detail about
101
00:03:23,699 --> 00:03:24,979
the kernel and then we'll move
102
00:03:24,979 --> 00:03:25,460
on.
103
00:03:25,460 --> 00:03:27,479
It's lightweight because it's
really just a container, so
104
00:03:27,479 --> 00:03:30,139
Microsoft recommends building a
fresh one for each use instead
105
00:03:30,139 --> 00:03:31,419
of holding on to one forever.
106
00:03:31,419 --> 00:03:32,939
That sounds fussy, but it keeps
107
00:03:32,939 --> 00:03:34,340
your plugins from leaking state
108
00:03:34,340 --> 00:03:36,219
between requests, plugins, and
109
00:03:36,219 --> 00:03:36,900
functions.
110
00:03:36,900 --> 00:03:38,620
This is where semantic kernel
gets useful.
111
00:03:38,620 --> 00:03:40,020
So let's slow down.
112
00:03:40,020 --> 00:03:43,060
A plugin is a group of functions
that you expose to the AI.
113
00:03:43,060 --> 00:03:45,620
In other tools, those functions
are often called tools or
114
00:03:45,620 --> 00:03:48,340
actions, and in the earliest
version of semantic kernel,
115
00:03:48,340 --> 00:03:49,699
plugins were called skills.
116
00:03:49,699 --> 00:03:50,699
A function is just a piece of
117
00:03:50,699 --> 00:03:52,139
your own code with a plain
118
00:03:52,139 --> 00:03:53,180
description attached.
119
00:03:53,180 --> 00:03:54,560
The description tells the AI
120
00:03:54,560 --> 00:03:56,060
what the function does, what
121
00:03:56,060 --> 00:03:57,300
goes into it, and what comes
122
00:03:57,300 --> 00:03:58,099
back out.
123
00:03:58,099 --> 00:04:00,949
Microsoft's own example is a
lights plugin with three
124
00:04:00,949 --> 00:04:03,800
functions one that lists every
light, one that reports the
125
00:04:03,800 --> 00:04:06,800
state of a single light, and one
that changes a light state.
126
00:04:06,800 --> 00:04:08,680
The model reads those
descriptions and picks the right
127
00:04:08,680 --> 00:04:09,960
function for the request.
128
00:04:09,960 --> 00:04:11,879
Beginners usually miss one
detail here.
129
00:04:11,879 --> 00:04:13,400
The description isn't
decoration.
130
00:04:13,400 --> 00:04:14,919
If it's vague, the model guesses
131
00:04:14,919 --> 00:04:16,160
wrong or skips the function
132
00:04:16,160 --> 00:04:17,579
entirely and the whole thing
133
00:04:17,579 --> 00:04:18,480
falls apart.
134
00:04:18,480 --> 00:04:20,839
Write the description the way
you'd explain the function to a
135
00:04:20,839 --> 00:04:23,199
new colleague, and the model
will use it correctly.
136
00:04:23,199 --> 00:04:24,720
Plugins can come from three
places.
137
00:04:24,720 --> 00:04:26,079
You can write them in your own
code.
138
00:04:26,079 --> 00:04:29,240
Import them from a shared web
standard called OpenAPI, or pull
139
00:04:29,240 --> 00:04:31,939
them in from something called an
MCP server, which is short for
140
00:04:31,939 --> 00:04:33,560
Model Context Protocol.
141
00:04:33,560 --> 00:04:36,360
That last one matters because it
lets one team build a capability
142
00:04:36,360 --> 00:04:37,800
and share it with everyone else.
143
00:04:37,800 --> 00:04:40,439
Sharing is the real prize with
those last two options.
144
00:04:40,439 --> 00:04:43,439
If you describe a capability
with OpenAPI or wrap it in an
145
00:04:43,439 --> 00:04:46,759
MCP server, another team can
pick it up without rewriting it.
146
00:04:46,759 --> 00:04:48,060
And even a maker in a low code
147
00:04:48,060 --> 00:04:48,879
tool can use the same
148
00:04:48,879 --> 00:04:49,879
capability.
149
00:04:49,879 --> 00:04:50,839
That's how one well-built
150
00:04:50,839 --> 00:04:51,839
function ends up helping the
151
00:04:51,839 --> 00:04:52,639
whole company.
152
00:04:52,639 --> 00:04:54,120
Plugins also play nicely with
153
00:04:54,120 --> 00:04:55,560
the way real teams build
154
00:04:55,560 --> 00:04:56,279
software.
155
00:04:56,279 --> 00:04:57,439
A plugin can hold its own
156
00:04:57,439 --> 00:04:58,560
database connection or web
157
00:04:58,560 --> 00:05:00,439
client, so the AI never sees the
158
00:05:00,439 --> 00:05:01,699
sensitive details.
159
00:05:01,699 --> 00:05:04,259
It only sees the plain
description and the result.
160
00:05:04,259 --> 00:05:06,439
There's one practical warning
before you build a giant
161
00:05:06,439 --> 00:05:09,579
toolbox, OpenAI recommends no
more than twenty tools in a
162
00:05:09,579 --> 00:05:12,579
single request, and ideally no
more than ten, because the
163
00:05:12,579 --> 00:05:15,420
model's accuracy drops as the
list gets longer.
164
00:05:15,420 --> 00:05:19,019
Fewer, clearer functions beat a
giant pile of them every time.
165
00:05:19,019 --> 00:05:19,819
Planning and function.
166
00:05:19,819 --> 00:05:20,420
Calling.
167
00:05:20,420 --> 00:05:23,019
Once you have several functions,
a new problem shows up.
168
00:05:23,019 --> 00:05:25,779
The AI has to decide which
functions to use in what order
169
00:05:25,779 --> 00:05:27,180
to answer one request.
170
00:05:27,180 --> 00:05:29,379
In semantic kernel, that job is
called planning.
171
00:05:29,379 --> 00:05:30,980
The original answer was
planners.
172
00:05:30,980 --> 00:05:33,500
You handed the kit a set of
functions, and it wrote a prompt
173
00:05:33,500 --> 00:05:35,259
asking the model to choose a
plan for you.
174
00:05:35,259 --> 00:05:37,819
That worked, but it leaned on
the model, guessing its way
175
00:05:37,819 --> 00:05:38,899
through the choice.
176
00:05:38,899 --> 00:05:41,100
Then OpenAI built function
calling straight into its
177
00:05:41,100 --> 00:05:44,459
models, and other model makers
like Gemini, Claude and Mistral
178
00:05:44,459 --> 00:05:45,779
followed with the same idea.
179
00:05:45,779 --> 00:05:46,939
Function calling means the model
180
00:05:46,939 --> 00:05:48,220
can simply ask for a specific
181
00:05:48,220 --> 00:05:49,899
function by name with the right
182
00:05:49,899 --> 00:05:51,139
inputs, instead of describing
183
00:05:51,139 --> 00:05:52,500
what it wants in a paragraph,
184
00:05:52,500 --> 00:05:53,579
because that turned out to be
185
00:05:53,579 --> 00:05:54,459
more reliable.
186
00:05:54,459 --> 00:05:57,220
Semantic kernel made it the main
way to plan.
187
00:05:57,220 --> 00:05:59,060
That change has a direct
consequence.
188
00:05:59,060 --> 00:06:02,199
You should know about the older
stepwise and handlebars planners
189
00:06:02,199 --> 00:06:04,720
have been deprecated and removed
from the package.
190
00:06:04,720 --> 00:06:06,399
Microsoft now tells developers
191
00:06:06,399 --> 00:06:08,279
to use function calling instead
192
00:06:08,279 --> 00:06:09,560
in every language the kit
193
00:06:09,560 --> 00:06:10,000
supports.
194
00:06:10,000 --> 00:06:12,439
There's a reason Microsoft moved
away from the old planners, and
195
00:06:12,439 --> 00:06:14,959
it's worth saying plainly a
planner asked the model to
196
00:06:14,959 --> 00:06:18,120
invent a plan in words which was
flexible but unpredictable.
197
00:06:18,120 --> 00:06:19,639
Function calling is narrower and
198
00:06:19,639 --> 00:06:20,879
more repeatable, so you get
199
00:06:20,879 --> 00:06:22,279
fewer surprises in production,
200
00:06:22,279 --> 00:06:23,620
which is exactly what a business
201
00:06:23,620 --> 00:06:24,560
app needs.
202
00:06:24,560 --> 00:06:26,480
The way it works is simpler than
it sounds.
203
00:06:26,480 --> 00:06:29,680
The model asks for a function,
semantic kernel, runs it, hands
204
00:06:29,680 --> 00:06:32,680
the result back, and the model
decides what to do next.
205
00:06:32,680 --> 00:06:34,800
That loop repeats until the task
is finished.
206
00:06:34,800 --> 00:06:35,959
It can even call several
207
00:06:35,959 --> 00:06:37,319
functions at once, which is how
208
00:06:37,319 --> 00:06:38,420
it handles a request, like
209
00:06:38,420 --> 00:06:39,560
turning off every light in a
210
00:06:39,560 --> 00:06:40,000
room.
211
00:06:40,000 --> 00:06:42,720
You can think of the loop as a
short conversation between your
212
00:06:42,720 --> 00:06:43,759
code and the model.
213
00:06:43,759 --> 00:06:46,360
The model talks, your code
listens and acts, and then the
214
00:06:46,360 --> 00:06:49,920
model talks again with whatever
it learned memory and rag.
215
00:06:49,920 --> 00:06:52,079
There's a limitation that
catches everyone off guard the
216
00:06:52,079 --> 00:06:55,319
first time a language model on
its own has no memory.
217
00:06:55,319 --> 00:06:58,040
Every request starts fresh, with
no idea about your documents,
218
00:06:58,040 --> 00:07:00,680
your data, or the conversation
you had five minutes ago.
219
00:07:00,680 --> 00:07:03,779
The fix is a pattern called
retrieval augmented generation.
220
00:07:03,779 --> 00:07:06,339
In plain words, you look it up
first and then you answer.
221
00:07:06,339 --> 00:07:08,899
Instead of hoping the model
remembers something, you fetch
222
00:07:08,899 --> 00:07:12,180
the relevant material and hand
it over along with the question
223
00:07:12,180 --> 00:07:13,220
to see why this matters.
224
00:07:13,220 --> 00:07:14,220
Think about the last time a
225
00:07:14,220 --> 00:07:15,540
chatbot confidently made
226
00:07:15,540 --> 00:07:16,779
something up that happens when
227
00:07:16,779 --> 00:07:17,920
the model has nothing real to
228
00:07:17,920 --> 00:07:18,459
work from.
229
00:07:18,459 --> 00:07:19,819
Retrieval fixes that by handing
230
00:07:19,819 --> 00:07:20,939
it the actual document or
231
00:07:20,939 --> 00:07:21,259
record.
232
00:07:21,259 --> 00:07:24,180
So the answer is grounded in
something you can point to.
233
00:07:24,180 --> 00:07:26,899
Semantic kernel builds that
memory on top of vector stores.
234
00:07:26,899 --> 00:07:29,339
A vector store is a database
tuned for meaning rather than
235
00:07:29,339 --> 00:07:32,100
exact words, and the kits
connectors give you one shared
236
00:07:32,100 --> 00:07:33,860
interface across many of them.
237
00:07:34,899 --> 00:07:36,500
Azure AI search is the usual
238
00:07:36,500 --> 00:07:37,819
choice, and others like
239
00:07:37,819 --> 00:07:39,579
Postgres, Reddis, and Srand are
240
00:07:39,579 --> 00:07:40,459
supported too.
241
00:07:40,459 --> 00:07:43,060
The word vector deserves one
sentence because it's less scary
242
00:07:43,060 --> 00:07:43,980
than it sounds.
243
00:07:43,980 --> 00:07:45,379
The system turns your text into
244
00:07:45,379 --> 00:07:46,420
lists of numbers called
245
00:07:46,420 --> 00:07:47,939
embeddings that capture what the
246
00:07:47,939 --> 00:07:49,360
text means, so it can find
247
00:07:49,360 --> 00:07:50,540
passages that are close in
248
00:07:50,540 --> 00:07:51,420
meaning, even when the words
249
00:07:51,420 --> 00:07:52,300
don't match.
250
00:07:52,300 --> 00:07:54,300
There's a neat detail here for
beginners.
251
00:07:54,300 --> 00:07:55,740
Vector search can be exposed to
252
00:07:55,740 --> 00:07:56,860
the model as a plug in, which
253
00:07:56,860 --> 00:07:58,379
means the AI can go look things
254
00:07:58,379 --> 00:07:59,819
up on its own when a question
255
00:07:59,819 --> 00:08:00,980
needs it, using the same
256
00:08:00,980 --> 00:08:02,009
function calling we just
257
00:08:02,009 --> 00:08:02,850
covered.
258
00:08:02,850 --> 00:08:05,089
There's one honest caveat to
keep in mind.
259
00:08:05,089 --> 00:08:07,329
The Vector Store feature is
still in preview, so it can
260
00:08:07,329 --> 00:08:09,689
change, and the older
memorystore connectors have been
261
00:08:09,689 --> 00:08:11,370
replaced by the newer ones.
262
00:08:11,370 --> 00:08:12,930
Connectors and prompts.
263
00:08:12,930 --> 00:08:15,850
Memory is one kind of plug, and
the kit has others.
264
00:08:15,850 --> 00:08:19,050
A connector is an adapter and it
lets one block of your code talk
265
00:08:19,050 --> 00:08:21,170
to many different models through
the same doorway.
266
00:08:21,170 --> 00:08:23,610
The list is longer than you'd
expect and it includes Azure,
267
00:08:23,610 --> 00:08:27,569
OpenAI, plain, OpenAI, Google's
Gemini, Mistral, and even models
268
00:08:27,569 --> 00:08:29,970
running on your own machine
through a tool called llama.
269
00:08:29,970 --> 00:08:32,610
Amazon's bedrock is in there,
too, along with any service that
270
00:08:32,610 --> 00:08:34,409
follows the OpenAI style.
271
00:08:34,409 --> 00:08:36,570
The payoff shows up when a new
model arrives.
272
00:08:36,570 --> 00:08:37,649
Instead of rewriting your
273
00:08:37,649 --> 00:08:39,009
application, you swap the
274
00:08:39,009 --> 00:08:40,389
connector and keep everything
275
00:08:40,389 --> 00:08:40,970
else.
276
00:08:40,970 --> 00:08:44,090
Microsoft calls the kit future
proof for exactly this reason,
277
00:08:44,090 --> 00:08:46,809
because your code stops caring
which model is underneath.
278
00:08:46,809 --> 00:08:49,370
The practical benefit is choice
without lock in.
279
00:08:49,370 --> 00:08:52,649
If your company already pays for
Azure OpenAI, you start there.
280
00:08:52,649 --> 00:08:54,049
And if a cheaper or better model
281
00:08:54,049 --> 00:08:55,610
shows up next year, you move to
282
00:08:55,610 --> 00:08:56,730
it without touching the rest of
283
00:08:56,730 --> 00:08:57,570
your app.
284
00:08:57,570 --> 00:09:00,129
That freedom is the quiet reason
teams pick a kit like this in
285
00:09:00,129 --> 00:09:01,009
the first place.
286
00:09:01,009 --> 00:09:02,190
Connectors cover more than chat.
287
00:09:02,190 --> 00:09:04,950
By the way, the same idea
reaches embeddings, images, and
288
00:09:04,950 --> 00:09:08,149
even audio, so one app can mix
several kinds of AI.
289
00:09:08,149 --> 00:09:10,509
Each language supports a
slightly different slice of that
290
00:09:10,509 --> 00:09:12,750
list, which is worth checking
before you commit.
291
00:09:12,750 --> 00:09:14,149
Then there are prompt templates.
292
00:09:14,149 --> 00:09:16,750
A template blends your
instructions, the user's input,
293
00:09:16,750 --> 00:09:18,870
and the output of a function
into a single prompt.
294
00:09:18,870 --> 00:09:20,190
You can save that template as a
295
00:09:20,190 --> 00:09:21,230
file and share it with your
296
00:09:21,230 --> 00:09:22,830
team, which turns prompt writing
297
00:09:22,830 --> 00:09:24,190
into something you can track and
298
00:09:24,190 --> 00:09:25,309
review.
299
00:09:25,309 --> 00:09:27,269
The last piece in this section
is filters.
300
00:09:27,269 --> 00:09:28,509
A filter lets you run your own
301
00:09:28,509 --> 00:09:29,710
checks before and after the
302
00:09:29,710 --> 00:09:31,509
model acts, which is where teams
303
00:09:31,509 --> 00:09:32,909
put their safety rules and their
304
00:09:32,909 --> 00:09:34,029
security rules.
305
00:09:34,029 --> 00:09:37,409
Microsoft points to filters as
the place for responsible AI
306
00:09:37,409 --> 00:09:40,950
work, and it's a small feature
with a big job.
307
00:09:40,950 --> 00:09:41,750
One kit.
308
00:09:41,750 --> 00:09:42,830
Three languages.
309
00:09:42,830 --> 00:09:44,870
You might be wondering whether
any of this fits the language
310
00:09:44,870 --> 00:09:48,070
you already know, and the answer
is probably yes.
311
00:09:48,070 --> 00:09:50,789
Semantic kernel ships for C,
sharp, Python, and Java.
312
00:09:50,789 --> 00:09:51,909
Each version follows its own
313
00:09:51,909 --> 00:09:53,549
language's habits on purpose, so
314
00:09:53,549 --> 00:09:54,710
it feels native instead of
315
00:09:54,710 --> 00:09:56,350
bolted on Python code written
316
00:09:56,350 --> 00:09:56,549
with.
317
00:09:56,549 --> 00:09:58,529
It still reads like Python and C
318
00:09:58,529 --> 00:10:00,049
sharp code still reads like C
319
00:10:00,049 --> 00:10:00,429
sharp.
320
00:10:00,429 --> 00:10:03,049
Microsoft did that on purpose
Because a tool that fights your
321
00:10:03,049 --> 00:10:04,730
habits is a tool you stop using.
322
00:10:04,730 --> 00:10:06,970
Getting started is deliberately
small in C sharp.
323
00:10:06,970 --> 00:10:07,889
You add one package.
324
00:10:07,889 --> 00:10:09,049
In Python, you run a single
325
00:10:09,049 --> 00:10:11,049
install command, and in Java you
326
00:10:11,049 --> 00:10:12,090
pull it from the usual
327
00:10:12,090 --> 00:10:12,730
repository.
328
00:10:12,730 --> 00:10:15,129
There's no giant setup step
standing between you and your
329
00:10:15,129 --> 00:10:16,210
first working example.
330
00:10:16,210 --> 00:10:17,570
There's another reason that
matters.
331
00:10:17,570 --> 00:10:20,409
It means you don't have to learn
a new language to try the ideas
332
00:10:20,409 --> 00:10:21,370
in this episode.
333
00:10:21,370 --> 00:10:24,090
If you already write Python for
a side project, you can follow
334
00:10:24,090 --> 00:10:25,049
the Python path.
335
00:10:25,049 --> 00:10:27,929
And if your job runs on Natty,
you can use that one.
336
00:10:27,929 --> 00:10:29,649
There's one thing to know before
you pick.
337
00:10:29,649 --> 00:10:30,409
They aren't perfectly.
338
00:10:30,409 --> 00:10:32,149
Even a few features land in C,
339
00:10:32,149 --> 00:10:33,250
sharp and Python before they
340
00:10:33,250 --> 00:10:34,570
reach Java, and the vector store
341
00:10:34,570 --> 00:10:35,929
connectors lean toward the first
342
00:10:35,929 --> 00:10:36,330
two.
343
00:10:36,330 --> 00:10:37,409
It's worth a quick look at the
344
00:10:37,409 --> 00:10:38,490
feature list for your language
345
00:10:38,490 --> 00:10:39,490
before you plan around
346
00:10:39,490 --> 00:10:40,090
something.
347
00:10:40,090 --> 00:10:41,330
One more promise is worth having
348
00:10:41,330 --> 00:10:43,049
if you're learning version one
349
00:10:43,049 --> 00:10:44,529
and later come with a commitment
350
00:10:44,529 --> 00:10:46,409
to no breaking changes, which
351
00:10:46,409 --> 00:10:48,070
means the code you learn today
352
00:10:48,070 --> 00:10:49,850
won't be thrown away by the next
353
00:10:49,850 --> 00:10:51,250
update.
354
00:10:51,250 --> 00:10:54,090
Copilot, foundry and what comes
next?
355
00:10:54,090 --> 00:10:56,570
Now for the question that
confuses the most people and it
356
00:10:56,570 --> 00:10:57,889
deserves a straight answer.
357
00:10:57,889 --> 00:11:00,049
Semantic kernel isn't Microsoft
three hundred sixty five
358
00:11:00,049 --> 00:11:02,590
copilot, and you don't need it
to use copilot.
359
00:11:02,590 --> 00:11:04,990
Copilot is a finished product
you open and use.
360
00:11:04,990 --> 00:11:07,029
While Semantic Kernel is a
building material that
361
00:11:07,029 --> 00:11:10,470
developers use to make their own
AI features, the real link is a
362
00:11:10,470 --> 00:11:12,350
shared way of describing things.
363
00:11:12,350 --> 00:11:13,710
Semantic kernel uses the same
364
00:11:13,710 --> 00:11:15,269
web standard OpenAPI, that
365
00:11:15,269 --> 00:11:15,909
Microsoft three.
366
00:11:15,909 --> 00:11:17,129
Sixty five copilot uses to
367
00:11:17,129 --> 00:11:18,389
describe what an extension can
368
00:11:18,389 --> 00:11:18,870
do.
369
00:11:18,870 --> 00:11:21,590
Because both sides speak the
same language, a capability you
370
00:11:21,590 --> 00:11:23,950
build can be shared with other
developers, and even with makers
371
00:11:23,950 --> 00:11:25,029
who don't write code.
372
00:11:25,029 --> 00:11:26,149
There's a bridge here too, for
373
00:11:26,149 --> 00:11:27,509
building your own agent into the
374
00:11:27,509 --> 00:11:28,549
Microsoft three hundred sixty
375
00:11:28,549 --> 00:11:29,230
five world.
376
00:11:29,230 --> 00:11:29,909
The Microsoft three.
377
00:11:29,909 --> 00:11:31,549
Sixty five agents SDK handles
378
00:11:31,549 --> 00:11:32,429
the Microsoft three hundred
379
00:11:32,429 --> 00:11:34,269
sixty five side, and the AI side
380
00:11:34,269 --> 00:11:36,070
is handled by Semantic Kernel or
381
00:11:36,070 --> 00:11:36,909
its successor.
382
00:11:36,909 --> 00:11:40,669
So together they let a custom
agent reach into copilot.
383
00:11:40,669 --> 00:11:43,629
On the cloud side, the newer
framework lists Microsoft
384
00:11:43,629 --> 00:11:46,629
Foundry as one of the places to
run models and agents.
385
00:11:46,629 --> 00:11:49,350
It helps to see these as layers
rather than rivals.
386
00:11:49,350 --> 00:11:51,710
Copilot is the finished
experience your colleagues use.
387
00:11:51,710 --> 00:11:53,509
Copilot studio is where makers
388
00:11:53,509 --> 00:11:54,750
build their own agents with
389
00:11:54,750 --> 00:11:56,549
little or no code, and Semantic
390
00:11:56,549 --> 00:11:57,970
kernel is the developer kit
391
00:11:57,970 --> 00:11:58,470
underneath.
392
00:11:58,470 --> 00:12:00,590
That turns an idea into working
code.
393
00:12:00,590 --> 00:12:02,690
They are meant to sit together,
not compete.
394
00:12:02,690 --> 00:12:04,210
That brings up the honest part.
395
00:12:04,210 --> 00:12:05,409
Microsoft built a newer
396
00:12:05,409 --> 00:12:06,850
framework, the Microsoft Agent
397
00:12:06,850 --> 00:12:08,570
Framework, by combining semantic
398
00:12:08,570 --> 00:12:09,649
Kernel with another project
399
00:12:09,649 --> 00:12:10,570
called Autogen.
400
00:12:10,570 --> 00:12:12,529
It has since become the
recommended starting point for
401
00:12:12,529 --> 00:12:14,049
brand new agent projects.
402
00:12:14,049 --> 00:12:15,289
The real tension here is simple,
403
00:12:15,289 --> 00:12:16,210
and you've probably felt it
404
00:12:16,210 --> 00:12:16,490
already.
405
00:12:16,490 --> 00:12:17,570
You don't want to spend months
406
00:12:17,570 --> 00:12:18,289
learning something that
407
00:12:18,289 --> 00:12:19,850
Microsoft is about to replace,
408
00:12:19,850 --> 00:12:20,909
so let's deal with that fear
409
00:12:20,909 --> 00:12:21,370
directly.
410
00:12:21,370 --> 00:12:23,409
Here's what that does and
doesn't mean.
411
00:12:23,409 --> 00:12:25,850
New feature work now goes to the
newer framework.
412
00:12:25,850 --> 00:12:28,570
But semantic kernel is not dead
and not abandoned.
413
00:12:28,570 --> 00:12:31,289
Microsoft still supports it and
still ships fixes, and
414
00:12:31,289 --> 00:12:34,289
Microsoft's own guidance says
that for an existing project, or
415
00:12:34,289 --> 00:12:36,769
when you need to ship something
quickly, staying on semantic
416
00:12:36,769 --> 00:12:39,090
kernel is perfectly fine for you
as a learner.
417
00:12:39,090 --> 00:12:40,529
The ideas carry straight over.
418
00:12:40,529 --> 00:12:43,169
A plugin here becomes a tool
there, and the mental model you
419
00:12:43,169 --> 00:12:44,610
just built is the same one.
420
00:12:44,610 --> 00:12:45,889
Learning semantic kernel is
421
00:12:45,889 --> 00:12:47,289
really learning how Microsoft
422
00:12:47,289 --> 00:12:48,730
approaches agents.
423
00:12:48,730 --> 00:12:51,929
That way of thinking outlasts
any single tool.
424
00:12:52,929 --> 00:12:54,529
When to use semantic kernel.
425
00:12:54,529 --> 00:12:56,649
Let's finish with the practical
question of when to actually
426
00:12:56,649 --> 00:12:57,490
reach for this kit.
427
00:12:57,490 --> 00:13:00,289
Start with the rule that fits
almost any tool.
428
00:13:00,289 --> 00:13:02,750
If you can write a plain
function to do the job right.
429
00:13:02,750 --> 00:13:03,629
The plane function.
430
00:13:03,629 --> 00:13:05,509
Microsoft says this about
agents.
431
00:13:05,509 --> 00:13:08,389
And it's good advice because
reaching for AI when a simple
432
00:13:08,389 --> 00:13:11,149
piece of code would do, just
adds cost and confusion, then
433
00:13:11,149 --> 00:13:12,429
reach for semantic kernel.
434
00:13:12,429 --> 00:13:15,509
When you're a developer adding
AI to an app you already own,
435
00:13:15,509 --> 00:13:18,149
and you want your own code to be
scalable by the model, that's
436
00:13:18,149 --> 00:13:20,669
the core case, and it's where
the kit shines.
437
00:13:20,669 --> 00:13:23,269
Reach for it when you need one
code base to work with several
438
00:13:23,269 --> 00:13:25,909
models, so you can switch
providers without rewriting
439
00:13:25,909 --> 00:13:28,909
anything and reach for it when
your company runs on net and
440
00:13:28,909 --> 00:13:31,649
wants the kind of logging,
security, and oversight that big
441
00:13:31,649 --> 00:13:34,870
IT teams ask for before they
approve anything, there are two
442
00:13:34,870 --> 00:13:36,029
times to look elsewhere.
443
00:13:36,029 --> 00:13:38,570
If you never write code, the kit
isn't your door because the
444
00:13:38,570 --> 00:13:42,070
maker friendly path is copilot
studio, and Semantic Kernel sits
445
00:13:42,070 --> 00:13:44,669
underneath that world rather
than at the front of it.
446
00:13:44,669 --> 00:13:47,629
If all you want is a simple chat
bot on a website, you're solving
447
00:13:47,629 --> 00:13:50,070
a smaller problem than the one
this kit was built for.
448
00:13:50,070 --> 00:13:52,830
A career angle matters here,
too, since many of you came here
449
00:13:52,830 --> 00:13:54,070
for exactly that.
450
00:13:54,070 --> 00:13:57,590
The ideas in this kit plugins,
function, calling, memory, and
451
00:13:57,590 --> 00:14:00,830
connectors show up in other AI
tools too, including the ones
452
00:14:00,830 --> 00:14:02,250
that aren't from Microsoft.
453
00:14:02,250 --> 00:14:04,330
Learn them here and you'll
recognize them everywhere else.
454
00:14:04,330 --> 00:14:06,289
There's one last thing for
anyone starting fresh.
455
00:14:06,289 --> 00:14:07,370
If you're starting something
456
00:14:07,370 --> 00:14:09,409
brand new, Microsoft now steers
457
00:14:09,409 --> 00:14:10,809
developers toward the successor
458
00:14:10,809 --> 00:14:11,330
first.
459
00:14:11,330 --> 00:14:13,090
So learn semantic kernel for the
460
00:14:13,090 --> 00:14:14,610
ideas and reach for the new
461
00:14:14,610 --> 00:14:15,129
framework.
462
00:14:15,129 --> 00:14:17,049
When you begin, the concepts are
463
00:14:17,049 --> 00:14:18,049
the same, and that's the part
464
00:14:18,049 --> 00:14:20,929
worth keeping the recap and one
465
00:14:20,929 --> 00:14:21,610
question.
466
00:14:21,610 --> 00:14:24,250
So let's pull the pieces
together in a few short lines.
467
00:14:24,250 --> 00:14:26,850
Semantic kernel is middleware,
the layer that connects your
468
00:14:26,850 --> 00:14:28,370
code to an AI model.
469
00:14:28,370 --> 00:14:30,370
The kernel holds everything in
one place.
470
00:14:30,370 --> 00:14:32,529
Plugins give the AI your own
functions.
471
00:14:32,529 --> 00:14:34,889
Function calling is how it
decides what to run.
472
00:14:34,889 --> 00:14:37,970
Memory is how it remembers your
data, and connectors keep you
473
00:14:37,970 --> 00:14:39,809
free to swap models later.
474
00:14:39,809 --> 00:14:41,730
If you remember one thing, make
it this.
475
00:14:41,730 --> 00:14:42,889
The model is the part that will
476
00:14:42,889 --> 00:14:44,409
change again and again as the
477
00:14:44,409 --> 00:14:45,529
technology moves.
478
00:14:45,529 --> 00:14:46,769
The wiring between your code and
479
00:14:46,769 --> 00:14:47,610
the model is the part you
480
00:14:47,610 --> 00:14:48,570
actually control.
481
00:14:48,570 --> 00:14:51,049
And that wiring is what Semantic
Kernel gives you.
482
00:14:51,049 --> 00:14:54,649
If this helped, subscribe to the
M365 FM podcast to master the
483
00:14:54,649 --> 00:14:57,009
tools and the mindset shaping
the future of work.
484
00:14:57,009 --> 00:14:58,129
Here's my question for you.
485
00:14:58,129 --> 00:15:01,190
If you could hand one task from
your own work over to an AI
486
00:15:01,190 --> 00:15:03,610
tomorrow, which task would you
trust it with first?
00:00:00,040 --> 00:00:02,919
Semantic kernel is the layer
under Microsoft's AI tools that
2
00:00:02,919 --> 00:00:04,120
almost nobody explains.
3
00:00:04,120 --> 00:00:07,360
It's a free open source kit that
lets your own code talk to a
4
00:00:07,360 --> 00:00:10,119
large language model, and lets
that model call your code back.
5
00:00:10,119 --> 00:00:11,240
You might expect a chatbot
6
00:00:11,240 --> 00:00:12,320
builder, but it's really
7
00:00:12,320 --> 00:00:13,759
middleware, the quiet part in
8
00:00:13,759 --> 00:00:14,400
the middle.
9
00:00:14,400 --> 00:00:16,760
Once you see the handful of
pieces inside it, the way
10
00:00:16,760 --> 00:00:19,839
Microsoft builds agents stops
feeling like a mystery.
11
00:00:19,839 --> 00:00:23,440
Welcome to the M365 FM podcast,
where we explore the people,
12
00:00:23,440 --> 00:00:26,320
ideas, and technologies shaping
the future of work.
13
00:00:26,320 --> 00:00:29,280
Today, we're breaking down
semantic kernel piece by piece
14
00:00:29,280 --> 00:00:30,960
in plain English.
15
00:00:30,960 --> 00:00:32,640
What semantic kernel actually
is?
16
00:00:32,640 --> 00:00:33,880
Let's start with the plainest
17
00:00:33,880 --> 00:00:35,159
version, because the name makes
18
00:00:35,159 --> 00:00:36,359
it sound heavier than it really
19
00:00:36,359 --> 00:00:37,320
is.
20
00:00:37,320 --> 00:00:40,439
Semantic kernel is a free open
source kit from Microsoft that
21
00:00:40,439 --> 00:00:43,079
connects the software you're
already building to an AI model,
22
00:00:43,079 --> 00:00:45,520
and then lets the model call
your own code back.
23
00:00:45,520 --> 00:00:48,200
Microsoft describes it as
middleware, which is just a word
24
00:00:48,200 --> 00:00:51,560
for the layer that sits in the
middle and passes messages
25
00:00:51,560 --> 00:00:54,039
between two things that don't
speak the same language.
26
00:00:54,039 --> 00:00:55,679
Now what it isn't matters just
as much.
27
00:00:55,679 --> 00:00:58,380
It isn't an app you open, it
isn't a chatbot you type into,
28
00:00:58,380 --> 00:01:01,020
and it isn't a model like the
ones running behind copilot.
29
00:01:01,020 --> 00:01:03,740
You install it inside a project
you're already working on, and
30
00:01:03,740 --> 00:01:06,459
it takes over the awkward part
of talking to an AI.
31
00:01:06,459 --> 00:01:09,420
The kit first appeared in March
of twenty twenty three under an
32
00:01:09,420 --> 00:01:11,099
open license called MIT.
33
00:01:11,099 --> 00:01:13,659
That license means anyone can
use it, read the code and change
34
00:01:13,659 --> 00:01:16,219
it to fit their own needs, which
is a big reason it spread
35
00:01:16,219 --> 00:01:17,459
quickly among developers.
36
00:01:17,459 --> 00:01:19,700
It also doesn't care where your
software runs.
37
00:01:19,700 --> 00:01:20,980
The kit works inside your own
38
00:01:20,980 --> 00:01:22,219
application, on Microsoft's
39
00:01:22,219 --> 00:01:23,620
cloud, or on another cloud, or
40
00:01:23,620 --> 00:01:24,819
on a machine sitting under your
41
00:01:24,819 --> 00:01:25,260
desk.
42
00:01:25,260 --> 00:01:28,060
Azure is the most common home
for it, but Microsoft is quick
43
00:01:28,060 --> 00:01:29,540
to say Azure isn't required.
44
00:01:29,540 --> 00:01:31,459
There's a clear reason this
layer exists.
45
00:01:31,459 --> 00:01:34,379
Picture a working app full of
real features like looking up
46
00:01:34,379 --> 00:01:36,019
orders or sending emails.
47
00:01:36,019 --> 00:01:37,260
A language model is great at
48
00:01:37,260 --> 00:01:38,819
understanding requests, but it
49
00:01:38,819 --> 00:01:40,140
can't touch any of that by
50
00:01:40,140 --> 00:01:41,180
itself.
51
00:01:41,180 --> 00:01:43,780
Semantic kernel closes that gap
so the model can reach into your
52
00:01:43,780 --> 00:01:45,579
app, and your app can reach back
into the model.
53
00:01:45,579 --> 00:01:47,579
Here's a small example to make
it real.
54
00:01:47,579 --> 00:01:48,819
Say a customer types a question
55
00:01:48,819 --> 00:01:49,980
about an order, and your app
56
00:01:49,980 --> 00:01:51,439
needs to look up that order,
57
00:01:51,439 --> 00:01:53,180
check its status, and reply in
58
00:01:53,180 --> 00:01:53,939
plain language.
59
00:01:53,939 --> 00:01:55,140
A model can write that reply,
60
00:01:55,140 --> 00:01:56,219
but it can't look up the order
61
00:01:56,219 --> 00:01:57,180
by itself.
62
00:01:57,180 --> 00:02:00,299
Semantic kernel lets the model
ask your app to do that lookup,
63
00:02:00,299 --> 00:02:03,319
and then use the answer in its
reply all in one flow.
64
00:02:03,319 --> 00:02:05,799
Microsoft says fortune five
hundred companies already build
65
00:02:05,799 --> 00:02:09,639
on it, and the reason they give
is that it's flexible, modular
66
00:02:09,639 --> 00:02:14,000
and easy to watch while it
works, the kernel and the name.
67
00:02:14,000 --> 00:02:16,000
The first word that trips people
up is kernel.
68
00:02:16,000 --> 00:02:17,400
So let's take the name apart.
69
00:02:17,400 --> 00:02:19,719
Semantic points at meaning and
natural language.
70
00:02:19,719 --> 00:02:21,479
The kind of thing a model is
good at.
71
00:02:21,479 --> 00:02:22,800
Kernel points at the center.
72
00:02:22,800 --> 00:02:24,879
The one object that everything
else plugs into.
73
00:02:24,879 --> 00:02:27,680
Microsoft's own description is
refreshingly simple.
74
00:02:27,680 --> 00:02:30,479
At its simplest, the kernel is a
container that holds all the
75
00:02:30,479 --> 00:02:33,439
services and plugins your AI
application needs to run.
76
00:02:33,439 --> 00:02:35,960
Think of it as a single box
where every part of your AI app
77
00:02:35,960 --> 00:02:38,520
gets registered, so the app
always knows where to find them.
78
00:02:38,520 --> 00:02:40,120
You hand the kernel two kinds of
things.
79
00:02:40,120 --> 00:02:43,159
The first is services, which are
the AI models themselves, plus
80
00:02:43,159 --> 00:02:45,080
ordinary utilities like logging.
81
00:02:45,080 --> 00:02:46,840
The second is plugins, which are
82
00:02:46,840 --> 00:02:48,159
the parts that do the actual
83
00:02:48,159 --> 00:02:48,599
work.
84
00:02:48,599 --> 00:02:50,120
And we'll get to those in a
moment.
85
00:02:50,120 --> 00:02:53,280
When your app sends a request,
the kernel runs through a short
86
00:02:53,280 --> 00:02:54,479
sequence of jobs.
87
00:02:54,479 --> 00:02:57,400
It picks the best AI service for
the task, builds the prompt from
88
00:02:57,400 --> 00:03:00,439
your template, sends it off,
reads the reply, and hands the
89
00:03:00,439 --> 00:03:02,099
result back to your application.
90
00:03:02,099 --> 00:03:03,780
If that sounds like plumbing
you've seen before.
91
00:03:03,780 --> 00:03:04,860
That's because it is.
92
00:03:04,860 --> 00:03:08,020
Microsoft modeled the kernel on
a common pattern from a net
93
00:03:08,020 --> 00:03:10,900
called dependency injection,
where one central place supplies
94
00:03:10,900 --> 00:03:13,159
the pieces that other parts of
the code need, so nobody has to
95
00:03:13,159 --> 00:03:14,340
hardwire them for you.
96
00:03:14,340 --> 00:03:16,939
The practical point is simple
the kernel is the control room.
97
00:03:16,939 --> 00:03:17,939
Everything else is a tool.
98
00:03:17,939 --> 00:03:21,020
You register there, and from
that one place you can set up
99
00:03:21,020 --> 00:03:22,419
and watch the whole thing.
100
00:03:22,419 --> 00:03:23,699
There's one more detail about
101
00:03:23,699 --> 00:03:24,979
the kernel and then we'll move
102
00:03:24,979 --> 00:03:25,460
on.
103
00:03:25,460 --> 00:03:27,479
It's lightweight because it's
really just a container, so
104
00:03:27,479 --> 00:03:30,139
Microsoft recommends building a
fresh one for each use instead
105
00:03:30,139 --> 00:03:31,419
of holding on to one forever.
106
00:03:31,419 --> 00:03:32,939
That sounds fussy, but it keeps
107
00:03:32,939 --> 00:03:34,340
your plugins from leaking state
108
00:03:34,340 --> 00:03:36,219
between requests, plugins, and
109
00:03:36,219 --> 00:03:36,900
functions.
110
00:03:36,900 --> 00:03:38,620
This is where semantic kernel
gets useful.
111
00:03:38,620 --> 00:03:40,020
So let's slow down.
112
00:03:40,020 --> 00:03:43,060
A plugin is a group of functions
that you expose to the AI.
113
00:03:43,060 --> 00:03:45,620
In other tools, those functions
are often called tools or
114
00:03:45,620 --> 00:03:48,340
actions, and in the earliest
version of semantic kernel,
115
00:03:48,340 --> 00:03:49,699
plugins were called skills.
116
00:03:49,699 --> 00:03:50,699
A function is just a piece of
117
00:03:50,699 --> 00:03:52,139
your own code with a plain
118
00:03:52,139 --> 00:03:53,180
description attached.
119
00:03:53,180 --> 00:03:54,560
The description tells the AI
120
00:03:54,560 --> 00:03:56,060
what the function does, what
121
00:03:56,060 --> 00:03:57,300
goes into it, and what comes
122
00:03:57,300 --> 00:03:58,099
back out.
123
00:03:58,099 --> 00:04:00,949
Microsoft's own example is a
lights plugin with three
124
00:04:00,949 --> 00:04:03,800
functions one that lists every
light, one that reports the
125
00:04:03,800 --> 00:04:06,800
state of a single light, and one
that changes a light state.
126
00:04:06,800 --> 00:04:08,680
The model reads those
descriptions and picks the right
127
00:04:08,680 --> 00:04:09,960
function for the request.
128
00:04:09,960 --> 00:04:11,879
Beginners usually miss one
detail here.
129
00:04:11,879 --> 00:04:13,400
The description isn't
decoration.
130
00:04:13,400 --> 00:04:14,919
If it's vague, the model guesses
131
00:04:14,919 --> 00:04:16,160
wrong or skips the function
132
00:04:16,160 --> 00:04:17,579
entirely and the whole thing
133
00:04:17,579 --> 00:04:18,480
falls apart.
134
00:04:18,480 --> 00:04:20,839
Write the description the way
you'd explain the function to a
135
00:04:20,839 --> 00:04:23,199
new colleague, and the model
will use it correctly.
136
00:04:23,199 --> 00:04:24,720
Plugins can come from three
places.
137
00:04:24,720 --> 00:04:26,079
You can write them in your own
code.
138
00:04:26,079 --> 00:04:29,240
Import them from a shared web
standard called OpenAPI, or pull
139
00:04:29,240 --> 00:04:31,939
them in from something called an
MCP server, which is short for
140
00:04:31,939 --> 00:04:33,560
Model Context Protocol.
141
00:04:33,560 --> 00:04:36,360
That last one matters because it
lets one team build a capability
142
00:04:36,360 --> 00:04:37,800
and share it with everyone else.
143
00:04:37,800 --> 00:04:40,439
Sharing is the real prize with
those last two options.
144
00:04:40,439 --> 00:04:43,439
If you describe a capability
with OpenAPI or wrap it in an
145
00:04:43,439 --> 00:04:46,759
MCP server, another team can
pick it up without rewriting it.
146
00:04:46,759 --> 00:04:48,060
And even a maker in a low code
147
00:04:48,060 --> 00:04:48,879
tool can use the same
148
00:04:48,879 --> 00:04:49,879
capability.
149
00:04:49,879 --> 00:04:50,839
That's how one well-built
150
00:04:50,839 --> 00:04:51,839
function ends up helping the
151
00:04:51,839 --> 00:04:52,639
whole company.
152
00:04:52,639 --> 00:04:54,120
Plugins also play nicely with
153
00:04:54,120 --> 00:04:55,560
the way real teams build
154
00:04:55,560 --> 00:04:56,279
software.
155
00:04:56,279 --> 00:04:57,439
A plugin can hold its own
156
00:04:57,439 --> 00:04:58,560
database connection or web
157
00:04:58,560 --> 00:05:00,439
client, so the AI never sees the
158
00:05:00,439 --> 00:05:01,699
sensitive details.
159
00:05:01,699 --> 00:05:04,259
It only sees the plain
description and the result.
160
00:05:04,259 --> 00:05:06,439
There's one practical warning
before you build a giant
161
00:05:06,439 --> 00:05:09,579
toolbox, OpenAI recommends no
more than twenty tools in a
162
00:05:09,579 --> 00:05:12,579
single request, and ideally no
more than ten, because the
163
00:05:12,579 --> 00:05:15,420
model's accuracy drops as the
list gets longer.
164
00:05:15,420 --> 00:05:19,019
Fewer, clearer functions beat a
giant pile of them every time.
165
00:05:19,019 --> 00:05:19,819
Planning and function.
166
00:05:19,819 --> 00:05:20,420
Calling.
167
00:05:20,420 --> 00:05:23,019
Once you have several functions,
a new problem shows up.
168
00:05:23,019 --> 00:05:25,779
The AI has to decide which
functions to use in what order
169
00:05:25,779 --> 00:05:27,180
to answer one request.
170
00:05:27,180 --> 00:05:29,379
In semantic kernel, that job is
called planning.
171
00:05:29,379 --> 00:05:30,980
The original answer was
planners.
172
00:05:30,980 --> 00:05:33,500
You handed the kit a set of
functions, and it wrote a prompt
173
00:05:33,500 --> 00:05:35,259
asking the model to choose a
plan for you.
174
00:05:35,259 --> 00:05:37,819
That worked, but it leaned on
the model, guessing its way
175
00:05:37,819 --> 00:05:38,899
through the choice.
176
00:05:38,899 --> 00:05:41,100
Then OpenAI built function
calling straight into its
177
00:05:41,100 --> 00:05:44,459
models, and other model makers
like Gemini, Claude and Mistral
178
00:05:44,459 --> 00:05:45,779
followed with the same idea.
179
00:05:45,779 --> 00:05:46,939
Function calling means the model
180
00:05:46,939 --> 00:05:48,220
can simply ask for a specific
181
00:05:48,220 --> 00:05:49,899
function by name with the right
182
00:05:49,899 --> 00:05:51,139
inputs, instead of describing
183
00:05:51,139 --> 00:05:52,500
what it wants in a paragraph,
184
00:05:52,500 --> 00:05:53,579
because that turned out to be
185
00:05:53,579 --> 00:05:54,459
more reliable.
186
00:05:54,459 --> 00:05:57,220
Semantic kernel made it the main
way to plan.
187
00:05:57,220 --> 00:05:59,060
That change has a direct
consequence.
188
00:05:59,060 --> 00:06:02,199
You should know about the older
stepwise and handlebars planners
189
00:06:02,199 --> 00:06:04,720
have been deprecated and removed
from the package.
190
00:06:04,720 --> 00:06:06,399
Microsoft now tells developers
191
00:06:06,399 --> 00:06:08,279
to use function calling instead
192
00:06:08,279 --> 00:06:09,560
in every language the kit
193
00:06:09,560 --> 00:06:10,000
supports.
194
00:06:10,000 --> 00:06:12,439
There's a reason Microsoft moved
away from the old planners, and
195
00:06:12,439 --> 00:06:14,959
it's worth saying plainly a
planner asked the model to
196
00:06:14,959 --> 00:06:18,120
invent a plan in words which was
flexible but unpredictable.
197
00:06:18,120 --> 00:06:19,639
Function calling is narrower and
198
00:06:19,639 --> 00:06:20,879
more repeatable, so you get
199
00:06:20,879 --> 00:06:22,279
fewer surprises in production,
200
00:06:22,279 --> 00:06:23,620
which is exactly what a business
201
00:06:23,620 --> 00:06:24,560
app needs.
202
00:06:24,560 --> 00:06:26,480
The way it works is simpler than
it sounds.
203
00:06:26,480 --> 00:06:29,680
The model asks for a function,
semantic kernel, runs it, hands
204
00:06:29,680 --> 00:06:32,680
the result back, and the model
decides what to do next.
205
00:06:32,680 --> 00:06:34,800
That loop repeats until the task
is finished.
206
00:06:34,800 --> 00:06:35,959
It can even call several
207
00:06:35,959 --> 00:06:37,319
functions at once, which is how
208
00:06:37,319 --> 00:06:38,420
it handles a request, like
209
00:06:38,420 --> 00:06:39,560
turning off every light in a
210
00:06:39,560 --> 00:06:40,000
room.
211
00:06:40,000 --> 00:06:42,720
You can think of the loop as a
short conversation between your
212
00:06:42,720 --> 00:06:43,759
code and the model.
213
00:06:43,759 --> 00:06:46,360
The model talks, your code
listens and acts, and then the
214
00:06:46,360 --> 00:06:49,920
model talks again with whatever
it learned memory and rag.
215
00:06:49,920 --> 00:06:52,079
There's a limitation that
catches everyone off guard the
216
00:06:52,079 --> 00:06:55,319
first time a language model on
its own has no memory.
217
00:06:55,319 --> 00:06:58,040
Every request starts fresh, with
no idea about your documents,
218
00:06:58,040 --> 00:07:00,680
your data, or the conversation
you had five minutes ago.
219
00:07:00,680 --> 00:07:03,779
The fix is a pattern called
retrieval augmented generation.
220
00:07:03,779 --> 00:07:06,339
In plain words, you look it up
first and then you answer.
221
00:07:06,339 --> 00:07:08,899
Instead of hoping the model
remembers something, you fetch
222
00:07:08,899 --> 00:07:12,180
the relevant material and hand
it over along with the question
223
00:07:12,180 --> 00:07:13,220
to see why this matters.
224
00:07:13,220 --> 00:07:14,220
Think about the last time a
225
00:07:14,220 --> 00:07:15,540
chatbot confidently made
226
00:07:15,540 --> 00:07:16,779
something up that happens when
227
00:07:16,779 --> 00:07:17,920
the model has nothing real to
228
00:07:17,920 --> 00:07:18,459
work from.
229
00:07:18,459 --> 00:07:19,819
Retrieval fixes that by handing
230
00:07:19,819 --> 00:07:20,939
it the actual document or
231
00:07:20,939 --> 00:07:21,259
record.
232
00:07:21,259 --> 00:07:24,180
So the answer is grounded in
something you can point to.
233
00:07:24,180 --> 00:07:26,899
Semantic kernel builds that
memory on top of vector stores.
234
00:07:26,899 --> 00:07:29,339
A vector store is a database
tuned for meaning rather than
235
00:07:29,339 --> 00:07:32,100
exact words, and the kits
connectors give you one shared
236
00:07:32,100 --> 00:07:33,860
interface across many of them.
237
00:07:34,899 --> 00:07:36,500
Azure AI search is the usual
238
00:07:36,500 --> 00:07:37,819
choice, and others like
239
00:07:37,819 --> 00:07:39,579
Postgres, Reddis, and Srand are
240
00:07:39,579 --> 00:07:40,459
supported too.
241
00:07:40,459 --> 00:07:43,060
The word vector deserves one
sentence because it's less scary
242
00:07:43,060 --> 00:07:43,980
than it sounds.
243
00:07:43,980 --> 00:07:45,379
The system turns your text into
244
00:07:45,379 --> 00:07:46,420
lists of numbers called
245
00:07:46,420 --> 00:07:47,939
embeddings that capture what the
246
00:07:47,939 --> 00:07:49,360
text means, so it can find
247
00:07:49,360 --> 00:07:50,540
passages that are close in
248
00:07:50,540 --> 00:07:51,420
meaning, even when the words
249
00:07:51,420 --> 00:07:52,300
don't match.
250
00:07:52,300 --> 00:07:54,300
There's a neat detail here for
beginners.
251
00:07:54,300 --> 00:07:55,740
Vector search can be exposed to
252
00:07:55,740 --> 00:07:56,860
the model as a plug in, which
253
00:07:56,860 --> 00:07:58,379
means the AI can go look things
254
00:07:58,379 --> 00:07:59,819
up on its own when a question
255
00:07:59,819 --> 00:08:00,980
needs it, using the same
256
00:08:00,980 --> 00:08:02,009
function calling we just
257
00:08:02,009 --> 00:08:02,850
covered.
258
00:08:02,850 --> 00:08:05,089
There's one honest caveat to
keep in mind.
259
00:08:05,089 --> 00:08:07,329
The Vector Store feature is
still in preview, so it can
260
00:08:07,329 --> 00:08:09,689
change, and the older
memorystore connectors have been
261
00:08:09,689 --> 00:08:11,370
replaced by the newer ones.
262
00:08:11,370 --> 00:08:12,930
Connectors and prompts.
263
00:08:12,930 --> 00:08:15,850
Memory is one kind of plug, and
the kit has others.
264
00:08:15,850 --> 00:08:19,050
A connector is an adapter and it
lets one block of your code talk
265
00:08:19,050 --> 00:08:21,170
to many different models through
the same doorway.
266
00:08:21,170 --> 00:08:23,610
The list is longer than you'd
expect and it includes Azure,
267
00:08:23,610 --> 00:08:27,569
OpenAI, plain, OpenAI, Google's
Gemini, Mistral, and even models
268
00:08:27,569 --> 00:08:29,970
running on your own machine
through a tool called llama.
269
00:08:29,970 --> 00:08:32,610
Amazon's bedrock is in there,
too, along with any service that
270
00:08:32,610 --> 00:08:34,409
follows the OpenAI style.
271
00:08:34,409 --> 00:08:36,570
The payoff shows up when a new
model arrives.
272
00:08:36,570 --> 00:08:37,649
Instead of rewriting your
273
00:08:37,649 --> 00:08:39,009
application, you swap the
274
00:08:39,009 --> 00:08:40,389
connector and keep everything
275
00:08:40,389 --> 00:08:40,970
else.
276
00:08:40,970 --> 00:08:44,090
Microsoft calls the kit future
proof for exactly this reason,
277
00:08:44,090 --> 00:08:46,809
because your code stops caring
which model is underneath.
278
00:08:46,809 --> 00:08:49,370
The practical benefit is choice
without lock in.
279
00:08:49,370 --> 00:08:52,649
If your company already pays for
Azure OpenAI, you start there.
280
00:08:52,649 --> 00:08:54,049
And if a cheaper or better model
281
00:08:54,049 --> 00:08:55,610
shows up next year, you move to
282
00:08:55,610 --> 00:08:56,730
it without touching the rest of
283
00:08:56,730 --> 00:08:57,570
your app.
284
00:08:57,570 --> 00:09:00,129
That freedom is the quiet reason
teams pick a kit like this in
285
00:09:00,129 --> 00:09:01,009
the first place.
286
00:09:01,009 --> 00:09:02,190
Connectors cover more than chat.
287
00:09:02,190 --> 00:09:04,950
By the way, the same idea
reaches embeddings, images, and
288
00:09:04,950 --> 00:09:08,149
even audio, so one app can mix
several kinds of AI.
289
00:09:08,149 --> 00:09:10,509
Each language supports a
slightly different slice of that
290
00:09:10,509 --> 00:09:12,750
list, which is worth checking
before you commit.
291
00:09:12,750 --> 00:09:14,149
Then there are prompt templates.
292
00:09:14,149 --> 00:09:16,750
A template blends your
instructions, the user's input,
293
00:09:16,750 --> 00:09:18,870
and the output of a function
into a single prompt.
294
00:09:18,870 --> 00:09:20,190
You can save that template as a
295
00:09:20,190 --> 00:09:21,230
file and share it with your
296
00:09:21,230 --> 00:09:22,830
team, which turns prompt writing
297
00:09:22,830 --> 00:09:24,190
into something you can track and
298
00:09:24,190 --> 00:09:25,309
review.
299
00:09:25,309 --> 00:09:27,269
The last piece in this section
is filters.
300
00:09:27,269 --> 00:09:28,509
A filter lets you run your own
301
00:09:28,509 --> 00:09:29,710
checks before and after the
302
00:09:29,710 --> 00:09:31,509
model acts, which is where teams
303
00:09:31,509 --> 00:09:32,909
put their safety rules and their
304
00:09:32,909 --> 00:09:34,029
security rules.
305
00:09:34,029 --> 00:09:37,409
Microsoft points to filters as
the place for responsible AI
306
00:09:37,409 --> 00:09:40,950
work, and it's a small feature
with a big job.
307
00:09:40,950 --> 00:09:41,750
One kit.
308
00:09:41,750 --> 00:09:42,830
Three languages.
309
00:09:42,830 --> 00:09:44,870
You might be wondering whether
any of this fits the language
310
00:09:44,870 --> 00:09:48,070
you already know, and the answer
is probably yes.
311
00:09:48,070 --> 00:09:50,789
Semantic kernel ships for C,
sharp, Python, and Java.
312
00:09:50,789 --> 00:09:51,909
Each version follows its own
313
00:09:51,909 --> 00:09:53,549
language's habits on purpose, so
314
00:09:53,549 --> 00:09:54,710
it feels native instead of
315
00:09:54,710 --> 00:09:56,350
bolted on Python code written
316
00:09:56,350 --> 00:09:56,549
with.
317
00:09:56,549 --> 00:09:58,529
It still reads like Python and C
318
00:09:58,529 --> 00:10:00,049
sharp code still reads like C
319
00:10:00,049 --> 00:10:00,429
sharp.
320
00:10:00,429 --> 00:10:03,049
Microsoft did that on purpose
Because a tool that fights your
321
00:10:03,049 --> 00:10:04,730
habits is a tool you stop using.
322
00:10:04,730 --> 00:10:06,970
Getting started is deliberately
small in C sharp.
323
00:10:06,970 --> 00:10:07,889
You add one package.
324
00:10:07,889 --> 00:10:09,049
In Python, you run a single
325
00:10:09,049 --> 00:10:11,049
install command, and in Java you
326
00:10:11,049 --> 00:10:12,090
pull it from the usual
327
00:10:12,090 --> 00:10:12,730
repository.
328
00:10:12,730 --> 00:10:15,129
There's no giant setup step
standing between you and your
329
00:10:15,129 --> 00:10:16,210
first working example.
330
00:10:16,210 --> 00:10:17,570
There's another reason that
matters.
331
00:10:17,570 --> 00:10:20,409
It means you don't have to learn
a new language to try the ideas
332
00:10:20,409 --> 00:10:21,370
in this episode.
333
00:10:21,370 --> 00:10:24,090
If you already write Python for
a side project, you can follow
334
00:10:24,090 --> 00:10:25,049
the Python path.
335
00:10:25,049 --> 00:10:27,929
And if your job runs on Natty,
you can use that one.
336
00:10:27,929 --> 00:10:29,649
There's one thing to know before
you pick.
337
00:10:29,649 --> 00:10:30,409
They aren't perfectly.
338
00:10:30,409 --> 00:10:32,149
Even a few features land in C,
339
00:10:32,149 --> 00:10:33,250
sharp and Python before they
340
00:10:33,250 --> 00:10:34,570
reach Java, and the vector store
341
00:10:34,570 --> 00:10:35,929
connectors lean toward the first
342
00:10:35,929 --> 00:10:36,330
two.
343
00:10:36,330 --> 00:10:37,409
It's worth a quick look at the
344
00:10:37,409 --> 00:10:38,490
feature list for your language
345
00:10:38,490 --> 00:10:39,490
before you plan around
346
00:10:39,490 --> 00:10:40,090
something.
347
00:10:40,090 --> 00:10:41,330
One more promise is worth having
348
00:10:41,330 --> 00:10:43,049
if you're learning version one
349
00:10:43,049 --> 00:10:44,529
and later come with a commitment
350
00:10:44,529 --> 00:10:46,409
to no breaking changes, which
351
00:10:46,409 --> 00:10:48,070
means the code you learn today
352
00:10:48,070 --> 00:10:49,850
won't be thrown away by the next
353
00:10:49,850 --> 00:10:51,250
update.
354
00:10:51,250 --> 00:10:54,090
Copilot, foundry and what comes
next?
355
00:10:54,090 --> 00:10:56,570
Now for the question that
confuses the most people and it
356
00:10:56,570 --> 00:10:57,889
deserves a straight answer.
357
00:10:57,889 --> 00:11:00,049
Semantic kernel isn't Microsoft
three hundred sixty five
358
00:11:00,049 --> 00:11:02,590
copilot, and you don't need it
to use copilot.
359
00:11:02,590 --> 00:11:04,990
Copilot is a finished product
you open and use.
360
00:11:04,990 --> 00:11:07,029
While Semantic Kernel is a
building material that
361
00:11:07,029 --> 00:11:10,470
developers use to make their own
AI features, the real link is a
362
00:11:10,470 --> 00:11:12,350
shared way of describing things.
363
00:11:12,350 --> 00:11:13,710
Semantic kernel uses the same
364
00:11:13,710 --> 00:11:15,269
web standard OpenAPI, that
365
00:11:15,269 --> 00:11:15,909
Microsoft three.
366
00:11:15,909 --> 00:11:17,129
Sixty five copilot uses to
367
00:11:17,129 --> 00:11:18,389
describe what an extension can
368
00:11:18,389 --> 00:11:18,870
do.
369
00:11:18,870 --> 00:11:21,590
Because both sides speak the
same language, a capability you
370
00:11:21,590 --> 00:11:23,950
build can be shared with other
developers, and even with makers
371
00:11:23,950 --> 00:11:25,029
who don't write code.
372
00:11:25,029 --> 00:11:26,149
There's a bridge here too, for
373
00:11:26,149 --> 00:11:27,509
building your own agent into the
374
00:11:27,509 --> 00:11:28,549
Microsoft three hundred sixty
375
00:11:28,549 --> 00:11:29,230
five world.
376
00:11:29,230 --> 00:11:29,909
The Microsoft three.
377
00:11:29,909 --> 00:11:31,549
Sixty five agents SDK handles
378
00:11:31,549 --> 00:11:32,429
the Microsoft three hundred
379
00:11:32,429 --> 00:11:34,269
sixty five side, and the AI side
380
00:11:34,269 --> 00:11:36,070
is handled by Semantic Kernel or
381
00:11:36,070 --> 00:11:36,909
its successor.
382
00:11:36,909 --> 00:11:40,669
So together they let a custom
agent reach into copilot.
383
00:11:40,669 --> 00:11:43,629
On the cloud side, the newer
framework lists Microsoft
384
00:11:43,629 --> 00:11:46,629
Foundry as one of the places to
run models and agents.
385
00:11:46,629 --> 00:11:49,350
It helps to see these as layers
rather than rivals.
386
00:11:49,350 --> 00:11:51,710
Copilot is the finished
experience your colleagues use.
387
00:11:51,710 --> 00:11:53,509
Copilot studio is where makers
388
00:11:53,509 --> 00:11:54,750
build their own agents with
389
00:11:54,750 --> 00:11:56,549
little or no code, and Semantic
390
00:11:56,549 --> 00:11:57,970
kernel is the developer kit
391
00:11:57,970 --> 00:11:58,470
underneath.
392
00:11:58,470 --> 00:12:00,590
That turns an idea into working
code.
393
00:12:00,590 --> 00:12:02,690
They are meant to sit together,
not compete.
394
00:12:02,690 --> 00:12:04,210
That brings up the honest part.
395
00:12:04,210 --> 00:12:05,409
Microsoft built a newer
396
00:12:05,409 --> 00:12:06,850
framework, the Microsoft Agent
397
00:12:06,850 --> 00:12:08,570
Framework, by combining semantic
398
00:12:08,570 --> 00:12:09,649
Kernel with another project
399
00:12:09,649 --> 00:12:10,570
called Autogen.
400
00:12:10,570 --> 00:12:12,529
It has since become the
recommended starting point for
401
00:12:12,529 --> 00:12:14,049
brand new agent projects.
402
00:12:14,049 --> 00:12:15,289
The real tension here is simple,
403
00:12:15,289 --> 00:12:16,210
and you've probably felt it
404
00:12:16,210 --> 00:12:16,490
already.
405
00:12:16,490 --> 00:12:17,570
You don't want to spend months
406
00:12:17,570 --> 00:12:18,289
learning something that
407
00:12:18,289 --> 00:12:19,850
Microsoft is about to replace,
408
00:12:19,850 --> 00:12:20,909
so let's deal with that fear
409
00:12:20,909 --> 00:12:21,370
directly.
410
00:12:21,370 --> 00:12:23,409
Here's what that does and
doesn't mean.
411
00:12:23,409 --> 00:12:25,850
New feature work now goes to the
newer framework.
412
00:12:25,850 --> 00:12:28,570
But semantic kernel is not dead
and not abandoned.
413
00:12:28,570 --> 00:12:31,289
Microsoft still supports it and
still ships fixes, and
414
00:12:31,289 --> 00:12:34,289
Microsoft's own guidance says
that for an existing project, or
415
00:12:34,289 --> 00:12:36,769
when you need to ship something
quickly, staying on semantic
416
00:12:36,769 --> 00:12:39,090
kernel is perfectly fine for you
as a learner.
417
00:12:39,090 --> 00:12:40,529
The ideas carry straight over.
418
00:12:40,529 --> 00:12:43,169
A plugin here becomes a tool
there, and the mental model you
419
00:12:43,169 --> 00:12:44,610
just built is the same one.
420
00:12:44,610 --> 00:12:45,889
Learning semantic kernel is
421
00:12:45,889 --> 00:12:47,289
really learning how Microsoft
422
00:12:47,289 --> 00:12:48,730
approaches agents.
423
00:12:48,730 --> 00:12:51,929
That way of thinking outlasts
any single tool.
424
00:12:52,929 --> 00:12:54,529
When to use semantic kernel.
425
00:12:54,529 --> 00:12:56,649
Let's finish with the practical
question of when to actually
426
00:12:56,649 --> 00:12:57,490
reach for this kit.
427
00:12:57,490 --> 00:13:00,289
Start with the rule that fits
almost any tool.
428
00:13:00,289 --> 00:13:02,750
If you can write a plain
function to do the job right.
429
00:13:02,750 --> 00:13:03,629
The plane function.
430
00:13:03,629 --> 00:13:05,509
Microsoft says this about
agents.
431
00:13:05,509 --> 00:13:08,389
And it's good advice because
reaching for AI when a simple
432
00:13:08,389 --> 00:13:11,149
piece of code would do, just
adds cost and confusion, then
433
00:13:11,149 --> 00:13:12,429
reach for semantic kernel.
434
00:13:12,429 --> 00:13:15,509
When you're a developer adding
AI to an app you already own,
435
00:13:15,509 --> 00:13:18,149
and you want your own code to be
scalable by the model, that's
436
00:13:18,149 --> 00:13:20,669
the core case, and it's where
the kit shines.
437
00:13:20,669 --> 00:13:23,269
Reach for it when you need one
code base to work with several
438
00:13:23,269 --> 00:13:25,909
models, so you can switch
providers without rewriting
439
00:13:25,909 --> 00:13:28,909
anything and reach for it when
your company runs on net and
440
00:13:28,909 --> 00:13:31,649
wants the kind of logging,
security, and oversight that big
441
00:13:31,649 --> 00:13:34,870
IT teams ask for before they
approve anything, there are two
442
00:13:34,870 --> 00:13:36,029
times to look elsewhere.
443
00:13:36,029 --> 00:13:38,570
If you never write code, the kit
isn't your door because the
444
00:13:38,570 --> 00:13:42,070
maker friendly path is copilot
studio, and Semantic Kernel sits
445
00:13:42,070 --> 00:13:44,669
underneath that world rather
than at the front of it.
446
00:13:44,669 --> 00:13:47,629
If all you want is a simple chat
bot on a website, you're solving
447
00:13:47,629 --> 00:13:50,070
a smaller problem than the one
this kit was built for.
448
00:13:50,070 --> 00:13:52,830
A career angle matters here,
too, since many of you came here
449
00:13:52,830 --> 00:13:54,070
for exactly that.
450
00:13:54,070 --> 00:13:57,590
The ideas in this kit plugins,
function, calling, memory, and
451
00:13:57,590 --> 00:14:00,830
connectors show up in other AI
tools too, including the ones
452
00:14:00,830 --> 00:14:02,250
that aren't from Microsoft.
453
00:14:02,250 --> 00:14:04,330
Learn them here and you'll
recognize them everywhere else.
454
00:14:04,330 --> 00:14:06,289
There's one last thing for
anyone starting fresh.
455
00:14:06,289 --> 00:14:07,370
If you're starting something
456
00:14:07,370 --> 00:14:09,409
brand new, Microsoft now steers
457
00:14:09,409 --> 00:14:10,809
developers toward the successor
458
00:14:10,809 --> 00:14:11,330
first.
459
00:14:11,330 --> 00:14:13,090
So learn semantic kernel for the
460
00:14:13,090 --> 00:14:14,610
ideas and reach for the new
461
00:14:14,610 --> 00:14:15,129
framework.
462
00:14:15,129 --> 00:14:17,049
When you begin, the concepts are
463
00:14:17,049 --> 00:14:18,049
the same, and that's the part
464
00:14:18,049 --> 00:14:20,929
worth keeping the recap and one
465
00:14:20,929 --> 00:14:21,610
question.
466
00:14:21,610 --> 00:14:24,250
So let's pull the pieces
together in a few short lines.
467
00:14:24,250 --> 00:14:26,850
Semantic kernel is middleware,
the layer that connects your
468
00:14:26,850 --> 00:14:28,370
code to an AI model.
469
00:14:28,370 --> 00:14:30,370
The kernel holds everything in
one place.
470
00:14:30,370 --> 00:14:32,529
Plugins give the AI your own
functions.
471
00:14:32,529 --> 00:14:34,889
Function calling is how it
decides what to run.
472
00:14:34,889 --> 00:14:37,970
Memory is how it remembers your
data, and connectors keep you
473
00:14:37,970 --> 00:14:39,809
free to swap models later.
474
00:14:39,809 --> 00:14:41,730
If you remember one thing, make
it this.
475
00:14:41,730 --> 00:14:42,889
The model is the part that will
476
00:14:42,889 --> 00:14:44,409
change again and again as the
477
00:14:44,409 --> 00:14:45,529
technology moves.
478
00:14:45,529 --> 00:14:46,769
The wiring between your code and
479
00:14:46,769 --> 00:14:47,610
the model is the part you
480
00:14:47,610 --> 00:14:48,570
actually control.
481
00:14:48,570 --> 00:14:51,049
And that wiring is what Semantic
Kernel gives you.
482
00:14:51,049 --> 00:14:54,649
If this helped, subscribe to the
M365 FM podcast to master the
483
00:14:54,649 --> 00:14:57,009
tools and the mindset shaping
the future of work.
484
00:14:57,009 --> 00:14:58,129
Here's my question for you.
485
00:14:58,129 --> 00:15:01,190
If you could hand one task from
your own work over to an AI
486
00:15:01,190 --> 00:15:03,610
tomorrow, which task would you
trust it with first?