Building Software using Squad with Brady Gaster - podcast episode cover

Building Software using Squad with Brady Gaster

Mar 19, 202657 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

Let the squad help you build your application! Carl and Richard talk to Brady Gaster about Squad, a tool for creating an AI development team using GitHub Copilot. Brady discusses creating specialist agents across various aspects of building an application to keep context as small as possible, along with token consumption. Often, agents communicate with other agents to work through project problems, generating persistent information about the project, including skills as needed. Squad continues to evolve and get more powerful - try it with your application!

Transcript

Speaker 1

How'd you like to listen to dot NetRocks with no ads? Easy? Become a patron for just five dollars a month. You get access to a private RSS feed where all the shows have no ads. Twenty dollars a month, we'll get you that and a special dot NetRocks patron mug. Sign up now at Patreon dot dot NetRocks dot com. Hi, this is Carl Franklin.

Speaker 2

And this is Richard Campbell.

Speaker 1

We've got two special shows coming up soon, episode nineteen ninety nine and two thousand.

Speaker 2

For episode nineteen ninety nine, we're collecting people's y two k stories what did you do to help the Y two k event not actually happen?

Speaker 1

And for episode two thousand, we're going to be sharing stories about how dot net shaped your career.

Speaker 2

We have a special page at dot netroocks dot com slash voxpop where you can record messages for us that we can play on these special episodes.

Speaker 1

So tell us what you did for Y two k.

Speaker 2

And what dot net means to you, and of.

Speaker 1

Course how long you've been listening to dot net rocks.

Speaker 2

So go to dot netroocks dot com slash vox pop now and leave us a message before the thought of operates like whiskey left in a glass overnight.

Speaker 1

Do it? Hey, welcome back to dot net Rocks. I'm Carl Franklin, an amateur Campbell. Brady Gaster is with us again. He's been here, well, he was here last year in November. But we got some really cool stuff to talk about. But first, Richard, Yeah, buddy, this being episode nineteen hundred and ninety four, let's talk about what happened that year. M H and Brady feel free to jump in during this whole debacle here.

Speaker 3

If you remember ninety four, I bet you do.

Speaker 1

I do remember ninety four. Yeah, I was living in New York with my then girlfriend who I was to. Oh no, I guess we were married by then. Oh but anyway, I do remember Nelson Mandela being sworn in as South Africa's first black president. I remember the NAFTA North American Free Trade Agreement took effect, kicking in in the chunnel winking, the UK and France officially opened the Channel Tunnel.

Speaker 3

Yeah, amazing piece of work, wildly over budget and over time, but you know it's nice that it's still functional this day.

Speaker 1

Yeah, that's true. Some really bad things happened, of course, the genocide in Rwanda, bad, bad, bad, Yeah, the Northridge earthquake in California, but some other stuff. Ol O J. Simpson was arrested after a televised.

Speaker 3

Yeah the White Bronco.

Speaker 1

Yeah. Fore Tanya Harding was banned for life following the attack on Nancy Kerrigan Baseball Strike, things like that.

Speaker 3

Uh.

Speaker 1

Some TV shows, The sitcom Friends premiered a couple of Conic films, Forrest Gump, The Shawshank Redemption one of my.

Speaker 3

Favorite stories ever, great film.

Speaker 1

And The Lion King. And of course, Nirvana frontman Kurt Cobain died by suicide that year. Yeah twenty seven, Yeah, Hey, I might as well get the top ten albums of nineteen ninety four out of the way. Sure, Sound Garden, super Unknown, Black Hole, Sun, great song, Launch You Come.

It's a great song. Celine Dion The Color of My Love had Her Hits, The Power of Love and Think Twice, Pearl Jam, Vitology, Better Man, Camp, Find Better Man, Spin, The Black Circle and Not for You, bon Jovi, Cross Road Always and Someday I'll Be Saturday Night where the hits TLC, Crazy Sexy, Cool, Creep, Red Light Special and Waterfalls, great songs, Boys to Men Too, singles I'll Make Love to You on Bended Knee and Water Runs, Dry Green Day, Dookie,

basket Case, When I Come Around, Longview, Lion King, various artists, Circle of Life, Elton John, of course, Hakuna Matata, Can You Feel the Love Tonight? With the hits there Music Box by Mariah Carey, which was number one last year, is number two, Dream Lover, Hero and Without You were the hits, and number one Pink Floyd the Division Bell Take It Back, High Hopes, Keep Talking other hits as well,

another stunner. Yeah, absolutely great, great album. Okay, what do you got for nineteen ninety four, Richard In.

Speaker 3

On the space side, there are three flights to Mirror this year, which is a lot. This is now the Russian Federation, so they're sort of gearing things up. The first one, eighteen, has Valerie y Akov on it, who will then hold the record for the longest single trip into space at four hundred and thirty seven days, but of course that won't be until nineteen ninety six. Yeah. On the shuttle side there is seven missions total, two for Discovery, two for Columbia, two for Endeavor, and one

for Atlantis the most interesting one. Most of them are just straight science missions, but this is the in February, the mission with Discovery has Sergei Krikalev on board. It's the first time a Russian will ever fly on the Shuttle.

It's the beginning of the Shuttle Mirror program. One of the things they tested on this mission was direct communications with mir so getting the right radios, figuring out connections and so forth, which will be beginning over the next few years to culminate in actually docking a Shuttle to Mirror and that whole initiative. So it begins in nineteen ninety four.

Speaker 1

I was back when Russia liked us. Remember that, there's this brief interval where, you know, so they liked us because we were giving them a lot of money.

Speaker 3

We certainly were support helping support them to try and go into a commercial economy and you know, open things up. This is also when it's actually ninety three that they made the agreement to do the International Space Station. The US have been trying to come up with space station plan for a while, and so in nineteen ninety four NASA actually opens the Space Station Processing Facility to start

