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