chapters transcript notes
click any line to jump to that moment in the video
0:19 All . I don't know why I did the wrong technical difficulty on that one. Hello everyone, welcome back to Agentic Thinking with Mike and Alex. We are here talking about more Agentic experiences. 0:30 This is going to be an interesting episode. Matthias is out for the week, he's been doing some traveling, I'm picking up some guests here and one of the most amazing guests I've seen build around Agentic experiences Alex. 0:40 Alex, welcome to the show. Happy to have you on. Thank you much. I know we set the stage with this topic on explicit measures, but let's go behind the scenes. how I built it, why I was building it, where 0:51 inspiration came from and all the other fun stuff. This is exactly where I want to go with this. , for a little bit of context for users who didn't show up or, , the explicit measures podcast. This is 1:02 an extension of using agents to create things. And I think Alex, you and I would probably agree here. , if I'm going to ask an agent to go give me answers about my data, give me the 1:12 insights, it's at doing those things. That's probably adding some value. And there's a lot of executives thinking , oh, we need to throw agents at our data and it'll just give us all the answers. I don't think 1:22 that's the the value that I see from agents at this point. I see agents being this amazing creator tool. Yep. And I'm going to coin the term here, the creator agent, ? I want to use 1:34 agents that build deterministic code-based solutions that I can automate and string together. we just before this episode, the thumbnail you saw, Yeah. Alex gave me a photo and I 1:46 made my little I made an agent build me a background remover for thumbnails that I get for the show. , Alex watched me go through. I ran my little Python script, but all that is deterministic 1:57 code built by agents. , I think there's a huge story here around the creator agent. We need to focus on how do we get agents to help us build things that we can run on cheap hardware, cheap 2:08 code, make it run efficiently. That's the goal here. , Alex, this is a program that you built, which is , "Look, there's there's a problem we have here. The problem is 2:18 we need to build workspaces, pipelines, and notebooks, and lake houses, and based on my requirements, these conversations are happening over and over and over again hundreds [snorts] 2:29 and thousands of times per day across different organizations and consulting firms." you said, "Look, this is something that's just an input and and processing problem. , how do we leverage this and 2:40 how do we build a system around this?" And , this is where you came up with What's this specific name? Task flows? Agent agentic task flows? assistant. Task flows assistant, . say the word wizard anymore. Wizards are 2:52 out of business. Out of business. They're all assistants. We've moved on. [laughter] Love it. Love it. it was you sit down with the customer, you hear their problem 3:02 statement, and then it's very much just ", let's go , what's the introduction of Fabric?" And here's what this item is, here's what these other items are. to me, that's boring. 3:14 it's the same repeated conversation you're going to have over and over again as opposed to Yes. thing we talked about, here's where it goes. something a lot more prescriptive of , "Cool, you see 3:24 the picture, you see the vision." You know, I go back to Power Query. it was an amazing tool because you saw what was going to happen. You're painting on a canvas the entire time. 3:34 especially with this agent, it was conversation to canvas. How do we get there as quickly as possible? in the system here especially, it was just I don't want to use technical terms. I 3:44 don't want to have anything that has to do with Fabric. It's really going to be if I was sitting down with you and you gave me , "Here's 5 minutes' worth of my company. Yep. What we want 3:54 to do and what we want to solve. Yep. I hit enter at the very end. whether that be through a voice transcript in the room or just using a tool handy or any of the other 4:04 fun ones . record it, put it in the input box, hit enter. Yep. It should be that easy. for anyone that's maybe in an internal position where you have to do 4:14 architecture, if you're a consultant, if you're just, , wildly building on fabric. For me it's why would you not use this? . and that's not 4:25 I think the parts we talked about explicit measures this isn't here to replace a consultant. No. It's here to save the boring parts of looking up documentation of is 4:35 this GA or is this public preview? Does this have CICD or does it not? it's metadata flags and properties. That again goes back to deterministic work. . if this 4:46 thing stays up to date, it provides value. It gives you shortcuts. It's automation with a little thin slice of an LLM which is that sentence you provided, 4:57 all , I have to have an LLM to go reason through it. Yep. All , cool. that I've reason through it, boom, boom, boom, deterministic. Love it. I think the more that we can get in that mindset, it's just a huge win. 5:07 I'm happy to go to my screen though if you want to see. Yeah. let's do this. We the episode 12, the one before this one, is where we went through and I did a demo. out without Alex on the show, I just 5:18 said, "Hey, I'm going to go build one of these systems." I said, "I have some SharePoint files. Let's go get it." This episode is about how you built the tool that I used on episode 12. yes, let's 5:28 jump over to screen share here. Alex, take us away. Let's see what your screen's doing. here's your screen. It is up. And here we are in your VS code and I can 5:38 see your terminal. Yes. a couple different things. especially anyone who's new to me the GitHub Copilot, it's as simple as going into your file directory, typing in 5:48 copilot at the very end, and then it just starts. , it's not a huge lift if you're , "I don't know how to get started with all these crazy tools and things." out here. 5:59 Simple one-liner and I'm in the tool. We'll let this thing up and run for a little bit, Mike. What I'll probably do though is say let's do a simple problem 6:10 statement if you don't mind. Sure. All let's do that. I work for an energy company. We have a lot of outages 6:22 that require pen and paper plus phone calls to headquarters. The reports are burning because we're 6:34 constantly refreshing during the outages. We need faster time from machine device to the 6:44 report page. Ooh, I where you're going with this. Great demo. I'll be honest with you . 6:54 Leadership says put AI in chatbots and they'll cut the red tape. Red tape from budget and IT. 7:06 We're legacy SQL shop with batch jobs running. , especially during these high-volume events, 7:18 we have to really turn that dial up. We'd prefer more of a push and proactive method 7:30 as opposed to a reactive when it happens. Anything else you'd want to add, Mike, from your conversations you generally 7:40 have? Or they're just vague, they're just listening. Yeah. You're just Yeah, I'm just You're I'm trying to think of anything else here that would be 7:50 if I'm thinking about I'm in my if I'm in this energy company, ? The only thing I would maybe add here is reporting should be easy to access through our field service team. Yeah. 8:00 ? Something along that line, that way that way as we're doing real-time stuff people on the lines working the the fixes or whatever they got to do, ? 8:10 They have real-time data access. We need the data to be accessible to our field teams and on their mobile 8:20 devices. Perfect. Love this. that. anything about fabric or technology specific? This is a prob- It's a problem statement. 100%. No, nothing about 8:31 fabric here at all. All . I'm staring at our watch. I think that was 2 minutes. All , let's go. Sit down for the brief. You type in the problem statement and you ask the probing questions up 8:41 front. And then it goes into our little fabric advisor. , I want to just quickly note here. , one of the things that you did here that was different than mine. , when I was 8:51 trying your tool and again, I'm I'm the Mr. All the edge case builder here. I thought I had to run some agent or skill or something in front of 9:01 this to get it to go. Alex, all you did was type the word copilot. Because you're in the folder of where you deploy this project to, it automatically has all the skills, all the things it needs. 9:12 You just run copilot and hit go. and that wasn't very clear in the read me file. , maybe maybe I'd [laughter] recommend a little update to the read me around that one. You maybe already done it, but for me that was a little bit 9:22 of a a question in my mind, but this is much more clearer. Run copilot, ask the questions, and then it just picks up and goes. Cool. That's it. What should we call this? [snorts] How did I get you? Sounds pretty fun. 9:33 It's very on brand . do it Yeah, let's do let's do how did I get you? How did I get you? That feels very Microsoft approved at that point. Everything's an IQ . No assistant No No wizards, all IQ. All , it's 9:45 scaffolding our project. it's building out we should expect to see our Outage IQ project. it's starting to build out all of our fun stuff. not only documentation. 9:56 this this projects folder is an empty folder that exists when you clone the repo. It's you built obviously here you've done a couple times here. you've done a couple a couple different company 10:07 of projects. When you talk to it, it creates a new project for you in the projects folder and then builds out everything it thinks it needs in that project folder. Yes? Absolutely. in the very end if I was working on 10:18 this project it would be as simple as click and zip this folder. Yep, . Can you Can you zoom in just a touch on the VS Code side cuz I know you and I have great eyes, but 10:28 our audience on on the social media things. Yep, there we go. there's projects and then the the name that we just made up was fabric or Outage IQ. It's all part of the project list. Yep, we've got some of the discovery 10:39 brief that came through our problem statement's been recorded. Some of the various candidates here that it's going through and that's presenting it to us here on the screen at least. 10:49 let's go ahead and take a look. Outage IQ it said hey, we should do an event stream. Absolutely. copy job history. 10:59 at the very end here if you may have been talking as I was typing, but I said we have 30 years of history. sample data We have all this great information. We're data rich, insight poor. How do we get this data 11:12 and the streaming data into the hands of our data scientist teams? Sure. cool, long-term storage. yeah, if you're running batch, let's do that into a lake house for that long-term. absolutely KQL query set. 11:24 Notebooks for that ML that we just talked about. Real-time dashboard. Yeah, for our insights they're coming in fast. I need to see them. Yeah. And then a data agent. 11:37 Awesome. IT or I'm sorry, leadership said they want chatbots. Data agents. Let's go. Didn't say data agents, did we? No, we didn't. But it it knew how to 11:48 pick that up there from a cuz that's where you're going to go with that one. That's that's the AI piece that you want to throw in there. Yeah. All . , in plain English, device telemetry streams into an event stream, push not pulling into an event house for 11:59 sub-second queries, powering a real-time KPI dashboard where field teams can hit from mobile. Oh, awesome. Replacing pen and paper phone call loop in parallel copy job lift you 30 years of legacy SQL history in Light house. 12:09 do you want to move forward? let's do it. Progress. And I might want to switch to an agent here at some point, but we'll see. We'll see where it goes. 12:19 part of this Alex is this is the the command line interface. You're using Copilot to talk to this one, ? When you were building the project, I mean we'll we'll let this get 12:29 through here, too. How did you How did you come up with some of this idea? how did you get to the framework of this? we'll we'll we'll we'll come cover that in a little bit here, but what is this running on? Is this purely a skill? 12:39 Is this something else? Is there other things you're running here? what what is little the , how is this sausage been made slightly? Absolutely. , the part that I here 12:50 I can go into VS Code and we'll zoom out. Yeah. I a orchestrator. , especially here, it's just moving through different phases of the project through skills. 13:01 we just got done with discovery. we're moving into design, testing. this is called mission control if you're looking out for terms. . 13:11 where , think of NASA where it's you're communicating with a central thing where it's saying progress, progress, progress. Sure. the flag that just ran 13:21 for other people here, it has this advanced property. . advances to the next stage. Oh, . a JSON behind the scenes 13:32 says, you were at step number one, I'm going to look through if that's been updated to complete, I move on to step two. And then as it continues to read and advance through 13:42 that that property, we know where we're at. you're shaking between the this Copilot experience and then physical files that it's just manually updating back. , , 13:52 the tasks of these Python scripts are physically updating direct markdown files back in the file system. And as you're advancing through the project, yeah, you're showing me the secret 14:03 sauce here a little bit, yep. Yep. let's go and take a look. where are we at? Deploy config descriptions, lighthouse, awesome. we're starting to get a lot of things in here. I'm just 14:14 scaling them back down. signal mapper, discovery, architect, IDs 1 2 3, pipeline states. 14:24 completed that one, I moved off, completed, completed, completed. again, this is just reading that single file. Yep. a Yeah. 14:34 this one back. it's it's taking this file in, doing some work to it, and then putting it back down. Here's the results. And then moving on to the next step. And then when you you're saying the word advance, you have gone through, , 14:43 we're on test plan, we're on design plan, we can then kick into the next section of what we're at. , this makes sense. And this keeps the agent on track. anyone who's out there , I'm fighting with my agent a 14:53 lot, it's not doing the things I want. It's , , have you given it a linear path? . And this this is the part for me, especially when building things. Yes. 15:03 I have very linear steps that I want it to take. when I need to go off road, absolutely I will, where I'll be , hey, I need sub agents to go do some stuff and bring it back to me. Yep. 15:15 But most of my work I'm trying to automate, not necessarily replace thought. I'm , no, I need to get to the thought faster and get past the tedious parts. , that's why I 15:25 always enjoy this. it. , good. Great explanation there. All , the pipeline generator deployment artifacts artifact only mode. You don't want to really push . Just repeat the artifacts. All , let's 15:35 see where we end up here. with Outage IQ, we have our deployment . this , generated our 15:46 config of the YAML file. . And then all of our parameters . for anyone who's unaware, this is using Fabric CICD. 15:57 it's using a Python package. Where all I'm saying is I want to create these items for you automatically from our initial conversation of 5 16:07 minutes up until . [snorts] This is amazing to me. one one of the things I was very shocked and surprised about when you were doing this project, when I ran it, I was very impressed with I was why are we 16:18 using pipeline , the the parameters? that that the variable library is what this this system is the item is in the workspace. And then after I saw the application of 16:29 it, you did a really good job of giving it enough instruction to understand how does that variable library play into the larger mix of things? What code needs to be in 16:39 there? , and also it had references to actual items. There was a lake house. It showed the icon for the lake house in there. Other items that it was making, it didn't have the reference, but it did have the GUID of 16:49 the item that it was referencing. it seems that was what was impressive to me because to me when I look at the variable the item variables, there's a miss and not every single item 17:00 supports those as as I would it to, but you handled that gracefully and it just added everything in there that I needed. I was just very impressed by that that even though 17:10 it it showed me that the variable library is more more capable than I was understanding, which I thought was very useful. Yeah, and especially I think they introduced an object type 17:22 which does dynamic binding of both the workspace and the item. then it's "Oh my god, this is amazing." as opposed to , ", here's just the GUID." I think that was a rather 17:32 new introduction. if there were still gaps, it's , "Hey, as the APIs change, I'll go out there and I'll get those things fixed." but I that. Yeah, 17:42 at the very end, you and me, we just got done having this great discussion. I've got my deployment scripts. . I want to run this. I have a couple different options 17:52 here. I've got single workspace. if this was a demo mode, which we're in, or if I was an organization, it is , "I'm just doing one." . if you want to do a multi-environment 18:02 though, Oh, yeah. if you're , "Cool, I'm going to set this up for a true multi-stage new CICD on day one." Awesome, go for it. 18:12 . Love that. I don't want to be the limiter here. your creativity. I I just want to take care of the tedious parts. Yeah, exactly. All , let's go through this single authenticated through a CLI 18:24 workspace name outage IQ. Sounds amazing. I'll just hit enter. Create it ? Yes, cuz it does not exist. Let me go ahead and zoom this in here a little bit we can see That's also another feature I really liked is 18:35 it was smart enough to understand that things do exist and do not exist and figured stuff out for you automatically and just said, "Oh, let's just go." that was nice that it just automatically did that for us. I'm 18:45 going to use this capacity here that says, "Do not touch." I'm going to touch it. [laughter] You're the only one with permissions for that. Awesome. it's starting to build 18:55 out the dependencies here. especially first one is going to be , "Hey, just create the freaking workspace." , it's empty, it doesn't exist. And then of course I have my variable 19:05 library up front. . that way as new IDs are being created, I'm just storing those here with it. there. Makes sense. and then I'll just hydrate them at the very end. . as this process is going through, I 19:17 just want to ground people on the fact of we sat down, we had a 2-minute, 5-minute conversation, didn't say any fabric words. I'm getting you deployed exactly of 19:27 what I would have done in that meeting. It's not let me go back to my desk and let me wire this up in a whiteboard or let me, , take a 2 weeks to 19:38 send you back an email. No, cool. That thing you just talked about, here's what it's going to look . Yeah. Exactly . And then they're , wait, what? you're telling me that that's going to go there and this is 19:48 going to go here and all this other fun stuff. It's absolutely. All , let me pull out the workspace here. I'm going to make sure I get logged 19:58 in to this tenant and I'm not showing anything weird or wild that I shouldn't be showing. Yes, let's not do that. I know. We'd you to keep your job if possible. 20:08 Please. [laughter] It's Work IQ. Looking for it real fast. Work IQ. No, what's it called? Outage 20:18 IQ. Outage IQ. Outage IQ. It's Work IQ, that's the Microsoft thing. Awesome. 2 minutes. 20:29 Again, had the discussion. Yep. I'm out in the Outage IQ workspace. configs we just talked about. my variable library 20:39 Important things I want to call out there, Mike. . The title. Sure. 20:50 All this has been added already. And the Madinah architecture, I need to get that one way better, but I'm prepopulating as much as I possibly can from my descriptions and settings. Awesome. Absolutely amazing. 21:00 if I go to configurations, Outage variable library. This is the variable library for Outage IQ CICD stage configuration. Which they should all have descript this is these are following best prac- This is the 21:12 what you're describing here is this is the grunt work that is what you want to be putting into this stuff when you build stuff initially. a lot of times people build build stuff when you're clicking the normal screens 21:22 to go through creating items. Most no one puts in descriptions on things. what is it here for? Why is it here? You may not even know when you first put it there. You're just testing something out, ? at least here 21:32 this is that low-hanging fruit work that you're just saying it just comes with Yeah, I really this. This is great. all that done, something you had called out. Unfortunately, there's not an API, but 21:43 this is why we do streams this is that we can make enough noise. Correct. Some of you get task flows. I was disappointed about this one when I when I saw this one Microsoft [clears throat] PM for task flows. I'm not sure who 21:54 that is, but I was very sad that I couldn't automatically I I built everything this is cool and then there's where is the task flow items? It's still blank. you have it here. But 22:05 it's it was annoying to me that I'm I don't have the item. The task flow didn't just automatically populate with an API. I'm . I wish. something we got to have in there. If it did, , I'll be the first one to 22:15 update it. we've got our task flow diagram. . if you wanted to go out to these, just for anyone that's curious, it's a set standard where 22:26 it's just , "Hey, what is the type?" It's store data. It's get data. that's just system for Microsoft. . The IDs don't mean anything here. I'm 22:36 just randomly generating them. . and then at the very end, I'm just doing the edges of how they . Source target stuff. . That's easy enough. the very end here 22:47 Look at that. That's everything we just built. Oh. Nice. unfortunately, the current import does not allow me to bind the items. again, that's just 22:58 another gap of Oh. showing of what's possible, but the actual binding of that lake house to this item. , yeah, you got to do that manually still. but 23:09 Get out of here. I hate this banner. Just give me task list full screen. I know that that may be controversial for others, but if I'm looking at items and and nuggets and things that are just linked 23:19 together that should be that would make sense that it's just Yeah, yeah, you want to full screen it cuz you're I'm looking at the architecture of the system. Yeah. Love this. This is great. , 2 minutes, 23:31 we didn't say anything about fabric. This is what I fully built out from an architecture that I would likely build. Yeah. And then at the very end, it's , all cool. Let's start populating our 23:41 endpoint addresses. , what what's your data source? for me, this is the more interesting part of I've taken us this far. 23:51 if I was to go shared registries, this is a lot of the brains. , all the different item types. up here are just 24:01 human-readable descriptions. , here are the fields, here are connection protocols, here's, , skill sets. down here is the meat and potatoes of for every item, 24:12 here is the possible query language, here are alternative considerations, here is low code or code first. and then within the templates, 24:24 cool, we're building a copy job through the REST API. Here are the properties that I would need to fill in. . 24:34 Why do I stop at just doing empty shells of items? same hydrate hydrate them with as 24:44 much as if you had, hey, here's my SQL database connection things, ? Set this up as a connection somewhere and have it you 24:54 know, you what items go into that element there. Yeah, that's the part for me especially when I think of the value of the YAML based approach. 25:04 . I don't feel comfortable giving my connection string. Yep. Cool. Put it in this file and I'll just read it with the Python script. Yep. And I'll generate it and I'll push that 25:15 through to the API. Yep. give me the table names just these little dashes. That's just an item list. , what are all the tables I need to inject into a copy job? Yep. Why could you not have a complete 25:25 agentic workflow that is purely just asking questions and you could get to the very end. Yes. It all feels very possible to me. 25:35 I agree. scary though? I don't know. , I I think other people may think it's scary, but again, this is this is the idea of building 25:46 and to be also very clear as . this whole repo, ? The fault the the secret sauce on this project is the GitHub folder. the GitHub .github 25:56 folder is the one that you build. That's let's talk about let's zoom out just a hair for a moment here, ? I needed a custom agent to be able to 26:06 pick up What What does this What does this project do, ? , how do we track our stages? What stages are in there? what fabric item are available 26:17 to us? and I believe, , you have skills here, ? , there's a couple things you're you're noting here. let's just I want to talk a bit more about the pieces of the the project here just slightly. Yep. you're going 26:28 through the the left-hand nav here and this is agents, hooks, prompts, and skills. , I'm very familiar with with skills. Agents, I'm somewhat familiar with. I've been doing a little bit more 26:38 experimentation on this. This is a custom agent that you're using and then GitHub is aware of this FabricAdvisor agent. , this is when you did Copilot initially, 26:49 ? It read this file and said, "This is a reference a a grounding for when you run Copilot, it knows this stuff off the gate." That's 26:59 something that I had a gap of when I was trying to project with the first time, which was I didn't understand that this was already baked in and I just had to type my question. I thought I had to run a skill or command the 27:09 Copilot to go do something. . Walk me through hooks and prompts. What are those doing? what is this something you contrive but this is 27:20 something that's standard with GitHub? what what is the what are these intended to be doing? Yeah, especially for prompts, this is more shorthand. if you're ever , "Hey, I'm typing the exact same prompt over and 27:31 over again." this is a cleanup prompt for me. Oh, . finding out in the community. Yep. , this is ignore everything about any of my documentation and just purely 27:43 look at the code. Yep. Sure. is a a great reusable prompt where it's just , "Awesome." . I didn't know you could restore prompts over and over again and 27:53 that would just call that prompt. Cuz what you're seeing you're doing in the chat window, that's to me I look at it going, "That's a shorthand for a skill." But it's a prompt or a skill that slash runs both of them, yes? Yeah. , with 28:04 with prompts, I can have arguments. . then I can have based on this ordinal position of the thing that I'm going to type go do these things. Yeah, sure. , especially for 28:14 reusable I always try and tell everyone audit your code in your projects. Yeah. Especially if it's not nightly do weekly just cuz of all the added 28:25 tech debt that comes with generation. The LLMs that are not your friend in the sense of they want to spit out as much verbose code. verbose text. , slim. Slim 28:36 [clears throat] equals success. Oh. , I'm always find contradictions, find where you're creating duplication. Yep. , any of those repeatable audits that I do . that's 28:47 just a prompt that I store. I that. there's a there's another skill or item or concept that's coming out that's called caveman mode. Oh yeah, I've tried that. caveman is this idea 28:58 of , , Mike make code, ? , just kind [laughter] of talking talking very simple terms cuz there's idea of if you if you let the agent be very verbose with its language, it will always give you lots 29:09 of information back and overtalk back to you and overexplain things. Sometimes you just wanted to get the work done and you invoke this skill or scenario around caveman mode and 29:20 it just gives you the very the bare-bones information and will save you tokens. It makes your prompts more efficient a little bit and the response is quicker, too. All , cool. Hooks. Let's Let's go through hooks. What are 29:30 these hooks that you're you're doing here? Pre- or post- tool call activities. Hm, . if let's say there's a scenario where "Hey, I've got this MCP. It's got 29:40 all the commands I need. Don't imagine calling the REST API generic. Sure. you could block that call. . . Do pre-call or post. Yep. And that way it'll 29:52 reroute it. Be , "Nope. Sorry, you can't make that generic call. You need to use this tooling." Oh, . fantastic guardrails for your system. let me let me reiterate what I heard 30:02 you say there. again, when we work with the large language models, they are open-ended. There's a They will They will do whatever they want to do whenever they need to do it. these 30:12 the hooks that you're doing here for your your observability item specifically is you're giving it guardrails. I want to play within this boundary of things at this point. 30:23 Yep. again, I got I haven't spent a lot of time in myself with hooks yet. This is a good place to learn this one from this project. walk me through what's going on here. you have some hooks that are What is 30:33 defining session start? What is defining user prompt submitted? Is that just kind of information that's coming from your chat experiences? Hook scripts. Let's go and do session starts. 30:44 Yeah, let's look at that. All . , this is requiring it to use the workflow guide and then also the run pipeline runner. , . if it's not going through that 30:55 linear process we just talked about, it's "No, I'm going to deny you." let me also re Let me re-understand this one as cuz again, this is a newer concept to me. 31:05 hooks are the harness, which is VS Code in this ex- example, is doing certain things. The hook is saying when this process 31:15 takes action. , you said, , when the one that is session start, ? The very first thing. Session's starting here, and that's how it knew to start using some of these shared experiences in these markdown files 31:25 initially to read those, initialize them, and then as VS Code does other things and you I think I saw one that was on error, on other items there. these are the the harness, and I'm 31:36 trying to use the language of how AI things work. The harness, which is VS Code, has a a messaging system or a signaling system, ? And you're tapping into that signaling 31:46 system and saying when these type of events occur in the harness, I want you to do something very specific with this. You are not allowed to go off rail. , I didn't tell it anything in the very 31:56 beginning. Yep. I didn't have to slash command, I didn't have to agent. It was just , "Hey, the session's starting. We're running our pipeline ." Nice. Cool. And of course, it , if it 32:07 LLMs, , they could scan through the entire repo and waste tokens left and , but Yeah. I've already set the guardrail and boundary of , "If you try and do something, I'm going to reject you." 32:17 Yeah, yeah. And again, these are pre-tool calls or post-tool calls. , if it was, , return something you were not expecting your system, you block it. And then you're , "Nope, you got to reroute it 32:28 to this defined thing that I want." Love it. that's where you see post-tool audits as . , definitely this is the newer concept. . 32:38 I would say Brooke Holland did a really great video if you've been following any of his YouTube content, but it's awesome to get set up out here. Love this. Good. . 32:48 Hooks and prompts, , if you're typing the same thing repeatedly, getting out here, and then if you want, add a little bit of arguments too. , it's cool. The last one we didn't cover and we're almost out of 32:59 time here, we probably need to start thinking about wrapping here. , tell us what's going on in the workflows area. , what was your concept to run that one? What's in the workflows folder? What is this looking ? 33:09 Yeah, this is more around the GitHub deployment. This is less me, this is more of the robot. , don't don't trust anything that it's saying or doing. workflows is it trying to think 33:20 through an in a file , "Hey, if I'm Is it an example file? Is it something I would use as an example , "Hey, this is something that you're doing here." Or is this more just for you in your GitHub repo that you're using directly? 33:31 in the GitHub repo. . , this is just a setup file for the agent. , got you. Let me ask another question around this one. , this project exists Can I do one here? You want 33:41 Oh, yeah, do this. Yeah, keep [clears throat] going. If we were talking about skills, the part I always is the process of testing. in this example, I have my system, I 33:52 could go out there and I could type in hundreds of different scenarios. But that seems wildly inefficient to me. if you've ever played video games, there's the concept the self-healer 34:03 where it's , "Hey, I just want you to take care of yourself." , in this example, I have the mage. This is the mage of the project. Yeah, with this [laughter] I'm , "I want you to come up with 34:14 n number of scenarios and make them as verbose or as vague as you want." Yeah. And at the very end, , I want these problem statements, , our insurance company, our grocery 34:24 store, our government, our city water. It generates all these and it runs through the system. It says, " what? Here's your gaps." . Here's the quality benchmark. Cool. at a 34:36 minimum viable level where I'm not embarrassed to jump on a live stream. it's these are the fun things you need to think about with your project. . not only 34:46 a testing framework, but a lot of the things I think people start seeing and I don't know if I've implemented it here in this tooling, but an eval system, . which is just from 34:56 this task, how did it do? Yeah. setting a common framework of pass fail. Yeah. And then within that also have descriptions of , "Here is why it failed." in that way 35:07 everything continues to improve. I think the best part about the systems here is build wildly and then rein it in when you 35:17 finally know what you want to do. . I'll show this as . I don't know if you're using this yet, Mike. Marp. No, I haven't heard of this one yet. 35:27 this is Marp. m a r p. This is a presentation builder, I presume? Marp for VS Code. Yeah. this is presentations from code. 35:37 Oh, I have been trying some presentations from code. I found a a I found a separate project more on the agentic side called Vella, v e e 35:49 l a slides. Which is Yeah, this is side note. PowerPoint is officially really, really dead to me. I didn't it before. I really 35:59 dislike it because I can just tell an agent to build an HTML page slide deck for me and I get what I want immediately. This is good. markdown presentation the Marp 36:09 just go out anyone download the extension and it does support style systems as . you want to design. you could have just a generic white page and black text, but I 36:20 was , "No, I want to have be a little cool." I've got the fading and all the other fun stuff. . Marp is in the description as . I put it in the chat window here that'll be here as . If you 36:28 want to go find Morp from the VS Code marketplace, it's in the chat. You can go click on that link there directly if you want it. Awesome. , tedious part we talked about. Boring is blank whiteboards. It's not 36:40 fun for you to have to fumble through documentation. Yep. Is it GA? Is it public preview? What does it support? . , I just want you to talk to people. Yep. And if {quote} "Fabric is hard," 36:50 here's the easy button. . It starts with your problem domain and I'll walk you through , here's the architectural design review. those are a couple of things we didn't talk about , . How does 37:01 IQ? , I have full documentation for you. here's deployment handoff, discovery brief. what do we have? Deploy. I think we 37:11 might even have some documents up here. Let me take a look. This is where it's , much fun. I haven't been out here in a while, Mike. This is amazing. [laughter] 37:22 it's volume, velocity, variety. Everything is documented for you. Yeah. Power app exists. That was something you mentioned where it's , "Hey, I want to get out in mobile field." , 37:32 all . Let's get out of that. Let's get out of that. I'm going to go back to the Morp. Yep. I'm just having fun. And then, , Morp went 37:42 cool. AI projects, plain language business problem, one human readable project brief, , CI/CD ready deployment, what was built. This is the advisor. 37:53 . composable skills. Yeah. One is product discovery. I need architecture design. I need a tester. I can say, are these skills, are they just bunch of 38:04 fluff or is this human deliverable? . , it's testing against just the API framework of , all , yeah, we can deploy that. Yeah. And then, the last couple I wanted still roll out is just , 38:16 you deployed it, let's do a actual validation that everything was completed. Yeah. And documentation of here is every GUID that was deployed. Yeah. , those are just 38:26 some post things I would to come back to. the pipeline is my complete runner. Hm. which stage am I at? All , cool. I'm going to loop back through that JSON. I can pass to the next 38:36 gate because this was complete, this is not started. All , cool. I move on to not started. Yeah. Complete, complete, not started. Complete, complete, complete, not started. Yeah. Registry first, again. I 38:48 don't want my models to read markdown. Cuz that is a waste of tokens. I want them to have tools. Yes. I want my workers at their desk. , I 38:58 hand them a laptop, I hand them a notepad, I hand them a piece of paper. That's how they do their job. Yep. to do your job, you need a dot Python file. and then with that script, you're going to read through this JSON 39:08 registry. You'll never touch actual markdown or text yourself. You'll get output. And that's and that's to to that registry part is the shared registry is not having to have it go to a website and scrape it and find 39:19 it. And then it's already , the the thought here is there's a lot of semi-unstructured data that you've already had to go through and groom back into this, ? , there's and maybe 39:30 this is not part of this project but the community, ? If you find things that are not in the registry or language or things you want to add to it, that's why this is an open source project because 39:40 as the product moves fast. Yeah. It's constantly updating new things, you know, ontologies, Work IQ, all these other things you can potentially integrate yourself into. that 39:51 registry it needs to be updated fairly frequently. And , that's that's the the nugget, the piece that is taking a lot of the internet web scrape data, pulling it down to a structured space, 40:01 and using it. And I found me personally, I also found that very helpful for I was looking at the project and asking the agent via that folder saying, "What's out there? What's in GA? What's not?" You can I could ask 40:12 questions directly to Copilot even after the project was done. , I wanted to just ask you some questions around stuff. It had a good knowledge library there. I'm looking at that going, "Wow, I'm in a 40:22 phone call with a client. They ask me about a certain feature. I And then, , it's funneling details back to me that way in the call I'm being , able to 40:33 let them know, "Yeah, that's not quite GA yet. it hasn't been announced." and let me ask another question here to Alex for that one specifically. Is there road map items on that? 40:43 Or I would probably have to add that as a after fact. , "Hey, this is all the existing stuff today. Maybe in the in the registry I add another folder for road map items. , here's language of 40:53 what Microsoft is building." But then I could give me a little bit of a forethought around, "Hey, , what you're asking for doesn't exist today, but there's a couple future things." Yeah. , I haven't incorporated anything that's future looking. 41:04 And to me that's probably a little bit of scope creep in the sense of Out of this project, yeah. Yeah, for this project. What I want though from and this is a bigger thing for me. I want to have 41:15 the road map be an RSS feed. . Yeah, it should be. Yeah, that'd be great. Yeah. And then same with known issues page. I want that to be an RSS feed you never have to 41:26 necessarily you can get push notifications through that method or Yes. , updates. , that's fantastic. But in the moment with your agent system Look at this endpoint address. 41:37 Tell me what I need to know. All , cool. Find anything? Awesome. I'm moving on. Love it. this is the fun parts where I'm let's let's get those done. how the engine works, describe the 41:47 business problem, review architecture decisions, confirm the test plan, just move on. yeah. Just a few stages, a few skills, and we didn't really 41:57 hit home on the context of what's in each skill, but I don't think a lot of those are as important cuz I'm constantly finding myself challenging the bot to say less and less. . 42:08 if I'm ever at a point where this line count is, , 200, 300, 400, oh man, you're in the danger zone. You're you're likely looking at a second 42:18 skill or, , breaking it apart into other pieces. It's too much in one side one item. Yeah. Yeah. , anyone that's out there building wildly, go for it up front, but then at the very 42:28 end, challenge through that flash prompt. I may have a challenge prompt that I constantly do, find contradictions, find where there's a legacy tech debt. and then 42:39 this way, I want these skills to be extremely thin and narrow. I'm always looking at the line count. . How do I get less? Yep. I get less to do more? 42:50 Look at that. , again, I try and keep these as very thin from a discovery, a lot of it is just looking at load the discovery brief that you 43:00 just created for your project, and then start filling out required fields. Wow, this is impressive. Again, it's a project scaffolding. Yeah. What the scaffold looks . 43:11 Yeah. Yep. Fill out the trade-off section. Fill out the consideration section. Sure. Find architecture. Everything that you would do in a normal business. Yeah. I'm just outsourcing a 43:22 lot of the parts that I'm I think you do this 100 times over your during your day or week. , why not take the monotonous part and get 43:32 back to the cool stuff, which is focusing on the customer and the problem. Yeah, agreed. we do. that you've seen the image, you're , "Oh my god, I didn't realize we're going to get there in 2 days." Yeah. 43:42 you took my the next big problem. Yeah. my 6-month project is a 6-day problem. What else can we do? , yeah, let's let's let's have fun. Love this. , 43:53 again, just designing, deployment, discovery. discovery is simply just asking questions. Do I have enough confidence in what was stated to move forward? , 44:05 my four V's, what is the volume of data? Do I have a confident answer to tackle that? What's the velocity? , is it coming in nightly? Is it real time? 44:16 Variety that goes into Is it a bunch of spreadsheets? Is it databases? Is it a What I think they said SCADA IoT devices. I didn't say anything about that type. Sure. You have to infer that 44:28 cuz that's the LM strength. Yeah. It will let it reason about those things. That's the That's the part of where you you apply the reasoning element to this. You give it parameters and then let it go. Yeah, agreed. 44:39 Yeah. My pipeline is deterministic. Yeah. My reasoning is very thin. Yes. give it very detailed instructions around what you want it to reason about. 44:49 Yeah. it's the upfront discovery part? That's the squishy part that LMs are great at. Cool, you said this, I inferred this. Am I on the path? You're , "Yeah, awesome." And it's 44:59 "Awesome. I'm going to move on to the deterministic I think our project was done in 3 minutes. Yeah, it was. It was very quick. Yeah. to be on a call with a customer again, that would be mind-blowing to be 45:10 "This is what I want to build you." And I'm , "Oh god, I wasn't expecting this." architecture schemas again, the schema goes back to a lot of the APIs are already 45:21 -defined. They're -documented. . I just have those in a folder out in this project. then at that point I'm not imagining of what it should be. Sure. And then from there it's more 45:34 if I was to move into the next stage of this project of deploying items for you. Awesome. We're at the stage where we're copy job. I need you to fill in this YAML metadata property that says, 45:45 "What's the connection string? What are the tables you need?" Yeah. And I filled that out. Cool. And I'm going to pass that through to the schema for the REST API. If I need to convert it to base 64, whatever it is I need to do 45:56 Awesome. I'm done. Yeah, makes sense. it's a little bit of a slip. little things again, just deterministic tools. 46:06 I don't want creativity to be up to the LLM. I I need the same reproducible end goal. This stage moves to this stage moves to 46:16 this stage to support all of these things which is getting me to a final call to the fabric endpoint. . I need that again I just love this concept 46:26 of using tooling that is needed and then using the LLM when it's absolutely necessary. A lot of these tools that I've 46:36 given to my workers, , these are my skills, my discover worker, my design worker, my deploy mentor, they all have tools. 46:47 A little Python file. anyone that's out there looking at this project and thinking about yourself don't let your agents read raw JSON. Don't let them read 46:57 just wildly and endlessly. That's when your tokens start bloating and that's where context rot comes into play. as much as you can make this slim Mike in your example what's 47:07 GA? All , let's just run that script. We'll go for the GA property. here's a list of 11 things. Yeah. 20 things. Yep. Supposed to reading through 1400 lines. 47:19 It's interesting. it also requires a lot of again we talk about how AI's going to take all of our jobs. This doesn't seem to me it's taking any my job. It's just shifting what 47:30 I work on. instead of thinking about I to your point I'm I hear you saying very specific questions you're sitting back and being very contemplative around what do I want this to do? What repeatable 47:42 actions am I going to take? And then you're thinking about these all these files you didn't make these Python files. You didn't write these hand by hand code them. You 47:52 said hey I'm thinking through a discovery thing. And then you the engineer the call it the prompt engineer, whatever you want to call it, that's your work. Your work is spending the time saying, 48:02 what tools are required that I can give to the agent it can gives me that that more regular experience out. And this is we talked at the very beginning here, 48:12 creator agent. This is doubling down on that concept of creator agent. Our work is shifting into the creator experience. We want to be able to craft tools and experiences that 48:24 work alongside the agent that gives us a very regular output of what we desire. It's It has There's flexibility, there's reasoning inside these things, but signal mapper, it knows what to do. 48:35 that that is a defined input and output. And and that Yeah, it's it's totally IOs . , that's that's where the I think that the large 48:45 language models makes a lot of sense. And also, the large language model built this stuff. you came up with the concept of this is the steps I want to go through, you communicated that to the agent and said, I need to build a 48:56 framework around this, use this orchestrator agent and do these things. This is great. I love this. This is This is This is shifting how we think about using agents. Don't think about a 49:06 chatbot, it's building systems and tools. That's what we need to really focus on. Yeah. , especially internal at home. Yeah, especially internal work , , job titles program 49:17 manager, I wrote trying to compare on people problem manager. Yeah. What problem do you need to manage? It is what it is. Yeah. And then from there it's, all , cool, what things 49:27 do you need? , I need someone who's great at documentation and going out to my meetings and grabbing transcripts and making sense of them. awesome. , you've got someone that's more a BA 49:38 or executive admin who's scheduling meetings for you. they have very specific tasks. That's exactly what I'm building . for my my business, a lot of my statement of work building and master service agreements, it's a lot of 49:48 regular output of things. And I'm I'm building to your point. this is a framework that I need to start leveraging. Similar idea, but same thing with documents. I have all these 49:58 conversations. They're recorded. There's transcripts. There's videos. I need to pull all that that data down and build special tools to then absorb that. And then, , 50:09 there are places where reasoning needs to be applied, but how does that tool with the Python, , Python scripts should just go to the graph, sign in, get the things I need, download them here. Great. I can apply the 50:19 reasoning cuz that tool's been built. This is really really written. I love the idea this this diagram here is very very sharp. I love this. Yeah. , again, a lot of it just runs through the pipeline, human 50:29 approval gates. I to stop and ask you, here's what I was thinking, you know, I'm not just building wildly. And then I at least in this system here, I've got three turns. Yep. 50:40 if that's our three revisions, we haven't figured out. let's just go back to the beginning. Yeah, something's not . Yeah. And then yeah, we did it in action, you know, very simple intake only. I don't 50:51 want you to ever type technology. That's the most boring thing to me of I want to build a lake house to do X. , no. , that's the end. That's not the beginning. Yeah. 51:01 if anyone that's out there, if you're internal, if you're external, if you're consultant, if you're business, how do I just get to fabric faster? This is the tool. Yeah. I this. 51:12 Very slick. Awesome. I need noise, though. I would love for this to be in product. Why can't this just be a co-pilot pane that pops up in product and says, here's what I want to build. And it builds it for you. Let's keep 51:23 that idea sharp, Alex. There may be some stuff that I'm cooking on here on the side that may help us out here as . , let That would be a great idea. If also, let us know in the chat down below if you 51:33 this content, let us know. I think we're good to wrap, Alex. Any other final thoughts you want to land on or No, let's come back for some more projects in the future here cuz I'm always doing weird and wild stuff, but this is a fun one to help 51:43 inspire people. Check out the GitHub repo. Leave issues. Leave comments. Let me know if you tried it out. I'm going to push some updates from this morning because of course before we went live I made a bunch of changes. Of 51:53 course. Cuz that's the technology person at the at the back. [laughter] Because we want to make sure all of our demos are on the edge of our seats the entire time. [laughter] Alex, thank you much for your time. I 52:03 really appreciate you going over here a little bit. Thank you much for this really deep dive on how I built it. This is the task flows assistant is what we're talking through here today. awesome 52:14 job. Let's continue to talk about more other places and how you're building things and maybe maybe on the show at some point we let's step into something and build a new agent agentic something. Maybe we can do build 52:25 a little simple tool together and and walk your through your process of how do you how are you building the orchestration? What are you doing to prompt it to get these tools and systems built inside your system as . 52:35 Awesome. Thank you very much, sir, and we'll see you next time. Thank you all. All. Agentic thinking. [music]