building their components. While the Russians have actually got existing components that were going to be for Mere two that will be turned into the first of the International Space Station components. One more space mission actually is in January. It's one of my very favorites. Launched out of Vandenberg Space Space on a Titan two, the same rocket that they flew the Gemini missions on back in the day,

was the Klementine mission. So what was Clementine. Clementine was actually a test article built by the Ballistic Missile Defense Group, So jump all the way back to the eighties and the full on Cold War and Ronald Reagan and he had his Strategic Defense Initiative, which diominally called star Wars, and in that was this idea that it would be this array of satellites that would monitor for any launches of ICBMs and then other satellites that could actually shoot

them down. And they had great names like Brilliant Pebble. Well, Clementine was actually a prototype Brilliant Pebble, a small satellite

with maneuvering systems and great sensors and so forth. And after they finished the test article, but the program had been shut down, the Blistic Defense the Initiative group basically said an Astley, you want this thing, and they're like sure, and they repurposed it into an explorer satellite and its mission was to hear that fly to the Moon and then it was going to fly on from there to intercept a near Earth asteroid, at which point it would be lost and gone forever.

Speaker 1

I see, I see. I thought it was because of smell like oranges.

Speaker 3

No, they literally backed into the acronym based on the fact that they were going to losing them forever. Now. The Clementine mission, they never made it to the asteroid. They did get to the Moon, and one of the experiments they did was bouncing radar off of the poles

of the Moon. Even going back to the Apollo Ara, there's this idea that there might be ice on the Moon, but there was absolutely no proof, and so there was an attempt by Clementine doing these radar experiments actually bounced them, transmitting them from Clementine off the surface of the Moon to Aricibo. The old gigantic dish it's now gone in Puerto Rico, and the reflectivity that got from it was an indicator of hydrogen and austri There was some proof that there might be ice and lots of it in

shaded craters on the poles of the moon. So that was sort of the first indications that came from the Clementine mission, and very much your swords into plowshares kind of took old Cold War tool and turn it into a science project. Now, okay, cool, that's all I got for space. Let's talk a little bit about computing at a time. Of course, the Internet is emerging rapidly. In nineteen nighty four is a year that the World Wide Web Consortium is formed, with offices in CERN and at MT,

with Tim berners Lee heavily involved. A guy named hack On wim Lee proposes a thing called cascading style sheets, and none of us are afraid enough at the time to know we should stop that. Man. Oh wait, did I say that? I thought that's too bad. And Rasmus Laerdorf publishes the first specifications for PHP PHP, the acronym being PHP Hypertext Processor because recursive.

Speaker 1

I thought Rory Blis's definition was good. Pretty hot programmer.

Speaker 3

There you go a group called the Enterprise Integration Technologies which founds a group called commerce Net, and they do the first credit card transactions.

Speaker 1

On the Internet. Yep, I remember those days.

Speaker 3

Which causes by the middle of the year, pizza Hut to stand up, the first online pizza ordering service, which is actually the first online purchasing service of any kind.

Speaker 1

Really. Yeah.

Speaker 3

Also the year that the Snopes website stands up to debunk everything everything, yes, elsewhere. In computing, MS DOS six point two to two is released. That will be the final version of m STOs NT three five we had three one last year and Hour up to three five and Windows three one one Windows for work groups. Oh, integration with networking, all that good stuff. IBM releases OS two WARP, which will be the last version of OS two. Intel announces a sixty four bit processor called Itanium. Yeah,

we'll eventually known it as Titanium. And over on the risk side, Acorn out of the UK releases a risk PC using arm v three and both people who bought it loved it. And on the storage side, sand disk release is the format come back flash, which generally is flash memory, although there are miniature heart drives made in that form factor as well. And Iomega releases the zip disc.

Speaker 1

Oh god, yes, bringing me back here. I had several of.

Speaker 3

Them ninety megs Man ninety megs and a little camera company called Sony releases a video game console called PlayStation. Yeah, that's nineteen ninety four.

Speaker 1

I got one, well you forgot I got one Netscape Navigator Escape.

Speaker 3

Wow than Escape Navigator is not out yet. There's still mosaic at this point. It'll be next year.

Speaker 4

Okay, So I was oh it says it says one. Oh was released in ninety four.

Speaker 3

I think it was point oh nine.

Speaker 5

And then Yahoo was founded, and you forgot a good album, the Downward Spiral, Oh boy, okay, and also music for the Jilted generation Prodigy fantastic one. You forgot a fantastic film, pulp fiction. Okay, I forget that. Oh boy, Oh he's forgot a great show. The one called Friends appeared that Oh.

Speaker 6

Yeah, I said friends blood friends. Oh you did, okay, I didn't hear friends, Yeah, I called that out. Let me think anything else, anything else. I want to make sure we got yacht one Station Doomed two, Warcraft Orcs and Humans is released in Final Fantasy.

Speaker 1

There was a website that came online in nineteen ninety four. Maybe you've heard of it. It was called Carling Gary's VB homepage.

Speaker 3

I visited that page, yeah.

Speaker 1

Nineteen ninety four. It was one of the first websites that was, you know, for that kind of thing, and it was definitely the first website for Visual Basic. The only other things were Microsoft's MSDN website, which had, you know, the stuff that you would expect them to have, but this was the first Visual Basic website and it just took off like crazy. Yeah, I guess that's it. Yeah, all right, so let's do Better know framework roll it awesome?

Speaker 4

All right?

Speaker 3

What we got?

Speaker 1

So we're talking about squad with Brady today for sure, and Jeff Fritz and I did an episode on Coded with AI episode eighteen where he went through and did a demo of squad. Nice. So if you want to see that, that's the better know framework for this for the show, and it'll be on the website.

Speaker 3

Cool.

Speaker 1

Yeah, it's this is how I fell in love with it and since I've been using it. We'll talk about that with Brady in a minute. So who's talking to us? Richard Harby comment off the show nineteen eighty nine. The one we did with Ben de Tree talking about the roll of AI and secure software got a lot of comments on the show and our friend Codepeuter himself, Richard Rukima said. Richard said it building with AI is not

