1
00:00:15,519 --> 00:00:17,760
Andrew. I'm the chief of software at

2
00:00:17,760 --> 00:00:19,439
Verscell

3
00:00:19,439 --> 00:00:21,679
and I'm here to talk to you about how we

4
00:00:21,679 --> 00:00:24,719
solved agent building at Verscell. I'm

5
00:00:24,719 --> 00:00:26,320
the chief of software. So I work on a

6
00:00:26,320 --> 00:00:28,320
mix of internal engineering, external

7
00:00:28,320 --> 00:00:30,399
experimentation, and generally being at

8
00:00:30,399 --> 00:00:32,320
the frontier and building new libraries,

9
00:00:32,320 --> 00:00:34,880
frameworks, and technologies. For those

10
00:00:34,880 --> 00:00:37,200
of you that don't know Verscell,

11
00:00:37,200 --> 00:00:39,520
Verscell builds a gentic infrastructure

12
00:00:39,520 --> 00:00:42,159
so people can build what's next. We get

13
00:00:42,159 --> 00:00:43,840
started in the web world helping people

14
00:00:43,840 --> 00:00:46,159
ship websites and web apps without

15
00:00:46,159 --> 00:00:47,679
having to worry about the infrastructure

16
00:00:47,679 --> 00:00:49,200
that doesn't make their app any better.

17
00:00:49,200 --> 00:00:50,799
It can scale to a million and scale down

18
00:00:50,799 --> 00:00:53,679
to zero effortlessly. But we're seeing a

19
00:00:53,679 --> 00:00:55,759
change in what people want to build. You

20
00:00:55,759 --> 00:00:57,359
know, people started by building pages,

21
00:00:57,359 --> 00:00:58,799
but now we see them want to build

22
00:00:58,799 --> 00:01:00,878
agents. And we've been embarking on a

23
00:01:00,878 --> 00:01:02,719
similar journey to make it easy for

24
00:01:02,719 --> 00:01:05,359
people to build agents and agentic

25
00:01:05,359 --> 00:01:08,239
applications easier. We built this thing

26
00:01:08,239 --> 00:01:10,079
called the AIDK. So instead of needing

27
00:01:10,079 --> 00:01:13,359
to switch out 300 400 lines of provider

28
00:01:13,359 --> 00:01:14,799
specific code, you're just going to

29
00:01:14,799 --> 00:01:16,560
switch out one line of code and we have

30
00:01:16,560 --> 00:01:18,799
the same model interface underlying for

31
00:01:18,799 --> 00:01:21,118
all these different providers.

32
00:01:21,118 --> 00:01:22,719
We built a lot of other tools to make it

33
00:01:22,719 --> 00:01:25,118
easier to have model fallbacks, secure

34
00:01:25,118 --> 00:01:27,359
code execution, better pricing when it's

35
00:01:27,359 --> 00:01:29,519
inactive and waiting for responses, as

36
00:01:29,519 --> 00:01:32,879
well as for durability and resumability.

37
00:01:32,879 --> 00:01:35,359
And I'm here to talk to you about how I

38
00:01:35,359 --> 00:01:37,118
went on this crazy experiment roughly a

39
00:01:37,118 --> 00:01:41,200
year ago that led to a aentic explosion

40
00:01:41,200 --> 00:01:43,118
at Verscell and led to a really cool

41
00:01:43,118 --> 00:01:46,159
thing that we built recently

42
00:01:46,159 --> 00:01:49,680
about uh this is 1980. Uh, Bill Gates

43
00:01:49,680 --> 00:01:52,078
before my time had this quote saying he

44
00:01:52,078 --> 00:01:53,920
imagined there would be a computer on

45
00:01:53,920 --> 00:01:55,920
every desk and in every home. You know,

46
00:01:55,920 --> 00:01:57,519
that was probably pretty contrarian then

47
00:01:57,519 --> 00:02:00,478
and today it seems like very normal to

48
00:02:00,478 --> 00:02:03,840
have that happen. And me and the CTO had

49
00:02:03,840 --> 00:02:06,078
this thought, you know, instead of a

50
00:02:06,078 --> 00:02:08,080
computer on every desk, could we

51
00:02:08,080 --> 00:02:10,878
potentially have an agent on every desk?

52
00:02:10,878 --> 00:02:13,199
You know, today we only really use

53
00:02:13,199 --> 00:02:15,520
agents for coding and technical

54
00:02:15,520 --> 00:02:17,120
workloads, but we're starting to see

55
00:02:17,120 --> 00:02:19,120
expansion into things like design,

56
00:02:19,120 --> 00:02:22,400
product management, and other verticals.

57
00:02:22,400 --> 00:02:24,000
And this was maybe about a year ago, so

58
00:02:24,000 --> 00:02:25,598
I would say I'm pretty early to this,

59
00:02:25,598 --> 00:02:27,520
but that was when it was like sonnet 4

