درباره این اپیزود
Sam Alba, co-founder of Mendral, joins the show to discuss their new AI agents that act as “junior devops engineers” against GitHub Actions, security, failed tests, and more.
Check out the video podcast version here: https://youtu.be/zHmE6VpWD7o
🙌 I've launched the Agentic DevOps Guild, which is my premium community for accelerating your AI adoption for DevOps, CI/CD, platform engineering, and SRE. It includes courses, regular meetups, workshops, and mentorship. Join the Guild and become your team's leader in AI for infrastructure automation https://www.bretfisher.com/theguild 🍾
★Show Links★
Creators & Guests
- Bret Fisher - Host
- Beth Fisher - Producer
- Cristi Cotovan - Editor
- Sam Alba - Guest
You can also support this podcast by subscribing to my YouTube channel and my weekly newsletter at bret.news!
Grab the best coupons for my Docker and Kubernetes courses on Udemy.
Join my cloud native DevOps community on Discord.
Grab some merch at Bret's Loot Box
Homepage bretfisher.com
- (00:00) - Introduction
- (05:16) - Why CI Needs Agents
- (18:01) - How Mendral Learns and Automates
- (42:04) - Trusting Auto Merge
- (49:35) - Guardrails And Delivery
- (58:00) - Harnesses And CLI Future
- (01:09:10) - Future of Mendral
در این اپیزود
یادداشت ها را نشان دهید 🔗
رونوشت 🔗
00:00:00,000 --> 00:00:03,889
It's a bit of a shortcut to
think AI non deterministic.
2
00:00:03,940 --> 00:00:06,820
We need to be deterministic, so
we shouldn't use AI for that.
3
00:00:07,180 --> 00:00:13,070
I think the right analogy is AI has the
ability to replace human beings on certain
4
00:00:13,070 --> 00:00:15,250
tasks or help human beings augment them.
5
00:00:15,365 --> 00:00:19,785
So it's not about replacing, everything
that people are doing, but in terms of,
6
00:00:19,905 --> 00:00:25,841
of analogy, it's really about building
an agent that can behave and think and
7
00:00:25,871 --> 00:00:27,941
act exactly like a human being would do.
8
00:00:28,221 --> 00:00:31,681
So, for instance, your platform engineer
or your DevOps engineer, working for
9
00:00:31,681 --> 00:00:34,121
you is actually non deterministic.
10
00:00:34,211 --> 00:00:34,851
Humans are non
11
00:00:35,268 --> 00:00:36,478
Humans are non deterministic.
12
00:00:36,568 --> 00:00:37,188
Right.
13
00:00:40,982 --> 00:00:43,862
This is the Agentic DevOps Podcast.
14
00:00:43,922 --> 00:00:49,152
I'm your host, Bret Fisher, and today
I have my guest, Sam Alba of Mendral
15
00:00:49,615 --> 00:00:55,562
on Sam goes way back, uh, one of the
early devs at Docker, co-founder of
16
00:00:55,562 --> 00:00:57,682
Dagger, and now co-founder of Mendral.
17
00:00:57,722 --> 00:01:03,284
So he's been focused on Cloud
native and now Agentic products
18
00:01:03,284 --> 00:01:05,954
for 15 plus years at least.
19
00:01:05,954 --> 00:01:08,728
And this is a wide ranging conversation.
20
00:01:08,728 --> 00:01:11,338
We mostly focus on Mendral, the tool.
21
00:01:11,338 --> 00:01:16,498
And the elevator pitch, I guess, that I
would give is, this tool currently looks
22
00:01:16,558 --> 00:01:20,938
at GitHub, it's focused on GitHub Actions
right now, but GitHub as a platform,
23
00:01:20,938 --> 00:01:24,418
particularly on actions and the workflows
and the events that happen there, but
24
00:01:24,418 --> 00:01:29,818
not just actions and it tries to act like
a DevOps junior engineer essentially.
25
00:01:30,028 --> 00:01:34,458
It's one, one of the closest, if not
the closest thing I have had as someone
26
00:01:34,458 --> 00:01:38,718
who focuses on GitHub Actions and
CI in there and just administrating.
27
00:01:38,973 --> 00:01:43,803
And managing that platform for DevOps
teams in particular, uh, it feels like
28
00:01:43,803 --> 00:01:47,673
the closest thing to an AI buddy that
is constantly looking at my GitHub,
29
00:01:48,378 --> 00:01:52,968
finding problems, not necessarily in the
code that the application developers are
30
00:01:52,968 --> 00:01:54,948
making, but in everything else around it.
31
00:01:55,368 --> 00:02:00,378
The linters, the testing infrastructure,
the GitHub action workflows and those
32
00:02:00,378 --> 00:02:04,578
pipelines that are happening in there,
the logging events, uh, anything
33
00:02:04,608 --> 00:02:09,378
misconfigured in security that dependabot
and renovate stuff, like just all the
34
00:02:09,378 --> 00:02:12,048
stuff that is focused around the code.
35
00:02:12,603 --> 00:02:16,413
For managing the platform for
storing code, running workflows
36
00:02:16,413 --> 00:02:18,993
and automations on that code,
and then eventually shipping it.
37
00:02:19,303 --> 00:02:22,813
They operate in this middle space
between the developers and the
38
00:02:22,843 --> 00:02:25,153
production deployments in infrastructure.
39
00:02:25,543 --> 00:02:27,223
And I think that's a sweet spot for me.
40
00:02:27,223 --> 00:02:29,653
Like that's exactly what I
wanted to talk to Sam about.
41
00:02:29,923 --> 00:02:33,823
And we spend quite some time digging
into the use cases for this thing.
42
00:02:33,823 --> 00:02:38,413
I actually run through some of my own
experiences because I, they onboarded
43
00:02:38,413 --> 00:02:43,648
me to the platform over a month ago, so
I've been using this thing irregularly,
44
00:02:43,888 --> 00:02:49,168
but as a single operator of over a
hundred repos, now, in my own GitHub,
45
00:02:49,498 --> 00:02:53,968
some of those are actual infrastructure
things in production for my own use, but
46
00:02:53,968 --> 00:02:58,708
also a lot of examples for my courses,
a lot of demos and sample tools and
47
00:02:58,708 --> 00:03:00,833
sample code that I'm have to manage.
48
00:03:00,833 --> 00:03:03,053
I treat this like my operations, right?
49
00:03:03,053 --> 00:03:06,923
So I'm doing the dependabot, I'm
doing the security reviews of things.
50
00:03:06,923 --> 00:03:09,083
I'm automating things with GitHub Actions.
51
00:03:09,473 --> 00:03:14,453
So while I'm not necessarily the
picturesque large team, managing
52
00:03:14,453 --> 00:03:19,643
large, big projects on there, I do
operate my own little business of one.
53
00:03:19,693 --> 00:03:22,148
I operate that in a very
similar fashion and I need help.
54
00:03:22,703 --> 00:03:28,103
I need a lot more DevOps help than
I admit, because I need to operate
55
00:03:28,103 --> 00:03:31,793
my business and I don't necessarily
have time to manage the platform
56
00:03:31,793 --> 00:03:35,213
automation stuff around my code.
57
00:03:35,303 --> 00:03:38,183
And that's really the problem I think
that Mendral's trying to go after.
58
00:03:38,183 --> 00:03:42,263
So we break down what it does, what
they're doing as an early stage startup.
59
00:03:42,263 --> 00:03:43,853
They just graduated YC.
60
00:03:44,733 --> 00:03:49,923
And we then get into even more details
around AI and because they're building
61
00:03:50,463 --> 00:03:54,273
today and they're graduating just
a few weeks ago from Y Combinator,
62
00:03:54,663 --> 00:03:57,933
they are one of these new AI
companies that are building with AI.
63
00:03:58,113 --> 00:04:01,713
They're using AI in the product
and their product ships AI
64
00:04:01,713 --> 00:04:03,933
features to us as the users of it.
65
00:04:03,933 --> 00:04:06,783
So they're kind of the
triple threat of AI.
66
00:04:06,963 --> 00:04:10,838
So we lean into that a little bit,
talking about what they're using AI for,
67
00:04:10,838 --> 00:04:13,898
what they see for the future of their
product, how do we going experience
68
00:04:13,898 --> 00:04:18,098
these things in the future where we're
all operating our own AI harnesses
69
00:04:18,128 --> 00:04:22,688
to manage our agents like Claude Code
and OpenCode and whatnot, when, how
70
00:04:22,688 --> 00:04:24,548
do we use this tool in the future?
71
00:04:24,758 --> 00:04:26,108
Anyway, we get into all that.
72
00:04:26,108 --> 00:04:27,518
It's a great conversation.
73
00:04:27,518 --> 00:04:32,033
I, I was excited to, to have it and we
went on so long that I, at some point
74
00:04:32,033 --> 00:04:34,223
just had to say, okay, we we're gonna
have to stop talking and make this
75
00:04:34,223 --> 00:04:38,273
another episode because we could have
gone for, uh, hours, I believe on this.
76
00:04:38,273 --> 00:04:41,873
So please enjoy this episode
with Sam Alba of Mendral.
77
00:04:42,373 --> 00:04:43,153
Welcome to the show.
78
00:04:43,653 --> 00:04:44,283
Hi Bret.
79
00:04:44,433 --> 00:04:45,383
Thanks for inviting me.
80
00:04:45,903 --> 00:04:47,951
we started this new company, Mendrall.
81
00:04:47,981 --> 00:04:50,161
We are now building an AI DevOps engineer.
82
00:04:50,428 --> 00:04:54,838
we, we basically see that, you know,
the emergence of coding agents and
83
00:04:54,838 --> 00:04:58,988
how they are shaping the, the future
of CI, CD and software delivery.
84
00:04:58,988 --> 00:05:02,258
And so we're building an
agent that can unblock steam.
85
00:05:02,318 --> 00:05:04,868
and now thanks to AI, we can
automate certain things that
86
00:05:04,868 --> 00:05:06,188
we could not automate before.
87
00:05:06,488 --> 00:05:11,453
And so today we have an agent that,
monitors and fixes, some of the,
88
00:05:11,498 --> 00:05:16,273
software delivery issues, flaky tests,
slow build, broken release processes.
89
00:05:16,818 --> 00:05:21,558
So, let's get into it because I,
so for, for the audience, Sam and
90
00:05:21,558 --> 00:05:24,468
I talked, I don't know, a couple
months ago at least, I think.
91
00:05:24,518 --> 00:05:26,118
and we had talked about Mendral.
92
00:05:26,628 --> 00:05:30,698
I'm building GitHub Actions courses
and content, and I've been a GitHub
93
00:05:30,708 --> 00:05:34,028
Actions consultant for probably
half a decade at least, or more.
94
00:05:34,508 --> 00:05:39,258
I think, actions I argue is like the
most popular, certainly for open source,
95
00:05:39,258 --> 00:05:41,268
but the most popular, CI platform.
96
00:05:41,268 --> 00:05:43,918
I'm just kind of going to call it
automation platform from now on because
97
00:05:44,398 --> 00:05:47,198
people do a lot more than just CI
in there and deployments and stuff.
98
00:05:47,698 --> 00:05:50,558
Solomon had clued me in to you all
because we were staying in touch
99
00:05:50,558 --> 00:05:52,468
around Dagger and, that's still going.
100
00:05:52,603 --> 00:05:56,703
we started talking about your
focus and it felt like a tool,
101
00:05:57,553 --> 00:05:58,953
that I should have in my toolbox.
102
00:05:59,003 --> 00:06:03,570
it also felt like something where
typically with large platforms,
103
00:06:03,570 --> 00:06:07,820
just like a cloud platform, like
AWS or Google Cloud, GitHub Actions
104
00:06:07,820 --> 00:06:09,640
is a very raw platform to me.
105
00:06:09,640 --> 00:06:11,610
I feel like it's got a lot of features.
106
00:06:11,610 --> 00:06:12,870
It's got a lot of sharp edges.
107
00:06:13,315 --> 00:06:18,545
But it also stops short of
what a, team typically needs
108
00:06:18,585 --> 00:06:20,105
out of everything, automation.
109
00:06:20,145 --> 00:06:23,860
And, we all talk about private
runners and we talk about sometimes
110
00:06:23,860 --> 00:06:28,850
like custom dashboards or, you know,
org level statistics and awareness,
111
00:06:28,860 --> 00:06:32,950
more, Observability into GitHub
Actions those are common questions.
112
00:06:33,450 --> 00:06:36,730
and I don't often have
great stories for that.
113
00:06:36,740 --> 00:06:41,300
because I think that market historically
where people have tried to have very niche
114
00:06:41,300 --> 00:06:47,345
little products, but pre AI, that solved
a little pain point for GitHub Actions.
115
00:06:47,575 --> 00:06:50,790
One, GitHub Actions wasn't quite
as popular five years ago, right?
116
00:06:50,790 --> 00:06:56,050
It hadn't rose Jira and Travis
and a lot of the other ones.
117
00:06:56,150 --> 00:06:59,580
And at the same time, there wasn't
the popularity, but these tools,
118
00:06:59,590 --> 00:07:02,810
since they were pre AI, they were
very limited, I feel like, in
119
00:07:02,980 --> 00:07:04,080
things that they could help with.
120
00:07:04,550 --> 00:07:08,700
And so we saw, I saw personally little
companies starting out, like little
121
00:07:08,700 --> 00:07:10,090
hobby products that almost felt like it.
122
00:07:10,090 --> 00:07:12,980
They weren't true, they weren't YC
Combinator companies trying to come out
123
00:07:12,980 --> 00:07:14,490
and be actually full fledged company.
124
00:07:14,490 --> 00:07:16,800
They were more like side projects
and someone figured out, oh, I
125
00:07:16,840 --> 00:07:18,610
could spin up runners faster.
126
00:07:18,610 --> 00:07:22,755
Which is like a whole new segment of the
market where there's now many companies,
127
00:07:22,780 --> 00:07:26,055
that host your runners for you, and
they're faster and cheaper and better.
128
00:07:26,110 --> 00:07:29,510
And then we've had little companies
experiment with like GUIs or
129
00:07:29,510 --> 00:07:33,005
web dashboards that do more than
what you might get out of the
130
00:07:33,015 --> 00:07:34,705
basics of GitHub Actions there.
131
00:07:35,205 --> 00:07:38,250
When we walked through yours,
was very excited about it.
132
00:07:38,260 --> 00:07:41,890
because rarely on this podcast, after
we're about to hit 200 episodes of
133
00:07:41,930 --> 00:07:45,660
this and the DevOps and Docker talk,
and rarely is there something there,
134
00:07:45,750 --> 00:07:48,920
especially in the Kubernetes land,
that I feel like is meant for me.
135
00:07:49,375 --> 00:07:53,455
That's something that solves my
problems, even as a solo developer
136
00:07:53,455 --> 00:07:55,745
and as a consulting DevOps engineer.
137
00:07:56,135 --> 00:08:00,795
So, could you talk a little bit
about like, when you both said, Hey,
138
00:08:00,795 --> 00:08:03,335
look, we're going to start this whole
new company because we believe this
139
00:08:03,345 --> 00:08:04,655
is the right time for this thing.
140
00:08:05,005 --> 00:08:05,985
Like, Where was your headspace?
141
00:08:05,985 --> 00:08:07,585
What problems were you trying to solve?
142
00:08:08,085 --> 00:08:11,856
Yeah, so, is a really broad, area.
143
00:08:12,026 --> 00:08:12,836
actually mentioned it.
144
00:08:13,406 --> 00:08:15,866
not exactly for just running your test.
145
00:08:15,866 --> 00:08:17,931
It's more like a workflow engine.
146
00:08:17,986 --> 00:08:21,561
it's a lot about orchestration
and automation, and we
147
00:08:21,561 --> 00:08:22,891
do a lot of things in CI.
148
00:08:23,251 --> 00:08:24,991
CI was always a bottleneck.
149
00:08:25,041 --> 00:08:28,161
every time, you know, you have
teams, as soon as you have some CIs
150
00:08:28,161 --> 00:08:31,891
you start with some workflows, like
a linter, a builder on your GitHub
151
00:08:31,891 --> 00:08:34,451
Actions or some other CI systems.
152
00:08:34,951 --> 00:08:39,431
And CI is always a bottleneck because
first of all, it's a central place
153
00:08:39,441 --> 00:08:42,571
for integration and for running
your tests when you ship your code.
154
00:08:43,071 --> 00:08:46,361
When we started Dagger, we wanted
to help people with this bottleneck,
155
00:08:46,381 --> 00:08:50,701
building programming tools so
engineers could actually solve
156
00:08:50,701 --> 00:08:52,631
their CI issues more efficiently.
157
00:08:53,131 --> 00:08:57,301
When we started, this new company,
Mendral, Andrew and I saw an opportunity
158
00:08:57,301 --> 00:09:01,931
to finally automate certain things
that we could not automate before AI.
159
00:09:02,411 --> 00:09:04,361
You know, for instance, there
are some release processes
160
00:09:04,661 --> 00:09:06,261
that you need to run manually.
161
00:09:06,301 --> 00:09:10,121
every team that's growing has
some sort of manual operations in
162
00:09:10,121 --> 00:09:12,211
their, in their release process.
163
00:09:12,371 --> 00:09:15,371
And on the other side, they have
issues that they don't spend time on
164
00:09:15,381 --> 00:09:19,021
fixing because it's never the priority
you want to build your product.
165
00:09:19,081 --> 00:09:20,411
You don't want to build your CI.
166
00:09:20,901 --> 00:09:23,311
And the problem is these
problems are piling up.
167
00:09:23,801 --> 00:09:28,566
That bottleneck is even getting bigger
with aI because now you have coding agents
168
00:09:28,566 --> 00:09:31,606
that push a lot of code to your CI system.
169
00:09:32,006 --> 00:09:35,726
And so the problem, this bottleneck that
was already a problem is getting worse.
170
00:09:36,016 --> 00:09:37,166
And it's only the beginning.
171
00:09:37,576 --> 00:09:41,916
And so we thought that now we have the
tools to, well now the problem is bigger
172
00:09:42,446 --> 00:09:44,706
one side there is more demand for it.
173
00:09:45,056 --> 00:09:49,186
And on the other side, we finally
have the tools thanks to AI to
174
00:09:49,186 --> 00:09:50,746
solve these problems efficiently.
175
00:09:51,246 --> 00:09:54,856
So the idea with Mendral is not
so much to make your CI better and
176
00:09:54,856 --> 00:09:58,361
equip developers, it's actually to
replace that work, to automate that
177
00:09:58,381 --> 00:10:01,631
work entirely so those developers
can focus on their applications.
178
00:10:02,031 --> 00:10:04,686
So that's really TLDR
of why we started that.
179
00:10:04,716 --> 00:10:09,176
And, and obviously software delivery
and CI CD in general is really broad.
180
00:10:09,236 --> 00:10:10,856
There is security involved.
181
00:10:11,221 --> 00:10:15,336
There is, you know, quality
control regression testing, like
182
00:10:15,486 --> 00:10:17,446
a lot of things goes through CI.
183
00:10:17,776 --> 00:10:22,851
And so we started initially
by building, we built an and a
184
00:10:22,851 --> 00:10:24,676
data platform really, looks at
185
00:10:25,166 --> 00:10:28,926
everything that's going on on your CI
system, the logs, the code changes,
186
00:10:29,231 --> 00:10:33,626
the past incidents, all of the events,
the behavior of the team, like all
187
00:10:33,626 --> 00:10:38,296
of this data, and then we started
to build specific agents on top.
188
00:10:39,061 --> 00:10:40,831
That's really what we're
building with Mendral.
189
00:10:41,416 --> 00:10:44,196
We have a lot of, you know, when
we started YC, we didn't know
190
00:10:44,196 --> 00:10:48,176
exactly what we had a working
MVP, but we didn't know when, what
191
00:10:48,176 --> 00:10:49,416
would be interesting for people.
192
00:10:50,016 --> 00:10:54,956
We ended end up spending a lot
of time fixing flaky tests and,
193
00:10:54,976 --> 00:10:56,706
you know, reliability problems.
194
00:10:56,706 --> 00:11:01,076
We have some teams actually using the
agent to improve performance of their CI.
195
00:11:01,106 --> 00:11:05,676
Like for instance, implement sharding,
strategies on top of their pipelines,
196
00:11:05,906 --> 00:11:09,811
to have some parallelization and so
they can ship faster because the CI can
197
00:11:09,811 --> 00:11:11,791
complete in a shorter amount of time.
198
00:11:11,951 --> 00:11:14,921
There are also some teams
using us for security reasons.
199
00:11:15,201 --> 00:11:18,941
Like for instance, our agent is
looking at security alerts, look at A
200
00:11:18,951 --> 00:11:24,491
CVE, see if it's exploitable on your
code base, auto remediate if needed.
201
00:11:24,831 --> 00:11:27,971
So there are really things
that you would expect a senior
202
00:11:27,971 --> 00:11:29,511
DevOps engineer to do for you.
203
00:11:29,918 --> 00:11:33,388
Uh, some of those teams actually
don't have specific roles for that.
204
00:11:33,388 --> 00:11:35,248
So use the agent it's a person.
205
00:11:35,603 --> 00:11:35,993
Yeah.
206
00:11:36,493 --> 00:11:41,583
I think I've been in tech for 30 years,
20 of those years I've been dealing with
207
00:11:41,583 --> 00:11:45,166
some sort of code management system.
208
00:11:45,196 --> 00:11:48,046
And that doesn't always have an
automation system built, like we
209
00:11:48,046 --> 00:11:50,376
didn't always have something like
GitHub where the automation system
210
00:11:50,876 --> 00:11:52,916
and the code storage
system were the same thing.
211
00:11:53,431 --> 00:12:01,331
but I'm just thinking back, and I don't
know a time where I would agree that
212
00:12:01,331 --> 00:12:07,701
the CI or the automation system for code
was a first class citizen in the team.
213
00:12:07,711 --> 00:12:10,131
It always feels like it's.
214
00:12:10,631 --> 00:12:14,711
The, the, I don't know if this is an
American phrase, the, redheaded stepchild.
215
00:12:14,721 --> 00:12:19,421
Like it always, yeah, it always felt
like it was just barely working.
216
00:12:19,831 --> 00:12:23,621
And especially when it came to Jenkins,
we're not sure if we could exactly
217
00:12:23,621 --> 00:12:27,311
get, we don't know how long it would
take to recover from a server failure.
218
00:12:27,811 --> 00:12:29,861
Sometimes those servers
are under someone's desk.
219
00:12:30,301 --> 00:12:34,021
Sometimes those servers are unique,
often, especially with Jenkins, not to
220
00:12:34,021 --> 00:12:38,261
pick on it, but it was the most popular
and it was self hosted, so you always had
221
00:12:38,261 --> 00:12:42,521
these special snowflakes of servers that
were built typically by developers, not
222
00:12:42,721 --> 00:12:46,351
usually by ops, where the professional
sysadmins were operating, right.
223
00:12:46,351 --> 00:12:51,146
Where they were the ones creating
systems to manage and control servers.
224
00:12:51,146 --> 00:12:55,136
But often I would walk in and find the
dev team had their special CI thing and
225
00:12:55,396 --> 00:12:57,166
it might be running on someone's machine.
226
00:12:57,166 --> 00:12:59,566
It might be under the desk,
it might be in the closet.
227
00:13:00,036 --> 00:13:03,776
And those days, I think because we're
pretty much all using at least some sort
228
00:13:03,776 --> 00:13:06,761
of cloud API for managing our automation.
229
00:13:06,761 --> 00:13:09,886
And we might have runners in different
places, but we're, leaning into more
230
00:13:09,886 --> 00:13:12,566
cloud stuff, although it's amazing how
much I still see Jenkins and talk to
231
00:13:12,566 --> 00:13:13,646
people that are still using Jenkins.
232
00:13:14,146 --> 00:13:19,166
I often look at this as like, we have
needed tools like this for so long to
233
00:13:19,206 --> 00:13:25,021
help clean up the, to me it's like the
janitor because while you're saying
234
00:13:25,021 --> 00:13:28,211
you're building the DevOps engineer, I
know that every DevOps teams wish they
235
00:13:28,211 --> 00:13:30,541
had another DevOps engineer to help them.
236
00:13:30,961 --> 00:13:35,581
And feel like right now, at least
in this moment in AI, management
237
00:13:35,581 --> 00:13:38,081
seems to think that they're going
to be reducing the number of DevOps
238
00:13:38,081 --> 00:13:39,481
engineers not increasing them.
239
00:13:39,926 --> 00:13:42,516
I just recently launched something
called the Agentic DevOps Guild
240
00:13:42,516 --> 00:13:44,006
for people, personal plug.
241
00:13:44,286 --> 00:13:48,036
But this is a membership program
where DevOps engineers are coming
242
00:13:48,036 --> 00:13:51,426
in to help accelerate their AI
learning onboard AI tooling.
243
00:13:51,816 --> 00:13:53,166
and I do these onboarding calls.
244
00:13:53,166 --> 00:13:57,066
And so for the last three weeks I've
been having multiple, calls, with
245
00:13:57,066 --> 00:13:59,346
engineers as they come onto the program.
246
00:13:59,376 --> 00:14:03,396
And one theme that's maybe not a
majority yet, but it's a consistent
247
00:14:03,396 --> 00:14:08,306
theme is, DevOps engineers are worried
of unreasonable expectations of their
248
00:14:08,306 --> 00:14:11,546
management to do magic and they don't
even know these tools yet, right?
249
00:14:11,586 --> 00:14:14,836
Tools like Mendral that run on
top of maybe an AI infrastructure,
250
00:14:14,886 --> 00:14:16,046
they don't yet know Claude Code.
251
00:14:16,066 --> 00:14:18,566
They're just dipping their
toes into copilot sometimes.
252
00:14:18,877 --> 00:14:22,516
I think operators and DevOps engineers
are maybe a little bit behind
253
00:14:22,906 --> 00:14:26,976
application software developers in
terms of their expectations to onboard,
254
00:14:27,176 --> 00:14:28,896
development or coding tools for AI.
255
00:14:28,946 --> 00:14:33,286
And of course, just six months ago I
was talking to people at KubeCon, that
256
00:14:33,286 --> 00:14:36,956
were saying, well, we're never going to
put AI into infrastructure management
257
00:14:36,956 --> 00:14:39,836
because that's a non deterministic
and we need full determinism.
258
00:14:40,336 --> 00:14:44,646
And yet when I use your tool, which
feels like I don't actually know your
259
00:14:44,646 --> 00:14:45,906
architecture, we'll get into that.
260
00:14:45,906 --> 00:14:48,386
But it feels like there's
AI in the background.
261
00:14:48,386 --> 00:14:48,916
I'm writing.
262
00:14:49,181 --> 00:14:52,971
I'm editing plans for execution
with it in human language, right?
263
00:14:52,981 --> 00:14:54,291
Like, I'm not checking boxes.
264
00:14:54,341 --> 00:14:57,611
I'm talking, I feel like I'm writing
back I'm not literally chatting, but
265
00:14:57,651 --> 00:15:01,381
I'm writing a plan, helping it edit
the plan so that it executes properly.
266
00:15:01,411 --> 00:15:05,801
I'm writing, paragraphs of sort
of my rules for how it should do
267
00:15:05,801 --> 00:15:07,021
certain things in infrastructure.
268
00:15:07,441 --> 00:15:10,876
Um, so it feels very AI based even
though I'm not, I'm not, I'm not
269
00:15:10,886 --> 00:15:12,456
literally chatting with the chatbot yet.
270
00:15:12,886 --> 00:15:15,956
But at the same time, I feel like
we're, DevOps engineers are just in
271
00:15:15,956 --> 00:15:17,176
this unfortunate situation right now.
272
00:15:17,176 --> 00:15:18,306
We're getting hit from all sides.
273
00:15:18,606 --> 00:15:22,051
We're expected to keep operating
our understaffed janitored, or
274
00:15:22,071 --> 00:15:23,941
caretaked, infrastructure, right?
275
00:15:23,971 --> 00:15:25,531
Our struggling infrastructure.
276
00:15:25,771 --> 00:15:28,061
we're worried that we're going to
have less staff here pretty soon.
277
00:15:28,261 --> 00:15:32,931
We haven't yet completely consumed all the
AI madness that the app developers have,
278
00:15:32,941 --> 00:15:38,171
because we know that basically we're one
prompt away from production going down
279
00:15:38,181 --> 00:15:43,111
because all we typically have the keys to
the kingdom, and a lot of teams have keys
280
00:15:43,111 --> 00:15:45,391
that, you know, I was just talking to one
of the engineers onboarding that said,
281
00:15:45,391 --> 00:15:47,101
I have the Terraform keys on my machine.
282
00:15:47,101 --> 00:15:52,621
I have all the production AWS and
cube control keys on my machine.
283
00:15:53,121 --> 00:15:55,311
I need to learn how to
sandbox this AI agent.
284
00:15:55,311 --> 00:15:58,891
Or if it does one thing wrong,
I am I'm probably losing my job.
285
00:15:58,931 --> 00:15:59,241
Right?
286
00:15:59,741 --> 00:16:02,871
And that just feels much higher
stakes than an app developer that
287
00:16:02,871 --> 00:16:06,496
got the wrong font on something
and has to recommit a new PR.
288
00:16:06,496 --> 00:16:09,336
It just feels higher stakes for
all of us in the operations realm.
289
00:16:09,706 --> 00:16:14,836
So that all being said, it feels
like you've kind of nailed it
290
00:16:15,181 --> 00:16:17,486
without saying like too much of
a fan boy yet, but it feels like
291
00:16:17,486 --> 00:16:19,786
you're solving a problem for me.
292
00:16:19,796 --> 00:16:23,026
And so, for the audience, over the last
week, I've actually been working with the
293
00:16:23,036 --> 00:16:27,716
team to try to get more of my problems
solved mean, I have over 100 repos.
294
00:16:27,716 --> 00:16:31,556
Majority of those are training
repos or sample repos for learning
295
00:16:31,556 --> 00:16:33,316
Docker, Kubernetes, GitHub Actions.
296
00:16:33,316 --> 00:16:36,111
Like, so there's lots of sample
code, but it's app code, right?
297
00:16:36,151 --> 00:16:41,171
There's lots of sample code GitHub
Actions, kubectl, like all sorts
298
00:16:41,171 --> 00:16:42,651
of various infrastructure stuff.
299
00:16:43,021 --> 00:16:47,281
I have an impossible time to keep,
like I cannot keep up with all of it.
300
00:16:47,281 --> 00:16:51,611
I can't even keep up with the NPM
updates, much less, you know, CVE scans
301
00:16:51,611 --> 00:16:54,701
failed, linting jobs, failed test runs.
302
00:16:55,201 --> 00:16:57,561
There's just so much stuff that's
happening in the background.
303
00:16:57,561 --> 00:17:01,061
I just, basically ignore it until
it becomes a problem for my students
304
00:17:01,291 --> 00:17:03,321
or somebody bugs me in an, issue.
305
00:17:03,821 --> 00:17:09,326
And I feel like finally with Mendral,
from a user's perspective, it's giving
306
00:17:09,326 --> 00:17:11,606
me an opportunity to shortcut that.
307
00:17:11,686 --> 00:17:14,526
It doesn't fully automate everything
for me yet, so I want to ask about
308
00:17:14,526 --> 00:17:15,866
that, like where your vision's at.
309
00:17:15,866 --> 00:17:19,656
But doesn't fully automate, doesn't
solve all my problems automatically.
310
00:17:19,876 --> 00:17:24,676
It just feels like it's raising the stakes
of what's more important for me and not
311
00:17:24,686 --> 00:17:27,546
to get distracted on the stupid stuff
that I might not need to worry about
312
00:17:27,556 --> 00:17:28,756
because they're not really an issue.
313
00:17:28,756 --> 00:17:31,626
They're just, you know, a failed
linting job isn't as important as
314
00:17:31,626 --> 00:17:35,129
a failed test job, Um, so it's nice
that it elevates things that are
315
00:17:35,129 --> 00:17:36,999
important and it also rolls things up.
316
00:17:37,059 --> 00:17:39,229
it's like if you had this issue
a hundred times in a hundred
317
00:17:39,229 --> 00:17:40,789
repos, maybe fix that one first.
318
00:17:41,289 --> 00:17:44,109
And so where do you see all of this going?
319
00:17:44,109 --> 00:17:47,899
If this thing is, you know, helping,
if it's giving intelligence and
320
00:17:47,929 --> 00:17:51,409
insight, is what I feel like
it's doing to the failures that
321
00:17:51,409 --> 00:17:53,169
I have in my automation platform?
322
00:17:53,669 --> 00:17:57,449
Is this thing eventually
like learning from me?
323
00:17:57,449 --> 00:17:59,639
And is it going to start solving
some of these automatically?
324
00:17:59,639 --> 00:18:00,649
Like, where do you see that going?
325
00:18:01,124 --> 00:18:01,464
Yeah.
326
00:18:01,464 --> 00:18:06,464
So, yeah, it's an interesting question
and, is a lot to say about what you
327
00:18:06,464 --> 00:18:09,779
said earlier about deterministic and
non deterministic and the use of AI,
328
00:18:09,869 --> 00:18:12,279
pipelines that are deterministic actually.
329
00:18:12,659 --> 00:18:13,209
and so.
330
00:18:13,409 --> 00:18:18,059
Really briefly, I'll explain, just
for context, the, how Mendral is, is
331
00:18:18,059 --> 00:18:19,864
behaving and how the product works.
332
00:18:19,894 --> 00:18:25,219
And so usually teams, on board with a
single GitHub app install, one click
333
00:18:25,579 --> 00:18:29,589
and then we start ingesting all the
CI logs and events on our platform.
334
00:18:30,109 --> 00:18:34,329
And we basically run the agent in
such a way that the agent can see
335
00:18:34,359 --> 00:18:36,219
everything that's going on on your CI.
336
00:18:36,229 --> 00:18:39,379
It's like, it's like someone looking
at your logs, your events, your code
337
00:18:39,379 --> 00:18:43,749
changes, everything that's going on and
looks for opportunity to be helpful.
338
00:18:43,769 --> 00:18:47,474
you mentioned linter failing, that's
one, can be one of your pipeline
339
00:18:47,574 --> 00:18:49,714
is slower by 30% percent this week.
340
00:18:49,714 --> 00:18:51,094
And it was faster last week.
341
00:18:51,094 --> 00:18:51,564
Why?
342
00:18:51,914 --> 00:18:55,694
It can be GitHub is down,
like, uh, what's going on?
343
00:18:55,814 --> 00:18:56,674
everything is broken.
344
00:18:56,684 --> 00:18:59,234
The agent actually is able to
spot these kind of problems.
345
00:18:59,884 --> 00:19:03,294
and and tell the team, don't worry,
the GitHub is down, it will come back.
346
00:19:03,584 --> 00:19:04,414
It's not you.
347
00:19:04,964 --> 00:19:08,764
Uh, they are, looking for many
opportunities to be helpful the problem
348
00:19:08,764 --> 00:19:12,634
with most AI tools is that, You know,
people tell you, oh, it can do anything.
349
00:19:12,634 --> 00:19:15,504
It's very powerful, but you still
have to find the right thing
350
00:19:15,654 --> 00:19:17,384
that need to ask to the chatbot.
351
00:19:17,469 --> 00:19:21,569
you know, One of the key, architecture
when we started to build the product was
352
00:19:21,569 --> 00:19:26,019
that we didn't want to give yet another
dashboard, yet another chatbot to people.
353
00:19:26,429 --> 00:19:29,589
And that's why it's an agent that joins
your Slack and start working for you
354
00:19:29,589 --> 00:19:31,329
exactly like a human being would do.
355
00:19:31,794 --> 00:19:36,674
One thing that's important to, to
keep in mind is it's not for me, it's
356
00:19:36,674 --> 00:19:40,494
a bit of a shortcut to think AI non
deterministic, non deterministic.
357
00:19:40,839 --> 00:19:44,609
And We need, we need to be deterministic,
so we shouldn't use AI for that.
358
00:19:44,969 --> 00:19:50,859
I think the right analogy is AI has the
ability to replace human beings on certain
359
00:19:50,859 --> 00:19:53,039
tasks or help human beings augment them.
360
00:19:53,049 --> 00:19:57,079
We have some of our customers who already
have DevOps engineers and big platform
361
00:19:57,079 --> 00:20:00,849
teams, and actually they have Mendral
joining that team and augmenting them.
362
00:20:01,319 --> 00:20:06,339
So it's not about replacing, everything
that people are doing, but in terms of
363
00:20:06,369 --> 00:20:12,969
analogy, it's really about building an
agent that can behave and think and act
364
00:20:12,979 --> 00:20:14,669
exactly like a human being would do.
365
00:20:14,949 --> 00:20:18,409
So, for instance, your platform engineer
or your DevOps engineer, working for
366
00:20:18,409 --> 00:20:21,169
you is actually non deterministic.
367
00:20:21,259 --> 00:20:21,899
Humans are non
368
00:20:22,316 --> 00:20:23,526
Humans are non deterministic.
369
00:20:23,616 --> 00:20:24,236
Right.
370
00:20:24,654 --> 00:20:28,204
And the, output and the work
they do can be deterministic.
371
00:20:28,204 --> 00:20:31,039
Like example of a linter,
like linter breaks.
372
00:20:31,539 --> 00:20:34,899
We have to understand mistake,
what's the problem, why it broke.
373
00:20:35,129 --> 00:20:36,789
All of that can be done by AI.
374
00:20:36,819 --> 00:20:40,799
Then fixing the linter and pushing a
PR that can be totally deterministic.
375
00:20:41,299 --> 00:20:46,409
Uh, so the way Mendral works today,
is we, didn't push the Cursor too
376
00:20:46,409 --> 00:20:49,949
far in terms of automation because
we care a lot about security.
377
00:20:49,949 --> 00:20:53,549
Like we have fairly large teams
using the agent in production.
378
00:20:54,039 --> 00:20:57,619
And so we're very cautious about
the kind of, changes we make.
379
00:20:57,629 --> 00:21:00,859
because the agent actually has
the capability to open PRs and
380
00:21:00,859 --> 00:21:02,749
push code to people's repos.
381
00:21:03,179 --> 00:21:07,249
And So what we do is the agent will
ask every time when it wants to do
382
00:21:07,249 --> 00:21:08,599
something, it will ask for the permission.
383
00:21:08,599 --> 00:21:13,129
So you have to confirm that yes,
you can go ahead implement that.
384
00:21:13,469 --> 00:21:15,679
Yes, you can go ahead and do this or that.
385
00:21:16,129 --> 00:21:20,449
Over time we have people asking us more
and more to actually automate more.
386
00:21:20,879 --> 00:21:25,969
So if the level of confidence of the agent
is greater than, let's say 85%, percent, I
387
00:21:25,969 --> 00:21:28,203
want a PR to be open automatically.
388
00:21:28,203 --> 00:21:31,869
because actually have a pretty
high merge rate from the pull
389
00:21:31,869 --> 00:21:35,629
request that module opens the pull
requests that are accepted by teams.
390
00:21:35,929 --> 00:21:40,169
And the reason for that is because
we have fairly long coding session.
391
00:21:40,169 --> 00:21:42,939
So when the agent implements
something, it's fairly similar to
392
00:21:42,939 --> 00:21:44,144
what you Claude Code or Cursor.
393
00:21:44,144 --> 00:21:49,104
But the main difference is that it
will wait for the CI to complete,
394
00:21:49,134 --> 00:21:52,794
wait for the logs, to show up and
actually wait for the confirmation
395
00:21:52,844 --> 00:21:54,114
it actually fixed the problem.
396
00:21:54,164 --> 00:21:58,474
So if it's fixing your linter, it
will wait to confirm the agent itself,
397
00:21:58,654 --> 00:22:02,199
will wait to get the confirmation
that the problem was solved before
398
00:22:02,209 --> 00:22:04,499
saying, yes, okay, my PR is ready.
399
00:22:04,749 --> 00:22:06,439
Exactly like a human
being would do, right.
400
00:22:06,839 --> 00:22:08,479
And so, that's the main thing.
401
00:22:08,519 --> 00:22:11,139
but yeah, over time, like we're
going to push for more automation
402
00:22:11,149 --> 00:22:12,769
and we're going to do a lot more.
403
00:22:12,919 --> 00:22:15,699
you asked also about the,
um, the, learning phase.
404
00:22:15,729 --> 00:22:17,459
That one is actually very interesting.
405
00:22:17,569 --> 00:22:20,289
I don't know if you want to react
to what I just said, or if I should
406
00:22:20,289 --> 00:22:22,129
expand on the learning aspect.
407
00:22:22,574 --> 00:22:23,654
Yeah, let's talk about the learning.
408
00:22:24,154 --> 00:22:26,809
So on the learning side,
what's very important exactly.
409
00:22:26,809 --> 00:22:30,029
Like when someone joins your team,
the person doesn't have context.
410
00:22:30,359 --> 00:22:35,549
So you start by watching the team, joining
the team, making themselves useful, right?
411
00:22:35,599 --> 00:22:39,064
but then over time, the person
will knowledge a lot of things.
412
00:22:39,159 --> 00:22:44,119
problems, the tools, the best practices,
and then it will get better and better.
413
00:22:44,119 --> 00:22:45,149
Same thing with the agent.
414
00:22:45,159 --> 00:22:50,539
So the agent, when it sees something,
that needs to be remediated or it sees
415
00:22:50,549 --> 00:22:55,099
problems, it can identify patterns and
maintain a list of what we call insights.
416
00:22:55,419 --> 00:22:58,899
They are basically opportunities for
the agent to do something can be a
417
00:22:58,899 --> 00:23:02,989
failure, can be a performance regression,
security alerts, etc. All of that
418
00:23:02,999 --> 00:23:07,839
is being tracked by the agent and
constantly being refreshed with new data.
419
00:23:08,089 --> 00:23:11,659
That's why, for instance, if it spots
a problem the first time, the level of
420
00:23:11,659 --> 00:23:13,799
confidence on the resolution might be low.
421
00:23:14,099 --> 00:23:17,604
And then as problem appears several
times, level of confidence will
422
00:23:17,624 --> 00:23:21,004
get higher to the point that we can
entirely automate the resolution.
423
00:23:21,534 --> 00:23:27,559
And that happens based on, the agent
being able to, to constantly update
424
00:23:27,599 --> 00:23:32,079
this living memory and taking that
into account whenever it is a problem.
425
00:23:32,079 --> 00:23:35,149
So when it sees the problem, it
doesn't just look at the problem in
426
00:23:35,149 --> 00:23:38,659
the logs, it sees at all the context
of the problems that happened before.
427
00:23:38,659 --> 00:23:42,499
It has the ability to look at, you
know, similar issues or similar
428
00:23:42,539 --> 00:23:44,089
patterns that he saw in the past.
429
00:23:44,379 --> 00:23:47,629
And I can dig into the implementation
of that because it's actually
430
00:23:47,629 --> 00:23:51,259
quite interesting how we architect
architected this, this agent.
431
00:23:51,649 --> 00:23:56,599
But then also team sometimes talk
to the agent on Slack and say, oh,
432
00:23:56,599 --> 00:23:59,834
whoa, whoa, whoa, you did that,
but we actually don't do that.
433
00:24:00,284 --> 00:24:03,784
Like let's say, you know, we,
always follow that benchmark, so we
434
00:24:03,784 --> 00:24:08,424
always use this tool or we always
do this, and basically people react
435
00:24:08,434 --> 00:24:13,294
to the agent and say, Hey you keep
in mind we do this and not that.
436
00:24:13,334 --> 00:24:17,224
And the agent also has a memory
system and maintains its memory.
437
00:24:17,584 --> 00:24:20,584
You can also review the memories
and edit them, et cetera.
438
00:24:20,644 --> 00:24:24,174
But yeah, the idea is to make that
learning part entirely automated so the
439
00:24:24,174 --> 00:24:27,604
team doesn't have to care about what
the agent knows and what it does not.
440
00:24:27,854 --> 00:24:31,834
and so that's really the key part,
about the non deterministic way.
441
00:24:31,844 --> 00:24:35,434
I think the right way to frame it
is really think about what a human
442
00:24:35,434 --> 00:24:41,654
would do and think about the fact
that an LLM can resonate and navigate
443
00:24:41,654 --> 00:24:43,324
through our problems in the same way.
444
00:24:43,924 --> 00:24:48,309
you and so that's really what makes this
kind of automation possible today it
445
00:24:48,309 --> 00:24:51,609
was not before LLMs were good enough.
446
00:24:51,769 --> 00:24:53,839
Yeah, and it's subtle.
447
00:24:54,339 --> 00:24:59,929
The more I feel like we're spending
leaning into just trying to use AI
448
00:24:59,959 --> 00:25:06,004
in various scenarios, the more I feel
like my mind expands to understand
449
00:25:06,054 --> 00:25:09,104
where it actually could apply to
things that I didn't even think about.
450
00:25:09,654 --> 00:25:16,404
Like I feel like to me, Mendral,
the premise to a, to a non AI,
451
00:25:16,404 --> 00:25:17,744
what I would call a blue pillar.
452
00:25:18,009 --> 00:25:21,289
keep a blue pill and red pill
matrix, 25 year old dated reference.
453
00:25:21,369 --> 00:25:24,719
but the blue pill people would be the
ones who were not necessarily anti AI,
454
00:25:24,769 --> 00:25:28,044
but very, you know, very much not pro AI.
455
00:25:28,044 --> 00:25:30,324
They're not leaning in hard, they're
like, yeah, yeah, it might help me
456
00:25:30,324 --> 00:25:33,044
with my code completion, but I'm
not looking to put AI everywhere.
457
00:25:33,344 --> 00:25:34,654
And that's fine, there's people like that.
458
00:25:34,664 --> 00:25:36,964
And then there's the red pillars,
and I used to consider myself the
459
00:25:36,964 --> 00:25:40,124
blue, and now I'm basically all red
and looking for new opportunities.
460
00:25:40,814 --> 00:25:44,909
In this use case where we're saying,
okay, yeah, it's going to be helpful in
461
00:25:44,909 --> 00:25:49,889
CI at first when, you have this three or
four years of experience of hallucinating
462
00:25:49,889 --> 00:25:51,369
agents and things going crazy.
463
00:25:51,749 --> 00:25:53,809
That sounds like a wild premise.
464
00:25:53,809 --> 00:25:57,789
But what I find is interesting, and
I'm using this also in my own work with
465
00:25:58,039 --> 00:26:01,489
things like Claude Code and OpenCode
and learning how skills and other,
466
00:26:01,779 --> 00:26:07,144
other new tools all patterns that us
humans are using to help guide the
467
00:26:07,144 --> 00:26:11,834
AI, give it more context, give it more
guardrails so that it won't hallucinate.
468
00:26:11,834 --> 00:26:14,814
And we, like you said, we get to
like the 85% percent trust level,
469
00:26:15,014 --> 00:26:16,704
you know, we get to this certain
level of trust, particularly
470
00:26:16,704 --> 00:26:20,884
with a certain model or a certain
harness, and then we start to relax.
471
00:26:21,194 --> 00:26:24,924
And I've noticed recently, like even
my prompts are getting sloppier.
472
00:26:25,274 --> 00:26:27,404
Like, I'm not prompt
engineering anymore, right?
473
00:26:27,404 --> 00:26:30,084
Where we were consumed with that a year
ago, where you got to have the best
474
00:26:30,094 --> 00:26:32,594
prompt, the only way you're going to get
a good, reliable AI is the best prompt.
475
00:26:32,594 --> 00:26:35,234
And you go to these websites and they
have all these listed prompts, and now
476
00:26:35,234 --> 00:26:36,494
I'm just like, Hey, can you fix that?
477
00:26:36,494 --> 00:26:39,724
I'm very vague, I'm very casual
like I would to an employee.
478
00:26:40,139 --> 00:26:44,239
But for me, I know that, that one,
that's because I've, I'm consistently
479
00:26:44,239 --> 00:26:47,999
using skills, which are these large
documents full of context, and that
480
00:26:48,049 --> 00:26:51,479
I'm operating on larger and larger,
whether we want to call it context
481
00:26:51,479 --> 00:26:53,009
or memory or sessions, whatever.
482
00:26:53,369 --> 00:26:57,699
In the AIs, I'm constantly Continue to
use the same session, which it compresses
483
00:26:57,729 --> 00:26:58,969
and I expand it and it compresses.
484
00:26:59,009 --> 00:27:02,614
what I'm finding in my AI conversations
as I'm able to stick with the same
485
00:27:02,614 --> 00:27:06,679
conversation, the same session much
longer because now we have Claude
486
00:27:06,699 --> 00:27:08,499
Code with million token context now.
487
00:27:08,989 --> 00:27:13,229
And that just unlocks, I feel like for me,
I mean, yes, I'm using more tokens because
488
00:27:13,229 --> 00:27:16,799
I'm in the same session, so I'm not a
Ralph Loop, fanatic where I'm constantly
489
00:27:16,799 --> 00:27:18,329
dumping context and starting fresh.
490
00:27:18,809 --> 00:27:23,129
But I find that I'm actually able to
have these conversations that extend for
491
00:27:23,129 --> 00:27:25,119
more than a few days, but into weeks.
492
00:27:25,519 --> 00:27:28,289
And it remembers the thing
that I told it two weeks ago.
493
00:27:28,289 --> 00:27:31,734
And that's where it starts, I think,
to get really, really interesting.
494
00:27:31,734 --> 00:27:35,224
And that feels a little bit like what
I'm playing around with, with Mendral,
495
00:27:35,514 --> 00:27:39,394
I wanted to call out one feature that I
just started playing with a couple days
496
00:27:39,394 --> 00:27:47,064
ago and this very specific problem of,
we've got so much, what's, the term we use
497
00:27:47,064 --> 00:27:53,524
for teams, that have all the canon inside
their brains and it's not documented.
498
00:27:54,054 --> 00:27:54,714
I'm trying to think what that,
499
00:27:56,171 --> 00:27:57,361
It's tribal knowledge.
500
00:27:57,361 --> 00:27:58,251
Tribal knowledge.
501
00:27:58,571 --> 00:27:58,941
Okay.
502
00:27:59,091 --> 00:28:02,011
So, a while ago, and I love that
term, tribal knowledge, like
503
00:28:02,341 --> 00:28:05,051
these are the things that you
onboard that new DevOps engineer
504
00:28:05,551 --> 00:28:08,924
And they're, they're not
going to just read docs.
505
00:28:09,209 --> 00:28:10,304
they're going to make mistakes.
506
00:28:10,314 --> 00:28:13,264
And then a team member is going to say,
oh, no, no, no, we don't do it like that.
507
00:28:13,704 --> 00:28:14,624
This is what we do.
508
00:28:15,034 --> 00:28:20,294
I ran into that where it wasn't
documented in any of my agent files yet.
509
00:28:20,314 --> 00:28:27,404
It wasn't anywhere in code or, documented
that when I run superlinter, particularly
510
00:28:27,414 --> 00:28:30,674
against GitHub Actions, because since
I'm teaching GitHub Actions consulting
511
00:28:30,674 --> 00:28:32,124
GitHub Actions, I'm all into that.
512
00:28:32,184 --> 00:28:35,654
and I've always been very concerned
with the security side of it.
513
00:28:36,004 --> 00:28:39,134
And now that we've had a rough year,
GitHub Actions has had a rough year.
514
00:28:39,134 --> 00:28:41,044
This last year has not
been kind to, to me.
515
00:28:41,044 --> 00:28:43,914
the GitHub team in terms
of security attacks.
516
00:28:44,204 --> 00:28:45,604
I'm not even going to
call them vulnerabilities.
517
00:28:45,604 --> 00:28:48,784
I'm just going to call them sharp edges
and misconfigurations a lot of times.
518
00:28:48,784 --> 00:28:50,884
because it turns out
they're not hacking GitHub.
519
00:28:50,884 --> 00:28:52,954
They're just finding people
that didn't configure things
520
00:28:52,954 --> 00:28:54,234
correctly on an open source repo.
521
00:28:54,704 --> 00:28:56,734
And this is all happening.
522
00:28:56,734 --> 00:28:59,894
So I'm always scanning my GitHub Actions.
523
00:28:59,894 --> 00:29:02,199
I use actionlint and I use
something called Zizmore, I
524
00:29:02,209 --> 00:29:02,939
think that's how you say it.
525
00:29:02,949 --> 00:29:03,589
Zizmore is Zizmore.
526
00:29:04,379 --> 00:29:08,516
Um, And Zizmore is very
focused on security stuff.
527
00:29:08,926 --> 00:29:12,571
And so down this rabbit hole, I'm going
to go with you for a second, but what
528
00:29:12,571 --> 00:29:17,311
was happening was they added a new rule
to the linter that says, from now on
529
00:29:17,321 --> 00:29:21,831
you need all of your actions need to be
pinned, Which for those of you out there,
530
00:29:21,831 --> 00:29:25,011
if you're using GitHub Actions, hey, if
you don't know about pinning, I've got
531
00:29:25,011 --> 00:29:26,291
a bunch of videos and courses on that.
532
00:29:26,301 --> 00:29:28,221
Like, you absolutely should
be pinning all your actions.
533
00:29:28,721 --> 00:29:34,211
And rightfully so, now, the linter warns
me that I'm not, when I'm not doing it.
534
00:29:34,511 --> 00:29:39,751
And in reusable workflows, there is a
pattern that surfaces with teams where
535
00:29:39,771 --> 00:29:44,751
if they're controlling the reusable
workflow, they don't tend to pin to the
536
00:29:44,751 --> 00:29:48,721
SHA hash from their calling workflows
because they control everything
537
00:29:48,721 --> 00:29:50,791
centrally from the reusable workflow.
538
00:29:50,801 --> 00:29:52,911
And that's the point of them is to
centrally control things so that
539
00:29:52,911 --> 00:29:56,091
we don't have a hundred different
repos that I have to update every
540
00:29:56,091 --> 00:29:57,811
time a different workload changes.
541
00:29:58,311 --> 00:30:01,896
And so this security tool doesn't
know that, Mendral doesn't know
542
00:30:01,896 --> 00:30:04,776
that that is not documented
anywhere in any of my systems.
543
00:30:04,776 --> 00:30:06,406
It's not in my notion,
it's not in my repos.
544
00:30:06,776 --> 00:30:08,046
So that's tribal knowledge.
545
00:30:08,436 --> 00:30:12,366
And what I was able to do is it was
flagging a bunch of these things and
546
00:30:12,366 --> 00:30:16,566
saying, Hey, Mendral, Mendral was thinking
the fix to this is that it needs to
547
00:30:16,566 --> 00:30:21,956
pin the SHA, but in my team of one, the
real fix is no, we need to just write
548
00:30:21,956 --> 00:30:24,826
an ignore rule for the Zyzmor linter.
549
00:30:25,326 --> 00:30:28,116
And that's very specific to
my workflow, not something
550
00:30:28,116 --> 00:30:29,256
that other people would know.
551
00:30:29,666 --> 00:30:32,586
And so I could give, instead of making
that documented somewhere and then
552
00:30:32,586 --> 00:30:37,576
somehow connecting some MCP and some
convoluted way to let Mendral know it
553
00:30:37,586 --> 00:30:42,216
has this memory feature where I can just
sort of dump in this tribal knowledge
554
00:30:42,516 --> 00:30:46,726
in just copy and paste or writing in
stories, basically user stories that
555
00:30:47,006 --> 00:30:51,586
helps it guide the decision of how it's
going to treat future failures, because
556
00:30:51,586 --> 00:30:54,696
what was the outcome was happening, and
sorry for the audience, this is a really
557
00:30:54,696 --> 00:30:58,106
long story, but I feel like it's very
tactical and relevant as an example.
558
00:30:58,476 --> 00:31:03,266
Is, in that scenario, if I had a junior
engineer, I would say, okay, please write
559
00:31:03,306 --> 00:31:08,566
all, we're going to need to update all
of these calling workflows with a hundred
560
00:31:08,566 --> 00:31:13,416
repos now need this new line inside of
the GitHub action for this particular
561
00:31:13,416 --> 00:31:15,851
calling workflow that calls a reusable.
562
00:31:16,151 --> 00:31:20,191
And then from now on, everyone in
the team needs to know we don't
563
00:31:20,191 --> 00:31:24,601
shop in on our calling re workflows,
we only shop in on the Reusables.
564
00:31:25,071 --> 00:31:26,061
And with Mendral.
565
00:31:26,091 --> 00:31:29,981
I was able to put in one memory and I
haven't seen the outcome yet, but I'm
566
00:31:29,981 --> 00:31:33,991
gonna ask you in theory, I guess that
means that from now on, every time
567
00:31:34,021 --> 00:31:36,811
Mendral sees this error, its new PR plan.
568
00:31:37,261 --> 00:31:40,211
That it's going to give me, isn't
going to say, Hey, I'm just going
569
00:31:40,211 --> 00:31:42,781
to replace this with a SHA hash.
570
00:31:42,801 --> 00:31:45,561
It's going to say, oh, I'm
going to put in a new rule.
571
00:31:45,861 --> 00:31:51,111
I'm going to basically ignore this in the
Zyzmor linter so that we don't, we know
572
00:31:51,111 --> 00:31:53,001
that this is okay and we don't flag it.
573
00:31:53,141 --> 00:31:54,771
Is that kind of the
expected outcome of that?
574
00:31:55,076 --> 00:31:55,726
Yeah, that's right.
575
00:31:55,766 --> 00:31:59,811
there, are many ways you can influence,
the behaviors of the agent today.
576
00:31:59,821 --> 00:32:02,201
And yes, indeed you can
actually create a memory.
577
00:32:02,231 --> 00:32:05,301
It makes sense when there is
a pattern that you want to be
578
00:32:05,301 --> 00:32:07,001
widespread and apply everywhere.
579
00:32:07,061 --> 00:32:10,341
the sticky note that you want to
put on the deck of your engineer.
580
00:32:10,341 --> 00:32:12,761
That you want to make
sure is never forgotten.
581
00:32:13,181 --> 00:32:15,834
Another thing you can do is, for
instance, let's say you want to
582
00:32:15,834 --> 00:32:18,384
migrate or to implement, some sort.
583
00:32:18,384 --> 00:32:21,654
of, let's say you have this new linter
that you want to migrate from an old
584
00:32:21,654 --> 00:32:25,374
one, or you want to implement a new
security tool or something like that.
585
00:32:25,374 --> 00:32:31,984
So, the outcome will be deterministic,
but asking that will be certain, more,
586
00:32:32,044 --> 00:32:33,964
likely done in a non deterministic way.
587
00:32:34,274 --> 00:32:36,134
maybe there are some
things that you don't know.
588
00:32:36,134 --> 00:32:40,214
Like for instance, the agent has the
ability to do a web search or like look
589
00:32:40,214 --> 00:32:42,234
into best practices or things like that.
590
00:32:42,254 --> 00:32:46,374
And so what you can do is also ask
the agent, Hey, this is my plan.
591
00:32:46,374 --> 00:32:49,724
This is what I noticed and this is a
problem for me, I'd like to address it.
592
00:32:49,764 --> 00:32:53,234
The agent will actually create an
insight for it and track it, and
593
00:32:53,234 --> 00:32:56,274
propose an implementation when the
level of confidence is high enough.
594
00:32:56,754 --> 00:33:00,094
And and yeah, it has also the
ability to, update, findings.
595
00:33:00,104 --> 00:33:04,484
So sometimes the agent, you know,
you talk about tribal knowledge.
596
00:33:04,594 --> 00:33:08,014
There is also some of the tribal
knowledge and our own experience,
597
00:33:08,134 --> 00:33:12,314
as as engineer with Andrea,
Olivier into The agent itself.
598
00:33:12,434 --> 00:33:17,714
So we constantly change the way we, you
know, Mendral does stuff, and that's why
599
00:33:17,774 --> 00:33:21,464
it feels magical sometimes when people
on board with it, because the, what they
600
00:33:21,464 --> 00:33:26,159
actually don't realize is the agent has
our own experiences hardcoded in, in
601
00:33:26,159 --> 00:33:28,259
some of the subagent that we, we wrote.
602
00:33:28,994 --> 00:33:31,364
And so you can actually,
influence that too.
603
00:33:31,364 --> 00:33:35,434
And the agent has the ability to update
its own insights based on your input.
604
00:33:35,844 --> 00:33:38,154
So if there are certain things
you disagree with, because let's
605
00:33:38,154 --> 00:33:41,714
say, you know, if you would hire
me as a DevOps engineer, I have
606
00:33:41,714 --> 00:33:43,224
certain things I would like to do.
607
00:33:43,224 --> 00:33:46,514
And you're like, well, no, actually,
Sam, I'm paying you, so I need
608
00:33:46,514 --> 00:33:47,984
you to do it this way instead.
609
00:33:48,684 --> 00:33:51,164
can ask Mendral the same
thing, and it will be fine.
610
00:33:51,304 --> 00:33:56,134
So yeah, the, customizability is
important because that's the kind
611
00:33:56,134 --> 00:34:00,299
of control you need from someone
you would hire as well, right?
612
00:34:00,459 --> 00:34:03,459
You expect this person to bring
their experience, but also you
613
00:34:03,469 --> 00:34:04,649
have your own requirements.
614
00:34:05,029 --> 00:34:08,569
so so yeah, that's, that's
something we constantly, improve
615
00:34:08,569 --> 00:34:10,009
and, make available to, teams.
616
00:34:10,509 --> 00:34:10,809
Yeah.
617
00:34:10,809 --> 00:34:15,729
And that's the kind of thing where, mean,
testing tools have this problem, linting
618
00:34:15,749 --> 00:34:17,449
tools have this problem, really any tool.
619
00:34:17,449 --> 00:34:21,469
But I think like those are the two
areas where, maybe the linters might
620
00:34:21,469 --> 00:34:26,269
be the worst, where when something
new is added, a new rule to a linter.
621
00:34:26,634 --> 00:34:29,504
uh, I, think I had another
tool recently, actually.
622
00:34:29,524 --> 00:34:31,624
Well, that was, that was a NeoVim tool
623
00:34:32,691 --> 00:34:33,021
Okay.
624
00:34:33,369 --> 00:34:35,759
It's like everybody's refactoring
all their apps now with AI.
625
00:34:35,759 --> 00:34:38,789
So it broke a lot of things and
I spent an hour on it and AI was
626
00:34:38,789 --> 00:34:40,179
able to solve it so much faster.
627
00:34:40,449 --> 00:34:41,729
So, but not so not related.
628
00:34:41,729 --> 00:34:42,989
That was just something
that happened yesterday.
629
00:34:43,459 --> 00:34:48,219
Because I mean, the stories, if someone's
like in the trenches as a DevOps engineer,
630
00:34:48,569 --> 00:34:53,449
that scenario that gave, while it's just
a linter, not inherently high stakes,
631
00:34:53,459 --> 00:34:56,744
I it wasn't a testing failure or a
production deployment failure or anything.
632
00:34:57,214 --> 00:35:01,414
But that's the kind of thing when I work
with DevOps teams, that's the toil, right?
633
00:35:01,424 --> 00:35:04,734
That's the thing that they don't want
to have to go change literally a hundred
634
00:35:04,734 --> 00:35:08,204
repos of microservices and back end
things because they've implemented
635
00:35:08,544 --> 00:35:11,204
some sort of central reusable workflow.
636
00:35:11,204 --> 00:35:14,364
But now the crux of all that is
they have this thing everywhere
637
00:35:14,864 --> 00:35:18,094
and something breaks, and now
they don't have the tooling.
638
00:35:18,629 --> 00:35:19,329
To update.
639
00:35:19,339 --> 00:35:24,149
They basically end up spending days
writing scripts to create the PRs in
640
00:35:24,159 --> 00:35:29,489
100 different repos to fix and then,
automate the creation of the commit,
641
00:35:29,489 --> 00:35:34,309
creation of the PR, the acceptance of
the PR, and then the merging of the PR.
642
00:35:34,309 --> 00:35:37,489
Because they don't want to literally
spend 3 or 4 days just mindlessly
643
00:35:37,489 --> 00:35:40,439
clicking through 100 repos to do this.
644
00:35:40,469 --> 00:35:43,814
And I've lost count of how many times
I've watched teams go through this
645
00:35:43,834 --> 00:35:48,024
toil of, like, your week is going to
be fixing a stupid linter rule across
646
00:35:48,024 --> 00:35:54,084
50 to 100 repos because the, dev
teams don't want to do it or whatever.
647
00:35:54,084 --> 00:35:56,954
Or it's now our job to do it for
some reason, even though we're
648
00:35:56,954 --> 00:35:58,384
not the application engineers.
649
00:35:58,474 --> 00:36:00,764
Sometimes I have worked with teams
where it's the DevOps engineers
650
00:36:00,764 --> 00:36:04,164
literally implementing the linting
rules for the software engineers.
651
00:36:04,184 --> 00:36:06,464
I don't know why that happens,
but, sometimes we get saddled
652
00:36:06,464 --> 00:36:07,344
with work that's not ours.
653
00:36:07,344 --> 00:36:11,134
But that automation part,
I feel like is another.
654
00:36:11,614 --> 00:36:15,444
it's almost like a hidden feature that
talk about raising issues, we talk about,
655
00:36:15,944 --> 00:36:19,274
helping understand the nuance of things
and the patterns that you're seeing
656
00:36:19,274 --> 00:36:20,584
so that it can be more intelligent.
657
00:36:20,594 --> 00:36:25,844
But at the very end of this really is
all about, to me, saving the toil of
658
00:36:26,314 --> 00:36:28,364
manually checking repos for things.
659
00:36:28,574 --> 00:36:32,424
Because, constantly struggling
with workflow failures that
660
00:36:32,434 --> 00:36:33,784
aren't rising to the top.
661
00:36:33,794 --> 00:36:35,724
Because when you have a big
enough team, you've always got
662
00:36:35,724 --> 00:36:39,254
workflows running, you're just
constantly inundated with workflows.
663
00:36:39,534 --> 00:36:44,454
And the challenges is the alert fatigue
in Slack or whatever tool you're
664
00:36:44,454 --> 00:36:46,309
using because you're, working with.
665
00:36:46,869 --> 00:36:47,799
just can't keep up.
666
00:36:47,829 --> 00:36:51,024
So you start to say, okay, well now
we're linterfailures, we're no longer
667
00:36:51,024 --> 00:36:53,474
alert in Slack, so now we're going
to just remove those from Slack.
668
00:36:53,734 --> 00:36:55,364
We're too busy to do that now.
669
00:36:55,364 --> 00:36:58,724
We're only going to deal with
deployment failures or only testing
670
00:36:58,724 --> 00:37:00,464
failures on these particular repos.
671
00:37:00,474 --> 00:37:04,564
Like you end up having to force
yourself to ignore a whole series
672
00:37:04,614 --> 00:37:08,574
of problems because you just can't
handle, there's just too much work.
673
00:37:08,914 --> 00:37:12,604
And to me, the more exciting thing
is that I might be able, you know,
674
00:37:12,604 --> 00:37:15,544
and maybe someday I don't know if it
does it today, if it would be able
675
00:37:15,544 --> 00:37:20,984
to go and simply apply a hundred PRs
for that particular calling workflow.
676
00:37:20,984 --> 00:37:22,804
because I name it the
same thing everywhere.
677
00:37:23,164 --> 00:37:26,794
But my hope is that someday, if not
today, like that would be able to get
678
00:37:26,804 --> 00:37:30,914
automated so that I could just be done
like basically a hundred PRs later,
679
00:37:31,184 --> 00:37:32,954
it's taken 30 minutes or something.
680
00:37:33,409 --> 00:37:35,999
I didn't have to write a script,
I didn't have to worry about
681
00:37:36,009 --> 00:37:39,389
nuking or breaking some repos
because I wrote the wrong script.
682
00:37:39,389 --> 00:37:42,869
I can, give that to Mendral,
which is exciting for me.
683
00:37:43,324 --> 00:37:46,024
Yeah, I can tell you more actually
about, about that, because there
684
00:37:46,024 --> 00:37:49,494
are a lot of things we're working
on today actually that some of
685
00:37:49,494 --> 00:37:52,674
it actually might be available by
the time this podcast is out, so,
686
00:37:53,171 --> 00:37:53,621
okay.
687
00:37:53,719 --> 00:37:54,779
yeah, we're working, yeah.
688
00:37:54,844 --> 00:37:58,344
quite, fast on these things because
there is a lot of demand for it, you
689
00:37:58,344 --> 00:38:02,124
know, as soon as people onboarded the
agents and they see the value that it
690
00:38:02,124 --> 00:38:07,104
can unblock thanks to the data layer
and, the, which usually we refer to
691
00:38:07,104 --> 00:38:11,324
with the agent harness, which is kind
of the combination of the tools and the
692
00:38:11,324 --> 00:38:15,614
context and the way we build that and
keep the agent accurate at any given
693
00:38:15,614 --> 00:38:17,269
time, actually, this really the key.
694
00:38:17,519 --> 00:38:23,349
But yeah, in terms of what works today,
so the agent is not stuck with one repo.
695
00:38:23,349 --> 00:38:28,729
Sometimes in CI, when you have,
you use products, you realize
696
00:38:28,769 --> 00:38:33,629
that repo maps to a project that
could sometimes map to a team.
697
00:38:33,809 --> 00:38:35,199
Some companies do it this way.
698
00:38:35,509 --> 00:38:39,789
And the issue is, well, it's great
when you have, you know, that
699
00:38:39,819 --> 00:38:44,229
mapping is great and works fine and
you're okay with those boundaries.
700
00:38:44,249 --> 00:38:48,449
Problem is, most teams are not,
and sometimes having a repo is
701
00:38:48,449 --> 00:38:49,879
just an implementation detail.
702
00:38:49,879 --> 00:38:53,819
And exactly like you said, you want to
think about something you would apply
703
00:38:53,819 --> 00:38:55,469
to all of your repos, all of your codes.
704
00:38:55,759 --> 00:39:00,064
need to think about this repo
behave like this or like that,
705
00:39:00,084 --> 00:39:04,664
etc. TLDR is, Mendral has been
designed, so it's not tied to a repo.
706
00:39:04,684 --> 00:39:07,304
It's actually tied to
an organization today.
707
00:39:07,794 --> 00:39:10,714
uh, that's, that has been
designed one or many repos.
708
00:39:10,714 --> 00:39:14,814
We have teams with like a
gigantic monorepo and that's fine.
709
00:39:15,119 --> 00:39:17,574
And usually what they do is
they have this mapping inside
710
00:39:17,574 --> 00:39:19,134
folders and sub directories.
711
00:39:19,509 --> 00:39:23,904
and then you have some teams who have lots
of repos actually, and there is no mapping
712
00:39:23,904 --> 00:39:27,044
whatsoever from a team or role to a repo.
713
00:39:27,284 --> 00:39:28,274
And Mendral doesn't care.
714
00:39:28,274 --> 00:39:30,284
Like insights can be
applied to many repos.
715
00:39:30,584 --> 00:39:34,194
One thing that we were working on
that that's actually I'm very excited
716
00:39:34,194 --> 00:39:38,979
about is, so we have this data that
comes and that knowledge and the agent
717
00:39:39,019 --> 00:39:43,589
running based on events and teams
asking for stuff and things appearing
718
00:39:43,649 --> 00:39:45,379
and background tasks and all of that.
719
00:39:45,379 --> 00:39:49,289
And so the agent constantly working for
you and constantly looking at its data.
720
00:39:49,739 --> 00:39:54,174
We are building the ability for
you to have your own agents on top.
721
00:39:54,399 --> 00:39:57,409
So basically you will have a
simple way to define your own
722
00:39:57,629 --> 00:39:59,419
sub agent on top of Mendral.
723
00:40:00,019 --> 00:40:04,299
And so it will really feel like
you're giving, some specific
724
00:40:04,299 --> 00:40:07,669
instruction, like almost a mission
to Mendral behind the scene.
725
00:40:07,669 --> 00:40:09,939
In terms of architecture,
it's actually a real agent.
726
00:40:09,999 --> 00:40:12,799
It's like a real agent that's
linked to everything else.
727
00:40:13,089 --> 00:40:16,899
And it's a sub agent that will
be called by main Mendral agent
728
00:40:16,939 --> 00:40:18,369
whenever it needs to be called.
729
00:40:18,369 --> 00:40:22,734
And so you'll have the ability to say
whenever, there is a code change or
730
00:40:22,744 --> 00:40:26,564
whenever, like, we'll actually add
mapping to other sources of data.
731
00:40:26,584 --> 00:40:31,494
it could be whenever there is new
exception on Sentry, for instance,
732
00:40:31,504 --> 00:40:35,984
because we are actually expanding
beyond the CI logs also, I want to do
733
00:40:36,024 --> 00:40:42,869
X, YRZ, want to do this, and I want
to be notified on Slack or not, you
734
00:40:43,029 --> 00:40:44,299
know, because I don't want the noise.
735
00:40:44,574 --> 00:40:48,944
So you'll have the ability to build
your own, so I call that agent because
736
00:40:48,944 --> 00:40:50,864
it's de facto like a real agent.
737
00:40:50,874 --> 00:40:54,224
Some people might call that like
agentic workflows or something,
738
00:40:54,244 --> 00:40:56,924
but it really depends what
will be your use case.
739
00:40:57,329 --> 00:41:02,104
but yeah, we want to, you know, I realized
that It's actually a dream to onboard
740
00:41:02,104 --> 00:41:03,864
an agent that is doing work for you.
741
00:41:04,234 --> 00:41:07,914
and that dream is true today,
actually, saying that in, you know, not
742
00:41:07,924 --> 00:41:09,964
overselling the thing, but that works.
743
00:41:10,174 --> 00:41:13,364
That said, every team
has a unique CI, right?
744
00:41:13,904 --> 00:41:17,946
every time you have a unique set of
tools, unique set of, best practices,
745
00:41:18,226 --> 00:41:22,616
you are using several external
services and infrastructure, data
746
00:41:22,616 --> 00:41:23,996
that you are managing somewhere.
747
00:41:23,996 --> 00:41:26,006
And so all of that is unique to a team.
748
00:41:26,006 --> 00:41:29,776
And you cannot have an agent that
will figure this out entirely.
749
00:41:29,776 --> 00:41:33,466
And so we're gonna make the ability
to plug those data and this,
750
00:41:33,546 --> 00:41:35,076
this integration into the agent.
751
00:41:35,106 --> 00:41:39,516
So it can actually Work in a
more, specific way to your needs.
752
00:41:39,946 --> 00:41:41,836
so that's really what
we are building today.
753
00:41:41,836 --> 00:41:43,186
And there is a lot of demand for it.
754
00:41:43,676 --> 00:41:45,096
Um, actually two things.
755
00:41:45,116 --> 00:41:46,626
There is a lot of demand
for customization.
756
00:41:48,196 --> 00:41:50,756
and plugging to other data
sources and other workflows.
757
00:41:50,756 --> 00:41:54,346
And there is another demand
for, having more automation.
758
00:41:54,516 --> 00:41:54,946
So
759
00:41:55,266 --> 00:41:58,331
it's very interesting to me to see,
and you said it well earlier, is.
760
00:41:58,571 --> 00:42:03,381
it's interesting to me to see that, people
actually trust AI tools a lot today.
761
00:42:03,421 --> 00:42:06,444
Like some people ask us like, can
you actually for, some of those
762
00:42:06,454 --> 00:42:09,704
problems, like automatically
open and merge the pull requests?
763
00:42:10,074 --> 00:42:12,424
And like, well, you know, it's going fast,
764
00:42:13,236 --> 00:42:14,026
So, so
765
00:42:14,049 --> 00:42:14,509
Well, that's the,
766
00:42:14,509 --> 00:42:14,539
talk.
767
00:42:14,546 --> 00:42:15,076
we'd get there.
768
00:42:15,076 --> 00:42:15,946
Yep.
769
00:42:15,969 --> 00:42:16,709
the trust, right?
770
00:42:16,719 --> 00:42:20,709
Like if you had, like on the, on
the live stream, we had a couple
771
00:42:20,709 --> 00:42:24,349
weeks ago I was talking about that
I don't remember the last time.
772
00:42:24,349 --> 00:42:26,019
My coding agent locally.
773
00:42:26,519 --> 00:42:29,409
and that use, I use Opus, I
use sonnet, basically any state
774
00:42:29,409 --> 00:42:31,434
of the art model I use GPT 5.
775
00:42:31,434 --> 00:42:32,604
4. I have all the subscriptions.
776
00:42:33,009 --> 00:42:35,094
I don't remember the last
time I would have classified
777
00:42:35,094 --> 00:42:36,464
it as a true hallucination.
778
00:42:36,839 --> 00:42:37,989
it has been months.
779
00:42:38,039 --> 00:42:41,329
Right now it gets things wrong,
but it's usually because I was
780
00:42:41,329 --> 00:42:42,849
lazy and didn't give it context.
781
00:42:42,849 --> 00:42:43,039
Right.
782
00:42:43,109 --> 00:42:45,619
it just made the wrong choice
because it acted like its first week
783
00:42:45,619 --> 00:42:46,929
as being the engineer on my team.
784
00:42:47,349 --> 00:42:49,659
And I blame myself for that, right?
785
00:42:49,659 --> 00:42:50,999
it's a me not you problem.
786
00:42:51,499 --> 00:42:56,224
And so that has definitely, for me, I
have certainly established more trust.
787
00:42:56,224 --> 00:42:59,084
Like I might be at that 85% percent
level like keep talking about.
788
00:42:59,394 --> 00:43:02,364
And if I did this in CI,
if I was using Mendral.
789
00:43:02,739 --> 00:43:07,509
and, you know, I don't technically I
don't have to know what agent, what models
790
00:43:07,509 --> 00:43:08,809
you're using on the back end, right?
791
00:43:08,809 --> 00:43:12,729
Like, I just know this thing is
able to give me plans reliably that
792
00:43:12,729 --> 00:43:15,509
I agree with, and it gives me this
implementation plan to fix a problem.
793
00:43:15,509 --> 00:43:17,599
And I go, yep, that sounds
like it's great, a great plan.
794
00:43:17,839 --> 00:43:20,649
That's exactly what I would see in
a PR from a junior engineer while
795
00:43:20,649 --> 00:43:23,039
I'm reviewing it, right, I just
happen to be reviewing this pre
796
00:43:23,069 --> 00:43:25,349
pull request, implementation plan.
797
00:43:25,679 --> 00:43:29,009
And if I did that a hundred times
over the first couple of months of
798
00:43:29,009 --> 00:43:33,629
onboarding a tool and I never saw, or,
you know, almost rarely ever saw anything
799
00:43:33,629 --> 00:43:35,289
wrong and those wrong things weren't.
800
00:43:35,789 --> 00:43:38,119
That wrong, they were
just maybe a preference.
801
00:43:38,489 --> 00:43:40,489
I would absolutely be more trustworthy.
802
00:43:40,509 --> 00:43:44,709
And I can imagine myself right now in
a team where if I'm onboarding uh, an
803
00:43:44,709 --> 00:43:49,709
orchestration agent engine like Mendral,
where I'm going to tell the team, okay,
804
00:43:49,909 --> 00:43:52,719
they have this new automation feature
that they've just launched so that we
805
00:43:52,719 --> 00:43:57,309
can fully allow the AI to make the PRs
and then commit them automatically.
806
00:43:57,539 --> 00:44:00,489
And maybe it's two different
models with two different contexts.
807
00:44:00,499 --> 00:44:02,739
That one makes it, another one reviews it.
808
00:44:02,739 --> 00:44:02,899
Right?
809
00:44:02,899 --> 00:44:05,769
We've been discussing lately about
how, like, when are we all going
810
00:44:05,769 --> 00:44:07,849
to be comfortable with the AI
writing the software, and then the
811
00:44:07,899 --> 00:44:09,319
different AI reviewing the software?
812
00:44:09,709 --> 00:44:10,899
And does it need to be a different model?
813
00:44:10,909 --> 00:44:12,279
Does it need a different system prompt?
814
00:44:12,289 --> 00:44:14,249
Like, you know, these are questions
that are coming up actually
815
00:44:14,249 --> 00:44:16,299
within uh, the guild meetings
that we are having every week.
816
00:44:16,799 --> 00:44:20,899
And I can see myself very quickly
saying, well, we're going to allow
817
00:44:20,899 --> 00:44:23,949
it to auto merge any linting failure.
818
00:44:24,144 --> 00:44:27,999
Because it hasn't been wrong
in its implementation plan in
819
00:44:27,999 --> 00:44:29,409
two months or whatever, right.
820
00:44:29,709 --> 00:44:33,474
And we're going to tiptoe in with low
stakes stuff and then, you know, maybe
821
00:44:33,474 --> 00:44:36,644
we can make a rule where Dependabot, this
is another big pain point for me, right?
822
00:44:36,644 --> 00:44:39,564
When you have dozens and dozens of
repos and Dependabot, or renovate
823
00:44:39,564 --> 00:44:40,984
comes out with a minor update.
824
00:44:40,984 --> 00:44:44,614
And typically, it's, a wonderful life if
you're in a monorepo right now, because
825
00:44:44,614 --> 00:44:49,304
if you're in a bunch of microservice
repos, you just have sprawl of repos, you
826
00:44:49,304 --> 00:44:54,514
know, one JavaScript dependency module
update, and suddenly you have 20 PRs
827
00:44:54,544 --> 00:44:56,714
to approve and they're all the same PR.
828
00:44:57,194 --> 00:45:01,864
So they're, and I don't believe
that Dependabot has a, just do this
829
00:45:01,864 --> 00:45:03,944
for me in all 20 repo mode, right?
830
00:45:03,994 --> 00:45:05,504
it doesn't automate that process.
831
00:45:05,514 --> 00:45:09,054
So then I'm literally going through
and clicking, I think I'm probably
832
00:45:09,054 --> 00:45:11,834
at the point of comfortable with
my local AI saying, Hey, just
833
00:45:11,834 --> 00:45:14,784
use the GitHub command line tool
and look through all of my repos.
834
00:45:15,844 --> 00:45:19,144
this would be a very long prompt, but
look through all my repos for this one
835
00:45:19,144 --> 00:45:20,904
particular Dependabot for updating.
836
00:45:20,914 --> 00:45:23,534
It's got this exact title because
they're all going to have the same title.
837
00:45:23,979 --> 00:45:27,249
And if you see that in there, go
ahead and accept it and merge it
838
00:45:27,259 --> 00:45:28,359
with the GitHub command line tool.
839
00:45:28,629 --> 00:45:32,229
I do think I'm at that level, but,
so if I'm at that level, and I'm not
840
00:45:32,229 --> 00:45:35,689
even the most aggressive AI person
I know, like I'm not even, I haven't
841
00:45:35,689 --> 00:45:37,059
even installed OpenClaw, right?
842
00:45:37,139 --> 00:45:39,759
I haven't installed any of these
crazy, orchestration engines.
843
00:45:40,199 --> 00:45:42,209
I'm sure that there's lots of people
that are absolutely comfortable with
844
00:45:42,209 --> 00:45:47,949
this and I'm, I am all about this
because there has never been a good
845
00:45:47,949 --> 00:45:53,294
time to tell the story of DevOps
automation platforms as a thing that I
846
00:45:53,294 --> 00:45:56,704
can implement in a reasonable amount of
time for a reasonable amount of money.
847
00:45:56,864 --> 00:45:59,524
everyone that I know that's
struggling with this, you
848
00:45:59,524 --> 00:46:01,434
know, don't want to entirely.
849
00:46:01,874 --> 00:46:05,304
invested in a proprietary tool sometimes
and they want to open source everything
850
00:46:05,304 --> 00:46:08,824
themselves, which is the tough road ahead
for anyone that's trying to do that.
851
00:46:08,864 --> 00:46:11,384
because I'm doing this in my courses
where I'm trying to explain how
852
00:46:11,384 --> 00:46:14,534
to do all these AI workflows that
help you do a lot of automation.
853
00:46:14,534 --> 00:46:17,994
And I can tell you that tools like
Mendral are the easy button versus
854
00:46:17,994 --> 00:46:21,034
trying to do it yourself with a bunch
of more workflows that all do the
855
00:46:21,034 --> 00:46:22,344
things that Mendral's already doing.
856
00:46:22,764 --> 00:46:26,214
But this is, there's, you know, we've
had all these different automation
857
00:46:26,234 --> 00:46:31,224
engines over years that have tried to
become a market dominant force for just
858
00:46:31,244 --> 00:46:33,404
easing the toil on DevOps engineers.
859
00:46:33,414 --> 00:46:35,234
And I never feel like
anyone's really cracked it.
860
00:46:35,454 --> 00:46:39,824
I don't go into any shop and find that
they're all consistently, or a majority
861
00:46:39,824 --> 00:46:45,264
of them even are using one tool beyond
GitHub Actions to automate things.
862
00:46:45,264 --> 00:46:47,694
And very rarely do I see
people with GitHub Actions.
863
00:46:48,174 --> 00:46:51,414
Only the, like most mature teams that
I see in GitHub Actions are doing
864
00:46:51,414 --> 00:46:55,009
things where they might have like a
central repository of actions that
865
00:46:55,009 --> 00:46:59,429
are aggressively doing things on other
repos in an automated way, like checking
866
00:46:59,429 --> 00:47:02,909
the security settings across all my
org repos in order to make sure that
867
00:47:02,909 --> 00:47:07,379
we're not exposing a security risk
by allowing, you know, forked pull
868
00:47:07,379 --> 00:47:10,279
requests to automatically run actions,
for example, which is one that's really
869
00:47:10,279 --> 00:47:11,659
biting people in the foot right now.
870
00:47:11,969 --> 00:47:15,679
Like that thing needs to be locked down
on every repo, and there's no tool built
871
00:47:15,679 --> 00:47:18,909
in to tell you what that setting is, so
you have to literally either hand code
872
00:47:18,909 --> 00:47:23,409
something check it yourself or create
actions that do all this automation.
873
00:47:23,869 --> 00:47:27,889
And it feels like we're right at the
cusp of just, I just write a, either
874
00:47:28,299 --> 00:47:31,689
a skill for this or I have a tool
that automatically does this for me.
875
00:47:31,689 --> 00:47:35,199
I do like this agent idea because I
would like to put in like a DevSecOps.
876
00:47:35,699 --> 00:47:39,109
That's the next one for me where I
wanted to go and actually like, look
877
00:47:39,109 --> 00:47:42,819
at these org and repo settings and
report them, port back when it finds
878
00:47:42,819 --> 00:47:45,679
one that's not set properly for me.
879
00:47:45,679 --> 00:47:49,339
Maybe something that I don't want
to be a linter, but I want it to be,
880
00:47:49,509 --> 00:47:53,609
you know, security checks on my repos
and on GitHub itself that an engineer
881
00:47:53,629 --> 00:47:56,549
doesn't want to have to run that script
manually every day and then do all the
882
00:47:56,549 --> 00:47:58,259
work of fixing the things every day.
883
00:47:58,259 --> 00:48:00,549
I'd rather just an AI do that,
'cause it's a binary thing.
884
00:48:00,549 --> 00:48:02,619
It's like either this setting's
checked or it's not, and if it's
885
00:48:02,619 --> 00:48:03,719
not checked, you need to check it.
886
00:48:03,729 --> 00:48:04,279
This is a very
887
00:48:04,279 --> 00:48:04,929
basic thing.
888
00:48:05,429 --> 00:48:05,639
Yeah.
889
00:48:05,639 --> 00:48:07,069
there are a lot of things like that.
890
00:48:07,069 --> 00:48:10,319
Like for instance, when you start,
putting together some compliance
891
00:48:10,329 --> 00:48:12,494
like, you know, soc 2, for instance.
892
00:48:12,664 --> 00:48:16,599
there are a lot of controls that, you
start implementing that very important
893
00:48:16,649 --> 00:48:18,639
and sometimes time consuming as well.
894
00:48:18,719 --> 00:48:22,799
Like you need to have a human
checking that constantly or regularly.
895
00:48:23,169 --> 00:48:25,479
and so yeah, this
compliance is another thing.
896
00:48:25,579 --> 00:48:29,484
And security in general, is something
that uh, we think we can help with.
897
00:48:29,564 --> 00:48:33,824
you mentioned Dependabot and the noise
that it causes and, we had some early
898
00:48:33,844 --> 00:48:38,954
prototypes of having some rules that are,
when some rules are met, actually the, I
899
00:48:38,964 --> 00:48:44,314
don't even want to know about the PR and
I just like merge the thing and so so we
900
00:48:44,546 --> 00:48:47,226
if it's a point release, yeah, if
it's a patch release, just do it.
901
00:48:47,236 --> 00:48:47,686
Just do it.
902
00:48:47,686 --> 00:48:47,996
Yeah.
903
00:48:48,204 --> 00:48:51,644
Yeah, especially the build
works like the CI passes, like
904
00:48:51,644 --> 00:48:52,764
I don't want to deal with that.
905
00:48:52,764 --> 00:48:55,484
And so yeah, we had some prototypes
where we automated entirely
906
00:48:56,429 --> 00:48:58,229
some of those, use cases yeah.
907
00:48:58,229 --> 00:49:01,889
And I think they, from the feedback
we're getting from our customers,
908
00:49:01,889 --> 00:49:04,991
people are getting there actually,
um, they are getting ready and
909
00:49:04,991 --> 00:49:05,896
so, yeah, it's very interesting.
910
00:49:05,896 --> 00:49:08,206
And think very soon you'll
have the ability implement
911
00:49:08,206 --> 00:49:09,916
your own DevSecOps agent.
912
00:49:10,251 --> 00:49:12,481
we're going to keep adding
more agents ourselves too,
913
00:49:12,481 --> 00:49:14,861
because magic, plug and play.
914
00:49:15,761 --> 00:49:20,181
like it when you're on board because you
don't have a lot of time evaluate another
915
00:49:20,181 --> 00:49:24,251
tool so you prefer to onboard it, it run
on the side and see if it's valuable.
916
00:49:24,471 --> 00:49:27,861
And then if it's valuable you want
invest more in it, which means
917
00:49:28,001 --> 00:49:31,491
defining your own agents, and then
on top of that, we do orchestration
918
00:49:31,501 --> 00:49:32,841
on top of this fleet of agents.
919
00:49:32,941 --> 00:49:35,571
so they are called at the right
time with the right context.
920
00:49:35,951 --> 00:49:38,681
You mentioned something
also about hallucination.
921
00:49:38,761 --> 00:49:43,781
I think it's very interesting because
I think you're right that LLMs got
922
00:49:43,791 --> 00:49:45,701
better recently in the last few months.
923
00:49:45,771 --> 00:49:50,266
And, they're definitely a lot more
powerful in term of how they think
924
00:49:50,596 --> 00:49:52,866
and the kind of mistakes they make.
925
00:49:53,081 --> 00:49:57,241
we actually built a lot of, engineering
around the LLM to deal with this.
926
00:49:57,241 --> 00:50:02,241
And so we realized that, you know, the
era of the rag is kind of over now.
927
00:50:02,241 --> 00:50:05,871
Like you don't need to pull like
an entire context and try to guide
928
00:50:05,871 --> 00:50:09,636
every single thing that the LM
should do, or, or should consider.
929
00:50:10,136 --> 00:50:14,926
Instead, the prompts are getting
smaller and you put a lot more
930
00:50:14,926 --> 00:50:16,996
intelligence in the tools themselves.
931
00:50:17,281 --> 00:50:20,786
and what I mean by intelligence is, for
instance, in the case of Mendral, we
932
00:50:20,786 --> 00:50:22,806
do static analysis on the tool calls.
933
00:50:23,146 --> 00:50:26,846
And so we are able at runtime when
the agent calls some tools to detect
934
00:50:27,096 --> 00:50:29,126
some drift from initial mission.
935
00:50:29,586 --> 00:50:35,741
and we, nice thing is you can, you have
the ability when you do that correctly,
936
00:50:35,841 --> 00:50:39,901
with result of the tool call to actually
influence the thinking of the agent.
937
00:50:39,911 --> 00:50:40,821
So it's almost like Yeah.
938
00:50:40,821 --> 00:50:40,841
That's great.
939
00:50:41,026 --> 00:50:43,636
the agent starts somewhere and
starts doing something, and then at
940
00:50:43,636 --> 00:50:48,511
some point he goes on the side on
something, you know, useless calling
941
00:50:48,761 --> 00:50:51,941
comments or, you know, some things
that are not actually very useful.
942
00:50:52,251 --> 00:50:55,141
You can actually steer it back to plan.
943
00:50:55,141 --> 00:50:58,971
And so we spot those things
in the tool calls and say, no,
944
00:50:58,971 --> 00:51:00,051
no, actually don't do that.
945
00:51:00,051 --> 00:51:01,041
Do this instead.
946
00:51:01,061 --> 00:51:05,021
So for the agent, it's like I'm calling
a tool, and it's weird because the tool
947
00:51:05,021 --> 00:51:06,331
is telling me to do something else.
948
00:51:06,331 --> 00:51:08,901
So that's really works.
949
00:51:09,081 --> 00:51:13,071
But the nice thing at the end is that
you, have almost a dynamic prompt.
950
00:51:13,531 --> 00:51:17,541
So instead of having like very long
prompt that you pass initially.
951
00:51:17,541 --> 00:51:22,551
You let the agent pull the context,
and from that context, you can actually
952
00:51:22,551 --> 00:51:24,681
dynamically change that prompt at runtime.
953
00:51:24,931 --> 00:51:27,131
And that's really what
gave us best results.
954
00:51:27,761 --> 00:51:31,391
coupling that with sub agents,
it's actually very important.
955
00:51:31,551 --> 00:51:33,351
Claude Code is doing that really well too.
956
00:51:33,351 --> 00:51:33,811
Like when it
957
00:51:33,811 --> 00:51:37,041
explores codebase, it's doing
that in a sub agent because
958
00:51:37,051 --> 00:51:37,976
you don't need the whole thing.
959
00:51:38,046 --> 00:51:41,386
All context of the exploration
back into the main loop.
960
00:51:41,436 --> 00:51:45,831
You don't need that once you got the
results, you want just that result to be
961
00:51:45,866 --> 00:51:47,971
in the cause of your LLMs moving forward.
962
00:51:47,971 --> 00:51:49,241
And so that's also what we do.
963
00:51:49,571 --> 00:51:51,011
And so so yeah.
964
00:51:51,011 --> 00:51:55,981
It's very interesting to see that like
those patterns being LLMs getting better.
965
00:51:56,261 --> 00:51:59,671
I think all of that is getting
closer and closer to, the kind of
966
00:51:59,711 --> 00:52:01,831
work that a human could do For you.
967
00:52:01,831 --> 00:52:04,889
And so, yeah, that's really
what motivated us to start this
968
00:52:04,889 --> 00:52:05,939
company in the first place.
969
00:52:06,439 --> 00:52:10,569
Because you can sort of foresee, I can
imagine that you can foresee like these
970
00:52:10,569 --> 00:52:13,289
things are getting better at a steady
pace and it's not just the models that are
971
00:52:13,289 --> 00:52:16,199
getting better, we're understanding better
how to, you know, because we don't just.
972
00:52:16,699 --> 00:52:20,874
you know, taking a blind model and
putting it into a random situation
973
00:52:20,874 --> 00:52:22,424
where you need to have it write code.
974
00:52:22,644 --> 00:52:25,269
it's like, to me it was like bringing
a kid to school straight out of
975
00:52:25,269 --> 00:52:28,439
university who just learned how to
program in that language and sitting
976
00:52:28,489 --> 00:52:31,429
in the chair on day one and saying,
okay, now, write me some code.
977
00:52:31,479 --> 00:52:34,359
Commit it to the do all these
things without any context, right?
978
00:52:34,359 --> 00:52:36,969
We just didn't understand
that we needed context.
979
00:52:36,979 --> 00:52:40,399
And of course we had smaller context
windows, so that was also a struggle.
980
00:52:40,799 --> 00:52:44,939
But like for me recently, I use OpenCode
a lot more than Claude Code now.
981
00:52:44,949 --> 00:52:47,249
every time I keep trying to go back
to Claude Code, even though it's
982
00:52:47,249 --> 00:52:49,399
got some really cool things that
there's not yet in OpenCode, they're
983
00:52:49,409 --> 00:52:50,819
back and forth It's my two favorite.
984
00:52:51,274 --> 00:52:52,914
And I talk about this a lot, I
think I probably mention it on
985
00:52:52,914 --> 00:52:55,324
every show nowadays because I'm
just obsessed with it all day long.
986
00:52:55,324 --> 00:53:01,024
But started to integrate LSPs, which I
think is leveling up code accuracy the,
987
00:53:01,044 --> 00:53:05,724
we don't really see it happening, but
just feel like my OpenCode, because LSPs
988
00:53:05,724 --> 00:53:08,084
are in there out of the box we're with
the Claude Code, I think you have to
989
00:53:08,084 --> 00:53:09,774
actually add the extensions manually.
990
00:53:10,584 --> 00:53:13,564
where OpenCode dynamically injects it
when it sees a language in real time.
991
00:53:13,939 --> 00:53:16,729
And I just feel like OpenCode
for me is a little bit better.
992
00:53:16,749 --> 00:53:19,559
And I don't have a way to prove this
theory, but I think it's maybe because of
993
00:53:19,559 --> 00:53:23,609
that LSP background where it's constantly
helping tools, helping keep it on the
994
00:53:23,609 --> 00:53:24,999
rails essentially, of how it's writing.
995
00:53:25,499 --> 00:53:30,169
And this is all I feel like leading
us to what some of the experts out
996
00:53:30,169 --> 00:53:33,679
there for the last year, over a year
really, I think last year I saw a great
997
00:53:33,689 --> 00:53:38,489
talk from the president of, I think
it was Gradle, talking about not only
998
00:53:38,509 --> 00:53:43,129
is AI coming for DevOps and operations
because it just has to, because the
999
00:53:43,129 --> 00:53:49,009
software development lifecYCle can't
be optimized for agentic coding without
1000
00:53:49,009 --> 00:53:51,374
the rest of the pipeline also improving.
1001
00:53:51,379 --> 00:53:54,269
if we're going to improve 2x,
the entire pipeline, the entire
1002
00:53:54,269 --> 00:53:55,724
lifecYCle has to be improved, 2x.
1003
00:53:55,724 --> 00:53:59,839
We can't just have developers tripling
their PR rate and then the rest of
1004
00:53:59,839 --> 00:54:01,229
us all act like nothing's changed.
1005
00:54:01,424 --> 00:54:03,994
we're going to have to accelerate,
we're going to have to use AI as well to
1006
00:54:03,994 --> 00:54:07,624
accelerate, unless we're suddenly going
to double the number of ops people, which
1007
00:54:07,664 --> 00:54:09,804
nobody, I don't see any teams doing that.
1008
00:54:10,174 --> 00:54:11,234
they're going to have to use AI.
1009
00:54:11,244 --> 00:54:15,974
And in that premise, if we're possibly
at this moment in time, if we consider
1010
00:54:15,974 --> 00:54:19,054
these more junior engineers, not so
much senior engineers in terms of their
1011
00:54:19,084 --> 00:54:21,774
overall intelligence and accuracy.
1012
00:54:22,264 --> 00:54:26,014
If that's the case, then we're going to
need better guardrails, we're going to
1013
00:54:26,014 --> 00:54:31,189
need more testing and, you more rules
and more guidelines for them to follow.
1014
00:54:31,409 --> 00:54:33,909
And then we're also going
to need to remediate faster.
1015
00:54:34,129 --> 00:54:37,459
A lot of times when people talk about
remediation of failures or recovery from
1016
00:54:37,459 --> 00:54:41,449
failures, at least in like the Kubernetes
world that I live, a lot of people
1017
00:54:41,449 --> 00:54:45,209
are talking about that from just being
able to detect failures in production.
1018
00:54:46,799 --> 00:54:51,359
Where I live is more in the CI world, and
that remediation is more important to me.
1019
00:54:51,579 --> 00:54:54,269
And I feel like that hasn't
been clearly unlocked.
1020
00:54:54,519 --> 00:54:59,289
And it feels like tools like Mendral
are way forward in that regard in
1021
00:54:59,289 --> 00:55:02,909
terms of they're going to help me
recover from failures faster so that
1022
00:55:02,929 --> 00:55:05,289
I can, you know, this is all in Git.
1023
00:55:05,349 --> 00:55:07,979
like we were this entire
conversation is talking about Git.
1024
00:55:08,069 --> 00:55:11,239
GIT is protocol that
allows me to undo mistakes.
1025
00:55:11,589 --> 00:55:15,729
So if we're so apprehensive and we
sometimes in DevOps, especially in
1026
00:55:15,749 --> 00:55:19,389
ops, we get so apprehensive about
change and we're constantly fighting
1027
00:55:19,474 --> 00:55:22,924
our one side of our brain wants to
not change anything because it works
1028
00:55:22,924 --> 00:55:24,334
right now and we're just fine with it.
1029
00:55:24,574 --> 00:55:27,124
The other half of our brain's like,
this is all needs to be better.
1030
00:55:27,124 --> 00:55:28,084
It could be so much better.
1031
00:55:28,084 --> 00:55:29,774
Let me fix things, let me improve things.
1032
00:55:30,084 --> 00:55:32,464
And that tension is just
naturally in our brains.
1033
00:55:32,939 --> 00:55:36,669
And this feels like a
way for me to go faster.
1034
00:55:36,979 --> 00:55:39,859
Also, understanding that maybe it's
not going to get it correct 100 percent
1035
00:55:39,859 --> 00:55:43,799
of the time, when it fails, it's
also going to elevate the failures.
1036
00:55:43,809 --> 00:55:48,459
It's also going to find the failures
and fix them faster so I could go faster
1037
00:55:48,469 --> 00:55:51,979
if that means, well, that outage might
be 10 minutes on that test failure.
1038
00:55:52,019 --> 00:55:55,959
we broke a test, we fixed it
within 15, 20 minutes, nobody
1039
00:55:55,959 --> 00:55:57,509
even noticed, we're all fine.
1040
00:55:57,899 --> 00:56:01,799
So what's the real risk here, if
this thing is really just committing
1041
00:56:01,809 --> 00:56:07,309
PRs against my infrastructure,
it doesn't feel like a huge risk
1042
00:56:07,339 --> 00:56:11,359
because I'm not having git repo.
1043
00:56:11,399 --> 00:56:11,699
Right.
1044
00:56:11,984 --> 00:56:12,984
at least that's how I take it.
1045
00:56:12,984 --> 00:56:15,394
is the stakes are actually a
little lower because I'm in git.
1046
00:56:15,979 --> 00:56:19,834
thing you said actually that's very
interesting is, just about going faster.
1047
00:56:19,834 --> 00:56:24,484
I, heard people telling me that
the production of code has been
1048
00:56:24,484 --> 00:56:25,944
solved it's going to be fine.
1049
00:56:25,944 --> 00:56:29,469
And I think it's about to be solved,
honestly, using a lot of AI ourselves.
1050
00:56:29,494 --> 00:56:33,659
But I think there are some physics that,
are ruling the world that are not going to
1051
00:56:33,659 --> 00:56:38,809
change, which means, you can write a lot
of code in parallel, but at a given time,
1052
00:56:38,859 --> 00:56:42,519
there is only one version of your code
that goes to production at a given time.
1053
00:56:43,029 --> 00:56:46,509
And so you, you always need
that no matter what happens.
1054
00:56:46,544 --> 00:56:49,269
and I'm sure the software
delivery is going to change.
1055
00:56:49,269 --> 00:56:50,809
We're going to participate to that change.
1056
00:56:50,809 --> 00:56:52,599
It has to change, that's for sure.
1057
00:56:52,599 --> 00:56:54,399
Like when you even just a detail.
1058
00:56:54,439 --> 00:56:58,449
But when you look at how PRs
are being reviewed today?
1059
00:56:58,459 --> 00:57:02,229
Like, realize that maybe
it's not the right, paradigm.
1060
00:57:02,589 --> 00:57:05,709
be done differently or possibly
with different tools actually,
1061
00:57:06,059 --> 00:57:08,299
But in any way the
1062
00:57:08,381 --> 00:57:10,611
to do human q a, by the way, Q, not Q,
1063
00:57:10,611 --> 00:57:12,451
A, QA, like we used to do human qa.
1064
00:57:12,621 --> 00:57:15,811
Now, if you're doing human
qa, your legacy, like if
1065
00:57:15,811 --> 00:57:18,051
you, yeah, this could happen,
1066
00:57:18,064 --> 00:57:22,254
you still need to do, it's actually a
very good example because you right?
1067
00:57:22,289 --> 00:57:23,951
it's automated you still need to do it.
1068
00:57:24,271 --> 00:57:27,631
And I think the same thing happens
with, software delivery at a given time.
1069
00:57:27,631 --> 00:57:30,771
You need an integration loop that's
going to make sure that you can
1070
00:57:30,771 --> 00:57:34,701
actually ship the one single version
of your software at a given time.
1071
00:57:35,301 --> 00:57:38,781
you don't have this constraint when you
publish code thanks to Git, actually,
1072
00:57:38,801 --> 00:57:43,201
and you know, you can open any branch,
any PR, anything, but you still need
1073
00:57:43,201 --> 00:57:45,171
to integrate them at some point.
1074
00:57:45,551 --> 00:57:46,891
And I think that that's going to stay.
1075
00:57:47,111 --> 00:57:50,321
and so even though all the processes
and the way people work is going to
1076
00:57:50,321 --> 00:57:54,761
be different, but, yeah, no, so that's
actually very interesting, to hear
1077
00:57:54,821 --> 00:57:58,591
in terms of going faster and what are
all the things needed to go faster.
1078
00:57:58,601 --> 00:58:00,161
It's not just about writing code.
1079
00:58:01,024 --> 00:58:03,324
Let me ask you real quick
on a very specific subject.
1080
00:58:03,404 --> 00:58:07,454
our friend Victor Farcic, you might
know him, DockerCaptain alumni and,
1081
00:58:07,677 --> 00:58:12,529
YouTuber, who has been doing a lot
of AI videos over the last year.
1082
00:58:13,019 --> 00:58:16,309
We had a conversation recently where
he believes, and I totally agree with
1083
00:58:16,309 --> 00:58:21,979
this statement, that the harness, our
local harness, whether that's Claude
1084
00:58:21,999 --> 00:58:26,419
Code or OpenCode or Copilot and VS
Code or however you want to roll, That,
1085
00:58:26,419 --> 00:58:32,239
that's going to be the way that not just
devs, but maybe DevOps and operators
1086
00:58:32,239 --> 00:58:33,939
and platform engineers and SREs.
1087
00:58:34,329 --> 00:58:38,439
This is going to be like our window to
the world, and the more we can stuff
1088
00:58:38,439 --> 00:58:40,159
context into it, the more we can give it.
1089
00:58:40,619 --> 00:58:44,759
learned yesterday from another DevOps
engineer that's making his own, he
1090
00:58:44,759 --> 00:58:46,269
has his own skills, essentially.
1091
00:58:46,269 --> 00:58:49,779
He's not using skills for this particular
thing yet, but he's creating a me skill
1092
00:58:49,789 --> 00:58:52,669
and that's how I this, and I'm going
to practice this in the next week and
1093
00:58:52,669 --> 00:58:57,099
see if it helps there's a rising theory
that we shouldn't be telling the AI.
1094
00:58:57,619 --> 00:58:59,699
Hey, you need to be an expert marketer.
1095
00:58:59,699 --> 00:59:03,319
You need to be in this role,
you need to be an expert SRE.
1096
00:59:03,549 --> 00:59:07,219
But it's more important that we tell it
about us and what, how we work and what
1097
00:59:07,219 --> 00:59:09,809
we expect, rather than tell it what it is.
1098
00:59:09,839 --> 00:59:14,489
And so one of these engineers in the guild
was saying that he's had a lot better
1099
00:59:14,539 --> 00:59:18,239
output of his LLM by describing himself.
1100
00:59:18,249 --> 00:59:20,879
And he, I think, I think he injects it
as a command or something in his harness.
1101
00:59:21,189 --> 00:59:24,479
I see of that as more of a skill
that I just need to flood into each
1102
00:59:24,479 --> 00:59:28,929
conversation at some point so that every
session, the AI knows more about me
1103
00:59:28,929 --> 00:59:31,149
and my role and how I want to operate.
1104
00:59:31,589 --> 00:59:35,289
And so getting back to Viktor, Viktor
feels like this harness that eventually
1105
00:59:35,289 --> 00:59:36,749
will know us personally better.
1106
00:59:36,999 --> 00:59:39,139
It will have maybe it's
more docs from the team.
1107
00:59:39,139 --> 00:59:40,189
It'll have more access to.
1108
00:59:40,609 --> 00:59:43,859
confluence or Jira or Notion or
whatever you might have that gives
1109
00:59:43,859 --> 00:59:45,479
it more context about environment.
1110
00:59:45,814 --> 00:59:49,704
So thus, that seems to be the best
way forward for interacting with all
1111
00:59:49,704 --> 00:59:51,364
of our systems, not just our code.
1112
00:59:51,434 --> 00:59:52,164
This the theory he has.
1113
00:59:52,224 --> 00:59:55,034
I think this feels like a
pattern a thing that I want.
1114
00:59:55,324 --> 00:59:59,114
Do you see Mendral as being
something rather than in Slack
1115
00:59:59,194 --> 01:00:01,574
what is the primary chat interface?
1116
01:00:01,764 --> 01:00:03,314
You know, obviously there's
this great dashboard.
1117
01:00:03,454 --> 01:00:04,724
Probably going to always
have the dashboard.
1118
01:00:05,584 --> 01:00:07,634
I don't gravitate to Slack right now.
1119
01:00:07,634 --> 01:00:09,954
Like, I'm not someone who jumps into
Slack to have a conversation with AI.
1120
01:00:10,044 --> 01:00:11,784
I always think about
it being in my harness.
1121
01:00:12,174 --> 01:00:14,294
do you see it being like an MCP or an A2A?
1122
01:00:14,754 --> 01:00:18,024
I don't really understand exactly
how agents talk to each other.
1123
01:00:18,044 --> 01:00:19,664
I don't actually currently
have any of my own.
1124
01:00:19,674 --> 01:00:21,804
How does that, what does that
future look like for Mendral?
1125
01:00:22,661 --> 01:00:27,091
So definitely it's very interesting
topic and, so short answer is yes, yes.
1126
01:00:27,111 --> 01:00:33,281
I do also have a single interface and
I, constantly, tweak it and improve
1127
01:00:33,281 --> 01:00:37,631
it and customize it to, to my profile,
my needs, my skills, all of that.
1128
01:00:37,651 --> 01:00:39,011
And so, so, yes.
1129
01:00:39,041 --> 01:00:43,101
And, and today Mendral has a lot of
knowledge and he's building a lot of,
1130
01:00:43,506 --> 01:00:47,196
fairly large context at a given time about
your state of your software delivery.
1131
01:00:47,666 --> 01:00:52,526
And we started to get people asking us,
Hey, can I use that knowledge locally?
1132
01:00:52,526 --> 01:00:54,596
Because we are actually doing
a lot of things locally.
1133
01:00:54,596 --> 01:00:57,526
You know, I mentioned software
delivery is gonna change.
1134
01:00:57,586 --> 01:01:01,636
And one, I think one of the biggest
change that's gonna happen in CI/CD is
1135
01:01:01,636 --> 01:01:05,136
a lot more things will be done locally
on the machine, that's for sure.
1136
01:01:05,616 --> 01:01:10,236
And so, you know, starting with the
reviews, of code, like Anthropic released,
1137
01:01:10,466 --> 01:01:16,046
and there are more and more people doing
reviews locally before they land and
1138
01:01:16,046 --> 01:01:22,258
I think that's only the beginning and,
I think, um, eventually, we can expect
1139
01:01:22,628 --> 01:01:27,108
the, code to land on your CI to be more
and more perfect because there is a lot
1140
01:01:27,108 --> 01:01:32,368
more thinking and calls and and back and
forth happening on your local machine.
1141
01:01:32,688 --> 01:01:35,868
And so, yes, indeed, we want
Mendral to be available, locally.
1142
01:01:36,188 --> 01:01:39,708
so it can be included entirely with
the way you do work already and
1143
01:01:39,708 --> 01:01:44,183
also bring this knowledge before
it lands on CI, kind of sucks today
1144
01:01:44,183 --> 01:01:47,723
that every time you need to, there
is this big surprise that happens
1145
01:01:47,723 --> 01:01:50,753
when you have to kick in CI runner to
1146
01:01:51,008 --> 01:01:53,248
verify certain things
that you cannot verify.
1147
01:01:53,248 --> 01:01:55,198
Otherwise, I think that needs to change.
1148
01:01:55,548 --> 01:01:57,258
And so yes, in terms integration,
1149
01:01:57,415 --> 01:01:57,705
right?
1150
01:01:58,685 --> 01:02:00,815
Like, this is why you were working
on Dagger for seven years, yeah.
1151
01:02:00,833 --> 01:02:01,533
Exactly.
1152
01:02:01,533 --> 01:02:02,303
that's exactly right.
1153
01:02:02,303 --> 01:02:06,293
And, in term of implementation,
you mentioned, MCP, A2 A, I think,
1154
01:02:06,343 --> 01:02:10,223
think what's, where most people
are moving right now is by having,
1155
01:02:10,283 --> 01:02:12,833
really good, well documented CLIs.
1156
01:02:13,013 --> 01:02:16,593
' cause again, LLMs actually perform
Like the human brain, not at
1157
01:02:16,593 --> 01:02:19,883
the same level, but it's very
similar in the way it thinks.
1158
01:02:19,883 --> 01:02:23,913
And so do you think your software engineer
would behave better with an API and
1159
01:02:23,923 --> 01:02:27,888
MSCP server or with a great CLI, And
when you look at Claude and skills, it
1160
01:02:27,888 --> 01:02:30,528
actually works much better by using CLIs.
1161
01:02:30,988 --> 01:02:33,923
and so I think, um, MCP is
good for certain things.
1162
01:02:33,958 --> 01:02:34,653
but I see it.
1163
01:02:34,963 --> 01:02:38,093
Exactly the same as an
API API MCP same thing.
1164
01:02:38,533 --> 01:02:42,268
it actually works better usually when
you have remote MCP servers, but remote
1165
01:02:42,268 --> 01:02:45,668
API or remote MCP server, at the end
of the day, it's not very different.
1166
01:02:46,158 --> 01:02:49,568
Uh, and so I think the best way to
integrate with some of those APIs is
1167
01:02:49,568 --> 01:02:53,503
to have a really good CLI That your
harness, as you said, can integrate with.
1168
01:02:53,853 --> 01:02:57,606
And so that, that's what we're planning
to do eventually, is to have, A-I-C-L-I
1169
01:02:57,611 --> 01:03:02,113
that gives you all the capabilities as
you could get on Slack or the dashboard.
1170
01:03:02,143 --> 01:03:05,748
Those are just front end to the
engine that we run on the backend.
1171
01:03:05,798 --> 01:03:06,248
So yeah.
1172
01:03:07,038 --> 01:03:10,838
short answer, yes, and I'm glad you
asked because, I think it shows also
1173
01:03:10,838 --> 01:03:14,543
that you're, pretty advanced with
your own harness because not a lot
1174
01:03:14,543 --> 01:03:16,273
of people are not like that today.
1175
01:03:16,283 --> 01:03:18,813
You know, sometimes it feels, when
we're talking to each other, we're
1176
01:03:18,813 --> 01:03:20,293
like, yeah, of course it's obvious.
1177
01:03:20,293 --> 01:03:24,053
You know, need improve your skills,
your customization, your profile.
1178
01:03:24,093 --> 01:03:25,033
And I do that too.
1179
01:03:25,393 --> 01:03:29,373
It's just that so many people out
there who are still figuring out what
1180
01:03:29,373 --> 01:03:31,003
they should do with AI, you know,
1181
01:03:31,145 --> 01:03:34,475
Well, and the reality is that six
months ago I knew none of this, right?
1182
01:03:34,475 --> 01:03:36,355
We didn't even have skills
until six months ago.
1183
01:03:36,365 --> 01:03:39,435
Like there's just, yeah, there is so much.
1184
01:03:39,445 --> 01:03:43,925
And we're all, it's the only reason
I think any, any team that is in
1185
01:03:43,925 --> 01:03:47,725
our sort of level of maturity or
beyond is getting productive is
1186
01:03:47,725 --> 01:03:49,225
because the AI is doing the work.
1187
01:03:49,245 --> 01:03:52,375
Like we are, we're so consumed
with having to learn patterns.
1188
01:03:52,615 --> 01:03:54,025
I'm reading constantly.
1189
01:03:54,300 --> 01:03:59,110
I've had to adopt a ReadWise reader in
the last year as critical part of my
1190
01:03:59,110 --> 01:04:03,460
learning workflow where I just dump every
tweet, every blog post, every YouTube
1191
01:04:03,470 --> 01:04:07,410
that I think is interesting around AI
that I think I probably should consume.
1192
01:04:07,865 --> 01:04:10,905
I throw it in a read, shout out to
ReadRise Reader, uh, Readwise is the
1193
01:04:10,905 --> 01:04:15,315
company the product reader is the
app that you can consume all these
1194
01:04:15,315 --> 01:04:16,935
different types of media in one place.
1195
01:04:16,935 --> 01:04:18,695
And I can log, I can have it summarized.
1196
01:04:18,715 --> 01:04:20,495
I can tag it, I can do all
these great things with it.
1197
01:04:20,920 --> 01:04:24,880
It's kind of like to me, the graduation
of the old Feedly or the Google reader
1198
01:04:24,880 --> 01:04:26,570
or the RSS readers that we used to have.
1199
01:04:26,950 --> 01:04:30,190
But it's kind of becoming like my podcast
and YouTube player at this point too.
1200
01:04:30,280 --> 01:04:33,700
Instead of using the algorithms, I
just dump things into it that I think
1201
01:04:33,700 --> 01:04:35,560
are interesting from the algorithm.
1202
01:04:35,740 --> 01:04:38,445
And then when I want to be
focused and learn, I go there.
1203
01:04:38,445 --> 01:04:40,835
So that's like a hack for me
to keep up because well, and
1204
01:04:40,835 --> 01:04:42,225
I'm not nobody's keeping up.
1205
01:04:42,235 --> 01:04:43,195
Like this is a crazy time.
1206
01:04:43,245 --> 01:04:44,025
it's insanity.
1207
01:04:44,025 --> 01:04:45,015
no one can actually know it all.
1208
01:04:45,360 --> 01:04:46,325
No one's an expert yet.
1209
01:04:46,675 --> 01:04:52,225
So it's exciting to see that because
like, do you know specifically how we
1210
01:04:52,225 --> 01:04:55,755
would implement that in terms of me
having a Claude Code in front of me?
1211
01:04:56,025 --> 01:04:58,195
How would that talk to
Mendral, like getting into
1212
01:04:58,195 --> 01:04:59,455
your architecture for a second?
1213
01:04:59,455 --> 01:05:01,325
is that an A2A, I'm not
smart enough to know.
1214
01:05:01,325 --> 01:05:06,205
Is A2A the thing that would allow my
agent to somehow talk to like an API
1215
01:05:06,675 --> 01:05:08,415
on your system that has an agent.
1216
01:05:08,425 --> 01:05:09,925
Do you know anything about this stuff
1217
01:05:10,145 --> 01:05:10,515
yet?
1218
01:05:10,698 --> 01:05:15,508
so, I mean by a CLI is, I think a
good example of that would be look
1219
01:05:15,508 --> 01:05:20,128
at the difference when you use either
OpenCode or Claude Code, or even Cursor.
1220
01:05:20,128 --> 01:05:27,778
Like look at the difference of interacting
with GitHub with on one side, uh, GitHub
1221
01:05:27,778 --> 01:05:28,898
MCP, which is actually quite good.
1222
01:05:29,708 --> 01:05:31,828
And on the other side, the GHCLI.
1223
01:05:32,528 --> 01:05:36,408
I don't know if you tried both
actually, but, I invite you to do it.
1224
01:05:36,463 --> 01:05:39,478
you'll see that there is a huge
difference between the two.
1225
01:05:39,958 --> 01:05:44,158
Basically TLDR is one works really
well, the other is a bit clunky.
1226
01:05:44,418 --> 01:05:45,718
I'll Let you guess which one.
1227
01:05:45,718 --> 01:05:54,818
Well, the CLI is great because when
you look at the agent session and how
1228
01:05:54,818 --> 01:05:59,148
it navigates the CLI, it basically
reads, reads the help, it requires
1229
01:05:59,148 --> 01:06:02,718
your CLI to have really good error
messages so the agent can actually
1230
01:06:02,778 --> 01:06:07,488
react from it, basically, it's the same
thing like you, your, your CLI needs
1231
01:06:07,488 --> 01:06:10,028
to be intuitive so a human can use it.
1232
01:06:10,028 --> 01:06:14,968
If a human can use it well without
much documentation, it means an LLM
1233
01:06:14,968 --> 01:06:18,838
will use it pretty well because it
can read those messages and, and can
1234
01:06:18,838 --> 01:06:23,968
interact with the CLI and so yeah, when
we do, we got a lot more success with,
1235
01:06:24,013 --> 01:06:27,808
really good CLIs when we integrate
with services than anything else.
1236
01:06:28,008 --> 01:06:32,833
And then it's obviously your job as,
I mean our job for Mendral, to make it
1237
01:06:32,853 --> 01:06:37,043
work Well, you know, with our API and the
CLI, but for the user, and for both the
1238
01:06:37,083 --> 01:06:41,983
user and the agent, the, you know, your
local agent, like, it doesn't matter.
1239
01:06:42,268 --> 01:06:43,141
the, the CLI,
1240
01:06:43,761 --> 01:06:47,556
the CLI works well, is able to
expose the right context is able
1241
01:06:47,636 --> 01:06:51,306
to grab the right input and output,
and have, the right integration.
1242
01:06:51,306 --> 01:06:54,941
All of that is obviously complex,
but it's the problem of the person
1243
01:06:54,941 --> 01:06:56,981
building the CLI and the API behind.
1244
01:06:56,981 --> 01:07:01,456
So, yeah, I wouldn't think too much
about the best way integrate, like
1245
01:07:01,476 --> 01:07:06,096
you can actually write a skill, that
says, Hey, you have the CLI, X, you
1246
01:07:06,096 --> 01:07:08,906
know, and the CLI is to do this.
1247
01:07:09,586 --> 01:07:10,286
some context.
1248
01:07:10,316 --> 01:07:10,726
That's it.
1249
01:07:10,746 --> 01:07:14,936
The integration is done and it will
work much, much better any MCP server.
1250
01:07:15,638 --> 01:07:18,238
Yeah, I just realized while you're
saying that, maybe a question I should
1251
01:07:18,248 --> 01:07:22,998
start asking products that are on
this Agentic DevOps podcast is, are
1252
01:07:22,998 --> 01:07:27,098
you prepared for the AI to sign up
and use your tool versus the human?
1253
01:07:28,086 --> 01:07:28,566
Exactly.
1254
01:07:28,573 --> 01:07:32,183
that's like now we have Stripe doing
this, we have, people booking their planes
1255
01:07:32,183 --> 01:07:34,563
with AI and OpenClaw's doing all this.
1256
01:07:34,583 --> 01:07:38,043
And I'm wondering for companies that
are built in the AI era, and actually
1257
01:07:38,043 --> 01:07:40,733
using AI just like AI centric, right?
1258
01:07:41,053 --> 01:07:45,138
are they also, presumably thinking,
well, let's see how far Claude Code
1259
01:07:45,138 --> 01:07:49,188
can get just signing up and using the
tool implementing our preferences since
1260
01:07:49,198 --> 01:07:52,988
presumably your local harness knows
more about you and your infrastructure
1261
01:07:52,988 --> 01:07:54,938
than Mendral does on day one at least.
1262
01:07:55,283 --> 01:07:57,288
usage scenario that you're considering?
1263
01:07:57,698 --> 01:07:57,973
Yeah.
1264
01:07:57,973 --> 01:08:01,093
And, I think that's, you know,
there are, even startups right now.
1265
01:08:01,093 --> 01:08:05,893
Like, I think there were a few in our, our
YC Batch that are specialized in giving
1266
01:08:05,893 --> 01:08:10,433
access, like to, to all the services out
there, like booking a flight or anything,
1267
01:08:10,443 --> 01:08:12,273
giving it access to agent harnesses.
1268
01:08:12,343 --> 01:08:16,973
so for instance, creating actually A CLI
on MCP server to interact with some of the
1269
01:08:16,973 --> 01:08:22,673
services that today are only accessible
through a dashboard and some clunky ux.
1270
01:08:22,978 --> 01:08:28,013
so yeah, I think the web of tomorrow is
gonna be adjunct and, it doesn't, very
1271
01:08:28,013 --> 01:08:33,103
interesting because it's not so important
anymore to make, interface that's really
1272
01:08:33,123 --> 01:08:37,273
good beautiful for humans, but it's more
important that it's ergonomic to an agent.
1273
01:08:37,623 --> 01:08:38,643
so yeah, definitely.
1274
01:08:38,953 --> 01:08:43,043
right now for us specifically, Mendral
is giving you like a turnkey solution
1275
01:08:43,108 --> 01:08:47,843
in a few clicks, but I realized that
the integrations with other agents is
1276
01:08:47,843 --> 01:08:52,943
gonna be key moving forward because
what everyone wants is not a single
1277
01:08:52,943 --> 01:08:54,473
agent, it's actually a team of agent.
1278
01:08:54,863 --> 01:08:58,733
So even when you use Claude Code, you
are actually already using several agents
1279
01:08:58,798 --> 01:09:00,163
underneath, locally on your machine.
1280
01:09:00,573 --> 01:09:04,443
And when you call to remote, services,
you already have a team of agents with
1281
01:09:04,443 --> 01:09:07,833
some agents running on your machines,
some other agents running remotely.
1282
01:09:08,043 --> 01:09:09,183
And I think that's the future.
1283
01:09:09,183 --> 01:09:10,173
That's what people want.
1284
01:09:10,398 --> 01:09:10,788
Yeah.
1285
01:09:11,268 --> 01:09:13,718
All right, we're going to do
some rapid fires real quick, but
1286
01:09:13,808 --> 01:09:17,108
before that, I think I have one more
question on the future of Mendral.
1287
01:09:17,128 --> 01:09:18,308
Like we've been talking about GitHub.
1288
01:09:18,858 --> 01:09:21,078
Not everybody that listens to this
podcast is maybe using GitHub.
1289
01:09:21,118 --> 01:09:24,748
We've even got some people, Kurt, I'm
hearing news recently that some teams
1290
01:09:24,748 --> 01:09:26,528
are leaving GitHub for various reasons.
1291
01:09:26,728 --> 01:09:30,158
Are you, like, where do you
see going out the rest of 2026?
1292
01:09:30,223 --> 01:09:34,703
Do you have plans for other tooling, other
platforms, other, anything like that?
1293
01:09:34,713 --> 01:09:35,093
Like,
1294
01:09:35,206 --> 01:09:36,666
we're already working on some of it.
1295
01:09:36,666 --> 01:09:39,616
Yeah, we started to work with
bigger companies lately realized
1296
01:09:39,616 --> 01:09:43,236
that some of them have different CI
needs, you know, things like we got
1297
01:09:43,256 --> 01:09:47,976
questions for CircleCI, buildguides,
so yeah, we're gonna support them.
1298
01:09:48,041 --> 01:09:51,576
the Mendral today is, we talked
a lot about GitHub, because I
1299
01:09:51,576 --> 01:09:54,791
would say So, based on what we
see from people, it's probably 80%
1300
01:09:54,791 --> 01:09:56,301
percent of the demand, at least.
1301
01:09:56,591 --> 01:10:02,341
so big still, but do agree that it's
going to disappear over time, or at
1302
01:10:02,341 --> 01:10:06,611
least reduce, you know, for me, GitHub
is more like a protocol nowadays.
1303
01:10:07,241 --> 01:10:11,066
because when you look at bringing
a GitHub app that replaces GitHub
1304
01:10:11,146 --> 01:10:15,326
Actions with another, CI system, or
even replace the GitHub action runners,
1305
01:10:15,576 --> 01:10:17,666
or bring another review tool on top.
1306
01:10:17,876 --> 01:10:21,216
some people migrated to linear
instead of GitHub issues.
1307
01:10:21,436 --> 01:10:24,396
So yeah, everyone is grabbing a
piece of GitHub and integrating
1308
01:10:24,396 --> 01:10:25,716
with GitHub because they have to.
1309
01:10:26,096 --> 01:10:29,056
So it became more like an integration
protocol than anything else.
1310
01:10:29,056 --> 01:10:30,666
And so, we have to follow that.
1311
01:10:30,666 --> 01:10:34,346
And so we made Mendral CI
agnostic by design, from an
1312
01:10:34,346 --> 01:10:35,336
architecture point of view.
1313
01:10:35,591 --> 01:10:38,796
we haven't built all the integrations
yet because there is still a high demand
1314
01:10:38,796 --> 01:10:40,446
for GitHub Actions, but it's gonna come.
1315
01:10:41,133 --> 01:10:45,103
Yeah, I secretly wish that they
would just open source the, the
1316
01:10:45,103 --> 01:10:47,783
non open source parts, the API
essentially for GitHub Actions.
1317
01:10:48,253 --> 01:10:51,773
That way we can have local runner, like
we can have, we can do this all locally.
1318
01:10:51,803 --> 01:10:55,143
We can still, you know, I feel
like at some point the automation
1319
01:10:55,163 --> 01:10:57,793
engine behind GitHub Actions
is just going to be commodity.
1320
01:10:57,823 --> 01:11:00,893
And I'm looking forward to that future
because we do have all these rough edges.
1321
01:11:00,893 --> 01:11:03,353
It does feel like a very
low level, raw tool to me.
1322
01:11:03,723 --> 01:11:04,883
but I, you know, I absolutely love it.
1323
01:11:05,268 --> 01:11:06,653
you know, I use it every day.
1324
01:11:06,723 --> 01:11:10,633
I make money by selling courses on
it and stuff, so I obviously love it.
1325
01:11:10,853 --> 01:11:14,608
It's just, it's there's a lot there
that could be improved and, you know,
1326
01:11:14,623 --> 01:11:17,263
they would need, like, you know,
another hundred engineers on that
1327
01:11:17,263 --> 01:11:20,253
actions team to move at the pace that
I think it needs right now in AI.
1328
01:11:20,673 --> 01:11:23,503
I mean, you talk about this as
like, we need these other tools.
1329
01:11:23,513 --> 01:11:25,283
There's like a future
with these other things.
1330
01:11:25,283 --> 01:11:30,763
And even GitHub's, former own CEO has
left, started a new company, funded
1331
01:11:30,763 --> 01:11:34,983
I think 60 million by Microsoft, or
at least partly by Microsoft to help
1332
01:11:34,993 --> 01:11:37,623
solve this agentic coding problem.
1333
01:11:37,663 --> 01:11:40,413
They sound like they're going to be a
layer on top of GitHub, which again,
1334
01:11:40,493 --> 01:11:43,903
makes me feel like GitHub is becoming
like a cloud provider in a sense, just
1335
01:11:43,903 --> 01:11:47,173
for code, because they already have
been, but they're just going to be this
1336
01:11:47,173 --> 01:11:50,343
thing that we maybe don't touch that
much, and that lots of people are using
1337
01:11:50,353 --> 01:11:53,593
things on top of it, but don't ever
actually have to go there because the
1338
01:11:53,613 --> 01:11:57,458
AI is the one submitting, you know, I
don't type Git commands anymore, right?
1339
01:11:57,463 --> 01:12:00,913
there's so much I don't do, and the
only reason I think I'm even still going
1340
01:12:00,913 --> 01:12:06,173
to GitHub is because one habit, like I
got a lot of bad old habits to break.
1341
01:12:06,473 --> 01:12:09,693
I've got a lot of things that I should
be asking my local agent to do or look at
1342
01:12:09,693 --> 01:12:13,733
or go find out that I'm manually going,
doing, and doing, and I don't know why.
1343
01:12:14,053 --> 01:12:16,763
feels like I need to sometimes just
break myself the habit and see how
1344
01:12:16,763 --> 01:12:19,773
far I can go in the day without ever
actually going to the GitHub website.
1345
01:12:20,263 --> 01:12:23,533
Um, because you're right, like the
GitHub CLI is doing a lot more.
1346
01:12:23,533 --> 01:12:27,013
And now, I mean, even now we
have the Gmail, CLI like a Google
1347
01:12:27,013 --> 01:12:28,733
Workspace launched recently, a CLI.
1348
01:12:28,733 --> 01:12:33,688
so you can access all of these workspace
tools, Google Docs, Google Gmail, Google
1349
01:12:33,723 --> 01:12:35,668
Drive and all that stuff from a CLI.
1350
01:12:35,668 --> 01:12:36,363
So yeah, that, that's awesome.
1351
01:12:36,493 --> 01:12:39,603
the CLI future, I feel like is
strong and I'm here for all of that,
1352
01:12:39,603 --> 01:12:42,803
'cause one of my favorite things to
use go for is to buy, to make CLIs
1353
01:12:42,813 --> 01:12:44,383
for solving my own little problems.
1354
01:12:44,383 --> 01:12:47,698
And I've already got, like most
of us, I think probably half dozen
1355
01:12:47,698 --> 01:12:52,083
local projects that I'm just making
CLIs for my own use to feed back
1356
01:12:52,083 --> 01:12:53,583
to the AI to do things for me.
1357
01:12:54,008 --> 01:12:55,063
So it's just a fun time.
1358
01:12:55,063 --> 01:12:55,778
We could talk forever.
1359
01:12:55,833 --> 01:12:57,393
I love talking to you about this platform.
1360
01:12:57,763 --> 01:12:59,263
but a couple of quick
fires for the audience.
1361
01:12:59,263 --> 01:13:02,293
I think I'm gonna need to start
putting these in my show just to start
1362
01:13:02,293 --> 01:13:03,913
asking engineers that are on the show.
1363
01:13:04,233 --> 01:13:05,433
current favorite harness.
1364
01:13:06,207 --> 01:13:08,417
Oh, I use Claude Code a lot actually for,
1365
01:13:08,417 --> 01:13:09,357
even more than code.
1366
01:13:09,777 --> 01:13:10,267
Yeah.
1367
01:13:10,677 --> 01:13:14,027
I start to customize it for
automating some of my non
1368
01:13:14,027 --> 01:13:15,357
technical work too, actually,
1369
01:13:16,055 --> 01:13:16,405
Okay.
1370
01:13:16,705 --> 01:13:21,975
Are you into, like the new Dispatch
and the Computer Use yet, is that
1371
01:13:21,985 --> 01:13:25,155
like for personal stuff or for
things that aren't necessarily code?
1372
01:13:25,155 --> 01:13:27,785
Are you leaning into some of
the cloud stuff with Claude?
1373
01:13:27,862 --> 01:13:30,372
so usually I use a combination
of, a couple of things.
1374
01:13:30,387 --> 01:13:35,097
I, I like a lot of the Anthropic products
and so, I use Claude Code, the CLI,
1375
01:13:35,137 --> 01:13:35,517
uh,
1376
01:13:35,557 --> 01:13:36,797
locally for most of the.
1377
01:13:36,862 --> 01:13:41,942
The code, I started to automate, a lot
of my code boring work, even with Claude
1378
01:13:41,972 --> 01:13:44,322
Code and some integrations locally.
1379
01:13:44,322 --> 01:13:48,402
And so I maintain like a catalog of
skills, uh, of personal skills that
1380
01:13:48,402 --> 01:13:50,402
I used to automate some of my job.
1381
01:13:50,762 --> 01:13:53,852
The problem with Claude Code is
that very specific to code also.
1382
01:13:53,972 --> 01:13:58,967
So I'm aware of that and so sometimes I
go to Claude Desktop, which I think has
1383
01:13:58,967 --> 01:14:04,417
a lot of, you know, a way of managing
the context that it's entirely different.
1384
01:14:04,657 --> 01:14:07,197
The way it manages memory and
context is very different.
1385
01:14:07,407 --> 01:14:08,387
So I like Claude Desktop.
1386
01:14:08,577 --> 01:14:10,837
I do not like Claude Cowork, Actually,
1387
01:14:11,107 --> 01:14:14,737
That's some of the things that
people start talking about and
1388
01:14:14,737 --> 01:14:18,257
like, I do not like it because I
think it's not as advanced as Claude
1389
01:14:18,277 --> 01:14:22,117
Code in terms of context management
and multi agents and all of that.
1390
01:14:22,117 --> 01:14:23,617
I think it will get there eventually.
1391
01:14:24,135 --> 01:14:24,465
Yeah,
1392
01:14:25,017 --> 01:14:28,387
and then I started lately
and that, one might make you
1393
01:14:28,387 --> 01:14:29,797
laugh, but it's kind of weird.
1394
01:14:30,272 --> 01:14:34,572
started to use the Claude Code, iOS app.
1395
01:14:35,012 --> 01:14:38,492
the cloud app, has a
Code, tab or something.
1396
01:14:38,760 --> 01:14:42,290
you have a kind of a tiny version
of Claude Code inside your
1397
01:14:42,300 --> 01:14:43,950
mobile, and it's using sandboxes.
1398
01:14:44,500 --> 01:14:48,690
And so I started to use that to make
some very simple PRs on the repo.
1399
01:14:48,760 --> 01:14:51,800
use that only for very simple stuff,
you know, like, oh, I need to update
1400
01:14:51,810 --> 01:14:53,260
that on the landing page or something.
1401
01:14:53,460 --> 01:14:54,680
I do that from my phone.
1402
01:14:55,140 --> 01:14:58,730
And that's kind of scary because it
works quite well for simple stuff.
1403
01:14:59,165 --> 01:15:03,295
So it's almost like a preview of what
we're going to be able to do tomorrow, you
1404
01:15:03,295 --> 01:15:07,925
know, like almost like talk to your phone
or something and work happens and code
1405
01:15:07,925 --> 01:15:08,765
gets pushed to progress.
1406
01:15:10,317 --> 01:15:10,757
yeah.
1407
01:15:10,965 --> 01:15:11,385
so,
1408
01:15:11,990 --> 01:15:16,492
I feel like we're so close to, you
know, the Tony Stark Iron Man, Jarvis.
1409
01:15:16,502 --> 01:15:18,752
feel like we're getting so
close, at least for developers.
1410
01:15:18,752 --> 01:15:21,227
Like, I feel like we're the
first wave of really the people
1411
01:15:21,227 --> 01:15:22,747
that are onboarding with this.
1412
01:15:23,127 --> 01:15:24,907
I went and saw last night
1413
01:15:25,397 --> 01:15:28,907
For the third time in two weeks,
I went and saw the movie Project
1414
01:15:28,907 --> 01:15:30,377
Hail Mary, because I read the book.
1415
01:15:30,407 --> 01:15:31,397
My wife and I loved it.
1416
01:15:31,637 --> 01:15:35,387
We're big Andy Weir fans, and this
new movie is amazing and perfect,
1417
01:15:35,387 --> 01:15:36,697
and Ryan Gosling is fantastic.
1418
01:15:36,782 --> 01:15:40,692
And we sat next to some people that
were I'm really, really into it.
1419
01:15:40,782 --> 01:15:42,722
And so we started talking the fact.
1420
01:15:42,832 --> 01:15:43,652
the movie theater.
1421
01:15:44,172 --> 01:15:45,742
the kind of person that
loves a full movie theater.
1422
01:15:45,777 --> 01:15:48,357
think the reason you go to movies is
to the experience with other people.
1423
01:15:48,717 --> 01:15:52,357
So the guy next to me, leans over at the
end and says, we started talking about the
1424
01:15:52,357 --> 01:15:53,487
movie and how it's a positive experience.
1425
01:15:53,627 --> 01:15:56,037
view of the future where the world's
actually collaborating and working
1426
01:15:56,037 --> 01:15:57,677
together to solve esoteric problems.
1427
01:15:58,117 --> 01:16:00,697
And he said that there's this
subreddit he's a fan of called,
1428
01:16:01,057 --> 01:16:02,267
I think it's called Humanity.
1429
01:16:02,267 --> 01:16:02,827
Hell yeah.
1430
01:16:02,827 --> 01:16:03,747
Or Humans, hell Yeah.
1431
01:16:03,747 --> 01:16:04,447
Or something like that.
1432
01:16:04,487 --> 01:16:09,717
That's like a post war Look at the future
of civilization where we all tend to agree
1433
01:16:09,717 --> 01:16:12,867
on that and we're solving bigger problems,
we're dealing with aliens or whatever,
1434
01:16:13,177 --> 01:16:14,997
and then we all just, hold hands.
1435
01:16:15,647 --> 01:16:19,417
And so we start talking back and forth
and I get home and I'm walking the dog
1436
01:16:19,837 --> 01:16:21,407
want to know more about this subreddit.
1437
01:16:21,747 --> 01:16:25,297
So I'm in the OpenAI app, and
the ChatGPT app essentially.
1438
01:16:25,637 --> 01:16:29,627
And I'm having a a speaker
conversation in the audio mode.
1439
01:16:29,837 --> 01:16:33,917
And I'm just talking back and forth with
the AI and I'm living in a little bit of
1440
01:16:33,917 --> 01:16:37,037
an urban area, so there's other people
walking their dogs and I'm realizing that
1441
01:16:37,037 --> 01:16:38,687
people around me are hearing someone.
1442
01:16:39,137 --> 01:16:42,857
I, I sound like the old guy on
speakerphone walking around talking
1443
01:16:42,857 --> 01:16:46,527
to someone on speakerphone, But I'm
actually just talking to an AI about a
1444
01:16:46,527 --> 01:16:50,317
subreddit and sci fi, and I'm realizing
that I'm walking my dog and I'm way
1445
01:16:50,317 --> 01:16:51,617
more advanced than everyone around me.
1446
01:16:51,617 --> 01:16:55,117
I'm like doing things that are sci fi
level, future where I'm talking to a
1447
01:16:55,117 --> 01:16:59,667
robot, but also I look like grandpa,
talking to someone on a phone, on
1448
01:16:59,667 --> 01:17:00,567
speakerphone, that's way too loud.
1449
01:17:01,267 --> 01:17:03,137
It's like really weird scenario.
1450
01:17:03,137 --> 01:17:04,667
So I feel the same way.
1451
01:17:04,667 --> 01:17:07,942
Like think these things are all, happening
so fast and it's very cool to do.
1452
01:17:08,262 --> 01:17:08,832
Um, okay.
1453
01:17:08,892 --> 01:17:10,012
last question.
1454
01:17:10,177 --> 01:17:11,622
I'm assuming you're using Opus a lot.
1455
01:17:11,632 --> 01:17:13,247
Is that your, uh, your, Opus 4.
1456
01:17:13,247 --> 01:17:14,412
6 person or are you open 4.
1457
01:17:14,412 --> 01:17:15,207
5 person?
1458
01:17:15,207 --> 01:17:17,052
know some people that didn't jump into 4.
1459
01:17:17,052 --> 01:17:17,332
6.
1460
01:17:17,640 --> 01:17:19,130
I like Opus 4, 6.
1461
01:17:19,140 --> 01:17:21,555
But, actually not using it for everything.
1462
01:17:21,575 --> 01:17:24,555
I'm a big believer of, the
right model for the right task.
1463
01:17:24,945 --> 01:17:26,805
Mendral also is built this way.
1464
01:17:26,815 --> 01:17:29,815
We use Anthropic models today,
and we're going to move, multi
1465
01:17:29,815 --> 01:17:31,715
models, multi providers, soon too.
1466
01:17:31,985 --> 01:17:34,965
I believe there models that are
really good for certain things.
1467
01:17:35,355 --> 01:17:40,065
Opus is really good for complex
reasoning, but it's also very slow.
1468
01:17:40,385 --> 01:17:43,635
And sometimes you don't, need to,
like, if you summarize an email or
1469
01:17:43,635 --> 01:17:46,915
something, or like if you want to
rewrite some things that you wrote.
1470
01:17:47,355 --> 01:17:47,655
so yeah.
1471
01:17:47,675 --> 01:17:52,405
but I'd say if I have to pick one,
yes, that would be my go to, but
1472
01:17:52,835 --> 01:17:55,815
yeah, usually I multi modal
based on what I'm doing.
1473
01:17:56,457 --> 01:17:56,917
Nice.
1474
01:17:57,532 --> 01:17:59,107
thank you so much, Sam, for being here.
1475
01:17:59,217 --> 01:18:00,667
We could talk for another hour.
1476
01:18:00,697 --> 01:18:04,547
People are already going to go, Bret, like
you can't keep having these multi hour
1477
01:18:04,547 --> 01:18:08,347
podcast episodes, but I feel like there's
so much to talk about and it's great to
1478
01:18:08,347 --> 01:18:11,727
actually talk to not just founders, but
engineers in the thick of it that are
1479
01:18:11,727 --> 01:18:16,077
also living and drinking the, you know,
the Silicon Valley Kool Aid a little bit.
1480
01:18:16,417 --> 01:18:20,001
it's great to see the different
levels or I guess maturity levels of
1481
01:18:20,001 --> 01:18:23,541
everyone, that we have on the show
and to see where everyone is at.
1482
01:18:23,541 --> 01:18:26,811
And always fun to have people
on the show are ahead of us.
1483
01:18:26,831 --> 01:18:31,316
And I feel like, you know, touching
the AI even closer to what we think is
1484
01:18:31,896 --> 01:18:34,326
the utopia of this Star Trek future.
1485
01:18:34,326 --> 01:18:34,996
I feel like we're in.
1486
01:18:34,996 --> 01:18:37,996
So I'm excited that you guys are
progressing so quickly on the
1487
01:18:37,996 --> 01:18:40,316
product and I'm looking forward to
using more of it, especially since
1488
01:18:40,316 --> 01:18:41,576
it's scratch is a niche for me.
1489
01:18:41,906 --> 01:18:45,566
I'm looking forward to having you back
on the show maybe later this year and
1490
01:18:45,566 --> 01:18:47,216
talking through some of the advancements.
1491
01:18:47,236 --> 01:18:48,946
We'll probably have new models by then.
1492
01:18:48,956 --> 01:18:52,296
Supposedly Claude's going to have this
amazing new model later this year.
1493
01:18:52,716 --> 01:18:55,391
We'll see see whether it lives up to
the height, but, it'll be interesting
1494
01:18:55,391 --> 01:18:57,796
to see what you can do with some
of the new stuff that's coming out.
1495
01:18:57,796 --> 01:18:58,531
Yeah, thanks.
1496
01:18:58,531 --> 01:19:01,451
a lot for the opportunity to share
all of that and very, very cool.
1497
01:19:01,451 --> 01:19:03,061
Didn't feel like a time at all.
1498
01:19:03,570 --> 01:19:04,020
I'm glad.
1499
01:19:04,020 --> 01:19:04,380
I'm glad.
1500
01:19:04,590 --> 01:19:09,150
Uh, so yeah, you can find Mendral
at mendral.com, M-E-N-D-R-A l.com.
1501
01:19:09,475 --> 01:19:10,385
well thanks again, man.
1502
01:19:10,734 --> 01:19:13,074
Thanks for joining us, and I'll
see you in the next episode.