about writing code. The skill is context management. My approach is to give AI the context of the application, but then focus its coding effort in the architecture of the design. Yeah, the architecture does not minimized change blast within the layers of the architecture, and it's also a container that the AI can be limited to. This happens the I agents need to work together to get multiple changes done at the same time or within dependencies that normal work already has.

But that's a workflow. Context sounds like managing a team, doesn't it. Where is that product managing a squad?

Speaker 4

Anyway, as funny as.

Speaker 3

I thought, it was particularly relevant Continuing today's subject, Yeah, Richard Courts regular on the show. I'm pretty sure he has a copy of music Code By. But if you'd like a copy of music Code Buy, I write a comment on the website at don Arocks dot com or on the facebooks. We publish every show there and even comment there in a read in the show, we'll send you copy music Go buy, and.

Speaker 1

Music to code By is still very popular. You can get it at music too Coode by dot Net. It's twenty two tracks, twenty five minutes long, designed to keep you in a state of flow while you're writing code and uh Yeah, let's introduced Brady Gaster based near Seattle. Brady aspires to make it easy for dot net developers to party in the cloud as the product manager behind Visual Studios, Azure, Write, Click, Publish, and Connected services features.

He also helps with Aspire tooling support in Visual Studio and Visual Studio Code. And we're not designing new tooling features or writing things like you know, squad or building demos with teammates, He's trail running five k's, parenting two teens, mixing new one seventy four bpm drum and bass sets, or producing his own electronic music.

Speaker 5

Welcome back, Brady, Thanks Ally, how's going? I should probably

send you my new job description. I've moved on from the VS and dot net crew, who I love Dearly, my favorite framework of all time, and I'm over in Ryan Fraser's organization and the app modernization team, specifically the GitHub co pilot modernization product Great working on things like the uh working closely with the dottnet team on their update tool, as well as some stuff on the Java side and vs code, and then we have this cool modernized CLI that Timothy J and Hunter shot off at

Ignite that we've been bringing.

Speaker 4

Forward and we'll be doing more stuff with over the next few months. That's exciting.

Speaker 1

So yeah, I've been using gi hub Copilot Cli to do stuff non code related, you know, diagnosing problems with drivers that won't load, cleaning up Azure resources that I haven't used in a while, things like that. It's it's like AI for PowerShell. Really, it's really Yeah, it's amazing. So let's talk squad.

Speaker 4

Sure.

Speaker 1

Yeah, first of all, I thought you might have been working on this for years, but it was just like a couple of months or something, right.

Speaker 4

Not even that, dude.

Speaker 5

Uh So, I have been tinkering with like various agentic tools and frameworks all last year, specifically around the spire, you know, because that was where I was coming from the.

Speaker 3

Description you just read in theory it is your job.

Speaker 4

Yeah, yeah, in theories job.

Speaker 5

Uh So what I was trying to do last year was to figure out uh yeah, because I work on the apps an agents team in Korea, so uh yeah, you agents are kind of important to us. So all last year I was trying to spin up essentially your like file new project with a prompt for Aspire devs, you know, to kind of say like I want to build a Kintoso University or whatever, and like it boof like build your thing. And we tried a bunch of experiments with it, and you know, the tech was evolving

a bit. There was a lot of different agentic frameworks out there, and you know, there were a different states of maturity. I think we tried five six different ways, and at the end of the year, like the Microsoft Agent framework took off and started using that and got

got a lot further. But earlier in the year, when I moved over to the App Organization team where we're looking at, you know, some of the systems and whatever, actually was talking to some younger pms inside of core A I who were you know, like, you know, three of us were consultants for a while. We've worked with you know, the tech in the industry, and you know,

then we went on and did other things. But a lot of folks are new in career and they walk up and they're like in the App service team, it's like, hey, what what do we do here. You know, I have a product idea. Who should I talk to? You know, I thought it would be cool to spin up a couple of agents, you know, each representing you know, an area of the of the of the product line, and say, like, you represent app servers, you represent container apps, you represent this,

you represent that. Go search the internet, go look at these products, get hubs and go look at their Reddit posts and look at their blogs and kind of assess what their products do. And build an agent, you know, based on what you think. You know, somebody in that you know, a PM and that product would would say their products, you know, issues and opportunities are and when ill. And it wrote pretty good instructions on its own. You know, well that was pretty cool. So we'll do that for

every product in core AI. So about twenty about twenty minutes later, I had two hundred markdown files, you know, and I was like, this is neat, you know, this is kind of cool, right, So I asked a few people I'm trying to do some stuff with with get ub co pilot cli that we can to make it spin up multiple agents. I think it was just pret fleet pre squad for all of it, you know, and this it was like middle of January, and you know,

it just wasn't It didn't feel right like something. It didn't look the way I'd seen it look on other people's screens. And I was like, this is this is? It looks like it's just Copilot talking to me. It doesn't seem like it's multiple agents. So I'm paying the copilot cli kind of teams thread that we have, and I said, could somebody's shown me a video like how

to do this multi agency thing? And of course some person way smarter than me dropped in a prompt and the prompt said, you know, fan out and do blah blah blah, and I ran the prompt and all of a sudden, I saw those agents appearing. So then I said, oh, okay.

Speaker 3

Like, is that the magic word? Fan out?

Speaker 5

That was the magic I think it kind of is one of those magic words in Squad. It's definitely a magic word. I think Carl's probably figured that out, especially have that in our docks pretty pretty thoroughly.

Speaker 3

And here I thought the magic word was please.

Speaker 5

Please, so we uh, you know, I did some experimentation with it, and I remember it kind of got working on my desktop and I asked it a question, like, you're this product, you're that product, whatever, what should we do in twenty twenty six?

Speaker 4

And it wrote a pretty good report.

Speaker 6

You know.

Speaker 5