60
00:02:27,520 --> 00:02:29,120
and things weren't as sophisticated as

61
00:02:29,120 --> 00:02:32,560
they were today. And I tried to actually

62
00:02:32,560 --> 00:02:34,080
explore this out, see what we could do

63
00:02:34,080 --> 00:02:36,239
about it. I went around to various job

64
00:02:36,239 --> 00:02:39,120
functions at Verscell, marketing, sales,

65
00:02:39,120 --> 00:02:41,680
finance, legal, and I asked them, what

66
00:02:41,680 --> 00:02:45,120
do you hate most about your job? And the

67
00:02:45,120 --> 00:02:47,280
most compelling use case I heard was

68
00:02:47,280 --> 00:02:50,080
that the data team, they were growing.

69
00:02:50,080 --> 00:02:52,400
They were a very lean team, but Versel

70
00:02:52,400 --> 00:02:54,479
was growing faster. You know, they had

71
00:02:54,479 --> 00:02:56,800
so much more data from customers,

72
00:02:56,800 --> 00:02:59,840
analytics, metrics, sales. They just had

73
00:02:59,840 --> 00:03:01,598
to keep on aggregating and keep on

74
00:03:01,598 --> 00:03:05,199
making available for themselves to use.

75
00:03:05,199 --> 00:03:07,039
And at this time, if you think about

76
00:03:07,039 --> 00:03:08,800
what the data science people ever have

77
00:03:08,800 --> 00:03:10,878
to do, whenever someone from marketing

78
00:03:10,878 --> 00:03:12,959
or sales has a question about a customer

79
00:03:12,959 --> 00:03:15,360
or product, the data science team has to

80
00:03:15,360 --> 00:03:17,280
drop everything they're doing, write the

81
00:03:17,280 --> 00:03:19,519
query, process it, do an analysis, and

82
00:03:19,519 --> 00:03:21,039
come back with some recommendation on

83
00:03:21,039 --> 00:03:24,080
what to do. And this was really killer

84
00:03:24,080 --> 00:03:26,000
to productivity. You know, the data team

85
00:03:26,000 --> 00:03:28,000
did not want to drop everything and just

86
00:03:28,000 --> 00:03:29,919
write queries all day. And so I worked

87
00:03:29,919 --> 00:03:31,919
with our VP of data to try to build a

88
00:03:31,919 --> 00:03:36,000
better way for them to operate this way.

89
00:03:36,000 --> 00:03:37,919
And so if you think about the very first

90
00:03:37,919 --> 00:03:39,519
thing you would ever do if you want to

91
00:03:39,519 --> 00:03:41,519
try to use AI to solve a problem, you

92
00:03:41,519 --> 00:03:43,840
may just build like a huge mega prompt.

93
00:03:43,840 --> 00:03:46,158
You know, you just have a question, you

94
00:03:46,158 --> 00:03:48,318
pass into an LM, you have it respond,

95
00:03:48,318 --> 00:03:50,158
and that's it. You know, this was how

96
00:03:50,158 --> 00:03:51,598
the first version really looked.

97
00:03:51,598 --> 00:03:54,400
Honestly, I asked them for a dump of of

98
00:03:54,400 --> 00:03:57,360
the snowflake schema. I pasted it into a

99
00:03:57,360 --> 00:03:59,280
system prompt with a question and then

100
00:03:59,280 --> 00:04:01,199
when it generated SQL I actually copy

101
00:04:01,199 --> 00:04:02,799
and pasted that in and just ran it

102
00:04:02,799 --> 00:04:04,318
myself. You know I just want to see are

103
00:04:04,318 --> 00:04:06,799
the models good enough today in order to

104
00:04:06,799 --> 00:04:09,519
write valid SQL given some decent

105
00:04:09,519 --> 00:04:11,759
structure. And I would say this gave us

106
00:04:11,759 --> 00:04:13,280
a little bit of confidence that you know

107
00:04:13,280 --> 00:04:15,120
models today aren't that good but maybe

108
00:04:15,120 --> 00:04:17,439
we can harness engineer or make the

109
00:04:17,439 --> 00:04:19,519
context around it a little better and

110
00:04:19,519 --> 00:04:21,120
give us some more guardrails to operate

111
00:04:21,120 --> 00:04:22,720
a little better.

112
00:04:22,720 --> 00:04:24,000
And so if you actually think about what

113
00:04:24,000 --> 00:04:25,519
a data scientist actually needs to do

114
00:04:25,519 --> 00:04:27,279
when they get a question, you know, they

115
00:04:27,279 --> 00:04:29,360
have to process the question, they may

116
00:04:29,360 --> 00:04:31,120
have to explore the semantic layer and

117
00:04:31,120 --> 00:04:32,319
actually figure out what the join

118
00:04:32,319 --> 00:04:34,720
patterns are. They will actually go and

119
00:04:34,720 --> 00:04:37,120
execute the SQL. They may go back and do

