Video summary
This webinar, led by Microsoft MVP Andrew Connell, introduces strategies for customizing Microsoft 365 Copilot to create tailored experiences that go beyond standard licensing models. While out-of-the-box Copilot utilizes foundational models and native data sources like emails and chats, it often lacks access to critical external organizational systems such as ERPs, CRMs, or non-Microsoft policies. To bridge this gap, the session focuses on building "Agents"—scoped versions of Copilot equipped with specific instructions, knowledge bases, and skills. These agents are essential for scenarios requiring deep integration with proprietary data, allowing organizations to move past the limitations of the consumption-based "Copilot Chat" model toward more sophisticated, context-aware applications.
The core of customization revolves around three primary methods: defining custom instructions to set tone and behavior, leveraging Graph Connectors to add static unstructured content like policy manuals to the semantic index for retrieval-augmented generation, and implementing Skills that enable Copilot to perform real-time actions by calling external APIs. The technical architecture involves an orchestrator that grounds user prompts in context, retrieves relevant data from both the semantic index and external sources, performs necessary security checks, and generates responses. Developers can choose between Declarative Agents, which use Microsoft Teams Toolkit for granular control over connectors and skills while still utilizing Microsoft's foundational models, or Custom Engine Agents, which offer full autonomy by allowing developers to bypass Microsoft's orchestrator entirely and deploy their own infrastructure and alternative AI models.
Beyond the technical implementation, the session addresses practical considerations such as data ingestion strategies, security trimming via Access Control Lists, and schema mapping to ensure accurate data interpretation. It highlights that while out-of-the-box connectors may only index portions of large files, embedding data into Azure AI Search provides a solution for comprehensive indexing. Furthermore, the presentation clarifies licensing requirements, noting that building custom agents can reduce costs by avoiding per-user fees when using metered usage or alternative models, though it also touches on the current freeze in developer tenant distribution and recommends commercial licenses for production environments. The webinar concludes by promoting an upcoming workshop where attendees can learn to build these declarative agents using tools like VS Code and the Teams Toolkit, offering a path forward for developers looking to extend Copilot's capabilities securely and efficiently.
Read the full video transcript
[Music]
uh thank you very much for everybody
who's joining me today I'm really
looking forward to diving in and sharing
some of the goodness about what we can
do with Microsoft 365 co-pilot um
specifically we're going to look at how
we can do some customizations and make
co-pilot uh a little bit more tailor
just for us and our organizations um I
like to think of this as the way that
you can really get value uh out of
Microsoft 365 co-pilot um we've all
experienced that $30 per user per month
with a an annual uh commitment um for
co-pilot uh for Microsoft 365 co-pilot
licenses and there's a new Option about
a month or so old uh called co-pilot
chat where it also supports a
consumption model that allows us to um
pay based on the number of pay based of
U uh based on messages uh that are sent
um I have an article where I walk
through all that stuff with the the
consumption model but um I'm going to
focus mostly on just why you would do uh
this different um why you would want to
customize co-pilot uh and uh hopefully
answer any questions that you may have
um so this webinar is primarily uh
targeted to full stack developers or web
developers um this is not uh
particularly uh for uh makers or um low
code or no code uh people um however you
will still learn stuff uh if you are not
a developer if you are not a a full
stack developer or web developer uh you
will learn stuff if you are a um a maker
a low code no code person if you're a
business manager if you're just a
decision maker or something all those
things this is still going to be useful
to you because it's going to I'm really
not going to dive into any code here if
questions come up I've got some ready
that I can pop out and show you um but
the whole point here is for you to walk
away understand how co-pilot works and
then how uh where the limitations are um
out of the box and where customizations
are really going to come into play uh
for you to create tailored experiences
that's where you're really going to get
the value out of this uh so let's go
ahead and get started now I want to uh
first start off by just introducing
myself my name is Andrew Connell um I'm
a longtime uh web developer in the
Microsoft 365 space I've been
doing um primarily SharePoint
development going back 20 years uh but
in the last five plus years I've been
doing a lot more work on like uh
Microsoft teams development in the last
year or two uh more work with SharePoint
embedded um also work around I do a lot
of work around SharePoint framework um
and spending a lot more time too with
Microsoft 365 co-pilot and specifically
around not the out-of thebox story but
more focused around the um the
customization story of uh how we can
build custom agents for Microsoft 365
co-pilot um I got a little bit of
contact info here where you can find me
um uh I'm on mostly active on uh YouTube
LinkedIn and uh Blue Sky um also you can
see there are threads in GitHub well I
live in GitHub these days um but mostly
it's like LinkedIn and uh blue skies
where you can find me but I've also got
my contact info there uh where you can
also learn more uh and get in touch with
me um I have a company called uh Voos
where I focus primarily on uh really
making you the best Microsoft 365
developer that you can be uh and I do
that through on demand courses free
video free email courses um articles uh
webinars like this free webinars like
this um workshops um group coaching
programs like eight-week long uh uh
application development uh accelerators
for both teams and um SharePoint
framework so lots of different options
that are there
um I'm also a I think a 20y year or 21y
year um veteran of the uh Microsoft's
MVP program um where I've been a MVP
been recognized with their annual award
every year since I think it was 2005 I
think it was 2005 um it's always hard to
tell like when you know how old are you
or how old is somebody always messes me
up uh okay so let me go quickly just
kind of explain what are we going to
cover uh in this webinar um I'm going to
start off by just explaining you know
Microsoft 365 co-pilot and understanding
how it works because if you understand
how it works you're going to you're
going to have a better understanding of
where you can hook in and change how
things work or to customize it and
really make it your own um we're going
to talk about the two different ways uh
that we can um customize and extend uh
our co-pilot experience and by creating
custom agents uh and there's really
three main ways we can do that um three
or four so one of them is by creating Uh
custom instructions for our agent so
that we can set the tone we can uh tell
it if we want it to be funny if we want
it to be uh professional and engaging
not creative there's a whole bunch of
stuff that we can do we can basically
give it some really good instructions uh
second thing uh that we can do with that
is we can add capabilities to it and by
adding capabilities those are things
like uh giving it knowledge uh so it and
I'll explain where we do that but that's
essentially like let's fill its brain up
with some additional stuff and what
really makes this stand out from using
something like chat GPT uh that we had
that we have from open
AI uh third the the third thing we have
and part of that knowledge there's a
different ways we can do that we can do
that by um giving it additional uh
content uh from our organization that
does not live in Microsoft 365 uh we can
also do it by um giving it access to or
only filtering it down and scoping it
down to only letting it access ACC uh
specific types of content um inside of
either SharePoint sites or um one drive
and there's additional capabilities like
crawling a site on the Internet or um uh
by giving it the ability to do uh like a
a code based um a code thing it's called
a code interpreter or being able to
generate
images the other thing that we can do
with this is by we can give it the the
teach it how to perform certain skills
uh and that is not changing its
knowledge but that is going to be more
teaching co-pilot how it can reach out
to an external service when it we've
trained it that it knows how to do
something and when it deduces based on
the user's uh prompt it can deduce that
hey I know how to go look up inventory
information or customer data and when it
does that when it realizes it needs to
do that it leverages the skills that we
teach it to reach out to a uh
an API uh to get data real time and
essentially we're on the Fly we're
implementing What's called the rag
pattern the retrieval augmented
generation pattern which that's
essentially saying hey based on
everything you know and all of your
knowledge here's some more stuff that is
relevant to what the the the user just
prompted you about and use that as
additional context for generating your
response the way that we do all of this
is we do it through things called agents
so we can create a custom agent give
give it its own instructions knowledge
and um skills and that allows us to
create create personalized or very uh
specific scenario specific
implementations uh of these of Microsoft
365
co-pilot so I'm going to talk about all
of these different things when you would
use uh certain things when you would not
use them and then also we'll get into
like when should I go with a declarative
agent or when should I go with a custom
engine agent now I'm going to focus
primarily on the the story that we have
uh for developers which is using the
Microsoft teams toolkit to create both
declarative agents and custom engine
agents but with that being said there
are other options we can use something
called the uhu co-pilot studio uh to be
able to create agents as well it can't
do everything that we can do with the
teams toolkit and it can do some things
that we can't do with the teams tool kit
so the VIN diagram between what's
possible and what's not there it it has
a significant of overlap but there are
some things that are exclusive to each
one um because this is primarily for
developers though I'm going to focus
really on the the um the Microsoft uh
the teams toolkit uh development story
with this um now when you registered for
this webinar I asked you what do you
want to walk away from this when you
when you come to this webinar what kinds
of questions do you have that you want
to ask uh and you want to get answers to
so the way that you can do
this um the way way you can do sorry not
the way you can do this some of the
questions that you asked some of the
questions you sent me you may see your
question up here so if you registered
this morning uh or um uh since like well
if you registered today uh then I didn't
get your question yet uh I I did this uh
slide late last night um so this is kind
of how like I summarize things so there
are some general questions here so for
example uh you asked for some use cases
and business applications for Microsoft
365 co-pilot I'll do that because I've
built some agents for my company and
that I use that make me much more
productive and so I'll give you some
scenarios here um the next question
somebody had were another category of
questions was around governance costs
and complexity considerations uh so
we'll talk a little bit about that um
some people asked about some very
specific functionalities so creating
multiple choice questions from PDFs
connecting to apis and databases
SharePoint integration Auto tagging and
automated weekly report generation uh I
would love to go into all of these the
second one connecting to apis and
databases we'll definitely cover that
but those other three things remember
this is an introductory webinar on how
we can customize co-pilot so those
things are more scenario specific and
while I don't discount them uh it's hard
to do those and in an introductory one
but if you've got questions I already
see one person has already posted a
question in the webinars uh uh Q&A panel
I will answer every single question that
you have I have this webinar are
scheduled for about 90 minutes I do not
plan to take up the entire 90 minutes
I'm I'm probably only going to talk for
about 50 minutes 45 50 minutes maybe an
hour um I don't have a ton of slides uh
my my goal here is for you to learn
something and to walk away with some
questions answered so I have plenty of
time for questions and I'll answer them
if I see a question come in I will
answer it as it comes in um and I will
uh if if it's relevant to what we're
talking about right then so I see the
question hear about csvs and uh PDFs and
stuff I'll come back to I'll come back
to that when when the time is right um
but I will answer your question another
another category of questions agent
capabilities and interactions consuming
list elements uh and working with
documents not sure what you mean by list
elements if you mean uh from a
SharePoint site I'll talk a little bit
about that um agent agent communication
and handoffs well handoff is something
we heard about last year and it's kind
of not being done uh in in co-pilot
these days but uh um the agent to agent
communication is more like autonomous
based stuff and it's possible but it's
uh it's still early on doing that and
it's um I I wasn't going to go into that
much detail with that today so just
cards on the table uh the other question
somebody has using SharePoint list data
I'll talk a little bit about that as
part of a limitation but then I'll show
you how you can get around it and then
finally customizations with and
implementations so like integration with
AI Azure AI services or when to use
different types of agent extensibility
and the differences between the teams
toolkit and visual studio um uh options
we're going to go through some of that
stuff we're going to go through some of
that it's not going to be an exhaustive
teams toolkit and co-pilot Studio
comparison uh to be quite Frank I'm
doing a workshop on that an entire work
workshop on that uh at a conference
later this year uh with a colleague of
mine um it's a full day workshop so I I
can't and the whole thing is about
co-pilot studio and teams toolkit so
clearly I can't do that in just an hour
of our session but uh if you're
interested in that I can I can tell you
more about that if you like just post a
question in the chat okay little bit of
a preamble here I'm going to be
completely give you complete cards on
the table with this this entire webinar
if you're joining for this and you're
trying you want to learn about what's
possible and how does it work and what
are my options for extending and
customizing Microsoft 365 co-pilot this
webinar is for you now to be completely
honest at the end of this webinar I want
to share with you how you can work with
me to get the most out of your Microsoft
365 co-pilot Investments but you this is
going to be like 95% educational I
guarantee you that you will walk away
and get an Roi on your time a return on
your investment of your time joining me
for this webinar you will get an Roi on
this today so I just want to be heads up
with that I am going to share something
with you at the end but I don't but if
you're interested in it but it's going
to be done at the end right before I do
questions okay with that being said
let's dive in let's talk about how
Microsoft moft 365 co-pilot works so
first of all what is it now you've
probably seen a picture like this on the
right Microsoft has revised this picture
in some of the more recent uh
presentations they've done personally I
think the new one is a little bit harder
to understand but what co-pilot is is
it's an AI uh powered productivity tool
that's going to help your users stay in
the flow of their work across all
Microsoft 365 applications and that
includes things like Outlook Microsoft
teams word Etc and it does it by
grounding your prompts and the its
responses but not the prompts but
grounding its responses with your
organizational data and what they
Microsoft refers to it as Microsoft
graph data you'll understand why they
say that in a minute but essentially the
difference between using Microsoft 365
co-pilot and using something like chat
GPT is that chat GPT has a wealth of
knowledge that it has accumulated from
all of its training and by the
underlying models it uses from from the
under from all the training it's done
when the models were actually trained um
when it comes but that's about it when
it comes to Microsoft 365 co-pilot it
also has all of that knowledge because
it's using the same models that chat GPT
uses but the thing that it also has is
out of the box it also has additional
Knowledge from your organizational data
inside of your Microsoft 365 tenant that
includes chat messages inside of teams
emails uh calendar or sorry uh meetings
uh transcripts for meetings files and
and SharePoint and and uh one drive Etc
now there are asteris and like uh
tangents to each one of those things I
just mentioned we'll get through some of
that stuff today uh but just know that
that's like the additional stuff that it
has it gives it's basically think of it
using co-pilot or chat GPT but also
having my domain expertise and knowledge
of my organization
um so it offers like I said here in the
second bullet point it offers knowledge
such as emails chats Etc the big thing
that it does though is by having access
to all that content is that it can then
summarize uh and um uh present in a in
an easier way to understand uh
information related to The Prompt from
its underlying knowledge plus all of its
knowledge that that it has from your
content in Microsoft
365 so over here on the right hand side
this is kind of like what co- how
co-pilot looks and you're going to see a
picture similar to this uh towards the
end of my presentation because it's
going to really show you where you can
go through and have make some changes so
again let me just make sure that we're
clear on how this picture is set up on
this the bottom part right here when you
hear Microsoft talk about foundational
models these are the open AI based
models that chat uh that chat gbd and uh
Microsoft co-pilot are founded on so
these are the large language models that
have a bunch of underlying knowledge of
from being from crawling the internet uh
that it can use to rationalize overall
of this content then you also it also
has access to all of this additional
knowledge so this is going to be out of
the box data coming from Microsoft graph
data which is going to include all of
the stuff that you have that graph has
access to like transcripts from meetings
emails files and and one drive and
SharePoint uh Etc it's also going to
have access to all the content in data
verse so all of your power apps uh that
you've invested in um you're going to
have access to that and data like from
like Dynamics 365 sales uh is also going
to be available to us uh in addition it
can also have access to the to the
internet and you'll see how we can
customize that and then finally we also
have we have all these skills and these
are things that we can teach co-pilot to
not only just be able to summarize
content like up here we're just
summarizing we're not able to act on it
we just have read access to it whereas
these skills have not only read access
to maybe large data stores like an RP or
an inventory or or a CRM system that
doesn't live in 365 but it also is going
to give us the ability uh to even
perform actions on those different um uh
services or those different endpoints so
all of this is controlled using this
thing called the orchestrator so the
orchestrator is the thing that gets the
prompt from the user from the user
experience it rationalizes over that
trying to figure out what is the intent
of this prompt what is the user asking
and it then is going to go collect some
uh data from its knowledge sources and
then it's also if it deduces that hey
the intent of this prompt is to go get
data from an inventory system I can go
reach out and go get data from that
inventory system and add that as some of
my additional content so it's going to
take all of the knowledge that it
already has plus additional data that
it's accumulated from these real-time
services and then it's going to send it
down to the foundational model which has
all of the foundational data rationalize
over the response and then and then um
or over all that data generate a
response and then return that back to
the user all right that's the gist of
how this
works now I just jumped two slides no
just one slide okay so the challenge
that we have with everything I just
showed you is that while it's
great out of the box copilot only has
access to all the content inside of your
Microsoft 365 tenant that's what graph
has access to show me an organization
today that has 100% of their business
inside of Microsoft 365 and I'm sure
somebody can show me that but they're
very very few and far between and I'd
argue like is it are you really going to
get value out of Microsoft 365 co-pilot
uh and spending that $30 per user per
month license to get access just to
rationalize over all of your data in
Microsoft 365 well you you could but
think about all of the other sources of
data that you have in your organization
Maybe maybe policies that are not in
SharePoint maybe transcripts from
courses you sell like I do maybe uh an
Erp system uh for inventory management
and supply chain uh CRM system for
customer management and relationship
management uh maybe um uh other uh sales
information financial information this
stuff doesn't live traditionally in 365
and so maybe you want to be able to give
co-pilot access to all of that
information so that it has a full
picture of your company and all the data
so when someone asks it a question it
can have full access to all of that or I
can create a scoped thing where it's
just a a um like a customer or a lead
co-pilot that I can ask it questions
about potential leads that I'm working
so the way that this works is that I can
add my own knowledge I can add my own
skills to this I can also give it
special instructions so that it can only
do specific things this is what co-pilot
gets out of the box right now the way
way I customize it is I'm going to go
create my own agent which is still going
to have all of a lot of all of the same
stuff but my other agent is also going
to have additional knowledge and
additional skills and maybe there's like
a nice little veneer over my other agent
over here that co-pilot's talking to so
this out of the boox co-pilot is going
to talk to my custom co uh agent uh and
it's going to be able to respond uh
based on the instructions that I've told
it or like you're only interested in
speaking about these specific things
like I can't change the system or the
base instruction set that the outof
thebox co-pilot has I can just create my
own agent and then co-pilot will use my
agent all right so that's the gist of
how the extensibility stuff works oh boy
all right now this is how co-pilot under
the covers works so how does this work
so follow along with me here okay up
here at the top in step one here what
co-pilot does when a user goes to in the
the business chat they're going to send
a prompt to co-pilot and ask it a
question or say something and then in
step two you see right here step two
co-pilot is then going to pre-process
the prompt that the User submitted
through an approach called grounding and
what that does is that's going to
improve the specificity of the prompt so
that you can get answers that are more
relevant and actionable to the task that
you're trying to perform so the prompt
can include text from input files or
from content discovered by co-pilot and
what co-pilot then does is it's then
going to send this prompt to the large
language model for processing co-pilot
only has access to the data that the
current individual user that submitted
the a submitted the prompt that they
have access to right so it's all based
on your existing Microsoft 365 ro-based
uh access control then in step three and
you'll notice here in the picture that
step three is not only coming back here
and responding from getting all the data
from co-pilot and then sending it back
in addition you also see it's getting
data from maybe potential plugins or
actions uh and also from the um from
search is then going to send all of that
over to uh The Prompt over to the large
language model all right and have it go
through and rationalize over some of
that stuff in step three this is where
it's taking the response from the large
language model and then it's going to do
some additional
postprocessing of that data um and then
this postprocessing piece which you see
like listed right here this is going to
include additional grounding calls to
Microsoft graph and do some things like
responsible AI checks to make sure that
I'm not saying something or that
copilot's not not being asked to do
something that is not considered
responsible like maybe hate speech or
self harm or violence or something like
that um it maybe is doing other things
like Security checks and making sure you
allowed to do what you're asking me to
do uh it's going to do maybe compliance
maybe privacy reviews and also some
additional uh some additional stuff that
it's going to do it behind the scenes so
after step three once it goes through
and it's checking for additional data
based on what uh Copa responded so step
three is still going back to graph and
getting more data that it needs it then
in step four that you see is going to um
come back over here to our large
language model it's going to return that
response to the app where the user can
then review and assess the response and
then that's where the user is going to
get all of their um get the response
back from uh the co-pilot um uh uh gen
cont content generation or um
uh when it generates a response is what
I'm trying to say took me a second um
okay so that's just the gist of it the
thing is that I want to do as a
developer is I want to over here in this
piece where I'm going through and adding
in my own stuff or maybe adding in my
own data when it's going through and
fetching this additional data I want to
control that I want to be able to give
it different data sources not just stuck
with Bing or dataverse or uh Microsoft
fabric the the entire data platform I
want to give it some other custom stuff
that it doesn't know about out of the
box that's what this is all going to be
about
today okay so one thing you need to
understand let's think about Microsoft
graph for a second you might have heard
of this thing called the semantic index
so what is this when I when I said
previously that copilot has access to
all of your graph data it does but it
the more specifically is what I want to
say is is that it's accessing a semantic
index that is sitting on top of
Microsoft graph and what that is is a
vectorized database of all of your
content now there's actually two of
those there's one for your
organizational data and then there's one
for your data so there's like an index
that is has individual uh Communications
and stuff like that that I can only see
the stuff that I've been involved in I
can't see everything else I can only see
chat messages that I've been involved in
with somebody else but I can't see when
like two of you go have a chat message
that's going to be in the user index but
it's not going to be something that I
can see uh unless I've been given
permission to it so these two indexes
these two things the tenant based index
and the user index they sit on top of
Microsoft graph and uh they now are
going to give co-pilot additional uh
access to content inside of Microsoft
365 above and beyond its foundational
knowledge this this first bullet point
you see uh right here this large
language model Knowledge from from the
initial training it had um so then it
also has access to all the data inside a
graph via these this uh semantic index
and then as I've talked about before
it's also got access to uh apps inside
of Microsoft 365 and uh El has access to
uh content um on the internet so this is
going to help you interpret our user
queries and produce more contextual
relevant responses and it starts with
prompts in the Microsoft 3 65 co-pilot
uh experience or what's called bis chat
with the uh data from Microsoft graph
that's used for grounding which
basically says when I say grounding if
you're not familiar with that that's
that's me basically saying hey when you
respond I want you to respond in context
to this right to to um uh uh to this
context here so like for example if I
said uh if I asked you a question of uh
you know what's for dinner tonight um
each of you are going to give me a
different response because you're
grounded on what your plans are this
evening with your family or spouse or um
significant other whatever or solo right
so it's all that all that grounding is
all your context that's what grounding
is all right um and it does this by
searching through billions of vectors
which are just mathematical
representations of phrases uh to figure
out like this phrase is closer to this
one so vectors if you're not familiar
with this or you heard this concept of
uh embeddings and uh in vectors in
Vector databases an embedding is taking
some text and generating a mathematical
representation of it uh where basically
you can think of like I'm going to take
this block of text and I'm going to put
this block of text on like a three or a
three-dimensional like uh chart and then
if I take some other text it's going to
give me a new mathematical
representation and that's going to put
it on the same chart but it's going to
help me see like where are they related
so for example if I did if I generated
embedding uh for the word dog and for
the word cat those two are going to be
somewhat close together they're both
domestic pets they're both um they're
both animals um but there's some
differences between them now if I also
had an embedding for a puppy and an
embedding for kitten well puppy is going
to be closer to dog than it is cat but
it's also going to be closer to kitten
than it is um than it is cat right maybe
not as close as it is to dog but these
mathematical representations the all of
these embeddings we store them inside of
what's called a vector database and then
we can run prompts against this to say
like here's some other text I'm looking
for and I'm looking for Content that is
related or closely related or based on
whatever the query is how much related
or how closely related based on the
response that I get back that's a
fundamental um AI concept is this whole
embeddings and uh and
vectors okay so that's just a little bit
of like a I like grounding right and
getting our and understanding how
co-pilot works and just understanding
how how all this stuff uh how like just
the gist of uh doing queries with AI
works so now let me talk a little bit
about what an agent is now an agent is
the phrase that we're that's being used
across the industry um not just a
Microsoft thing uh in fact Microsoft
used to call these things something
different but they have settled on the
word they used to call them just
separate co-pilot so if you remember
about this time last year or summer of
2024 uh Microsoft was talking more about
creating your own custom co-pilots well
the industry now says no you're really
creating an agent and an agent is what's
doing all of the work so what Microsoft
used to call like individual co-pilots
now we now they're calling them agents
and what the way it works is in
Microsoft 365 co-pilot it is going to
call agents so it is has its out of
thebox experience and then for us to
create a custom experience we're going
to create an agent or lots of Agents so
an agent is a couple things it is a
scoped version of the outof thebox
co-pilot I have a co-pilot for working
with leads I have a co-pilot for working
with students I have a co-pilot for um
answering questions from my students uh
where I have knowledge that I've created
a knowledge blob inside of my tenant of
all of the transcripts from my um uh my
courses on the SharePoint framework and
then it also has all of the content uh
that I've written in the transcripts
from my YouTube videos
that are published on my YouTube channel
and uh content on my on my uh my my uh
like the articles I published on
voan uh so that when a student ask me a
question when I ask my when I ask
co-pilot to use my student like you know
um uh my my uh it's called ask AC um
just I go by the initials AC so Andrew
Connell go figure um when I ask AC I ask
my agent a question or I take my
customer's question my students question
and I plug it into that agent what that
agent does is it's going to basically
I've told it to not be creative to only
look at the knowledge that it already
has don't look out on the internet and
it's essentially saying look at all the
body of work that I've produced over the
last X number of years and come up with
an answer and oh yeah best thing about
it is is that because all of that data
is well tagged it's going to respond
with you know this is how a web part
works and to get it to work as a single
page app here's what you have to do by
the way I talked about it in lesson
number five of my course at around two
minutes because it knows that from the
transcript so that's how I can go
through I can give that more uh tailored
information to my students right now I
get a response back from co-pilot and I
usually go through and I modify it a bit
uh so it's not all machine generation
and I make sure that I correct anything
that's there but it sure makes it easy
for me to go through and figure out like
I know I've talked about this in my
course where did I talk about it let a
machine help me do that a little bit
still all my information um the idea
behind this too is that this is designed
to automate and execute some very
specific uh business processes on my
behalf exactly what I just described
right so real world scenario it's going
out and looking at all my content that
I've given it to go through and do and
to doce this stuff or as another example
maybe I want you know I have I'm a
classic virtual business I have a
email-based marketing system I have a a
learning management system where my
students uh can both buy my courses and
then watch the courses that they have
access to I have a Community where
people can ask questions um I have a CRM
where I use to uh track customers and
track leads and uh and do a lot of my
sales um and then I have um all my
payment processing information from V
various data stores like stripe and
PayPal and you name it I have another
agent where instead of me having to go
to all these places to figure out what
what do I know about a particular
customer um I can just plug in an email
address and the agent knows oh here's
all these places that I I can go find
customers and it goes out and calls all
these different apis and pulls it all in
and then sends it back to the large
language model for processing and not
going through and getting creative and
just saying hey this is a student uh
this is this is somebody who hasn't
bought anything but they register for
some of your free courses they've asked
questions in your community uh they've
um dropped comments on uh on your
YouTube channel for this video and so I
know like okay John Doe they're
interested in co-pilot extensibility and
they used to be interested in teams
development and SharePoint development
yeah that's a life cycle I'm familiar
with so that that's the kind of stuff
that it's helping us do now where do you
use these agents there's two different
ways of doing this there's an an in
context experience where you at mention
the agent in the chat experience to
interact with it in a conversation think
of this as just a bot an old school bot
that we're used to working with inside
of Microsoft teams so this agent really
I'm going to at mention the agent and
that's how I bring it into the
conversation and it's going to get
access to what I ask it when I send it
when I mention it in in the conversation
it treats that as my
prompt second of all there's another way
you can do this and this is an immersive
experience and this is think about this
is like a one-on-one chat where I'm just
having a private chat conversation with
the bot right that's what it is with an
agent I'm having an immersive experience
where everything I type isn't going to
co-pilot it's going to the agent itself
and it's only going to work with that
one agent so when I give it an email
address my custom agent knows I'm
looking for a I'm looking for data from
a customer it's not going out everywhere
else and saying you can send an email to
this person like no no no no no I'm I'm
doing research I'm trying to figure out
who this person is now there are two
different types of agents that we can
create we can create declarative agents
and custom engine agents I'm going to
talk about both of those but before I do
that we need to talk a little bit more
about what is the extensibility uh
landscape and what do I have available
to me um as a
developer so one of the things that I
can do here when I go to extend
co-pilot um
uh just saw somebody's question here
just see
uh let me come back to that piece in
just a second uh same person asked a
question earlier this one's about
organizing or labeling
data so let's talk here a little bit
about how do I extend uh co-pilot so the
way it works is that if you look at my
picture up here up here in the top this
is the user and what the user does is
they're going to ask a question or
they're going to prompt co-pilot so what
does co-pilot do well again it's got all
of its you know out of the box stuff
that it has access to the ability to to
use actions we used to call those
plugins um hence the puzzle piece um and
then it also has access to all of the
like the foundational learning uh
training that it has and uh data inside
Microsoft graph uh through the semantic
index and other knowledge that we create
or that we add to it so what we can do
as a developer there's two main things
things that we can do one is that if we
have
like static content right so articles or
transcripts from courses or policy
manuals and procedures and stuff
standard operating procedures we can
take that content and we can give it to
Microsoft graph and graph will then
index that content into the semantic
index so that now when co-pilot goes to
ask a question my agent is going to be
able to say I only am interested in
these data sources so your foundational
knowledge plus these different these are
called connectors so I'm going to add in
my own Microsoft graph connector of an
additional knowledge source so here's
more data that I'm teaching you all
right notice one thing with this this is
a oneway action that is going into the
index so this is not a read right thing
I am S I have to create a process myself
as a developer I have to create a
process where I'm going to load that
content into the connector and then I
have to wait for a certain amount of
time for Microsoft graphs indexing
process to um vectorize or create
embeddings and vectorize that data and
then store it inside of our Vector
database inside of the um uh semantic
index all right
um the other thing that we have uh is um
we have these things we have um uh let's
say for example I also am working in an
environment where I have additional uh
systems in my organiz ganization so
these are the like the Erp CRM
Salesforce or sorry uh sales and
marketing could be
Salesforce uh Pro Payment Processing you
name it so I basically have these
databases right and what I want to do is
I want to give co-pilot access to some
of that data so notice here this is a
read write operation so notice the
arrows are going in both directions what
that does is I'm simply teaching
co-pilot or teaching my agent you can do
these things and when you need to do
those things these are the apis that you
can call that map to those specific
tasks so if I say I'm looking for
information that John do or I'm looking
for um sales information from John Doe
well it knows well you're asking for
John Doe so I got to figure out who what
his email address is so I'm going to go
to a search against the CRM system or
the email um Marketing System to figure
out who is John Doe and so it's going to
grab one or a couple matching email
addresses and then it's going to go back
and run uh go to one of my other um
actions that it knows about to say I'm
looking for sales data so I'm going to
go to PayPal's rest API and and uh
Stripes rest API to go find information
about what they uh what they have access
to so these are this is the way these
are the two different types of things
that we can create now I see uh shine
had a question here uh saying that when
he was working with uh co-pilot Studio
he wasn't he didn't see graph connector
as one of our knowledge areas uh to use
and if that's available now or if it's
coming I don't think that that is
something that we have access to inside
of co-pilot studio um I don't know what
their plan is on adding it this is one
of those things that maybe outside of
that ven diagram and is only available
to us over in
um uh over inside of a uh a declarative
agent uh furthermore uh this is one of
those things that um let me go through
I'm just going to give you a thumbs up
on this just give you a thumbs up
showing that I've answered it uh and
then uh this may be one of those as well
uh where there's a way to go through and
and to create a connector through the
Microsoft admin Center I'll talk about
that in just a bit and that's going to
allow us when we do that that's going to
make it available for also for search
inside of um Microsoft 365 which may
also automatically make it available to
co-pilot but just keep in mind there's I
don't think that we have a way to create
a custom agent in copilot studio and say
I only want that data it just has gets
access to either all of that data or
none of it and when I say all of it I
mean like if I create like three
connectors then it's all of the outof
thebox data plus the semantic index plus
all of these other connectors does it
get access to all of that stuff I'm not
entirely sure with co-pilot Studio
there's things that copilot Studio does
do that are helpful but you really get
more uh power and control when you're
working with the teams toolkit with the
teams toolkit I do get to build uh
connectors and we'll talk more about
that in just a bit okay
um so someone uh see
uh tals asked uh apart from read WR when
do you use a graph connector to extend
data versus action to an API great
question Tom all I'm going to get to
that so what I want to do now is
let's actually dive in to each of these
different things that we can build and
let's look at like some what makes the
most sense okay so when it comes to
connectors there are two types of
connectors um you have Power Platform
based connectors and we're and you you
might be familiar with those based on uh
stuff that you've done with like um uh
power apps or with um uh Power automate
if you're using co-pilot Studio you have
access to all of those Power Platform
connectors now when it comes to
Microsoft graph connectors this is the
thing I'm going to focus more on going
forward the reason why is because those
Power Platform connectors they it does
give us real-time data to get to outside
uh uh sources um that are outside
realtime sources but and while they're
available in copal studio they're not
available in our custom agents that we
that we want to create so I can't use
these in agents that I create with the
teams toolkit graph connectors though I
can so that's what I want to focus on
for a second these graph connectors they
add organ they allow us to add
organizational grounding data to the
semantic index in our tenant so it gives
co-pilot the ability to access and
summarize diverse data sets from
multiple different data sources not just
the data sour sources that we get out of
the box in an out of the box co-pilot
experience so this way I can use
co-pilot as a research Aid as I've
described already and looking when my
customers ask questions um about
something with the SharePoint framework
or teams development two things I teach
on a lot um it also makes data that does
not live inside of my Microsoft 365
tenant it makes it accessible to
co-pilot because out of the box if I
don't create an agent and I don't create
a connector that data that lives outside
of of Microsoft 360 5 and outside of one
drive and SharePoint it's not going to
be available to me it's not going to be
available to me this again it just adds
another source uh essentially to
Microsoft graphs semantic index there
are a bunch of pre-built connectors that
we have in um Microsoft 365 in the admin
Center uh where you can create an
instance of one of these and then
connect it through the web interface uh
it's under the search and intelligence
admin Center um and when you do that uh
it's allowing us to kind of like have a
more WI wig kind of approach to go
expose some of that data um so that's
definitely something that you could do
but if you don't have one that already
exist or I want to shove data into it
that's something you would do the these
things also can be set up to also uh
crawl data from that external Service uh
on a on a specific schedule if you're
familiar with something called the the
um oh God what was it called the BDC the
business data connector uh that we had
in m in sh in uh SharePoint uh years ago
uh that's similar to what these
connectors
are okay so a graph connector what is it
ideal for so to this is going back to
your question what is an idea what is a
good example of this these are really
good for long form SL unstructured
content so articles policy manuals not
things that are relational uh it's also
good for Content that is not frequently
changing because I have to push the
content up to uh Microsoft 365 up to the
graph connector to get indexed um it's
also really good for when I don't like
when I have unpredictable prompts when I
don't know what the person's going to
what the users are going to ask a
question for c one of the things that
the large language model do a really
good job of is like looking at vast
amounts of data and then synthesizing it
and condensing it down in addition it
also can summarize content so or it's
also good for Content you want to
summarize so these are all really good
examples things like document
repositories so maybe I have content
that doesn't live in inside of one
driver in SharePoint maybe if you have a
knowledge base or content on a website
or a Content management system like a
web a web content management system uh
my case transcriptions for courses uh
video based courses that I have um I
have email courses so the content from
those is also uh inside of my uh inside
of different graph connectors so a bunch
of different options uh with that now
one of the things that's neat about
these graph connectors I think that was
the only thing I was going to say on it
yeah so the other thing that's nice is
graph connector so going back
to I can't tell what your name is uh
based on this you asked a question about
10 minutes ago um you said can we
organize or label so I think it's Anja
24 uh you say can we organize or label
that uh data so that we can turn on or
turn off access to dat within the
semantic index and the Trant index the
answer is yes the way you do this is
that when you create the um the process
of creating a graph connector what you
end up doing is you you create a schema
inside of graph and part of that schema
has a bunch of properties and then there
are also some well-known properties that
you can say like hey this property
actually maps to this well-known
property and that's what helps co-pilot
um like use common common uh responses
so like it always wants to know what a
title is and I may not have a property
on my data set called title it may be
name or it may be like product name or
something so what I do is I create a
property on my schema called Product
name
and then I map it to a a well-known
label called title so that when co-pilot
synthesizes its data and it needs to
reference it it'll use that uh that
label um I think they're called semantic
labels I forget off top of my head but
as part of my process for when I gra
when I take that external content and I
give it to graph one of the things I can
give it is not just the data the raw
content not just the metadata the
properties that should map that I've
created in the schema but but I can also
give it an Ackle an access control list
and what that does it says who does and
does not have access to this content um
that's how I can security trim uh
content out and keep people from
actually accessing it uh the other thing
that I can do with this too which is
actually pretty cool is I can even
Define um um activities so let's say for
example I have a standard operating
procedure and in my system my external
system where people use that that
content maybe it or better better
example here because this is how this is
what I'm working on right now in my
course um a web hook gets not uh will be
emitted when someone watches a lesson
from one of my courses so I have a
course on the SharePoint framework it's
like 41 hours long about 200 different
video lessons it's a lot of content
what's the most popular uh stuff that's
in there well if it's if it's content
that where I talk about a similar thing
a couple different times but one video
is more popular than others what I would
like to do is give that as a signal to
to the index to let it know like this
piece of content is more popular than
that piece of content which is a more
gives it more relevance so what I can do
is that I can
periodically uh update the semantic
index and tell it different activities
when things are either um accessed
they're read or they're shared or
they're updated and those are different
signals that I can pass in that the
semantic index has access to but also
like I said and to answer your question
I can um also go in and I can security
Trim in or out that data now that's on
the that's on the the um the connector
side okay when it comes to the and
because it's all done this is all done
with code and and you're importing it uh
and using the Microsoft graphs rest API
to do that you have control over all
that content and where it's all going to
go
um it's different though when we come to
actions so let me come back to actions
in just a minute so I think I answered
your question if I didn't then please
come back and ask it again oh the other
one you had another question here you
said you want to import CS v files
connecting to a database as well as
importing large PDFs uh to create
multiple choice questions so ah you're
the one that asked that question uh and
are there different data size
limitations yes there are so here's a
great it's a great
question uh you know what I'm going to
come back to let me give you some of
this right now so you're when the
question you asked there about uh the
work accessing uh csvs yeah you can
totally do that because csvs are one of
the outof thebox connectors that you can
configure in a uh in the Microsoft admin
Center or the search and intelligence
admin Center uh so one yes you could
definitely get that now do you have the
ability to go through and do like
security trimming and stuff like that
and add akles not really because you're
just using the out of the box stuff if
you write your own which is actually
very easy to do uh then yeah you can
totally do that um the other part here
where you talk about creating like
uploading these 150 page PDFs and their
data size limitations absolutely now
these are always changing so I don't
want to quote you any numbers and have
you say that you know take these to the
bank um I there is it is documented in
the Microsoft uh documentation um I just
don't remember the most the most recent
numbers but think of it like this if you
have a very big file and you it is
inside of a document library in
SharePoint or inside of one drive or a
very big file that you then give to uh
the semantic index so what you're going
to do with that large PDF uh let's say
it's a 1 gig PDF can I take all of the
content from that 1 gig PDF and can of
just shove it into the semantic index
yes and the semantic index will also
take do the exact same thing when it
crawls content from one drive and from
SharePoint document libraries but it
doesn't crawl all the content it only
crawls some of the first part of the
content so for example there was a time
when I think it was like if you had 150
page uh document only the first 20 or 30
pages was going to be indexed so you're
missing out on a lot of additional
content when you do that out of the box
right but there are other options like
for example if it was really important
that all that content got indexed and
here's what you could do what you can do
is you can take that data and you can
you can embed it create the embeddings
yourself and store that in a vectorized
database that's called Azure AI search
that's one of the Azure AI services that
are available to us and then when you
create your agent your agent agent can
then either use the rest API for that
you create to go get data from Azure AI
search
or you can just and and then you can
query that to pull that data back and
however much data you have in there I
mean you just use more resources but
because it's consumption based you just
spend more on Azure AI search and now
you have access to all of that content
and you can export that you can then get
the responses by if there's a prompt you
embed you create an embedding from the
prompt you pass that embedding as a
query over to aurei search it looks at
these big uh files that you've uploaded
big blobs of content that you've uh
imploded imploded imported into Azure AI
search so now you've got this big you
have a database that has indexed
everything it's not in the semantic
index but it's in the Azure AI search
index has indexed everything I can query
that and take the results I get back and
hand those that as part of my um uh what
my plug-in is going to do or my my is
going to do from one of the skills that
we're going to look at in just a minute
to give me additional data that is
something that we can do with co-pilot
Studio where co-pilot Studio does allow
me to connect to an Azure AI uh search
um uh implementation uh a resource
that's been created one I've generated
for this uh so that is something that
you can do it is if you just use the out
of thebox stuff with the semantic index
it only indexes a certain amount of
content though right and so that's a big
blind spot that a lot of people don't
have with this when you just stick with
the cop out of the box
experience you can run into challenges
with this so um but this is what this is
where you really get the value out of
this because you can if you have like
large PDFs or like I've got large
transcripts from videos that are two
hours long um is all of that going to
fit in the in the
index I got to go look at the numbers
again right but don't assume that if you
have a large file don't assume it's all
going to get indexed right the number
that sticks in my head is like the first
20 or 30 pages are only indexed in a 300
page page or 150 page uh Word document
or PDF right it's that's what sticks in
my head but again don't quote me on that
number because I know there was updates
uh at that they announced that ignite
from changes and Microsoft is trying to
get these numbers bigger and bigger it's
like um they're always working to go
through and improve on this so with that
being said all right let's talk a little
bit now about the other option we have
and that is working with actions now
what these do is these allow user uh
this enables the user prompts and
interactivity
interactivity that we have this allows
us to do more uh with external systems
all through a natural language um
interaction so what you end up doing is
you give co-pilot access to realtime
structur data so these are the Erp
systems and inventory and sales and uh
CRM systems large data stores large
relational data stores right and I want
to not only give it access to that
content but I also want to give it the
ability to perform actions on that
content I'll explain how I do that in
just a minute so what it also does um is
that this is going to allow us to have
something that use it that has multiple
actions uh to um or multiple agents
sorry one agent can then talk to
multiple different uh endpoints as I
mentioned earlier uh based on what I've
asked it to do and what it's been
trained to do um it then once it gets
its results back it can then summarize
its response based on all the data that
got back because the data gets from a
semantic index is just like it's
basically here's all the stuff that I've
learned as part of my training I need
more so I go to the semantic index and I
I I query it for additional stuff from
um my organizational data that's in the
semantic index which is a which is what
is basically Microsoft graph and then
I'm like and you need more data so I'm
going to go out to some real-time
sources like inventory or sales or CRM
and I'm going to get more responses back
and now that's an addition data source
and I give all that back to the large
language model and it knows how to
rationalize summarize and synthesize uh
all of the all of it its response based
on all of that data I've provided it
furthermore it also lets me act on data
so if I tell it that it knows how to do
something like for example in my case
remember I mentioned I have all these
different systems four or five different
systems with uh different customer data
in each one well when I'm in my CRM
system I would like to be able to jump
over to my sales system or I would like
to be able to jump over to my learning
management system to see what courses
somebody has watched uh or what they
have access to um or i' like to go look
at my sales system and see that data so
what do I do well it's a little bit of a
mess today on I'll be honest but what I
have is on each one of these on some of
these systems I have the ability to add
custom properties and so inside of my
learning management system I have like
three different URLs for how do I get to
this customer in my CRM into my email
system system and into their payment
processing stuff on PayPal or stripe or
whatever over in my CRM system it's how
do I get to them in email or payment or
over into my LMS so what I do is that
when I find when I ask co-pilot hey uh
or I ask my agent my my uh uh lead and
customer agent I give it an email
address and I'm like what do I know what
about know at John do and it pulls all
these different things back and it's
like ah we got an email looks like this
we got a name looks like this
these are coming from CRM these are
coming from here and what I'll do is
I'll kind of look at all of them these
tiles that all show up on the um that
all show up in my app or in the agent
and I then check specific ones and I'm
like these are all the same people and
what the agent then does is it goes to
each one of those different endpoints
and it updates all of those URL
properties uh and syncs them all
essentially syncs them all together so
that they all I now know whichever
system I'm in it can pull them together
it also makes it easier for it in the
future because I've given it
instructions to when you go look for
somebody and you find who that person is
now that's their URL inside of like CRM
go look for that same URL on that
property on these other systems and
without without trying to do some lookup
make a very specific like wear Clause
instead of like you know a like kind of
condition okay all right we've been
going for about an hour here got I got a
couple more things I want to get through
and share with you on this so uh I I
talked about uh these actions for
Microsoft 365 co-pilot when do these
make sense
these are good compare this to to
connectors earlier these are good when I
need to get access to realtime data so I
don't have to index it this content is
never indexed and ingested into the
semantic index I get it real time it's
also good for frequently changing data
relational data and large large scale
data sets so for example like the
question I had earlier 150 p uh page PDF
or a 10 gig file so give you some examp
examp at the bottom here what's cool
about this too is that the these skills
that I'm defining it this is where it
allows me to really open up access over
to uh stuff that's inside of different
Azure AI Services I could use Azure AI
document intelligence I could use Azure
AI search uh and there's a whole bunch
of other services that Microsoft
provides as part of um Azure Ai and the
new Azure AI Foundry uh like ecosystem
uh thing that we have there so this is
where stuff gets really cool with these
different actions of things that I can
do and all these are just rest in points
that we're going to essentially
advertise over to
um uh advertise over to co-pilot now
those are the two things we can build
connectors and agents sorry connectors
and actions so connectors are I'm giving
you more knowledge actions are I'm
teaching you skills to get data real
time how do I use these I do this
through an agent now I do this through
an agent there's two tyes of Agents we
can create one type is a declarative
agent now what this is is really just a
series of yaml files and Json files to
describe my API endpoints uh they could
be secured endpoints they could be
anonymous uh it's also going to help me
describe uh what um actions are
available to me and what they can do
from those different endpoints uh it's
going to allow me to Define um uh the
instructions that I want uh the agent to
have it's going to allow me to Define
the uh different capabilities that it
can do in other words what knowledge
sources it has access to Etc these
things are always going to use the same
orchestrator foundational models and the
different Azure Azure AI sorry in the
different AI services that power the out
of the box Microsoft 365 co-pilot and
business chat so all we're doing is
we're basically just customizing and
either giving it a scope with
instructions or we're giving it access
to just specific data or specific
real-time skills
this allows us to give our users a
custom experience without the need to
write a bunch of code to do this
furthermore back to the question I had
earlier about like the the um
permissions and stuff I explained how
you can give akles to the um uh to the
uh Microsoft graph uh connectors when
you're uploading content I can do not
the same thing when it comes to actions
but I'm going to know who the user is
when I run the when I send the the the
prompt over to when copilot sends the
prompt over to my rest API to go get
data from my CRM system and in the code
I can figure out does Andrew have access
to look at all customers or just the
customers that he's worked with and I
would only return those back so
basically can Implement my own security
trimming of what I do and don't have
access
to um these can uh these agents can be
created and used privately in my
organization or I can create these and
publish these for anybody else to use
them and that's what Microsoft is doing
now creating these like sales agents and
uh a meeting agent they're creating
these public ones and they're making
them available to us to show you what's
possible the end users can see these
declarative agents on the right side of
Microsoft 365 co-pilot both inside of
like office.com chat and inside of the
business chat experience uh if you have
the Microsoft 365 co-pilot so the
intended use for these declarative
agents this is a custom chat experience
all right now what do I need to do this
in order to use a declarative agent the
person building it and deploying it and
using it or other people who are going
to use it they have to have a Microsoft
365 co-pilot license that is the $30 per
user per month uh US Dollars um in uh
with an annual commitment okay now the
other thing that we can do is well what
if I don't want to leverage all of
Microsoft stuff and maybe I want to use
a different model for example
the co the large language model that
Microsoft uses today is the
um uh the uh GPT
40 what if what if I didn't want to use
40 what if I'm writing content and what
if I want something that's a little more
suited for long form articles right well
that the Claud models from the anthropic
uh from anthropic are a lot more suited
for that or maybe there's models that
are better for generating images and
generating like
infographics I can't change those I
can't change the foundational models
when it comes to uh Microsoft 365
co-pilot out of the box and I can't
change it when it comes to declarative
agents because I'm still using the same
orchestrator the same
um what was I going to say the same
orchestrator the same uh uh foundational
model the same Azure AI like Security
Services and and content safety and all
that stuff but with a custom engine
agent that's me basically saying I just
want the chat experience I'm going to
implement this myself and instead of
paying Microsoft a license for
co-pilot I'm going to incur the cost of
running all of my own Services think of
it this way well I'll show you I'll show
you a slide in just a few minutes but
what's cool with this one is that not
only do I get a lot more control and
power because I can use all these
different a AI services and I can use my
own models and can even set up my own
orchestrator and I can even set up my
own content security policies right um
I've heard stories of people who are uh
working in like medical research and
they're doing like research on breast
cancer and sometimes their prompts and
co-pilot are uh flagged as being
inappropriate because it has the word
breast in it but clearly that's a
research thing that's a that's viable
stuff to ask ask about but also clearly
that could be used as like you know
sensitive content so is it sensitive
well not in a medical scenario but in a
let's just call it other scenario yeah
it could be totally inappropriate so if
you want more control over that you
can't change those dials and everything
that that co-pilot has right that's out
of the box but if you do a custom engine
agent you're in full control it's like
hey look I want the exper I want users
have the same experience they do with
other agents and co-pilot but I want to
be in control of that data they get back
all right what's cool about these custom
engine agents you don't need any license
to use this because when these things
run you are getting the the chat
experience from co-pilot and the users
are getting the same experience they do
from like out of the boox co-pilot and
declarative agents but the services that
run them and Implement them we're not
using what Microsoft gives us instead as
the developer I'm responsible for paying
for those services so I would have like
models created and deployed in the Azure
AI Foundry I would have maybe my own
Azure AI search where I'm not using
semantic index but I'm using Azure AI
search just to index and vectorize all
my content Etc so these are really cool
these are very powerful gives us a lot
more control but it also means by more
control I'm responsible for paying for
it myself but I've heard a lot of
stories here about where people are
actually saving a ton of money by
creating custom engine agents instead of
doing declarative agents when does it
makes the most sense it it all depends
on the
scenario now the question then comes in
as I just said what am I supposed to do
it depends what should you build now
Microsoft has a slide that looks similar
to this I've changed some stuff because
I don't think that their stuff really
reflects exactly what's going on so
here's how this works over here on the
far left hand side this is the business
chat section this is what you get at
think of this is out of the box co-pilot
what do you get so these Bluer things
this is like the base stuff so I'm
getting access to the foundational model
GPT 40 I'm getting access to the
orchestrator that Microsoft has created
cre for Microsoft 365 and that's the
thing that does all of the AI resp
responsible AI security trimming and it
knows how to go look at a prompt and
knows to go to um go to uh this a action
for a skill and go get data from this uh
graph connector for
knowledge uh it knows how to do all that
stuff it then is going to be available
to me in all of the Microsoft 365 apps
and to use it I have to be a licensed
user uh from it says Microsoft identity
but basically that's just inra ID right
I have to be a licensed user in my
tenant right um it also does have access
to though to data additional data from
the semantic index now what if I want to
go custom well what I can do is I can
create my own custom prompt instructions
and this is a text file that basically
just sets all the ground rules so if
you've used chat GPT and you're like you
know you're an expert at SEO for
articles um I need you to look at all
I'm going to give you the content of an
article I want you to suggest five uh
potential um article titles um each
title should uh uh factor in or
incorporate one of three of the most
popular um emotions to get someone to
click on the title to go look at it I
think it's a
curiosity um fear and I forget what the
third one I always forget the third one
but it's like curiosity fear and um uh
like excitement or something like that
if you use one or two of those it's more
likely to get a click um that's why you
see all these Sensational titles on
YouTube and on different articles uh so
you can say hey give me some suggestions
for this so that's like what a custom
that's what a prompt is when you're
telling it kind of like you can do this
is what you can do the rules about this
are you should do three two these are
the three emotions you should use one or
two but not all three uh the titles
should be between 50 and 60 characters
long if they're going to be articles if
there are YouTube videos there's
different rules um I also descriptions
so and here's some uh keyword you should
use very popular uh keywords examp and
give some examples Etc so you give it
all of that kind of stuff you can put
all that stuff in your instructions you
also can create actions right and those
actions that's where I can go to those
real- time uh data sources so we talked
about CRM Salesforce Etc uh we also then
can add additional data uh as a graph
connector so we can have additional data
that's going to be grounded here these
other things that you see like triggers
what are these things so triggers are
going to help co-pilot take proactive
actions and facilitate um uh um
different automations right um so an
example would be like an event or a
message that prompt that is going to
prompt co-pilot to do a very specific
thing uh that's like it's going to say
like hey look this is going to trigger
me to go get data from this specific
system I Can't customize that so much
with a declarative agent I can't do
anything with that when it comes of the
business chat but in my instructions I
can tell co-pilot that you know how to
do these things and that's coming from
this Plugin or from this
action um the orchestrator is then going
to be responsible for overseeing and
synchronizing all of the pre and post
different processing of the users prompt
and the across foundational knowledge
foundational models and knowledge and
all the different
actions now when I want full control
over stuff that's where a custom engine
agent comes into play and notice here
the big thing is why why am I not having
to pay for a license for it because I'm
not paying for or their orchestrator or
their foundational model I'm responsible
for creating my own model or using my
own model I can bring my own model or I
can use models that are inside of azure
Studio maybe I don't want to use AZ
Studio maybe I want to use Google Gemini
maybe I want to use the stuff from AWS
or anthropic or from a hugging face I
can do that with custom engine agents um
the semantic grounding I'm the one
that's going to be responsible to go get
all that different data sure I could use
an API to go query data from the
semantic index or from different data
sources uh different uh graph connectors
that I've created um or stuff that
doesn't live inside of a connector and
that is data that lives somewhere else
that's been indexed like for example
back to the question earlier as your AI
search um I can Define my own triggers I
can go through and build my own my own
implementation of how I'm going to go
get all this data the way that we can do
this with plugins or actions inside of
declarative agents we follow a specific
schema and a specific pattern um because
that's what the orchestrator is going to
expect but when I'm in control I can do
whatever I want right I can also go
through and build my own custom user
experience with this I can have it be
people that are in Microsoft intra and
licensed or co-pilot or I can just make
this work on my public website this is
all up to me because it's all running
not inside of Microsoft 36 D co-pilot
it's running in mine it's running all my
resources when a user goes to use these
different things they can't tell a
difference between either one of these
all they see is a list of Agents they
have access to and they can at mention
them or go in the immersive experience
this is simply an implementation detail
that we as developers have control over
so custom engine agents that is not a
co-pilot Studio thing that is something
that you do with teams toolkit okay all
right
so so what do you need to do to be able
to do this stuff well this slide here
just kind of walks through all of the
different things of things that you can
doing uh that you need to be able to
start doing development uh for Microsoft
365 uh uh co-pilot extensibility so you
are going to need to have a Microsoft
365 tenant with co-pilot uh there are
some limited preview options available
in the Microsoft 365 developer tap
membership uh most of the time you're
going to end up needing a base 365
license so there's a like God there's a
ton of them that you that are available
here but like you can even get something
as low as the um Microsoft 365 Business
Essentials or business basic license
which is $6 per user per month with an
with a annual commitment and then you
usually also need this co-pilot license
but the new chat the new co-pilot chat
um experience is has a metered option
where I pay per message um I have an
article on that uh if you're interested
just post something a question in the
chat I'll pull a link to it I can drop
it in the chat for you to go take a look
at but I show you how to walk through
that I will tell you though in my
experience and from what I've seen the
metered approach for using co-pilot
um in the article I kind of walk you
through some
scenarios in my opinion it is really
only useful in a developer scenario uh
or for very very small companies uh in
small usage of co-pilot um you'd be
surprised it's a penny per message but
one prompt is not one message
like grounding data uh is going to be I
think like 25 messages right and that's
per prompt and you may have multiple
grounding things that it's having to go
through so it may have to go back and
forth to graph a couple times or to get
a couple times so you could be spending
like 25 Time 4 for a prompt um the cost
can run away very very fast but in a
developer scenario that's good because
it's easier to get to control that and
all the it's all done through um the
Power Platform um admin Center and you
basically connect it to a resource Group
in Azure that's in an Azure subscription
uh and that way we can do meter billing
because co-pilot uh all meter billing is
done through Azure whereas all uh
license based stuff is all done through
U Microsoft
365 um one thing that does kind of suck
about this is that if you are one of
those fortunate people uh that has a uh
still has one of those developer tenants
from the developer program
um you cannot add a co-pilot license to
this you can though configure it for uh
the consumption pricing though I've done
that um also what about co-pilot Pro
that other license that's out there you
can't extend that this is only a
Microsoft 365 co-pilot thing for graph
connectors uh you're going to go into
the Mac the Microsoft admin Center and
into the search and intelligence section
and there's a there's a setting in there
where you need to you need to set the
graph connector that you want to use use
inside of your agent you have to set it
that it is enabled for inline results so
that's something you have to turn on um
also indexing content is subject to
available index quota within the tenant
there are limits on how much content how
many items and how much data you can use
uh inside of a connector and across all
of your
connectors uh furthermore when you're
devel when you're developing agents and
uh actions what we used to be called
plugins um when you're using the teams
toolkit you have to go configure uh in
the teams admin Center you have to go
configure your site uh your teams
configuration for allowing uh side
loading of apps when you're doing the
development of it because really these
agents they're all installed as teams
apps and you can almost look at these as
they're just Bots because really that's
all they are they're just Bots um
they're just infused with
AI okay so let me let me kind of wrap
this up I got a bunch of questions that
I will come back to but before I do that
couple things really quick um of all the
question you guys asked as I said I went
through lots of this stuff and I
hopefully have answered a lot of your
questions and I hope this was useful to
you uh for those of you who join me
you're going to get an email from me
later this afternoon uh with uh an
option to leave a uh some feedback in a
survey I really would appreciate it I'm
trying to do more of these webinars more
often I'd love to know what webinars
you're interested in I've got a few that
are scheduled uh for the next month or
two um that are up on my website on vos.
webinars uh again that link will be in
the email that you get um I would love
your feedback let me know what you liked
about this what did you not like about
this give me some constructive criticism
what do you want to see more of what do
you want to see that I'm not talking
about right now let me know I would love
to go through and do more of these um
there is one more thing though that I
did say so I told you that at the
beginning of this webinar before I do
questions I told you at the beginning of
this webinar that I was going to show
you how I going to help you how we could
how you could um work with me on
learning how to build more of these
agents so so if you likeed this if you
liked what you saw here if you give me
just a minute I'd love to tell you how I
can help you so I have a workshop a
two-day workshop coming up next week uh
it's on March the 12th and the 13th it's
a virtual Workshop it is about 3 and a
half hours uh a total of um
uh it's a total of three hours uh per
day uh of content on building
declarative agents in that we do a lot
of overw we do overview in our very
first session um that we go through each
one it's like it's a it's an hour and a
half session and then we do a 30 minute
break and then an hour and a half
session we do that we do that both days
on both Wednesday and Thursday of next
week um and you can see all the timing
and detail right there uh we in the
first the first session there's four
sessions so the first 90minut session
it's a lot of what you saw here but more
time for questions the second uh session
on the first day we create graph
connectors so I show you how to create a
connector and we go into a lot more
depth on it um the third session on uh
the on the morning of the 13th uh that
for that hour and a half we go through
building connect we build actions so we
build rest apis I show you how to export
how to expose uh different endpoints for
those and even how to create custom um
visualizations for your content and then
we wrap it all up at the last session
and create a declarative agent that uses
all of this stuff uh that we've just
created and learned for the previous two
days um this Workshop is uh I've ran
this earlier in December my students
that were in this I got great response
from this I actually intended to run
this sooner than just uh than next week
uh but it just didn't happen um so you
can see here Muhammad loved it he said
he uh loved the expert guidance and he's
now confidently able to and on track to
build his first agent uh early this year
same thing from uh xay uh he said he
loved the time that we spent on this
initially like what I did today um in
higher level cont racts and why and how
the extensibility of co-pilot uh Roode
is a longtime customer of mine he said
that just in a few hours he's now at the
speed in uh this more in a position to
evaluate design and start creating
declarative agents for his clients it's
well worth the money and the time when
we went through this uh Mark Rackley you
might know this name too uh fellow MVP
um he was with me on this uh as well he
actually went to the live version of
this I did in person at a conference
late last year uh I'm actually doing
this workshop at uh not only virtually
next week but I'm also doing it at two
upcoming conferences at the Microsoft
365 um uh Community Conference in Las
Vegas in May and I'm also doing it at
the techcom 365 conference in Seattle in
June you can learn all about that stuff
if you look at the the footer of the
email that you get later today there'll
be links for those with discount codes
that you can use I do those as full day
workshops uh in-person workshops at
those
conferences um so what kinds of things
would you like learn if you came to this
Workshop where you're going to learn
what you can and can't do with
declarative agents how to provide a
custom uh instr how to create Pro sorry
how to create and provide custom
instructions for Microsoft 365 co-pilot
uh how to use existing content in your
tenant including sources such as
SharePoint online um uh sites and and
one drive how you can add unstructured
content through graph connectors um how
to teach Microsoft 365 co-pilot new
skills through creating custom actions
how to Leverage real time and relational
data with existing or new apis and then
how we can use different developer tools
like vs code to create custom agents
without an expensive co-pilot Studio
license those co-pilot Studio licenses
it's
$250 per month for 25,000 messages if
you think you're buying one of those
message packs you're crazy I see people
buying lots of those it's not just 200
bucks a
month okay now last thing I just want to
tell you here when is it it's next week
it's Wednesday March the 12th and
Thursday March the 13th it's from 11:00
a.m. to 2:30 to 12:30 is the first
session and the second session is from
1: to 2:30 every session is recorded and
you get access to it after the session
um after the session is
concluded um if you're interested for
those of you who join the webinar today
I have a discount code here for 15% off
you can scan that QR code or you can go
to that short link at the bottom they
both go to the same spot and you can
register for for that uh for the
workshop uh next week I've kept it it
it's only available to the first 200
students that register there's plenty of
space available right now uh but I would
expect this webinar is going to grab a
bunch of them and plus when the
recording goes out um as well it'll be a
um uh I I expect it to go through and
get pretty close to filling up if not
sold out um so the link for this uh that
you see there at the bottom and the
discount code they will also be in the
email that you received from me later
today and the recording for this webinar
will also be available in the coming
days now with that I want to thank you
very very much for joining me and
sticking with me uh over the course of
this entire webinar I do want to run
through your questions so if you um let
me let me take a look at what we've got
uh submitted here and I will take the
time to go through and make sure that
everybody is going to walk away with all
their questions um answered so let me
just start from the bottom just kind of
scroll through this real
quick um I've got to okay so uh couple
more questions so this one was from 27
minutes ago by anaja 24 um so can we use
and connect to SQL Express across data
with co-pilot and does SQL Express have
a vector database capabilities so the
answer I don't know about SQL Express
having Vector database capabilities in
fact I don't even think SQL Server does
um so can you connect directly to SQL
you can through one of the out of thee
boox connectors that's in the search and
intelligence admin
Center uh but uh even if you can't you
can always create an action that would
talk to a rest API that then accesses
data inside of uh SQL um I'm 99% sure
that SQL does not have a vector uh is
not have a vector database option what
does have a vector database option
there's a lot of different solutions
that are out there but um Cosmos DB uh
is Al does have a vector database uh
solution in fact that's what chat GP or
open AI uh uses for chat
GPT uh okay so I'm going to Mark a
little thumbs up on these questions as
they come in just uh for those of you to
see uh when they've been answered um so
next question can co-pilot connect to
semi structured data like Json yaml not
out of the box but through an action yes
um instead of your arest API talking to
sorry instead of Your Action talking to
arrest API that talks to a data store it
would just look at yaml or Json in fact
I do that as well because all of my
courses have a have a markdown file
associated with them and the um with the
the lesson description and a bunch of
notes under the description is in the
body of the page and then the top of the
page has all this front matter which is
all in yaml uh and so I extract that
data and I make that available as part
of um one of my rest apis uh to my
agent um so you said thank you very much
for a great introductory course can I
walk us through what we would get when
we attend this course building
declarative agents that was 16 minutes
ago so I think I've already done that um
also if you go to the uh the the website
uh the link to it that I uh if you go to
my website um here just show you really
quick open up
Chrome drop this over
here if you just go to my website and if
you go to courses and you go to co-pilot
the only course I have is this uh is
this um uh this workshop and if you just
go right in you can click on this link
and it takes you straight to the
registration page so the course is the I
didn't mention this the um the workshop
is just $199 that's less than I charged
for it back in December um because I
really want to get to as many people as
I can with this and so uh the 15%
discount will knock off about $30 um off
of this um off of this Workshop if you
join me next
week uh so if you go to the site though
uh there are there's a whole bunch of
information on the site about what you
learn what you're going to get and
there's even a bunch more testimonials
that I didn't go through um that you can
read from my some of my students uh that
attended this uh last
December
um someone asked is it legal isn't
developer for non-production
purposes I don't know what you mean by
that I'm assuming you're going you're
referring back to my slide when I said
how you can uh use uh co-pilot and how
you can do development um you can use a
a a one of the developer tenants in the
from the Microsoft developer program you
can use one of those for creating custom
agents uh you I mean it's not supposed
to be used for production stuff I would
not recommend using production stuff
because the those developer tenants like
Microsoft monitors uh through like
automation what you're using oops
yeah so Microsoft monitors what you're
you what you're doing inside of those
agents sorry inside of those tenants and
if you're doing things that are not that
are not development things then they may
not renew your developer tenant
um so that's I'm not saying to to to get
around that by using it for production
that is not at all what I was trying to
explain I was talking about how do you
do this stuff how do you build agents
I'm talking about the developer
experience so it is legal like because
that's the intention I'm not suggesting
you use a Dev tenant for production
purposes that's not what I was
suggesting um however most of you may
know this for those of you who don't the
developer program is basically Frozen
right now and they're not giving they're
not Distributing any of those tenants in
fact that was the subject of my article
uh that I published this week um
about uh a solution for giving us
ability to do that and this is just my
proposal that I published in my
newsletter and there's an art there's a
link in here too that kind of walks
through um why it's frozen why you can't
do stuff um my what I what I propose is
a a paid developer program but in the LI
of that today when I'm telling my
students if they want to do this so like
if you join me for my workshop next week
and you don't have um Microsoft 365
co-pilot license what I tell you to do
is I would go buy a uh a Microsoft 365
Business Essentials license that is $6
per user per month you get your own
tenant it is an annual commitment so
that's going to be
$72 uh for the annual commitment it's
paid out monthly $6 a month uh and then
what I would do is if you want you with
that it's a commercial tenant so you can
you can use RVC fit um but you can also
use that uh for your production purposes
you can also buy the
$30 uh co-pilot license or and I talk
about in these two articles down here
about co-pilot chat
uh where this new Option of the
consumption billing you can set up
consumption billing to be able to try
this stuff out and there's zero
commitment with that um this is kind of
an overview on what this is and I I
think I look at this consumption thing
is a great option for developers in this
second article I have here this is
walking through how to set it up in your
tenant so I would uh that's what I tell
people to do so like when I teach this
like when I'm teaching my teams
accelerator where we're going to cover
this one in one of our um one of our
modules I tell people if you want to
follow along with the homework this is
what you're going to need to buy I would
do the consumption one you're not going
to spend much money on just testing
things out and plus there's no full
commitment all right okay I am going o
I've gone over by about a minute or two
on my workshop uh time here I'm going to
go ahead and wrap this up now um I want
to make sure that I'm respectful of your
time so thank you thank you thank you
thank you everybody for joining me today
uh and learning a little bit about what
we can do with um uh co-pilot Microsoft
365 co-pilot extensibility and creating
custom agents I hope to see you next
week in my workshop uh where we're going
to create custom agents custom
declarative agents uh and if we have
time we'll even talk a little bit about
uh custom engine agents but that is the
the focus on it is primarily on
declarative uh agents where we'll go
into a lot of depth on all the things
that we can do so with that keep an eye
out for an email from me later today
with a summary of what we went through
today uh a link to where you can provide
feedback a uh where you can also give me
some feedback on what uh webinars you
would like to see uh and then
furthermore where you'll find a discount
code for 15% off next week's Workshop so
with that I'm signing off I'm Andrew
Connell thank you very much for joining
me and I hope everyone has a great rest
of their day
[Music]