The report wasn't groundbreaking. You know, if you were to scour a GitHub for a couple of days on all these products, you would figure out what it.

Speaker 4

Said, you know.

Speaker 5

But I got pretty enamored with it. I think this is kind of cool. And timing's weird. Timing is a strange thing. So I was sitting here at my desk in the Purple Room and I got up from that experiment when did my daily run and was raining that day, so I didn't go outside. I did it on the treadmill, and I watched a show on molt book and I started thinking, what if I put these two ideas is together?

Speaker 4

Right, you know?

Speaker 5

And you know, I'm paying an executive friend of ours, and I said, hey, I had this thought, you know, and I put these agents together, and I asked them a question, and they kind of went off and talked about it, and they came back with a paper, and that executive said, do it for these products.

Speaker 4

Now.

Speaker 5

I was like, maybe I have something, you know, So I did it for those products. Send it over feedback was keep going.

Speaker 1

And if they're just writing exploring and writing documentation, right, they're not writing code or anything.

Speaker 5

Really, what they were doing is they were these agents at that time were scouring GitHub. So so like they would go into like all of the products gethub repositories. I kind of said, only do this for products for which you can find their GitHub, their blog and some Reddit commentary. You know, if you if you can't find a lot of information, just kind of don't don't do

that one. Right if if they've got an active GitHub repository, prioritize their issues, you know, so you know, it's get ub co policy Uli surprise, it can talk to get up. So it goes through and it finds all these products in all these issues and writes essentially instruction files. Who better writes instruction files than a human ill alone. So essentially I just said, write a bunch of instruction files for a bunch of agents. Now spin all those agents

up whenever I ask you a question. The thing that blew my mind at that part, this was like pre squad, like a couple of hours before squad. The thing that blew my mind at that point was if you ask the coordinator copilot a question. It can go and it can go. Oh, you asked me a question that touches these products. I'm going to give you an answer back based on those products. It was really neat And I said, okay, I got to turn that inside out.

Speaker 3

Wow, so it's got some sense of coordination right, Yeah, knowing where resources are.

Speaker 4

Yeah, it was neat.

Speaker 1

These agents also have discussions with each other, sometimes disagree, and then may give you options or recommendation based on the consensus.

Speaker 5

Yeah, it's amazing they do reach consensus. And the way the instructions for the system, the squad instructions are written. An agent tries a thing and you know, fails at that thing. I think, I think they can try twice, and then they are not allowed.

Speaker 4

To try again. They're locked out.

Speaker 5

So they are locked out from trying again. Another agent has to try, and when that agent tries, they both write in one another's history what they learned. So your agents in your repo grow in terms of how efficient they are with your repo over time.

Speaker 4

Now, I have to be honest with you.

Speaker 5

You mentioned context windows that will bite you later. So the agents will kind of clean up as they go. First, each agent only had like one file like charter and everything it learned it would write in there, and then a lot of the other agents had other files that they would write like decisions DOTD That one gets pretty long. All those files would get long over time, all the

decisions that the agents make and whatever. So over time we've implemented things where it gets split into multiple files. You know, if you think about short term memory and long term memory, you know, like like you know, the agents only need the short term memory to operate. All of a sudden that they have a problem, they can go back to their history and be like, oh, oh, I remember that, and then they can bring that back.

They'll also manage where their memory needs to live. They've got kind of hot cold memory, so they'll put things that they're not using kind of off to the side. And this is kind of Neat one of the evenings that I was working on it pretty late, I was looking at some of the stuff Shane was doing with WASA and sense some of the products he's doing around using agentic skills. H and I started thinking skills are

really useful in this context. It's really just a set of markdown that tells the agent like what's the allies to call or what tools to call or whatever you know, and and the markdown for that skill kind of boxes the agent in to do that one thing. Hey, here's a new rule, squad members. Don't guess it stuff. If you find that you've done something twice, the next time,

you do it right, just skill right. So what they'll do is they'll actually I claude or copilot compliance skilled a disc and they'll put it as low confidence, and then the next time an agent does it, they leave it at low confidence. The fourth time an agent uses that skill and does not change that skill, they'll raise the confidence training and then three more times later they'll raise it again. So essentially they make those skills better over time. I have a skill. I'll be very frank

with you. I have a skill that I will clone the squad repo once in the evening the cut the origin off. So I'll cut the remote off because it does commit very quickly back and I'll run a report to kind of see how many issues, pull request and whatever else are being done by public guid up depositories that use squad every night. A number gets pretty big every night. It's kind of cool, but I'll I'll cut the origin because squad will rapidly commit back because it's

committing its memory back. You can control that behavior, you know, whenever you fire up your squad, you can go, please don't commit unless I tell you too.

Speaker 4

Please don't push unless I tell you too, that kind of thing.

Speaker 1

So I'll still like that. Squad is project specific, so it's not like system wide, you know, like co pilot is. You have to install it at the project root and then it builds the squad files and you can tell it, you know, to name your squad based on popular culture things. Jeff Fritz used the d C Comics Universe to name his squads. I used musicians that have played in or for Steely Dan.

Speaker 3

Nice, very specific.

Speaker 1

So my job is script expert was named Fagan Nice.

Speaker 4

That's good. That's good.

Speaker 5

That's one thing that I find it find interesting about it. You know, I don't know if I think Richard knows this. My background is actually in psychology, a counselor, and I've always really loved studying the way organisms communicate and learn from one another and whatever. So this has always been

fun for me. What's really fun is watching the way people talk about squad, you know the way like all just said, you know, well, actually, you know, we have a squad team where a lot of the folks that work on squad kind of all over the world are they're twenty four hours day. You know, we just do this or just did this, And then all of a sudden the language changes, Oh, Kawayashi just did this, Finster just did this, right, you know they're talking about their squad members.

Speaker 3

Are you giving software agency at that point? Is that what's happening?

Speaker 5