120
00:04:37,120 --> 00:04:39,439
that again if the SQL did not execute or

121
00:04:39,439 --> 00:04:40,959
was too expensive. And they'll

122
00:04:40,959 --> 00:04:42,399
eventually report on it, including

123
00:04:42,399 --> 00:04:44,319
visualize the data, maybe write some

124
00:04:44,319 --> 00:04:46,240
paragraphs, maybe do a retro, maybe do

125
00:04:46,240 --> 00:04:48,079
some other stuff.

126
00:04:48,079 --> 00:04:49,199
And so if you think about those

127
00:04:49,199 --> 00:04:51,040
different phases, me and the VP of data

128
00:04:51,040 --> 00:04:53,279
tried to sit down and map those out into

129
00:04:53,279 --> 00:04:55,680
specific agent workloads. And so the

130
00:04:55,680 --> 00:04:57,680
second version of this data science

131
00:04:57,680 --> 00:04:59,839
agent uh called D0. I'm going to

132
00:04:59,839 --> 00:05:02,478
reference D0 from now on is you ask a

133
00:05:02,478 --> 00:05:04,478
question. We have a query agent that

134
00:05:04,478 --> 00:05:06,800
passes on a query to the planning agent

135
00:05:06,800 --> 00:05:08,800
that will then have an execution agent

136
00:05:08,800 --> 00:05:11,120
etc. And if you chain all of these

137
00:05:11,120 --> 00:05:12,560
together, you actually get something

138
00:05:12,560 --> 00:05:14,639
that looks like this where each agent

139
00:05:14,639 --> 00:05:16,560
has a very dedicated system prompt

140
00:05:16,560 --> 00:05:18,478
focused to what that does with tools

141
00:05:18,478 --> 00:05:20,879
scoped to exactly that function. So

142
00:05:20,879 --> 00:05:23,038
example here, you can see that for the

143
00:05:23,038 --> 00:05:25,839
first one, the planning agent has a read

144
00:05:25,839 --> 00:05:29,199
entity YAML and a and a search schemas

145
00:05:29,199 --> 00:05:32,079
tool. And so it will only use those

146
00:05:32,079 --> 00:05:34,000
capabilities until it has an answer to

147
00:05:34,000 --> 00:05:36,160
pass on to the planning agent and then

148
00:05:36,160 --> 00:05:38,800
to the SQL agent and then to reporting.

149
00:05:38,800 --> 00:05:40,560
And this was getting better. You know,

150
00:05:40,560 --> 00:05:42,959
we were able to get away from having to

151
00:05:42,959 --> 00:05:45,038
copy and paste a SQL and have to come

152
00:05:45,038 --> 00:05:46,720
back and report on it. It was now

153
00:05:46,720 --> 00:05:48,399
actually doing like the end to end loop

154
00:05:48,399 --> 00:05:51,600
from question to answer.

155
00:05:51,600 --> 00:05:54,639
But we started hitting some walls with

156
00:05:54,639 --> 00:05:56,639
this architecture. And around this time

157
00:05:56,639 --> 00:05:58,478
we came to the conclusion that you know

158
00:05:58,478 --> 00:05:59,918
what you actually need is you need one

159
00:05:59,918 --> 00:06:01,839
agent with all the mega context within

160
00:06:01,839 --> 00:06:04,319
it and for it to sort of manage its own

161
00:06:04,319 --> 00:06:06,399
memory. You know this was around the

162
00:06:06,399 --> 00:06:10,000
time when we realized that you want to

163
00:06:10,000 --> 00:06:11,279
actually have the agent be able to look

164
00:06:11,279 --> 00:06:13,120
back on what it's done sort of reflect

165
00:06:13,120 --> 00:06:15,199
and figure out the steps that got to get

166
00:06:15,199 --> 00:06:17,038
here. And with the previous model you

167
00:06:17,038 --> 00:06:18,879
may have noticed that the only thing

168
00:06:18,879 --> 00:06:21,279
that the next agent gets is a summary

169
00:06:21,279 --> 00:06:22,879
and a small snippet of the previous

170
00:06:22,879 --> 00:06:24,959
thing that was done. Now this way you

171
00:06:24,959 --> 00:06:27,360
can imagine that you have one mega agent

172
00:06:27,360 --> 00:06:29,600
and internally it manages its own state.

173
00:06:29,600 --> 00:06:31,038
At some points it's planning, some

174
00:06:31,038 --> 00:06:32,399
points it's building, some points it's

175
00:06:32,399 --> 00:06:33,839
executing and some points it's

176
00:06:33,839 --> 00:06:36,399
reporting. And this is sort of what it

177
00:06:36,399 --> 00:06:38,639
looked like. You know you have one big

178
00:06:38,639 --> 00:06:42,240
AI call maybe max steps 100 and you give

179
00:06:42,240 --> 00:06:44,240
it the ability to manage its own state

