Full transcript
0:01There we go. Hello everyone. Erica,
0:04Mike, how are you all
0:07doing? Welcome, Pierers, co-host. Hello.
0:10Hello. How are we?
0:12Very good. So, today we're going to go
0:14over the personal assistant uh agent
0:19that I built. Out of curiosity, who saw
0:23the agent that I built, the assistant
0:26that I built on LinkedIn? Uh, did anyone
0:29see that? Is that the reason why they're
0:33here? Would love to know. Yeah, Mike,
0:35you did. Okay,
0:37cool. Kalpesh, welcome. Did not know you
0:42were
0:42joining. Uh, no, no one some people
0:46didn't see it. Okay, cool. So, we'll
0:47start with like a high level summary bas
0:49basically about what I built and then uh
0:52come to be inspired. Let's see if we can
0:53inspire you. Uh, and then we'll dive
0:56into it. So, um, for those of you that
0:58joined the previous session a couple of
0:59weeks ago, I've started running these
1:01bi-weekly sessions. They're pretty
1:03informal, um, kind of webinars. They're
1:06more me basically me just showing some
1:07of the agents that I'm building, uh,
1:10showing how I'm building them, and then
1:11of course, uh, happy to share the actual
1:16uh, JSON of the agent should you wish to
1:18use it. um to do this agent uh I've used
1:23primarily or not primarily I've used
1:26completely NA10 which is probably one of
1:28the tools that I would recommend when it
1:29comes to uh using automation. So let's
1:34boil it all the way back to the start.
1:36Why did I create this kind of personal
1:38assistant agent? Well, I absolutely suck
1:41uh get getting back to people. Um, I
1:44have too many Slacks, too many emails,
1:47too many things going on, and I have uh
1:51probably the world's worst undiagnosed
1:52ADHD. So, I just bounce between a
1:54million different uh ideas, and and it's
1:57just kind of going like that. And so I
1:59thought, well, wouldn't it be cool to
2:00actually have AI to be generally useful
2:03outside of the norms that we all think
2:05about and actually help me with my
2:07dayto-day um and kind of empower me to
2:10to be a better uh kind of founder and
2:14whatever we want to want to be. Uh and
2:16so thus uh this kind of agent was uh
2:19created to kind of help me manage all of
2:21that. And there's actually so much that
2:23we could do with this agent. This is
2:25very much like a a v1 version.
2:28Uh, and there's a lot of opportunity to
2:30make this even better um, than what it
2:32is. Now, caveat, there are some tools
2:35out there. I think there's a tool called
2:36Fixer uh, AI which you can sign up to
2:39which kind of does uh, elements of what
2:42this does. My opinion, it's not as
2:44in-depth and not as good and you
2:46obviously have to pay for it. Um, so
2:48this is more of like a uh an in-depth
2:51version of a tool like Fixer and and you
2:53can take this, you know, and you can
2:55take it a lot further and kind of highly
2:57customize it as well. So without further
3:02ado, let's dive uh into the agent. Um,
3:08so we've got two different agents uh or
3:11technical multiple. I've got two
3:12different kind of agantic workflows that
3:15are in operation and running for me on a
3:18daily
3:19basis. The first one is the first part
3:22of this puzzle which is basically the
3:24email manager. And so let me actually
3:26take us a step back and kind of break
3:29this down and have a look at it. If we
3:32look at like your your inbox, your
3:34emails as like a channel, you have far
3:38too many emails coming in for an agent
3:40to truly work out what is important and
3:43what isn't important. And so you need to
3:46first of all tackle that situation,
3:48which is, you know, actually organizing
3:50your inbox um before anything else.
3:54Okay. And so before we actually get any
3:56levels of um more sophisticated kind of
3:59PA levels, we just need to first of all
4:01sort out the actual um kind of email
4:04inbox that is cuz Slack tends to be a
4:07little bit quieter. It's easier to
4:08manage and maintain. But your emails can
4:11get overload especially if you're
4:13getting a lot of kind of cold emails and
4:14things like that, marketing stuff. So
4:17step one and the first um kind of agent
4:20that we build an aantic workflow that we
4:22build is just an email manager and I've
4:24had this one running how long I had this
4:27one running for PS a long time actually
4:29this
4:30one you're on mute unmuted there sorry I
4:33muted myself there was um yeah you've
4:35had it running for quite a while and I
4:36tried to recreate it which I managed to
4:39do which was as and I think as like
4:41especially as someone starting out like
4:44me in sort of the world of NA10 and and
4:46it can be quite overwhelming. This was
4:47quite a good one to start with. Um
4:49although saying that I have noticed that
4:52like I use Apple Mail, right? And Apple
4:54may have just come out with an automatic
4:56categorization thing. So I'm now testing
4:59my own against theirs. Very good. So
5:02it's proving I've made I've made it
5:03better since you've used it though. So
5:05let let me explain what I'm doing here
5:07and we'll dive into the the details a
5:10little bit uh more here. So first of all
5:13what this is doing is this isn't you
5:16know marking as red or anything like
5:18this. This is effectively assigning a
5:20label. Uh okay and so like if we look at
5:23like uh your your inbox cuz you can see
5:26here like I'm very bad. I just pick and
5:28choose the emails that I want to read
5:30which is atrocious. Uh but it's
5:32basically giving you the labels that you
5:34need to look at and it's going to start
5:36to assign uh that um for you. Don't look
5:41at my inbox and get anxiety because I
5:44know a lot of people do. Um, everything
5:46is it's it's chaotic order. I don't know
5:48what the quote is there, but it's
5:50there's like there's there is sense to
5:52the madness of my inbox. It's when you
5:54see the 10,000 notifications on your
5:56phone or something over the Yeah,
5:58exactly. So, we start off the workflow
6:01with a trigger. The trigger being just a
6:03simple Gmail uh trigger. Okay. Okay. And
6:06so what that basically means is that is
6:07pulling in anytime I get a new email
6:10that starts this workflow
6:12running. Then what we have is the next
6:15step in this flow which is we're just
6:16going to get the email itself which
6:18basically means we're going to get the
6:19contents of the actual email. And if we
6:23have a look actually oh look one's
6:25running right now. Um just got an email.
6:28Um so here we go. Um, and so what it's
6:31doing is it's getting all of the
6:32information that is associated with that
6:34email, which is all of the text, um, all
6:37of this stuff, uh, as well. So then what
6:40it's doing is it's sending the text of
6:42the, uh, email through to this, uh, AI
6:46agent. And let's have a look at the
6:48system prompt that I have going on here.
6:51So the objective is to analyze the
6:53provided email data and classify it with
6:55the most appropriate label. utilize the
6:58capability to check for prior email
7:00history to determine if this is the
7:03first time uh interaction you called
7:05email or part of an existing
7:07relationship. This context is crucial
7:09for accurate labeling especially for
7:11distinguishing between marketing
7:12notifications and FYI responds with only
7:16the corresponding label ID. And so then
7:19I basically go and give it a load bit
7:20more information and then I start to
7:22actually explain to it the different ids
7:25that I want it to give. So we have the
7:26to respond label. This is the label ID.
7:29Uh and then I basically describe the key
7:31indicators on what I what I basically
7:35deem as uh an email that needs to be
7:38labeled as to respond. Uh same for then
7:41um kind of f FYI uh same for then
7:45comment, same for notification emails,
7:47so on and so on and so on. And again,
7:49don't worry guys, I'm going to share
7:50this uh if you want it, I can share this
7:52JSON, which means you'll get the prompt
7:54uh as as well coming in here. So, you
7:56don't need to screenshot this or
7:57anything. I can I can do all that. Um
8:00this is so so long and short, this is
8:02basically just explaining the different
8:03labels uh within that and then all of
8:06the information uh coming in and then I
8:09just have it running the task. Okay, but
8:11couple of key things that I think are
8:13important to mention here. So,
8:14previously Pier when you when you use
8:16this my original version of this agent,
8:18it was just simply doing that. But I
8:20noticed with everything and if you've
8:22joined me on other calls, I talk about
8:25how context is key with agents. If you
8:30don't give it good context, the results
8:32of your agent will always be subpar. And
8:36so, it has to have context. And that
8:38context can come in the form of
8:39knowledge bases. That context can come
8:41in the form of history. It can come in
8:44many uh shapes and sizes. For this
8:46particular one, it is um checking to see
8:51if I have any history in the context is
8:53history. So, have I ever received an
8:56email from this person or someone from
8:57that company before, which is what this
9:00uh node is doing here, which is getting
9:01any previous history. And this then it's
9:04also checking to see if I've ever sent
9:05them any any emails because here's
9:07here's the kicker. Uh cold emails are
9:09getting pretty good now. And a lot of
9:12times people don't really they're
9:13getting also very clever with their
9:14unsubscribe links. I.e. they're doing
9:16like PS if you know you don't want to
9:18hear from me let me know. And so what
9:20I'm trying to do is I'm trying to take
9:21in all the context you know and I'm not
9:23against cold emails cuz I do cold emails
9:25but I kind of want to label that and I
9:27want to know and I can go in then and
9:28choose that. I don't want it cluttering
9:30up certain kind of you know key to
9:33responds that are really important for
9:34me to reply
9:35to. Um, and then we're using a
9:38structured uh output passer which
9:40basically that sounds fancy but all I've
9:42done here is I've toggled this on here
9:44and I'm basically saying okay your
9:46output your response needs to be
9:49essentially this which is the label name
9:51and the label ID because that's then
9:54getting fed through to a new node which
9:56is just add the label to the message
9:58where basically it takes the message ID
9:59that I got from the previous step and
10:01the new label name or the ID in this
10:03case it's the label ID and then that
10:05basically just tags
10:07And so that's step one of uh a web of
10:11steps that we're going to go over, but
10:12probably the most key to organizing your
10:14inbox. And and the reason why we do this
10:18is we when it comes to running the agent
10:22in the next step, which if we come and
10:24have a look at this, leave without
10:26changing uh and we look at the this
10:28particular flow, we don't want this to
10:31run. We don't want it to run every
10:33single time and go check Slack, go check
10:35every We only want it to run once a day.
10:38And that's really important because
10:39otherwise you're going to spend a lot of
10:40cash. And yeah, we could build a
10:43workflow that has even more steps and
10:45looks really, really fancy. But here's
10:47the thing. If you're sharing stuff like
10:48that on LinkedIn, which a lot of people
10:50do, it's purely just because it looks
10:52good. But the actual costs and the
10:54infrastructure that requires to run
10:55these things day in day out starts to
10:58become astronomical and is really
10:59pointless. So you break it down into
11:02substeps and that gives you a lot more
11:04control and you need to think about
11:05where do you want the agent to look at
11:07and have most kind of depth and for me
11:11that then is in two folders that it's
11:13going to look at and the two folders or
11:16the labels are the FYI and the to
11:18respond which are the kind of like in my
11:20case the two most important kind of
11:23labels uh that I would want something to
11:25look at. I don't really feel like I need
11:27to respond to a marketing email.
11:29Therefore, I don't need the agent to
11:30have a look at that or anything like
11:32that. And by the way, if we have
11:33questions, just chuck them in uh chuck
11:36them in as we go through um as as well.
11:38We don't need to wait till the end for
11:39for any
11:41questions. So, this one does look a
11:43little bit more monstery, but let's
11:45break it down into steps, but you'll
11:47notice first of all, we have four
11:48different agents running um as part of
11:50this agentic workflow. So, step one is
11:54the email assistant. This email
11:57assistant, as I just mentioned, is going
11:59to go and initially get the emails um
12:03that uh I have basically not looked at
12:07or read. And you can see here we're
12:08looking at like an unread email. So,
12:10we're getting the emails and we're
12:12getting it specifically from the two
12:14responds and the FYI uh labels that was
12:18already categorized uh by everything in
12:21that previous step. Then what it's going
12:23to go do is once it gets the message ID,
12:25it's going to go get the email, which
12:26basically means it's going to get the
12:27full text. And it's also going to check
12:29to see if I've ever sent any emails to
12:31these people or not. And the simple kind
12:33of case here is we're going to say,
12:35okay, hey, you are the personal
12:36assistant for Max Mitchum. You are my
12:39proactive personal assistant dedicated
12:41to streamlining my communications,
12:42ensuring follow- through for Max
12:43Mitchum, especially regarding my work
12:45with triggery. You have access to and
12:47will manage my email, Slack, and
12:49calendar daily objectives. And the first
12:51one that I wanted to do is prior
12:53priority email triage. So scan my inbox
12:56for unrelied emails. Flag emails
12:59requiring a response cate categorizing
13:01them by urgency. No emails specifically
13:04related to active triggery sales leads.
13:06Potential ongoing partnerships and then
13:09just important stuff. Check any sent
13:11emails to see if there is any context
13:13you require around the unread emails.
13:15And then when checking to see if I've
13:17followed up with someone from a meeting,
13:19you can also use a check tent tool. And
13:20I give it the check sent tool example
13:22there as well. Um, so basically what
13:25this is doing long and short of this is
13:27it's saying, okay, hey, any unread
13:29emails, go see if I've ever sent them
13:31stuff. Get as much context as you
13:33require before you uh essentially assign
13:36the kind of categorization as this is
13:39really important to reply to and you
13:40need to reply to that person. We had a
13:42question um from Herb saying any credit
13:46cost
13:47syndication per month of this agent. Um
13:51I'm assuming on talking about the email
13:53one that I that I had running. It
13:54depends on the um
13:57depend I can't really answer that one to
13:59be honest because it depends one on how
14:01many emails you get and then it depends
14:02two on um the model that you use. I'm
14:08spending about three three to five
14:11dollars
14:13um a month on labeling mine. It's really
14:17cheap because it's it's it's not a lot,
14:19but I use a cheap model. Um you don't
14:21need it to be super sophisticated. You
14:23don't need like the expensive models
14:24there. Um but again, if you're getting
14:27thousands and thousands of emails a
14:29month, these things will will it won't
14:32rack up. It will always be quite a cheap
14:34uh step, just the labeling uh of things.
14:37this particular flow that we're looking
14:38at here. Again, it's it's it's how long
14:41is a piece of string, how many Slack
14:42messages do you get, how many calls do
14:44you take, how many emails do you do. Um,
14:47typically this is costing anywhere
14:49between
14:50like, you know, uh 50 to maybe $1.50 to
14:55run. And I have it running 5 days a
14:57week. I didn't have it running uh per
14:59day. So, you're talking maybe like uh
15:02it's going to cost you probably like $30
15:05$40 in total uh a month to do everything
15:08that I'm doing here. So, yeah, you
15:11factor that in when you're you're
15:12thinking about this. Certainly a lot
15:14cheaper than hiring a PA, that's for
15:15sure.
15:17Um so, yeah. So, going back to the email
15:21assistant, it's getting all the context
15:23and then using that to assign a priority
15:25there. So, let me go through to what I
15:27call like the follow-up assistant. So,
15:29one of my big bug bears is I take
15:32somewhere north of like seven calls a
15:34day. Um,
15:37and you just forget. You forget things.
15:40You forget to follow up with people.
15:43Um, is this being recorded? Yeah, it's
15:46being recorded from the beginning as
15:47well, David, don't worry. Um, you forget
15:49to follow up with people. You forget to
15:51to do, you know, just important stuff.
15:52Listen, we're all human at the end of
15:53the day. And so, what I have is a
15:56follow-up assistant. So, first things
15:58first, you will notice that I'm actually
16:01not sending any information from the
16:05previous step through to this agent. So,
16:07in theory, you could build this as a
16:09total standalone agent if you really
16:10wanted to, but it's just basically
16:12triggering and it just runs once a day.
16:14You can have it sitting inside of this
16:16um section if you wanted to. Totally
16:18fine. And this follow-up assistant is
16:21doing the following. So, um I won't go
16:25over the whole prompt, but high level
16:27what this is doing is it's saying,
16:28"Okay, hey, go get me all of the uh
16:32meetings that I have had in the last 3
16:36days
16:38uh and bring those people forward
16:41basically like give me bring that data
16:43forward. Give me the the names of those
16:44people." Um, and once we have the names
16:48of those people, I want you then to go
16:50and check my Fireflies. So, if you don't
16:54know what Fireflies is, it's a cool
16:56recording uh system. There are so many
16:58out there. The reason that I really like
17:00Fireflies is it has a really good um uh
17:04API. It's a graph um QL API. So,
17:07basically, I can query whatever I want
17:09to pull like the transcripts out of
17:10that. Like if you're if you're on any of
17:13these calls with me all the time, two
17:15things that I always talk about and bang
17:16on about is every tool that you need to
17:18have it needs to have the ability to
17:19query information in and out of it. Um,
17:22and whenever giving a prompt to an AI,
17:25always use markdown uh like a markdown
17:29or HTML format basically. So you can see
17:31here this is all markdown. AIS can read
17:33that better. So those are two things
17:34that I kind of preach. Um, but yeah, so
17:37it then basically goes and takes the
17:38meetings from my last three days and
17:40goes and checks the transcripts of
17:42Fireflies to see was a follow-up
17:44required. Was this a spicy meeting? Was
17:46it good? Do we think there's something
17:48there? Usually it will get that through
17:50the next steps from the transcript. And
17:52then it will go and check my sent emails
17:55to see if I did actually send them a
17:57follow-up. One thing that I've started
17:59doing now a lot more is I don't actually
18:00send emails. I do Slack uh channels now.
18:04So, I need to add in a step here to
18:05check to see if I've created a Slack
18:07channel with that user. Um, because I
18:09just find like follow-up is way better
18:11and sales process Slack just seems way
18:14better to have that like asynchronous
18:16conversation going on. But if you're
18:18email driven like I was, this is like a
18:21great step. So, it then checks to see if
18:23I've actually sent the email or not to
18:26that person. if I haven't, it's going to
18:29create a to-do task for me as the output
18:32that it's going to give. So, if we go
18:34back to here, it then says, if we come
18:37all the way down here, um, summary of
18:40the outputs, a list of meetings flagged
18:42for potential issues, i.e. there was no
18:45transcript found. So, sometimes I don't
18:48add my fireflies in and I want it to be
18:50like to to to alert that to me being
18:53like, okay, hey, was there anything
18:54important from this meeting? You know,
18:56for example, if I was meeting with a
18:58potential investor or something like
18:59that, um I wouldn't want uh to bring the
19:03fireflies into that, but I would want
19:05this this agent to notify me. He's like,
19:07"Hey, I couldn't see any transcripts
19:09from this. Do you need to reply to this
19:11person?" And it kind of just reminds me.
19:14And then the other one was a list of
19:15meetings flagged for action required.
19:17Follow-up pending.
19:19Got a question asking if it would could
19:20work with Microsoft. Yeah. Yeah. Yeah.
19:23Yeah. Yeah. It's just um you know you
19:26need to go and add the uh steps in here.
19:28So um just simple it's a simple node um
19:32within the uh the workflow itself. I'm
19:36obviously just using uh Gmail but all
19:38you would do is just replicate what I've
19:40done here with the equivalent Outlook
19:46nodes.
19:48Um so then you go on to the Slack
19:51assistant. So again, no information is
19:53being passed through here. It's just
19:54triggering it to run once a day at this
19:57point. And here what we're doing is we
20:00are basically going and checking Slack
20:03mentions. So the first thing it's doing
20:05here is we're basically searching.
20:06You've got your you need to find your uh
20:09user ID Slack mention. Um, and then
20:14you're going to say, "Okay, hey, go
20:15check the last 25 messages that this
20:19person, in this case that's me, has
20:21basically received, uh, and sort by
20:24newest first. Then what it's going to do
20:26is also going to check any thread
20:28mentions from any channel ID that it
20:30finds. And then it's going to get the
20:32users of people that I need to reply to.
20:34And so what that basically means when we
20:36roll this all up into one uh kind of um
20:40high level is hey this is my user ID. Um
20:45go have a look at any uh DMs or messages
20:51that I've been tagged in that I haven't
20:54then followed up with them within a
20:57thread or a new message. And so what
21:00that basically means is um if someone
21:03messages me on Slack and I don't reply
21:05to them, it's going to pick that up and
21:08flag back to them that that is happening
21:10basically. And that's the Slack
21:12assistant. That is a super handy one and
21:14I I just that I get so many DMs that get
21:18buried or like lost in the threads and
21:21so very very handy for for that. So then
21:24we go into this master orchestrator
21:27agent which essentially is taking
21:31everything that I have done from the
21:33previous steps. So we have the inputs
21:35from the previous agent. So we have the
21:38email triage agent. This is the variable
21:41that we're getting from that agent. We
21:43have the meeting follow-up agent. We
21:45have the Slack activity agent. And then
21:48we also have the previous to-dos here.
21:51So what I've done is every time that
21:52this master orchestrator agent basically
21:56runs, it saves the information into a
21:59Google Sheets where I then also give the
22:02agent the ability to read that Google
22:04sheet to look at previous to-dos. And so
22:06what it's doing is it's basically doing
22:09the following is it's taking all of the
22:12following agents outputs. It's basically
22:16then being like, okay, I'm going to read
22:17through all of this. I'm going to assign
22:19it into a nicely like drafted format for
22:22Max to read. I'm going to truly work out
22:24are these important. I'm going to look
22:27at my previous to-dos to see if any have
22:29reoccurred and I'm going to then flag
22:30that as more important because if a
22:32to-do has been outstanding for two days
22:33that still not done, it's going to
22:35assign a new priority matrix to that.
22:38Um, and then it will basically complete
22:41the output and then save that new output
22:44into Gsheets. I don't go in I don't
22:46actually go in and ever look at this.
22:48Um, but you can see here I've got all
22:50like the to-dos basically coming in
22:52along with the the date so it will know
22:55what to to look at there. The reason I
22:58don't go in and look at this is because
22:59I don't live in sheets. I live in Slack
23:02and you know other places and uh it then
23:05sends me the Slack notification where I
23:08basically get this message every day at
23:12uh I think I run it at 8 a.m. If we go
23:15back to look at the schedule trigger
23:17yet. So it runs 8:00 a.m. Monday,
23:19Tuesday, Wednesday, Thursday, Friday. So
23:21every day at 8 a.m. I get a Slack
23:23message that gets sent to me via the
23:26agent that says, "Hi Max." And then it
23:27inserts the um the uh information that
23:32was compiled from this master
23:34orchestration agent. And so then I have
23:36a flick through that uh and then it
23:39reminds me what to do. Now, one thing
23:41that I've already noticed, so for
23:43context, I've had this agent running the
23:46last
23:48uh maybe two weeks. um the previous uh
23:53agent that I showed you, which was the
23:54email labeling agent, I've had that
23:56running for nearly a year. Um but
23:58already within 2 weeks, one thing that
24:00I've noticed
24:02is I still get like a little bit like I
24:05read it, I've become better at actioning
24:07things. Um but I still like kind of look
24:09at and think, "Yeah, I need to do that."
24:10And then kind of don't. So, one thing
24:13that I'm basically going to to to to
24:16work on and do is giving it the ability
24:19to
24:21um actually block out time in my
24:25calendar to complete the to-dos. So,
24:27every uh every to-do it gives me, it
24:29gives me a summary of how long it thinks
24:30it will take me to do. So, it might say
24:32like this will take you 30 minutes or
24:33this will take you an hour to do. I then
24:35want it to find a time in my diary for
24:37that day or the next day if needs be and
24:40block out an admin hour, 30 minutes, 15
24:43minutes, whatever it will be um to
24:46actually complete those tasks as well.
24:47So that's kind of like an iteration that
24:49I've already thought about that I want
24:50to do because I still it's just another
24:53thing that I read and then then kind of
24:55don't reply to a lot of it. It's made me
24:57like 20 30% more efficient and I reckon
25:01if I add that in then it's going to make
25:03me maybe like 60 70% more efficient
25:05because I'll actually focus on doing
25:06those tasks uh kind of when I require
25:08doing that. Can we see an example of it
25:10in the Slack? Uh yes, that's a good Let
25:15me stop sharing here. Let me open my
25:19Slack. So it comes in as
25:24um uh it comes in as like a Jarvis uh
25:27like so I called my I called my
25:30assistant Jarvis after Iron Man. Uh can
25:34you see that?
25:35Mhm. So yeah. So it comes in uh comes in
25:39here. Um and this is like the message I
25:43get in the morning. So channel like what
25:46I need to do technical follow-up
25:47request, email follow-up required,
25:50invoice follow-up required here. And so
25:53I can just read through this. One thing
25:55like I can read this quite easily
25:56because I'm quite used to like markdown
25:58format. Um you might be reading this,
26:01Jesus, this is a little bit like
26:02chaotic. So what you would then just do
26:04is in that slack section, you can just
26:05format it to look nice. You can remove
26:07the markdown. Given I've been working
26:09with agents like solidly like the last
26:12year and a half, I've just almost become
26:14better at reading these types of things
26:15than normal text these days, which is a
26:17bit weird. That's where I I feel like
26:19that's where I'd spend most of my time.
26:21Like I want this bit bold, this bit
26:22this, even spacings. Yeah. And you can
26:25do that, right? Like you can do that. Um
26:29you would just format it. You can
26:30actually build in here. You could build
26:32like a block element. Um, which
26:35basically means um, let me see if I can
26:38find you an example of that.
26:41Uh, so you could have it like designed
26:45to be really nice as it comes in. So
26:47this is like an example one that we have
26:50which just monitors when we pick up not
26:53not enough coverage on like a post. So
26:55this is like it's you know it's like
26:57formatted in a nice way. You could have
26:58it formatted in like that style as well
27:00if you wanted to. Um and you would do
27:03that through the message type and you
27:04would change it from simple text message
27:07to
27:09um uh to block messages. Um and then you
27:13also would uh uh then you just kind of
27:16design it uh from there little bit more
27:18complex. So if you wanted a simpler way
27:21you would keep it keep it as uh simple
27:24text message and you would just make
27:26sure that this agent doesn't do its
27:28output as markdown. you would just uh
27:30you would tell it to structure it in
27:31like the correct format and whatnot.
27:34And so going about this agent because
27:37you did you build all of that at once or
27:38did you sort of build it in bits bits
27:40and bobs and just added to it over time?
27:42Cuz I feel like for a lot of people
27:44creating something like that I mean
27:45there's a lot of different agents
27:47working together there. Right. So was
27:49that just a one time sort of you built
27:52it or
27:53Yeah, sadly it was. I'd like to I'd like
27:55to give you the advice that you would
27:57break it down and you definitely should
27:59like you you the way the best way of
28:01building agents is
28:04um first of all map it out. So, like
28:07that that's that's what I I had to do
28:09with this one first. And I did do that,
28:10which was like, okay, how do how did I
28:14what do I need it to do? And so, I went
28:16to like whimsical or mirror or whatever
28:18you want to use. And I was like, well,
28:20these are the key channels that I have a
28:22nightmare with, and these are the key
28:25issues that I have a nightmare with.
28:26Because you got to get that out because
28:28that's going to start to like inform how
28:29you build this thing. And then from
28:31there you can start to put like the
28:33jigsaw pieces um together and you break
28:36it down into subtasks and those subtasks
28:39are basically sub aents
28:41um and they can or cannot have context
28:43from each other
28:45um and I built it. Yeah, I built it that
28:49took took about an hour to to to build
28:52um and and pull together and then it's
28:53been you know it's been a massive time
28:55saver already. Um but the email one that
28:57I did prior to that I built ages ago. So
28:59it's like all things with iterate with
29:01you know aantic workflows and just
29:03anything you have like a v 0 then you
29:06have a v uh v 0 um v1 v2 v3 like
29:11versions of these as you think okay this
29:13is how I can tinker with this and
29:14improve this and uh you know like I've
29:17already said I'm going to go and add uh
29:18some calendar steps um you know things
29:22like that to like improve it um and make
29:24it like even better uh as well. And the
29:26other thing that I then am also going to
29:28add to it is um it's going to start
29:30drafting up replies for me. It won't
29:32send it cuz I don't want it to do fully
29:34automated, but I can add then a link
29:36into Slack where I hit approve. And then
29:38all I got to do is go through and hit
29:39approve, approve, approve, approve, and
29:41that will then trigger it replying to
29:43people, sending to people and whatnot as
29:45well, which will then save even more
29:46time.
29:51Nice. Cool. Well, listen, that concludes
29:55uh kind of the session today. Any
29:57questions before uh we wrap up like our
30:00little agent build that we that we've
30:01done today. As always, in another couple
30:04of weeks, I will go over another agent
30:07that I've built. If you have any
30:08recommendations or things that you want
30:10to see me build uh or go over things
30:12that I built, let me know. Um and I can
30:14kind of uh dive into that as as as well.
30:18Well, you can get access to them all
30:20here. So, if you just go to Substack,
30:22that's where you're going to be posting
30:23them all. Yeah, I post all my agents.
30:26There's like a file inside of my
30:27Substack as well um that I post all of
30:29my agents via the JSON file. Uh David, I
30:33had a question here. Uh what's uh a good
30:37estimate of time to have an acceptable
30:40agent?
30:42Um are you saying David is like how long
30:45does it take to build an agent? like cuz
30:47I I've sometimes spent, you know, 2 3
30:49days building an agent where I just bang
30:52my head against things a little bit.
30:54That's too long. Um I guess it's a hard
30:58question to answer because it depends on
31:01the impact of that agent and um you know
31:07what is the ROI of that impact if that
31:09makes sense. Um because if it's like a
31:12massive if that moves the needle for you
31:15massively, then it's totally acceptable
31:18um to spend time, you know, a day, two
31:21days building out an agent that could
31:22then have a huge impact. So I'll give
31:25you an example. Um I built out a uh
31:29funny enough, a post that I did today,
31:30which is like I send personalized ebook
31:33lead magnets to people at scale.
31:37Um, that was a very hard agent to build.
31:40That took me maybe a good day and a half
31:43to build, but the net impact of that has
31:46been huge. The team book, you know,
31:48close to three to five meetings a day as
31:51a result of that one agent that I
31:53basically built. So, you know, the the
31:56net negative the net positive on that is
31:58is is is huge just for the fact that it
32:01took me a day and a half of solid
32:02building basically to get that in. On
32:04average, I would say agents take me
32:07anywhere between half an hour to an hour
32:10to build if they're kind of like a low
32:12to moderate kind of complexity. The more
32:14severe ones can go a little bit north of
32:18that. Is there a key way to learn
32:21uh you've got from anyone building,
32:24creating their first agent? What would
32:26it be from your 10,000 hours of trial
32:29and success?
32:30Um,
32:32so I spend a lot of time on YouTube. Um,
32:36so first of all, I have a YouTube
32:37channel, so you can go there. I
32:39basically break down every agent that I
32:40build. I do these sessions on like
32:42YouTube as well. Um, that's how I
32:44learned. I just used to go on YouTube,
32:46watch people do things, uh, all of that.
32:49There are a lot of courses out there
32:51that you can take as well, which kind of
32:53go over like the basics. Again, I have
32:55one if you want to take one, but I'm not
32:58trying to plug it. There are there are
32:59loads of other courses and people that
33:00you could follow that that are also
33:02really good, you know, but if I'm
33:04totally honest, like the best way is it
33:07it is rolling up the sleeves and putting
33:09a bit of elbow grease, but it's spending
33:11time watching people on YouTube,
33:14understanding how they're building
33:15something from start to finish and then
33:18starting that process yourself and trial
33:20and error in doing that. You can
33:22obviously get all of my JSONs all day
33:24long. The best thing for you to do is
33:26maybe take one of my JSONs, have a look
33:29at it, have a read of what I've done,
33:32and then actually just try and recreate
33:34it yourself. Like build it yourself. You
33:35can cop like you don't want to copy and
33:37paste, but you want to like go find the
33:38agent. You want to start typing in this
33:40the system messages by doing it. It will
33:44you will learn a lot faster than just
33:45kind of copying and pasting. Um, and
33:48that will get you to kind of the levels
33:50that you require. I mean, Pier, that's a
33:52good question for you. you you've become
33:54quite proficient recently in building
33:56agents. Like what would you say? I
33:58wouldn't say that. Yeah. Uh for me what
34:00really helped was using stuff like
34:02Claude. Um Oh god. Yeah. True. Uh Claude
34:07or or or GPT or or something like that
34:10because it was just
34:13like it explained it in a way that you
34:16know I could you make myself understand
34:18obviously. Yeah. Um, and can you just
34:21say to her like explain this to me in a
34:23very
34:24like obvious clear way step by step with
34:29for for me? Like I didn't have GPT when
34:31I started with NA10 or or Claude. I
34:33would always use Claude by the way or
34:34Gemini for these things. Um, Claude's
34:37probably a little bit better for like
34:38the NA10
34:39stuff. Actually, I'm going to retract my
34:42statement on the YouTube. I actually
34:44definitely go watch YouTube stuff, but
34:46God, you can knock these things out with
34:48Claude now. just it's just going back
34:49and forth. Hey, I've got this error.
34:50What do I do now? Screenshot that error.
34:53Chuck it in there. It's going to give
34:54you the the results that you need to do.
34:57And it's just having that just having
34:59time to kind of blunt force your way
35:02through that learning curve. And then
35:04you're going to be in a really good kind
35:05of new paradox there with quickly you
35:07can build. I think what your your sort
35:09of uh things helped me with was getting
35:11the prompts right. um that sort of stuff
35:14and just maybe certain things to toggle
35:16on and off that I maybe didn't know
35:18about and so I see what you know what's
35:22correct but then I'll use something
35:24maybe like claude to explain it further
35:26to me be like why does this have to be I
35:29don't know post or get or whatever it is
35:31or what you know
35:33whatever little NA10 features going on
35:36um that was kind of yeah my thing what I
35:40what I want to try though is and
35:41apparently there's Google Chrome
35:43extension for NA10 that I don't know if
35:45you've heard of it, Max, that basically
35:48you you can like have it build you a a
35:51workflow of off like a prompt or
35:53something like that. I saw I saw it on I
35:55think like an Instagram reel and now
35:57I've got it I'm yet to try it, but I got
35:59struggling to log in to NA10 the other
36:00day. Yeah, that's cool. Um I think you
36:05know ultimately learn the basics with
36:07NA10. The basics are if nodes, loop
36:11nodes, set
36:13nodes, HTTP nodes, web hooks. Those are
36:17kind of like the the the the core
36:20fundamentals. Um, learn like generally
36:23how you see people shaping them. That's
36:25where it's really handy to watch the
36:26YouTube videos and then start using
36:28Claude and that's probably like the best
36:30way of you learning
36:31um, getting yourself to speed. But I I
36:34feel like in this day and age,
36:37um it's a key skill to have now. You
36:40have you have to be able to do these
36:42things.
36:43Um otherwise you're going to get left
36:45behind. Uh it's really that simple. I I
36:47think uh and I'm a true believer in that
36:49that you don't need to have, you know,
36:51quite to the level of knowledge perhaps
36:53that I do, but you need to know like you
36:56need to be able to build something basic
36:58for you to just uh you know, level
37:00yourself up and lock kind of like a new
37:03kind of a level of efficiency for
37:05yourself.
37:07Yeah.
37:09Cool. Well, listen, love that one. That
37:11was a great one. We're going to do this
37:12again in a couple of weeks time. So,
37:13please join if you're if you enjoy these
37:15sessions learning about uh how I'm
37:16building agents and they're all here's
37:19the thing, guys. Um, everyone posts I
37:21see a lot of stuff on LinkedIn where
37:22they're just posting stuff that you just
37:23know isn't uh production ready. These
37:26are all things that I'm generally using.
37:28These are things that I build build for
37:30Triggery. Um, and so they're they're
37:33live in production and and working, you
37:35know, at a scale that would need to be
37:37to be running as well.
37:41Awesome. All right, guys. Bye everybody.
37:43Yeah. Byebye.