That was the idea, man, That was absolutely the idea. So I started, you know, there's a there's I've got one repo that I posted about chat SHPT was looking at what I was doing in squad and it started kind of commenting that it looked like it was an implementation of Conway's law. It was like, that's not exactly Conway's law, you know, But the more I ran these tests more it was like, no, no, no, it's Conway's law. And it was like, I thought this was kind of weird, like.

Speaker 3

Like Conway's law being everything you make reflects the organization that makes it. If you have three teams working on compiler, you get a three pass compiler right right, So.

Speaker 5

Yeah, so I found that be interesting. So I, you know, I said, I don't know if this is really any good, like like, let's let's run some tests. So I ran some tests. And essentially the test where take a small a small task like build build project, food snak game or whatever. You know, build build build task using squad you know, a team of specialized agents once the assess agent almost said person again, uh one job script agent, et cetera, et cetera. You know, so so one of

each of these skills. You know, I'm waiting for somebody to do the uh special set of skills thing. But you know, when you when you throw a task at a team of specialists, what is the comparison to if you throw with that same task at a team of generic agents. And in this case, it was a small, you know, small thing like build build small app, but it was roughly twenty percent and basically what you if

I could run through the metrics. You can't really look on screen, but you look at the metrics, uh, you know, like the specialist there were one hundred and two tests, the generics there were one hundred and eight. Not always a bad thing. All the tests passed in both areas. All source files changed on the specialist seven whereas on the generic it was nine. Lines of code for the Specialist was thirteen forty five whereas the Generic was sixteen hundred.

Model file is in task JS lines two forty versus two ninety eight, route file lines versus one forty four, migration file lines. I thought it was interesting thirty one versus fifty nine, test file organization three versus five, and then separate audit model and no versus Yes, so it kind of went through some of the different things, like it was a little bit faster with the Specialist, the code was a little cleaner, and it definitely felt like

it was more organized. The argument there was, this is a small initiative that you ran for like ten to fifteen minutes. What if it was a modernization exercise, sure, but if it was, like, you know, a large scale project like I don't know, community server or something like that, you.

Speaker 3

Know, forty eight hours, look like right, yeah, yeah, wow.

Speaker 4

So that got pretty interesting. That's pretty cool.

Speaker 3

But it also speaks to a pattern I think we're going to see where over time, you're going to have a set of agents specific to an application, like as a product goes into maintenance, the tooling set's going to know more about the software than a person anymore. And and the fact that it's what you've worked through multiple versions with these tools means it's going to give you a pretty strict guidance on how to add a feature or evolve the code at all to the betterment of

everything like that. In some ways, one would argue, unlike most software, this your product under this environment will get better version to version because the tooling will get stronger.

Speaker 5

Yeah, that's the that's that's the idea, that's the aim. You know that contact window will bite you every time, dude, Like it really really will. And you know one thing that people talk about with the context window. Let's take Opus or Sonic as a for instance. You know you have a two hundred thousand token limit on all a message. So you send a message, if that message is going to write a novel, you're gonna blow your window. So you're not gonna be to get all back because you

get that limit. So let's say you have a squad, say you've got a squad five, Well, guess what your your window per message is a million. Now, because each one of the agents has two hundred thousand, so they can go back and there the other little thing and have their conversation and come back. Now do you use

more tokens? Yes, yes, you will use more tokens. You know, Jeremy just posted an interesting Twitter where he's got like a it looks like a hockey stick, you know, Like he started using squad and it was a vertical line. And I've talked to some folks who start using it. They see that experience and then it drops because the agents get better so they have to work less.

Speaker 1

Well, you also pay. We get up co pilot cli by the request, not by the token, so that's that's good. I mean it's more a fit shouldn't request wise, but token wise. You can see that in the demo that Fritz and I did. It was quickly over a million tokens.

Speaker 5

But I think the benefit the thing that I would wonder I'd love to do research on this. If you're having a single threaded conversation with Copilot, which is you know, fantastic models are fantastic. If you're having that single threaded conversation and you're not a prompt engineer, are you going to be as efficient as if you were to ask a bunch of experts, experts, go solve this problem for me. You know, I right, so far, I'm so far. I'm compelled me too, you know it feels Yeah.

Speaker 3

Process of communicating with experts is not simple either.

Speaker 4

Well it's not.

Speaker 3

Maybe we should take a break.

Speaker 1

Yeah, let's take a break. We'll be right back after these very important messages, and we're back. It's dot net Rocks. I'm Carl Franklin, That's Richard Campbell, and that's Brady Gaster. We're talking Squad multi agent team that you can deploy and employ for or your projects that will help everything go real smooth. I wanted to tell you that I immediately got to work with Squad and quickly found out that I had an old version of GitHub Cli that

it didn't like gethub copilot cli. So I updated that and got in the pre release, which means that it'll automatically install new releases when they come out, and boom, everything worked. The app that I'm writing with it, and I can't believe it, but I've only been working on it for a few days in my spare time and it's almost done. Is a you're gonna like this, Brady it's a remote daw digital audio workstation, so it doesn't have all the features of a digital audio workstation, but

it looks the same. Like it's got tracks, and you have a remote artist at a home studio whatever, and they connect and you connect them with an authorization, and you play. You load up a backing track, which is you know, a stereo track of what they're going to perform to, whether it's singing or playing keyboards or guitar or whatever. And then you basically, you know, you can control their devices and your devices and which devices are

going to be used. There's automatic talk back which you can mute, and then you basically push the record button and streams to the artists and they hear, you know, the backing track, and then they record and you see the waveform just like when you're recording locally, and it

syncs up. And that's the that's the hardest thing that I had to do was making the synk happen because and this caused many discussions between the agents about you know, how are we going to do this with the math, and maybe we have to do some tests and figure out because all of these little things. Then in the jobscript audio basically take time. Yeah, and so how do you estimate that if you don't do a test and you know see what that timing is, because it's going

to be different on every machine. So but that's where we're working.

Speaker 5