180
00:06:44,240 --> 00:06:46,800
based on where it's at inside of its

181
00:06:46,800 --> 00:06:48,879
execution journey. And so you can see

182
00:06:48,879 --> 00:06:50,160
similar tools, you can see a similar

183
00:06:50,160 --> 00:06:51,918
shape, but the best part about this is

184
00:06:51,918 --> 00:06:53,600
if it ever ran to an error when

185
00:06:53,600 --> 00:06:55,600
executing or joining, it could go back

186
00:06:55,600 --> 00:06:57,680
and explore more or it could go and read

187
00:06:57,680 --> 00:06:59,120
more and figure out what it was doing

188
00:06:59,120 --> 00:07:01,839
wrong. And it was very good at this

189
00:07:01,839 --> 00:07:04,478
point. We were pretty confident in the

190
00:07:04,478 --> 00:07:06,399
actual system at hand and we actually

191
00:07:06,399 --> 00:07:08,800
spread it to a few trusted members ever.

192
00:07:08,800 --> 00:07:10,079
You know, this is a very powerful tool

193
00:07:10,079 --> 00:07:11,439
and we didn't really want to put in the

194
00:07:11,439 --> 00:07:12,879
hands of the wrong people or people that

195
00:07:12,879 --> 00:07:15,279
were using very critical workloads. So,

196
00:07:15,279 --> 00:07:17,120
we got to a few people's hands and the

197
00:07:17,120 --> 00:07:18,879
immediate response was it was awful. You

198
00:07:18,879 --> 00:07:20,240
know, we thought we were cooking. We

199
00:07:20,240 --> 00:07:22,240
thought this was, you know, nailing 30%

200
00:07:22,240 --> 00:07:24,160
of our evals, but we couldn't have

201
00:07:24,160 --> 00:07:25,839
anticipated some of the questions that

202
00:07:25,839 --> 00:07:27,839
were being asked. And for us to spend

203
00:07:27,839 --> 00:07:29,839
more time manually mapping out some of

204
00:07:29,839 --> 00:07:32,399
these scenarios, it didn't seem like a

205
00:07:32,399 --> 00:07:35,199
very scalable way to do this.

206
00:07:35,199 --> 00:07:39,120
And then claude code and opus 4.5 came

207
00:07:39,120 --> 00:07:41,680
out. Well, more like Opus 4.5 came out

208
00:07:41,680 --> 00:07:43,759
and it in tangent with claw code which

209
00:07:43,759 --> 00:07:46,240
is so powerful. You know they sort of

210
00:07:46,240 --> 00:07:48,959
unlocked the concept of a file system

211
00:07:48,959 --> 00:07:52,560
agent and we on the side were like wow

212
00:07:52,560 --> 00:07:55,199
clawed code and Opus 4.5 is basically

213
00:07:55,199 --> 00:07:57,439
AGI compared to what we had before. You

214
00:07:57,439 --> 00:07:58,879
know it would answer most of our

215
00:07:58,879 --> 00:08:02,000
questions without even without even

216
00:08:02,000 --> 00:08:03,918
missing a beat um compared to the

217
00:08:03,918 --> 00:08:05,918
handgrown agent we had. And when we

218
00:08:05,918 --> 00:08:07,439
tried to step back and wonder what we

219
00:08:07,439 --> 00:08:08,879
were doing wrong and why this was so

220
00:08:08,879 --> 00:08:11,598
much better, we realized that the big

221
00:08:11,598 --> 00:08:13,759
unlock was that it was just a file

222
00:08:13,759 --> 00:08:15,759
system. You know, we it had a very

223
00:08:15,759 --> 00:08:17,918
minimal set of tools, list file, read

224
00:08:17,918 --> 00:08:20,959
file, run bash, and we gave a few more

225
00:08:20,959 --> 00:08:24,478
here for uh our own data agent use case.

226
00:08:24,478 --> 00:08:26,478
But the biggest thing was it was able to

227
00:08:26,478 --> 00:08:28,079
use the tools that agents are well

228
00:08:28,079 --> 00:08:30,478
trained on and was able to explore and

229
00:08:30,478 --> 00:08:32,879
write work where it needs to. you know,

230
00:08:32,879 --> 00:08:35,278
we weren't giving it claw code was not

231
00:08:35,278 --> 00:08:36,719
giving it a very prescriptive set of

232
00:08:36,719 --> 00:08:38,399
tools. It was sort of just letting it go

233
00:08:38,399 --> 00:08:41,440
wild and explore emergent behavior. And

234
00:08:41,440 --> 00:08:43,278
so from this, we learned that you can

235
00:08:43,278 --> 00:08:45,200
really just use a file system. You know,

236
00:08:45,200 --> 00:08:47,200
we we saw the learnings from claw code

237
00:08:47,200 --> 00:08:49,440
and how powerful it was given that it

238
00:08:49,440 --> 00:08:52,320
just executes locally. And we tried to