On you and not talked about it. You and I talked about a system a long time ago like that. It was an idea that I brought you when I was the signal or you know fanboy. I think I came up to you in Orlando and I was like, so, I want to talk to you about this this thing. I was thinking about building a signal R thing where we would basically transmit MIDI over Signal R so we could have like remote sessions. And you were like, do

you know the do you know the latency tolerance? And I was like what you were like point six milliseconds and I was like it's not going to work and you were like, no, it's not going to work, and you were like and you're a drummer, so it's like point three.

Speaker 4

Yeah, I'm excited you're doing that. I want to see that, mate. It's going to MIDI.

Speaker 1

If you have a long MIDI cable, you're going to get some latency. Let alone the Internet. Yeah, I've done some many things over the Internet with UDP and it's fun, but it's not real time. There's no way.

Speaker 5

Yeah, yeah, yeah, Pete told me to. He's like, no, dude, don't you're gonna don't.

Speaker 4

Don't do it.

Speaker 3

People have tried to clear the Internet is not real time.

Speaker 1

I told you about that conversation I had with Should I say his name?

Speaker 3

All right, well your call man. It's a famous story for me anyway.

Speaker 1

Yeah, it's a famous I won't say his name, but it was back in early days of dot net rocks and one of the listeners we had a we had an IRC channel open, and he says, hey, this, I'm the web guy for this artist right who everybody would know who he is. And he wants to give you a call like what Yeah, he wants to do remote recording and jamming over the internet. And so he calls me. I'm amazed, you know, and he says, I want to

do real time jamming between California and Europe. And I said, when you say real time jamming, do you mean one, two, three go and we play together? And he said yeah, and he said that's not going to happen. You're constrained

by the speed of light. Yea, even if you had a fiber optic cable stretched between California and Europe and you you know, light a bit at one end, it's going to take time to get to the other end, and then that person has to hear it, respond and send it back and by the time it gets back to you, it's completely useless. So he abandoned that project. But it was a fun conversation to have. You have

to persuade him. I did, and he was He started talking about Apple coming out with some software and yeah, I'm sorry, but Steve Jobs can't change the laws of physics.

Speaker 4

No, it's not gonna work. It's like that commercial. It's not gonna fit be late.

Speaker 3

It's not just a law.

Speaker 1

So I started this by saying, I used I'm using squad to develop this Apple cation and it's just amazing, like how fast things are coming together and how I can give it real feedback, Like, you know, why are why are you taking so much vertical space? We need this space for track, So let's consolidate and put some of these buttons on the same place so they're not taking up all this room. Oh yeah, yeah, good idea. Boom done.

Speaker 5

Just great, that's cool, that's cool. My my favorite one is, uh, I've done this a bunch too. I'm gonna give you some bad news here in a second. So my favorite one is the hiring. You know talked about hiring. Yeah,

so I don't you might not even know this. So let's say you either do you know file new squad if you will, or you injected squad into an existing repote and they look around and they go, this is what or the coordinator looks around and says, this is who you need and you go cool, cool, cool, and you you add those squad members to your team and you're partying.

Speaker 1

You know.

Speaker 5

I'm like, you're you're off and running and everything's good and and and uh, you know, all of a sudden, you're like, shoot, like, every single time you make a diagram, you'll you'll see this.

Speaker 4

They do this.

Speaker 1

It draws me.

Speaker 4

Every time you make a diagram, you do it in Askei art in the Marktown. Why would you do that, dude? Like do it in Mermaid, you know, speaking of which.

Speaker 5

None of you were good at this. So would you please hire a Mermaid author and do your best to go and learn? Like all the color codes, all the tricks like how to organize the squares, like go look at like Mermaid standards and practices and like the best way to do Mermaid diagrams. Hire a Mermaid you know, you know, designer to my team. Naming it's weird depending on you know, your your age, you think of like the Little Mermaid as your universe or ten or whatever.

I had no idea, you know what I mean, I have no idea how you would name that one. But you know, I bring that Mermaid author to everything because like they always do ASKI art, and I'm like, don't ever do that again. Make it right in your charter. Don't ever do ask you art anything diagrams. Hand it to you know, Ariel or whoever, and and let the Mermaid author do it.

Speaker 4

All, okay.

Speaker 5

So I found that that was something that I had to do in every squad, and I was like, gosh, it's sort of irksome, you know that, Like I have to do this in every one of my squads, the same thing a git operator, you know, like I'll knock the cat in every squad because like I don't like doing all the good stuff, So I'll have somebody who's a GIT expert in each squad. You can hire a squad member later. You can also send them on vacation.

They go, they get archived that you can bring them back with all their knowledge later if you want to. But you know, some people started saying, like I do the same thing, Like I have this one that I'll bring to every project. And then people started saying the obvious things. Could I just have them on my machine? Can I can I instat CLA locally?

Speaker 4

I'm like, kind of not what.

Speaker 1

It's for, and like it's project specific.

Speaker 5

I started, yes, project specific, guys, like what you know, everybody that used it. You know, It's like they're sort of this like like the phases they go through. The first phase is all this is cool. The second phase is oh, I love the cast members and the naming.

The third phase is wow, this is really powerful. The fourth phase is I want this to do more than just inside my repo, right, And that always goes through that And that fourth one is where we came up with the idea of extending the entire capability outside of it just being one JavaScript file and a whole bunch of markdown that copilot knows what to do with inside of your repo. We've replatted it using typescript on top of the co Pilot SDK, and we've split it into

two packages. So now you have a CLI that's built on top of the co Pilot SDK, and that CLI just has different commands like higher. It's got a special command called higher. You can like give it and give it the thing you want, and you can there is that there is a rebel experience. It's quite poor at the moment. That's why I've been really slowly to release it.

Maybe by the time the show was out of it to be out, I just wanted to experiment with the idea of using the copilot s and some cars probably seen. I think you emailed me a couple of days ago. The squad doesn't always fire. I have to say team, I have to say fan out, I have to say Kobayashi, I have to say whoever, and then it will do the thing. But Copilot really likes to help me, and sometimes I want Copilot to not help me. I want