239
00:08:52,320 --> 00:08:54,080
rebuild it in a way that was very cloud

240
00:08:54,080 --> 00:08:56,399
codeesque. You know, it was now going to

241
00:08:56,399 --> 00:08:58,480
run in a sandbox. That sandbox would

242
00:08:58,480 --> 00:09:00,639
dump the whole semantic layer into it.

243
00:09:00,639 --> 00:09:02,320
You could the agent would be able to

244
00:09:02,320 --> 00:09:04,480
grab, bash, read file, write file all

245
00:09:04,480 --> 00:09:06,240
around to figure out what it needs and

246
00:09:06,240 --> 00:09:07,600
we would just sprinkle a few tools on

247
00:09:07,600 --> 00:09:08,958
top to make sure it could do everything

248
00:09:08,958 --> 00:09:12,399
that is versel specific.

249
00:09:12,399 --> 00:09:14,480
And this was actually the biggest unlock

250
00:09:14,480 --> 00:09:17,360
ever. You know, the leap from single

251
00:09:17,360 --> 00:09:19,759
agent to cloud code SDK and then from

252
00:09:19,759 --> 00:09:22,559
cloud code SDK to file system agent in

253
00:09:22,559 --> 00:09:25,200
general, fine-tuned or purpose-built for

254
00:09:25,200 --> 00:09:27,839
our use case was an amazing leap. At

255
00:09:27,839 --> 00:09:28,799
this point, we were starting to get

256
00:09:28,799 --> 00:09:31,039
ready to give it away to more people at

257
00:09:31,039 --> 00:09:32,639
Versell.

258
00:09:32,639 --> 00:09:35,600
And at this point, the eval score

259
00:09:35,600 --> 00:09:37,759
basically doubled. And I wrote this uh

260
00:09:37,759 --> 00:09:39,519
this is basically how it looks. Um it's

261
00:09:39,519 --> 00:09:41,039
very simple. You just give it a bash

262
00:09:41,039 --> 00:09:42,879
tool. We have a nice helper called bash

263
00:09:42,879 --> 00:09:45,120
tool on npm and you attach it to a

264
00:09:45,120 --> 00:09:46,958
sandbox and you can attach files to the

265
00:09:46,958 --> 00:09:48,559
sandbox for it to read, write and

266
00:09:48,559 --> 00:09:50,480
execute.

267
00:09:50,480 --> 00:09:52,320
And after this revelation and after I

268
00:09:52,320 --> 00:09:54,639
saw that we were passing so many of the

269
00:09:54,639 --> 00:09:56,480
questions that we failed to do before, I

270
00:09:56,480 --> 00:09:58,879
wrote this banger blog post. It's uh

271
00:09:58,879 --> 00:10:01,039
it's actually up today. And the week

272
00:10:01,039 --> 00:10:02,799
that I wrote this, it was responsible

273
00:10:02,799 --> 00:10:05,839
for 70% of our versel.com traffic. So

274
00:10:05,839 --> 00:10:09,120
you know it's a banger. And after that,

275
00:10:09,120 --> 00:10:12,399
the next logical step was that we want

276
00:10:12,399 --> 00:10:14,480
to figure out the common use cases we

277
00:10:14,480 --> 00:10:16,399
had. So by then we've already sort of

278
00:10:16,399 --> 00:10:19,278
let a leash on all of our cell and we

279
00:10:19,278 --> 00:10:21,278
were getting thousands of queries a day

280
00:10:21,278 --> 00:10:23,120
from people wanting everything from

281
00:10:23,120 --> 00:10:25,440
customer metrics sales metrics number

282
00:10:25,440 --> 00:10:28,879
metrics npm downloads and it turns out

283
00:10:28,879 --> 00:10:30,078
that a lot of these queries are actually

284
00:10:30,078 --> 00:10:31,679
the same in shape you know there's only

285
00:10:31,679 --> 00:10:33,600
so many ways you can do an aggregation

286
00:10:33,600 --> 00:10:34,958
only so many ways you can look up a

287
00:10:34,958 --> 00:10:36,240
product only so many ways you can do

288
00:10:36,240 --> 00:10:38,639
billing info and so we actually have a

289
00:10:38,639 --> 00:10:40,480
recurring job that takes the most recent

290
00:10:40,480 --> 00:10:42,480
queries and tries to distill them into a

291
00:10:42,480 --> 00:10:44,879
skill and right now we have roughly 100

292
00:10:44,879 --> 00:10:47,440
skills that do a mix of aggregation all

293
00:10:47,440 --> 00:10:49,120
the way through looking up specific data

294
00:10:49,120 --> 00:10:51,839
about certain people. And we found this

295
00:10:51,839 --> 00:10:53,120
very effective because if you think

296
00:10:53,120 --> 00:10:55,600
about every new agent run, it sort of

297
00:10:55,600 --> 00:10:56,879
just starts from nothing. You know,

298
00:10:56,879 --> 00:10:58,159
there's really no pre-established

299
00:10:58,159 --> 00:11:00,399
context besides, you know, the semantic

300
00:11:00,399 --> 00:11:02,320
layer and the system prompt. But with a

301
00:11:02,320 --> 00:11:04,159
skill, it already starts off with a lot

302
00:11:04,159 --> 00:11:05,919
of contextual knowledge that has

303
00:11:05,919 --> 00:11:09,200
otherwise already been done.

304
00:11:09,200 --> 00:11:11,120
And this is roughly how it looks. It's

305
00:11:11,120 --> 00:11:12,559
very similar to the previous one, but

306
00:11:12,559 --> 00:11:14,078
the inclusion of a skills folder is

307
00:11:14,078 --> 00:11:16,159
actually very powerful. Um, we also

308
00:11:16,159 --> 00:11:17,440
built this tool at Verscell called

309
00:11:17,440 --> 00:11:19,440
Skillsh. It's the most popular way to

310
00:11:19,440 --> 00:11:23,360
find agent skills and run them yourself.

311
00:11:23,360 --> 00:11:25,600
And I I'm saying all this because this

312
00:11:25,600 --> 00:11:27,440
journey is something that most of you

313
00:11:27,440 --> 00:11:29,200
may hit once in a while where you start

314
00:11:29,200 --> 00:11:30,639
from something simple and you gradually

315
00:11:30,639 --> 00:11:32,480
add complexity and you eventually hit a

316
00:11:32,480 --> 00:11:35,278
system in which you can ship to prod.

317
00:11:35,278 --> 00:11:37,679
And I'm telling you this because at

318
00:11:37,679 --> 00:11:39,919
every step along building this agent,

319
00:11:39,919 --> 00:11:42,639
someone Everell was agent curious and

320
00:11:42,639 --> 00:11:45,519
they tried to fork off of my DZero agent

321
00:11:45,519 --> 00:11:47,679
and build their own. And at every step,

322
00:11:47,679 --> 00:11:49,600
we sort of had a better way to do

323
00:11:49,600 --> 00:11:51,759
something that was not previously known.

324
00:11:51,759 --> 00:11:53,360
And we were wondering like what if

325
00:11:53,360 --> 00:11:55,600
people today could start from the very

326
00:11:55,600 --> 00:11:57,839
last insight and not have to ever start

327
00:11:57,839 --> 00:12:00,078
from just a simple prompt or from

328
00:12:00,078 --> 00:12:03,120
reinventing best principles from first

329
00:12:03,120 --> 00:12:04,639
principles.

330
00:12:04,639 --> 00:12:06,639
And so we actually thought what if we

331
00:12:06,639 --> 00:12:09,600
built the Nex.js for agents. For those

332
00:12:09,600 --> 00:12:11,839
that don't know, Nex.js is a popular web

333
00:12:11,839 --> 00:12:13,759
framework that Verscell built that

334
00:12:13,759 --> 00:12:16,639
invented this thing of file system uh

335
00:12:16,639 --> 00:12:18,480
framework defined infrastructure. You

336
00:12:18,480 --> 00:12:19,919
don't have to worry about where things

337
00:12:19,919 --> 00:12:22,000
go. You just have to write files in the

338
00:12:22,000 --> 00:12:24,399
right conventions and it automatically

339
00:12:24,399 --> 00:12:26,159
declares where they should go. Your

340
00:12:26,159 --> 00:12:28,320
pages go to the CDN. Your serverless

341
00:12:28,320 --> 00:12:30,399
functions go there. Your caching goes in

342
00:12:30,399 --> 00:12:32,799
the middle. And we thought, you know,

343
00:12:32,799 --> 00:12:34,559
building agents should be this simple.

344
00:12:34,559 --> 00:12:35,919
You should only have to create a skills

345
00:12:35,919 --> 00:12:37,839
folder, a tools folder, a channels

346
00:12:37,839 --> 00:12:39,120
folder, and you should be able to just

347
00:12:39,120 --> 00:12:40,879
declare these very easily. And the

348
00:12:40,879 --> 00:12:42,399
framework should know exactly how to

349
00:12:42,399 --> 00:12:45,039
make an agent out of it.

350
00:12:45,039 --> 00:12:46,879
And that's why two weeks ago we released

351
00:12:46,879 --> 00:12:49,600
Eve. Eve is a agent framework like the

352
00:12:49,600 --> 00:12:51,519
next.js GS for agents where it's very

353
00:12:51,519 --> 00:12:53,600
easy from just starting with a sample

354
00:12:53,600 --> 00:12:56,078
template to having a fully agent ready

355
00:12:56,078 --> 00:12:57,839
and being able to add in your own custom

356
00:12:57,839 --> 00:12:59,759
knowledge, your own custom tools and

357
00:12:59,759 --> 00:13:01,440
even integrated into the channels that