my squad to help me. So I thought, well, let me just build a repel where we just sell on top of the SDK. Copilot does all the work in the background. But the squad does their coordination themselves. Surprising how many other issues that relies on me. So I've been working through that. But you know, I said two packages, so you should probably guess what the second is. Squad's going to have its own SDK, so you'll be able to build things using the Squad SDK. You'll be able

to inject squads into things. So wow, it's going to be fun.

Speaker 3

So I see some sort of configuration as code for setting up squads for new projects coming then.

Speaker 5

Yeah, well you also be able to do You'll be able to install it globally, so you can actually install the squad Cli globally, which means that you can do squad in it dash dash Global. You can have your own personal squad and they go from project to project with you, so I can take my Mermaid Diagram author with me to every project as a consultant, and you could.

Speaker 1

Still customize project on a project basis, like if one project is in Blazer and another one is in View, obviously you want different agents.

Speaker 5

So I could have my own team and just bring them from project project as I want to. Within two three days of us starting to use this internally, one of the guys on the Akas team.

Speaker 4

James Startivant had built a tool.

Speaker 5

Called Rally Rally or Squad, and the idea behind it is he's doing a lot of work on a lot of repositories, so he doesn't want the process of putting the squad in and he didn't want to get store at all, and oh it's terrible, So he would simblink like it was almost like Squad is a service. He would simplink Squad into each repo, run his thing, file

the issue, and then back out again. So it was like the only thing he would do would get into the repo, file the issue in that GETUB repository on whatever team it was, and then pull back out again. So if you think about what that implies, you could use it for securityology, you can use it for you could use it for like filing issues.

Speaker 4

I pained Mike len in one of our mvbs.

Speaker 3

So would you end up leaving like some decision files or skills and things behind in each project that were specific to the project for the next you do set to come in and and sort of have a head start.

Speaker 5

You do you can you can do At first, When I first did Squad, I had this weird guard setup where it would block you, uh, putting your putting your squad into main, like whatever your main branch is, it will block you from putting it in there. Carl, you might want to do an update I just shipped over three. It'll be the last one that removes that block, okay, because that block is actually in the source code as well.

So if so, if the squad looks and sees that block is not on disc, it'll recreate it for you. So you get into this horrible loop of like deleting it and gets recreated every time.

Speaker 1

I like having the option of putting the squad files and a squad folder in the repo or not. You know, I like to have that option. And you know, what I'm thinking of is some sort of tool at the at the command line where I could list my squads and I could name them right, And so if I have a Blazer app squad, or if I have a you know, Windows and a WPF squad, for example, I'd like to be able to select which one that I'm using. That's good, I get to the project.

Speaker 5

That's good, I will get you to file an issue on the repo for that shortly cool.

Speaker 3

So yeah, you can also imagine when you're doing a rally like that. You just look at the project. You know what libraries are in there with packages you're pulling in, you know what squad members you need.

Speaker 5

That's exactly right. I mean the other day I'll pulled one of our and you can also do it in reverse. So you know, I build a lot of demos.

Speaker 1

Right.

Speaker 5

The other day we had this We have this event and the event has a pre recorded demo. That pre recorded demo had some Java stuff and some Dott stuff and you know, I'm so great at Java not so what I You know, we kind of have like a rushy situation. It was like, oh, we got to have the video done and whatever days. What's our sample app? So people were like, well, we could use this sample app. We could use that sample apps like give me an hour.

So you know, I basically fed it. You talk about architecture, pardon me, marketing friends, You feed it all of the features you want to show, and you say, build me a demo app, and it builds the demo app based on the features you want to show. And then we walked through and we just did the thing, and I was like I cannot believe that that worked so well. And at one point one of the folks on the team they said, hey, the way this app is built, we can't show this one feature. You would need to

split it into two projects. Give me five minutes, squad, no problem. It was great and it saved us. I mean, you know how that fire drove can be. You know, like before the demo, you know, so you know.

Speaker 1

The worst thing is tearing apart stuff from projects and moving them to other projects the worst because.

Speaker 4

Yeah, so so that was fun. I mean it can just.

Speaker 1

Look at your dependencies and go and you're done.

Speaker 3

I mean you're taking advantage of the fact that these tools are so naturally detail orient you know that they do read through the lines, they don't fade off sixty lines in the way humans do.

Speaker 5

Yeah, like another one that's fun. Grab a repo that you don't know anything about. You can have the squad tell you about it. Or you could say, hire a revealed JS designer and build me a presentation that tells.

Speaker 4

Me what's in there.

Speaker 5

You go a few minutes later, you're hitting the writer okay, going oh oh that's cool, that's cool, that's cool.

Speaker 1

I gotta I gotta tell you how I started this project. I started by, you know, getting my squad together, telling it what, you know, the skills that I needed. You know that Fagan was the JavaScript guy and all this stuff and his blazer, and I gave it just a one paragraph and I said, here, based on what you know about this, can you write me a document where I can fill out all the specifics of this app in a detailed spec so that we can move on from there, because it's not enough just to you know,

here's a couple of paragraphs and boom go. And it said, yeah, sure. So it built me this mdfile with you know, this goes here, this goes there, what are the decisions that are made? What do these views look like? And it took me, you know, an hour maybe two hours to fill out. And I went back to squad and I said, okay, here's the detailed spec. Let's come up with a plan and come up with phases that we can build, you know, one at a time, and take it from there. And

it did. And we started with phase one and we moved through things. We had to adjust things, and I told it to adjust the adjust the plan and also create an implementation document with everything that it did nice, you know, and so we kept that going throughout the whole process. And from that, when I'm done, I'm going to say, okay, take this implementation plan and create a user manual.

Speaker 4

Yeah, boom hop you're done.

Speaker 1

You create a help file.

Speaker 5

Yeah, and you can even tell it. So this is something you should try next time. So how about what you were doing there as you were writing everything to the docs folder on your disc. So the next time you do that when you start the repo, go ahead and say, you know, go ahead, go into copilot and say, so you're in a get repository because you've started a squad and you're you're in pre personal squad, so you know you've got to get repo, Say go ahead and

create a ge hub repository before this get repo. Go ahead and commit everything you can even say, like in what organization you want it in, and we'll do it. And instead of you saying, create me a pr D, you can say, create me a pr D as a

single gethub issue. Then split that GitHub issue into the individual work items and make sure you label it so that each team member knows what they're supposed to do and it will go off and break all those into issues, and then you can say, Ralph, please start working and

work every issue until it's done. And Ralph is the permanent team member who works like the Ralph flup, he will spin up and he will begin to work those issues and like wake up team members and assign the issues to the team members, and you will see the work getting done. And you could even say, do not commit to Maine directly, always do full request.

Speaker 2

I do that.

Speaker 4

Yeah, so you'll see the issues get filed. So that's cool.

Speaker 1

I didn't want to just let it loose and say, okay, do all these things. I wanted to go in phases and test them out, you know. Yeah, of course, because that's the way I work. I love to work that way.

Speaker 4

Yeah, that's great. Yeah, yeah, it's like spec driven development.

Speaker 1

Phase two can happen until I've signed off on phase one exactly. Yeah.

Speaker 3

I keep thinking about get Hub spec Kit, but I think it's got its own it LM approach too, So you know that the two aren't going to meet.

Speaker 5

Well, it's definitely, it's definitely a different approach. It's a great tool, it's a fantastic tool, but in our case,

you wouldn't sit there and write this spec. You would have a conversation with your team and have your team write this back, and then you would manually tweak the spec or talk to the team and have them tweak the spec, and then have them break it up into work items and have them come up with the success criteria for each one of those issues and then say go, you know, and you're going to have it work issue by issue, or you can have it work as Carl

is saying, you know in like milestone by milestone kind of right.

Speaker 3

And it occurs to me because keep thinking like why do I have a JavaScript agent when I could just have the do everything agent. It's the token problem, right, you want to decompose this down so you stay away from token limit.

Speaker 1

Yeah, because each of these agents live in their own world, right, and they don't need to know the big picture. You don't need to provide all that system prompt right, you know, for they just need to know how to fix a problem.

Speaker 5

Yeah, they know how to do that future And the other reason you never want to have that superagent is that's very hallucinatory.

Speaker 4

Yeah, you know what I mean.

Speaker 5

If you have if you have an agent with no training or no specific constructions or no specific role. They're going to hungry, hungry hippo all the work, right, you know, so like they're going to fight over work.

Speaker 3

And they're going to blow their context in their tokens quickly and not give you results.

Speaker 4

Yeah, the specificity wins.

Speaker 5

I had a call the other day with a gentleman way smarter than me when it comes to all this stuff, and he was like, everybody in an industry knows that, Like that's you know, everybody knows that, like.

Speaker 3

That is the core piece of knowledge. You may have to learn the hard way is you know, you do not want the mother of all prompts.

Speaker 5

Yeah, right, yeah, I mean all this stuff is just object orientation. You know, it's just the same a lot of ways.

Speaker 4

It's the same.

Speaker 3

It's the same composition decomposition. Right, we don't have to get each strategy had a form of decomposition. It's all take smaller bites, right, that's the whole thing. You can eat the whole elephant, but you gotta eat it one bite at the time, exactly.

Speaker 1

That suspice to meat the ball.

Speaker 3

That's a lot of that's what that is.

Speaker 1

So it sounds like you're you're just going to keep going and going and going, and pretty soon, who knows, maybe we'll be running our operating systems with squads or our.

Speaker 4

Whole I don't know, man, I'm I'm whole businesses.

Speaker 5

I'm frankly, uh, it's been a little bit overwhelming, you know. I started the project. I remember I was outside. It was the Super Bowl Sunday and uh gowks and I was cooking something, you know, for people coming over that day, and I had squad working. I've been telling Shane about it, and I texted Shane and I was like, I want to aim squad at your project.

Speaker 4

And he was like, don't do that. I don't no, no, he was like, don't do that. I don't do that.

Speaker 5

I was like, I'm just gonna write a report because I don't want you to write a report. He goes, I have people working on that problems Like it's fine. So I pulled this thing. I aimed a squad at it. I was like, write a proposal for what Shane should do with this project. I sent a proposal like ten minutes later. He was like working, He's in squad. He's suppol request. A couple of hours later, so he's like starting to use it, like during the super Bowl or

something to text each other. And you know, my friends are sitting on the cop so like seem really amped up. I'm like, I think I just released a successful open source project.

Speaker 3

So yeah, well, and you know, did the thing people need, which is tooling, right. I don't need to hear about another model I need. I need a set of scaffolds around how I actually get work done.

Speaker 5

I need a special set of skills. Yes, but I'm happy people are enjoying it. You know, keep the issues coming, keep the great commentary coming, you know, keep the stars coming place. You bet, it's been really fun. I think get hub blog Mike features soon. We're having conversation. But it's been fun. You tell your friends, tell your nerver bets.

Speaker 1

Awesome. Awesome, Brady, Thanks, thanks so much for writing this great tool and sharing it with us. Have fun with it all right, and we'll talk to you next time on dot net rocks. Dot net rocks is brought to you by Franklin's Net and produced by Pop Studios, a full service audio, video and post production facility located physically in New London, Connecticut, and of course in the cloud

online at pwop dot com. Visit our website at d O T N E t R O c k S dot com for RSS feeds, downloads, mobile apps, comments, and access to the full archives going back to show number one, recorded in September two thousand and two. And make sure you check out our sponsors. They keep us in business. Now, go write some code. See you next time.

Speaker 4

You got JAD middle vans

Speaker 3

And

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android