358
00:13:01,440 --> 00:13:04,159
you are familiar with.

359
00:13:04,159 --> 00:13:05,919
This is roughly what we think an agent

360
00:13:05,919 --> 00:13:07,440
actually looks like. You know, an agent

361
00:13:07,440 --> 00:13:09,519
has a runtime and it has channels. And

362
00:13:09,519 --> 00:13:10,879
in that runtime, you're going to have

363
00:13:10,879 --> 00:13:12,639
durability. You're going to want to run

364
00:13:12,639 --> 00:13:14,159
things in an isolate environment. You're

365
00:13:14,159 --> 00:13:15,200
going to want to call into different

366
00:13:15,200 --> 00:13:16,720
models. And you're going to want to have

367
00:13:16,720 --> 00:13:19,200
connections. And we built this with open

368
00:13:19,200 --> 00:13:21,039
source in mind. You know, we built Eve

369
00:13:21,039 --> 00:13:22,720
so you can plug in your own open source

370
00:13:22,720 --> 00:13:25,200
adapters for Postgress, OpenAI's uh

371
00:13:25,200 --> 00:13:28,639
responses API, Docker, other connectors.

372
00:13:28,639 --> 00:13:30,240
But we also made it incredibly easy to

373
00:13:30,240 --> 00:13:32,000
deploy in Verscell. The only thing here

374
00:13:32,000 --> 00:13:33,519
you see different is that everything

375
00:13:33,519 --> 00:13:35,200
here is using a Verscell product that

376
00:13:35,200 --> 00:13:36,879
we've been building over the years in

377
00:13:36,879 --> 00:13:38,399
order to make it easy to build these

378
00:13:38,399 --> 00:13:40,399
experiences. Versell workflows for

379
00:13:40,399 --> 00:13:42,320
durability, sandbox for secure

380
00:13:42,320 --> 00:13:44,000
execution, and Verscell connect,

381
00:13:44,000 --> 00:13:45,679
something we just released to make it

382
00:13:45,679 --> 00:13:48,240
easy to generate short-lived ODC tokens

383
00:13:48,240 --> 00:13:51,039
for connections.

384
00:13:51,039 --> 00:13:53,278
And we actually rewrote the whole D0ero

385
00:13:53,278 --> 00:13:56,000
agent in Eve as we were building Eve and

386
00:13:56,000 --> 00:13:57,519
from the convoluted structures behind

387
00:13:57,519 --> 00:13:59,120
the scenes that you did not see from the

388
00:13:59,120 --> 00:14:01,039
code. Um, this is roughly how the file

389
00:14:01,039 --> 00:14:02,879
system looks. It's very simple. You have

390
00:14:02,879 --> 00:14:05,039
a bunch of system instructions, a couple

391
00:14:05,039 --> 00:14:07,759
skills, a couple tools, and it's very

392
00:14:07,759 --> 00:14:09,600
easy to compose this into a real agent,

393
00:14:09,600 --> 00:14:12,320
and it's very easy to iterate on. We

394
00:14:12,320 --> 00:14:13,679
actually gave this out to a few beta

395
00:14:13,679 --> 00:14:15,278
customers before we actually fully

396
00:14:15,278 --> 00:14:16,958
released it two weeks ago at our London

397
00:14:16,958 --> 00:14:18,879
event. And this one company that

398
00:14:18,879 --> 00:14:20,799
partners closely with us, Aura. They've

399
00:14:20,799 --> 00:14:22,320
rebuilt their agent that's sort of like

400
00:14:22,320 --> 00:14:25,360
a mini claw to go and test people's

401
00:14:25,360 --> 00:14:27,839
services. It goes to websites, installs

402
00:14:27,839 --> 00:14:30,799
them, it tries to use them. And they've

403
00:14:30,799 --> 00:14:33,198
seen incredible success on building

404
00:14:33,198 --> 00:14:35,039
their own agent from the ground up using

405
00:14:35,039 --> 00:14:37,278
Eve compared to using an off-the-shelf

406
00:14:37,278 --> 00:14:40,320
cloud code. Fewer steps, better

407
00:14:40,320 --> 00:14:45,039
successes, as well as better insights.

408
00:14:45,039 --> 00:14:47,360
And when you deploy Eve to Verscell, you

409
00:14:47,360 --> 00:14:49,278
get observability observability out of

410
00:14:49,278 --> 00:14:50,799
the box. You can see here that you get

411
00:14:50,799 --> 00:14:52,399
all the agent runs, you see all the tool

412
00:14:52,399 --> 00:14:55,120
calls, you see each step it takes as

413
00:14:55,120 --> 00:14:56,799
well as maybe some estimated costs and

414
00:14:56,799 --> 00:14:58,320
some optimizations you could potentially

415
00:14:58,320 --> 00:15:00,399
take.

416
00:15:00,399 --> 00:15:03,039
And you can get start today at eve.dev.

417
00:15:03,039 --> 00:15:04,399
You can just clone it and you can just

418
00:15:04,399 --> 00:15:06,159
start a template, deploy easily,

419
00:15:06,159 --> 00:15:08,240
self-host if you need. And the reason

420
00:15:08,240 --> 00:15:10,799
why I bring this up is because I hope

421
00:15:10,799 --> 00:15:12,399
that there will be more and more

422
00:15:12,399 --> 00:15:15,198
business specific use case agents. You

423
00:15:15,198 --> 00:15:17,198
know, before we built Ezero, we actually

424
00:15:17,198 --> 00:15:20,320
battle tested a lot of the industry

425
00:15:20,320 --> 00:15:22,480
well-funded startups that were doing

426
00:15:22,480 --> 00:15:24,159
these vertical agents that were

427
00:15:24,159 --> 00:15:26,159
dedicated to taking your Snowflake

428
00:15:26,159 --> 00:15:28,639
instance and making it so their agent

429
00:15:28,639 --> 00:15:31,440
could run Snowflake queries against it.

430
00:15:31,440 --> 00:15:33,039
But we found out that what really makes

431
00:15:33,039 --> 00:15:36,480
this agent good is it has a lot of very

432
00:15:36,480 --> 00:15:39,360
specific uh company knowledge. You know,

433
00:15:39,360 --> 00:15:41,519
the way that Versel is a web- based

434
00:15:41,519 --> 00:15:43,278
company. We have a lot of customers that

435
00:15:43,278 --> 00:15:45,759
have websites and web properties. That

436
00:15:45,759 --> 00:15:48,799
goes a lot deeper into when you should

437
00:15:48,799 --> 00:15:50,639
query for what and what things link to

438
00:15:50,639 --> 00:15:52,799
what. And so a lot of these

439
00:15:52,799 --> 00:15:54,320
off-the-shelf agents, they're great.

440
00:15:54,320 --> 00:15:56,159
They're good to try, but I think if you

441
00:15:56,159 --> 00:15:57,600
really want to get the most juice out of

442
00:15:57,600 --> 00:15:58,879
a squeeze, you should really try to

443
00:15:58,879 --> 00:16:00,799
build your own agent and add in as much

444
00:16:00,799 --> 00:16:03,759
company specific knowledge as you can.

445
00:16:03,759 --> 00:16:06,879
Today, you know, we've had 20 roughly

446
00:16:06,879 --> 00:16:09,919
decently PMF agents adversel that range

447
00:16:09,919 --> 00:16:13,120
from anything from marketing retros to

448
00:16:13,120 --> 00:16:15,519
figure out who to reach out to to the

449
00:16:15,519 --> 00:16:18,399
first ever red line of a contract when

450
00:16:18,399 --> 00:16:20,799
legal sees a new negotiation all the way

451
00:16:20,799 --> 00:16:22,879
to my data science agent helping with

452
00:16:22,879 --> 00:16:26,000
with data queries. And that goes to show

453
00:16:26,000 --> 00:16:27,839
that we ever have been very

454
00:16:27,839 --> 00:16:30,320
agent-filled. You know, all of this

455
00:16:30,320 --> 00:16:32,559
stuff is actually saving us a lot of

456
00:16:32,559 --> 00:16:34,639
time. The data team has never been more

457
00:16:34,639 --> 00:16:36,639
productive. They have more time to go

458
00:16:36,639 --> 00:16:38,240
and improve the performance of

459
00:16:38,240 --> 00:16:40,159
Snowflake, to add new data sources that

460
00:16:40,159 --> 00:16:42,159
were missing, to fill in the gaps that

461
00:16:42,159 --> 00:16:43,679
they previously did not have time to

462
00:16:43,679 --> 00:16:45,278
because they were so busy writing

463
00:16:45,278 --> 00:16:48,000
queries. And I think it's never been

464
00:16:48,000 --> 00:16:50,799
easier for you at your big, small,

465
00:16:50,799 --> 00:16:53,278
medium-sized company to sort of automate

466
00:16:53,278 --> 00:16:55,278
away some of the things that you do not

467
00:16:55,278 --> 00:16:56,559
want to do or some of the things that

468
00:16:56,559 --> 00:16:58,480
you're spending too much time doing. You

469
00:16:58,480 --> 00:17:00,879
know, I think a lot of HR, finance,

470
00:17:00,879 --> 00:17:04,078
sales can be somewhat automated with

471
00:17:04,078 --> 00:17:06,240
agents. And I think Eve is the best way

472
00:17:06,240 --> 00:17:09,679
to build said agents today.

473
00:17:09,679 --> 00:17:11,679
And these are my socials. Thank you all

474
00:17:11,679 --> 00:17:13,679
for coming and listening. I'm Andrew and

475
00:17:13,679 --> 00:17:15,359
I'll be around if you want to chat

476
00:17:15,359 --> 00:17:18,359
outside.
