How We Solved Agent Building — Andrew Qu, Vercel

Andrew Qu· Vercel17:34

Read the talk

How We Solved Agent Building

Andrew Qu follows Vercel’s data agent from a pasted Snowflake schema through scoped agents, a sandboxed file system, reusable skills, and Eve. Each rewrite changes how the agent finds context, recovers from mistakes, and uses company knowledge.

From a talk by Andrew Qu

At a glance

Ideas worth remembering

  • Automate the complete question-to-answer workflow: interpreting data relationships, executing and revising SQL, and explaining the result.

  • Summary-based handoffs limited recovery. One stateful agent could revisit exploration after execution exposed a mistaken join.

  • The file-system redesign made the semantic layer searchable inside a sandbox, using familiar file operations and bash alongside a few Vercel-specific tools.

  • A recurring job distilled common queries into roughly 100 skills, carrying useful context into subsequent runs.

  • Eve packages skills, tools, and channels through file conventions; company knowledge still determines whether the resulting agent makes useful business decisions.

From agent infrastructure to a data-team bottleneck

Andrew Qu, Vercel’s Chief of Software, begins with the infrastructure surrounding agents. The AI SDK supplies a common interface across model providers; he contrasts changing one line with replacing 300–400 lines of provider-specific code. Model fallbacks, secure execution, durability, and resumability address other operational needs. His internal experiment asks what useful business work those capabilities can support.

Recording frame at 95 seconds
Recording frame at 95 seconds

The ambition was “an agent on every desk.” At 1:46, that ambition turns into a practical search: ask people in marketing, sales, finance, and legal what they dislike doing. The strongest candidate comes from the data team, which is lean and growing more slowly than the company’s demand for analysis.

A question about a customer or product interrupts a data scientist’s existing work. They must write a query, process its output, analyze the result, and return a recommendation. Meanwhile, customer data, analytics, metrics, and sales information still need to be aggregated and made usable. Qu and the VP of data therefore target the whole question-to-answer workflow: completing individual requests should stop consuming so much of the team’s time.

Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:12 · section reference included

Generating SQL becomes an end-to-end workflow

The first prototype, introduced around 3:46, tests a small capability before automating the surrounding work. A dump of the Snowflake schema goes into a large system prompt with a question. The model returns SQL, and Qu copies it into the database interface and runs it himself. The result gives him enough confidence to continue improving the context and harness, while execution still depends on a person.

Recording frame at 230 seconds
Recording frame at 230 seconds

A useful answer requires several kinds of work:

  • Interpretation and exploration: Understand the question, inspect the semantic layer, and find the join patterns that connect the relevant entities.
  • Execution and revision: Run SQL, then revisit it if execution fails or the query is too expensive.
  • Reporting: Turn the results into visualizations, written analysis, or a retrospective.

Generated SQL is an intermediate artifact. Execution can reveal that the earlier interpretation needs to change.

At 4:48, the second version gives those phases separate agents. D0, the data science agent, becomes a chain covering query interpretation, planning, execution, and reporting. Each specialist has a dedicated system prompt and tools restricted to its job. Schema exploration, for example, can read entity YAML and search schemas before passing its findings onward.

This version removes the manual SQL copying and completes the loop from question to answer. The architecture expresses the workflow through explicit handoffs: each stage does its assigned work, then gives the next stage enough information to continue. That is a real improvement in automation, but the contents of those handoffs become the next design problem.

Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:46 · section reference included

One agent can revisit the decision that failed

The chain passes only a summary and a small snippet of preceding work to each downstream agent. At 5:47, the redesign begins with a different requirement: let the system look back through its work and reconsider how it reached its current state. D0 becomes one agent that shifts among planning, building, executing, and reporting while retaining the broader working context. Qu describes a possible maximum of 100 steps for that run.

Recording frame at 391 seconds
Recording frame at 391 seconds

Follow the join-error case through this change. An execution attempt exposes a problem with how the query connects entities. The single agent can return to exploration, read more of the semantic layer, reconsider the relationship it chose, and try execution again. The important change is the direction of travel: a failure can send the same run backward to investigate an earlier decision, with its reasoning history still available.

How does retaining history change recovery? The diagram shows exploration and execution inside one run, with an error returning the agent to the information that can explain it. Reporting follows the result, rather than forcing every execution attempt directly into a reporting stage.

Confidence in that recovery loop leads to a small rollout among trusted users, avoiding very critical workloads. The verdict is “awful.” The team had been pleased to pass 30% of its evaluations—“we thought we were cooking”—but employees ask questions the team had not anticipated. Manually mapping each new scenario into the system does not look scalable.

How it fits togetherRecovery within one D0 run

Read the semantic layer and determine join patterns.

Keeping the working history lets an execution or join error trigger more exploration before another attempt.

Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

5:47 · section reference included

Put the semantic layer where the agent can explore it

At 7:48, Claude Code used with Opus 4.5 provides a different reference point. It answers many questions that trouble the custom agent. Qu attributes much of its advantage to an ordinary environment: a file system with a minimal set of operations for listing files, reading them, and running bash.

Recording frame at 546 seconds
Recording frame at 546 seconds

The proposed mechanism is familiarity and freedom to investigate. Models are well trained on these operations, so the harness can let them explore and write intermediate work instead of prescribing every discovery through a specialized tool. A few tools can support many sequences of work; the agent chooses the sequence as it learns what the question requires.

D0 is rebuilt in a sandbox containing the whole semantic layer. Bash, grep, file reads, and file writes let it inspect that material, while a few additional tools handle Vercel-specific capabilities. In the join-error example, the recovery loop now has a searchable working environment: the agent can return to the dumped definitions and investigate what it misunderstood. The semantic layer is available as files to explore, rather than only through the earlier narrow schema tools.

Qu reports that the evaluation score roughly doubles through the progression from the single agent to the Claude Code SDK and then the purpose-built file-system agent. The model and harness both changed, and the talk gives no evaluation methodology that separates their contributions, so this is a reported improvement in the combined system. The implementation he describes is small: attach a bash tool to a sandbox and supply files the agent can read, write, and execute.

The newly successful questions encourage broader access within Vercel and a public write-up. Qu calls it a “banger blog post” and says it accounted for 70% of Vercel’s website traffic during the week he wrote it. That is the moment the internal experiment becomes a pattern other builders want to adopt.

Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

7:18 · section reference included

Repeated questions become knowledge for the next run

Broader use produces thousands of queries a day. At 10:17, the next opportunity comes from repetition: customer metrics, sales metrics, npm downloads, product lookups, and billing questions often share the same shape even when their subjects differ.

Recording frame at 662 seconds
Recording frame at 662 seconds

A recurring job takes recent queries and tries to distill them into skills. Qu reports roughly 100 skills covering aggregation and specific lookups. A new run previously began with the semantic layer and system prompt; a skill adds contextual knowledge from work already done. The persistence is in reusable files that later runs can use, rather than a described model-retraining process. The talk leaves skill validation and selection unspecified.

What crosses from one run to another? The diagram separates the stream of recent questions from the reusable skills folder. It makes the accumulation visible: the recurring job turns repeated work into additional starting context, so each new run need not rediscover every familiar procedure.

Qu also mentions skills.sh for discovering and running agent skills. Inside Vercel, however, the larger distribution problem is D0 itself. Employees keep forking it at different stages of development, inheriting whichever architecture existed at the time. A framework could let the next builder begin with the latest insight instead of repeating the whole journey.

How it fits togetherRecent queries become reusable starting context

Repeated aggregations, product lookups, billing requests, and other questions.

The recurring job carries knowledge across runs by adding skills to the file-system environment.

Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

9:47 · section reference included

Eve turns the working pattern into file conventions

At 12:09, the framework analogy is Next.js. File conventions let developers declare application structure while the framework determines how pages, functions, and caching fit into infrastructure. For agents, the proposed conventions are folders for skills, tools, and channels. Builders supply knowledge, capabilities, and ways to interact; the framework composes them.

Recording frame at 824 seconds
Recording frame at 824 seconds

Eve, released two weeks before the talk, packages that approach. A sample template supplies the starting agent, which builders extend with custom knowledge, tools, and familiar channels. The architectural distinction is between those channels and the runtime that performs the work.

The runtime has several parallel responsibilities:

  • Durability: Support work that must continue or resume. The integrated Vercel path uses Vercel Workflows.
  • Isolated execution: Give executable work an isolated environment. Vercel Sandbox supplies this part of the hosted setup.
  • Model access: Allow different model interfaces, including an adapter for OpenAI’s Responses API.
  • Connections: Reach other systems through adapters and connectors. Vercel Connect generates short-lived OAuth tokens.

The open adapter options named in the talk include Postgres, OpenAI’s Responses API, Docker, and other connectors. These examples are not all assigned to a particular runtime responsibility. The talk does not develop the underlying persistence, isolation, or token protocols.

D0 is rewritten in Eve while the framework is being built. The resulting agent is expressed through system instructions, skills, and tools, replacing more convoluted structures behind earlier versions. The maintainability benefit is that the pieces shaping behavior are easy to compose and iterate on.

One beta partner rebuilds a service-testing agent that visits websites, installs services, and attempts to use them. Qu reports fewer steps, better success, and better insights than the partner obtained with an off-the-shelf coding agent. This is a qualitative comparison without numerical results or test conditions, illustrating the intended value of a purpose-built agent rather than establishing a general performance advantage.

At 14:44, deployment on Vercel adds visibility into the work itself: agent runs, tool calls, individual steps, estimated costs, and possible optimizations. Those views expose the path to an answer, giving builders something more useful to inspect than the final response alone. Qu closes the product introduction with eve.dev, where builders can clone a template, deploy it, or self-host if needed.

Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:38 · section reference included

Company knowledge makes the automation useful

The ending returns to the choice to build D0. At 15:30, database connectivity gives way to the harder question of business understanding. Vercel had tested vertical agents that could connect to Snowflake and run queries. Its own agent’s distinguishing ingredient was specific company knowledge: customers have websites and web properties, and useful analysis requires knowing how those entities relate and when to query particular information.

That explains why a semantic layer and reusable procedures matter so much. The agent needs guidance about what the company’s data means and how the business uses it. Qu regards packaged agents as useful to try, but recommends building a custom agent with as much company-specific knowledge as possible when seeking deeper value. This recommendation grows from Vercel’s experience rather than a comparison covering every organization.

Vercel has roughly 20 internal agents that Qu considers to have found useful roles:

  • Marketing: Retrospectives and identifying whom to contact.
  • Legal: An initial contract redline when a new negotiation arrives.
  • Data: Answering data questions through the data science agent.

The scope of the legal example matters: the agent produces a first redline, one contribution to the negotiation.

The data-team example reaches its most useful outcome here. Individual questions no longer consume so much of the day, and the team can spend more time improving Snowflake performance, adding missing data sources, and filling gaps it previously could not address. Qu reports time savings and greater productivity without measured hours. The concrete organizational change is the shift from repeatedly writing requested queries toward improving the system that supports future analysis.

The invitation extends to companies of different sizes and to work in HR, finance, and sales. Start with tasks people dislike or spend too much time doing, then supply the knowledge needed for that particular job. Eve is Qu’s preferred way to assemble those agents; the lesson from D0 is why the assembly must include the company’s own relationships and procedures.

Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

15:00 · section reference included

Resources

From the talk

  • The destination Qu names for discovering and running agent skills, a practical next step for exploring reusable capabilities.

  • EveReference15:00

    Qu’s starting point for cloning an agent template, adding company knowledge and tools, and choosing deployment or self-hosting.

Read the complete timestamped transcript
  1. 0:12

    Hey everyone, thanks for coming. I'm

  2. 0:15

    Andrew. I'm the chief of software at

  3. 0:17

    Verscell

  4. 0:19

    and I'm here to talk to you about how we

  5. 0:21

    solved agent building at Verscell. I'm

  6. 0:24

    the chief of software. So I work on a

  7. 0:26

    mix of internal engineering, external

  8. 0:28

    experimentation, and generally being at

  9. 0:30

    the frontier and building new libraries,

  10. 0:32

    frameworks, and technologies. For those

  11. 0:34

    of you that don't know Verscell,

  12. 0:37

    Verscell builds a gentic infrastructure

  13. 0:39

    so people can build what's next. We get

  14. 0:42

    started in the web world helping people

  15. 0:43

    ship websites and web apps without

  16. 0:46

    having to worry about the infrastructure

  17. 0:47

    that doesn't make their app any better.

  18. 0:49

    It can scale to a million and scale down

  19. 0:50

    to zero effortlessly. But we're seeing a

  20. 0:53

    change in what people want to build. You

  21. 0:55

    know, people started by building pages,

  22. 0:57

    but now we see them want to build

  23. 0:58

    agents. And we've been embarking on a

  24. 1:00

    similar journey to make it easy for

  25. 1:02

    people to build agents and agentic

  26. 1:05

    applications easier. We built this thing

  27. 1:08

    called the AIDK. So instead of needing

  28. 1:10

    to switch out 300 400 lines of provider

  29. 1:13

    specific code, you're just going to

  30. 1:14

    switch out one line of code and we have

  31. 1:16

    the same model interface underlying for

  32. 1:18

    all these different providers.

  33. 1:21

    We built a lot of other tools to make it

  34. 1:22

    easier to have model fallbacks, secure

  35. 1:25

    code execution, better pricing when it's

  36. 1:27

    inactive and waiting for responses, as

  37. 1:29

    well as for durability and resumability.

  38. 1:32

    And I'm here to talk to you about how I

  39. 1:35

    went on this crazy experiment roughly a

  40. 1:37

    year ago that led to a aentic explosion

  41. 1:41

    at Verscell and led to a really cool

  42. 1:43

    thing that we built recently

  43. 1:46

    about uh this is 1980. Uh, Bill Gates

  44. 1:49

    before my time had this quote saying he

  45. 1:52

    imagined there would be a computer on

  46. 1:53

    every desk and in every home. You know,

  47. 1:55

    that was probably pretty contrarian then

  48. 1:57

    and today it seems like very normal to

  49. 2:00

    have that happen. And me and the CTO had

  50. 2:03

    this thought, you know, instead of a

  51. 2:06

    computer on every desk, could we

  52. 2:08

    potentially have an agent on every desk?

  53. 2:10

    You know, today we only really use

  54. 2:13

    agents for coding and technical

  55. 2:15

    workloads, but we're starting to see

  56. 2:17

    expansion into things like design,

  57. 2:19

    product management, and other verticals.

  58. 2:22

    And this was maybe about a year ago, so

  59. 2:24

    I would say I'm pretty early to this,

  60. 2:25

    but that was when it was like sonnet 4

  61. 2:27

    and things weren't as sophisticated as

  62. 2:29

    they were today. And I tried to actually

  63. 2:32

    explore this out, see what we could do

  64. 2:34

    about it. I went around to various job

  65. 2:36

    functions at Verscell, marketing, sales,

  66. 2:39

    finance, legal, and I asked them, what

  67. 2:41

    do you hate most about your job? And the

  68. 2:45

    most compelling use case I heard was

  69. 2:47

    that the data team, they were growing.

  70. 2:50

    They were a very lean team, but Versel

  71. 2:52

    was growing faster. You know, they had

  72. 2:54

    so much more data from customers,

  73. 2:56

    analytics, metrics, sales. They just had

  74. 2:59

    to keep on aggregating and keep on

  75. 3:01

    making available for themselves to use.

  76. 3:05

    And at this time, if you think about

  77. 3:07

    what the data science people ever have

  78. 3:08

    to do, whenever someone from marketing

  79. 3:10

    or sales has a question about a customer

  80. 3:12

    or product, the data science team has to

  81. 3:15

    drop everything they're doing, write the

  82. 3:17

    query, process it, do an analysis, and

  83. 3:19

    come back with some recommendation on

  84. 3:21

    what to do. And this was really killer

  85. 3:24

    to productivity. You know, the data team

  86. 3:26

    did not want to drop everything and just

  87. 3:28

    write queries all day. And so I worked

  88. 3:29

    with our VP of data to try to build a

  89. 3:31

    better way for them to operate this way.

  90. 3:36

    And so if you think about the very first

  91. 3:37

    thing you would ever do if you want to

  92. 3:39

    try to use AI to solve a problem, you

  93. 3:41

    may just build like a huge mega prompt.

  94. 3:43

    You know, you just have a question, you

  95. 3:46

    pass into an LM, you have it respond,

  96. 3:48

    and that's it. You know, this was how

  97. 3:50

    the first version really looked.

  98. 3:51

    Honestly, I asked them for a dump of of

  99. 3:54

    the snowflake schema. I pasted it into a

  100. 3:57

    system prompt with a question and then

  101. 3:59

    when it generated SQL I actually copy

  102. 4:01

    and pasted that in and just ran it

  103. 4:02

    myself. You know I just want to see are

  104. 4:04

    the models good enough today in order to

  105. 4:06

    write valid SQL given some decent

  106. 4:09

    structure. And I would say this gave us

  107. 4:11

    a little bit of confidence that you know

  108. 4:13

    models today aren't that good but maybe

  109. 4:15

    we can harness engineer or make the

  110. 4:17

    context around it a little better and

  111. 4:19

    give us some more guardrails to operate

  112. 4:21

    a little better.

  113. 4:22

    And so if you actually think about what

  114. 4:24

    a data scientist actually needs to do

  115. 4:25

    when they get a question, you know, they

  116. 4:27

    have to process the question, they may

  117. 4:29

    have to explore the semantic layer and

  118. 4:31

    actually figure out what the join

  119. 4:32

    patterns are. They will actually go and

  120. 4:34

    execute the SQL. They may go back and do

  121. 4:37

    that again if the SQL did not execute or

  122. 4:39

    was too expensive. And they'll

  123. 4:40

    eventually report on it, including

  124. 4:42

    visualize the data, maybe write some

  125. 4:44

    paragraphs, maybe do a retro, maybe do

  126. 4:46

    some other stuff.

  127. 4:48

    And so if you think about those

  128. 4:49

    different phases, me and the VP of data

  129. 4:51

    tried to sit down and map those out into

  130. 4:53

    specific agent workloads. And so the

  131. 4:55

    second version of this data science

  132. 4:57

    agent uh called D0. I'm going to

  133. 4:59

    reference D0 from now on is you ask a

  134. 5:02

    question. We have a query agent that

  135. 5:04

    passes on a query to the planning agent

  136. 5:06

    that will then have an execution agent

  137. 5:08

    etc. And if you chain all of these

  138. 5:11

    together, you actually get something

  139. 5:12

    that looks like this where each agent

  140. 5:14

    has a very dedicated system prompt

  141. 5:16

    focused to what that does with tools

  142. 5:18

    scoped to exactly that function. So

  143. 5:20

    example here, you can see that for the

  144. 5:23

    first one, the planning agent has a read

  145. 5:25

    entity YAML and a and a search schemas

  146. 5:29

    tool. And so it will only use those

  147. 5:32

    capabilities until it has an answer to

  148. 5:34

    pass on to the planning agent and then

  149. 5:36

    to the SQL agent and then to reporting.

  150. 5:38

    And this was getting better. You know,

  151. 5:40

    we were able to get away from having to

  152. 5:42

    copy and paste a SQL and have to come

  153. 5:45

    back and report on it. It was now

  154. 5:46

    actually doing like the end to end loop

  155. 5:48

    from question to answer.

  156. 5:51

    But we started hitting some walls with

  157. 5:54

    this architecture. And around this time

  158. 5:56

    we came to the conclusion that you know

  159. 5:58

    what you actually need is you need one

  160. 5:59

    agent with all the mega context within

  161. 6:01

    it and for it to sort of manage its own

  162. 6:04

    memory. You know this was around the

  163. 6:06

    time when we realized that you want to

  164. 6:10

    actually have the agent be able to look

  165. 6:11

    back on what it's done sort of reflect

  166. 6:13

    and figure out the steps that got to get

  167. 6:15

    here. And with the previous model you

  168. 6:17

    may have noticed that the only thing

  169. 6:18

    that the next agent gets is a summary

  170. 6:21

    and a small snippet of the previous

  171. 6:22

    thing that was done. Now this way you

  172. 6:24

    can imagine that you have one mega agent

  173. 6:27

    and internally it manages its own state.

  174. 6:29

    At some points it's planning, some

  175. 6:31

    points it's building, some points it's

  176. 6:32

    executing and some points it's

  177. 6:33

    reporting. And this is sort of what it

  178. 6:36

    looked like. You know you have one big

  179. 6:38

    AI call maybe max steps 100 and you give

  180. 6:42

    it the ability to manage its own state

  181. 6:44

    based on where it's at inside of its

  182. 6:46

    execution journey. And so you can see

  183. 6:48

    similar tools, you can see a similar

  184. 6:50

    shape, but the best part about this is

  185. 6:51

    if it ever ran to an error when

  186. 6:53

    executing or joining, it could go back

  187. 6:55

    and explore more or it could go and read

  188. 6:57

    more and figure out what it was doing

  189. 6:59

    wrong. And it was very good at this

  190. 7:01

    point. We were pretty confident in the

  191. 7:04

    actual system at hand and we actually

  192. 7:06

    spread it to a few trusted members ever.

  193. 7:08

    You know, this is a very powerful tool

  194. 7:10

    and we didn't really want to put in the

  195. 7:11

    hands of the wrong people or people that

  196. 7:12

    were using very critical workloads. So,

  197. 7:15

    we got to a few people's hands and the

  198. 7:17

    immediate response was it was awful. You

  199. 7:18

    know, we thought we were cooking. We

  200. 7:20

    thought this was, you know, nailing 30%

  201. 7:22

    of our evals, but we couldn't have

  202. 7:24

    anticipated some of the questions that

  203. 7:25

    were being asked. And for us to spend

  204. 7:27

    more time manually mapping out some of

  205. 7:29

    these scenarios, it didn't seem like a

  206. 7:32

    very scalable way to do this.

  207. 7:35

    And then claude code and opus 4.5 came

  208. 7:39

    out. Well, more like Opus 4.5 came out

  209. 7:41

    and it in tangent with claw code which

  210. 7:43

    is so powerful. You know they sort of

  211. 7:46

    unlocked the concept of a file system

  212. 7:48

    agent and we on the side were like wow

  213. 7:52

    clawed code and Opus 4.5 is basically

  214. 7:55

    AGI compared to what we had before. You

  215. 7:57

    know it would answer most of our

  216. 7:58

    questions without even without even

  217. 8:02

    missing a beat um compared to the

  218. 8:03

    handgrown agent we had. And when we

  219. 8:05

    tried to step back and wonder what we

  220. 8:07

    were doing wrong and why this was so

  221. 8:08

    much better, we realized that the big

  222. 8:11

    unlock was that it was just a file

  223. 8:13

    system. You know, we it had a very

  224. 8:15

    minimal set of tools, list file, read

  225. 8:17

    file, run bash, and we gave a few more

  226. 8:20

    here for uh our own data agent use case.

  227. 8:24

    But the biggest thing was it was able to

  228. 8:26

    use the tools that agents are well

  229. 8:28

    trained on and was able to explore and

  230. 8:30

    write work where it needs to. you know,

  231. 8:32

    we weren't giving it claw code was not

  232. 8:35

    giving it a very prescriptive set of

  233. 8:36

    tools. It was sort of just letting it go

  234. 8:38

    wild and explore emergent behavior. And

  235. 8:41

    so from this, we learned that you can

  236. 8:43

    really just use a file system. You know,

  237. 8:45

    we we saw the learnings from claw code

  238. 8:47

    and how powerful it was given that it

  239. 8:49

    just executes locally. And we tried to

  240. 8:52

    rebuild it in a way that was very cloud

  241. 8:54

    codeesque. You know, it was now going to

  242. 8:56

    run in a sandbox. That sandbox would

  243. 8:58

    dump the whole semantic layer into it.

  244. 9:00

    You could the agent would be able to

  245. 9:02

    grab, bash, read file, write file all

  246. 9:04

    around to figure out what it needs and

  247. 9:06

    we would just sprinkle a few tools on

  248. 9:07

    top to make sure it could do everything

  249. 9:08

    that is versel specific.

  250. 9:12

    And this was actually the biggest unlock

  251. 9:14

    ever. You know, the leap from single

  252. 9:17

    agent to cloud code SDK and then from

  253. 9:19

    cloud code SDK to file system agent in

  254. 9:22

    general, fine-tuned or purpose-built for

  255. 9:25

    our use case was an amazing leap. At

  256. 9:27

    this point, we were starting to get

  257. 9:28

    ready to give it away to more people at

  258. 9:31

    Versell.

  259. 9:32

    And at this point, the eval score

  260. 9:35

    basically doubled. And I wrote this uh

  261. 9:37

    this is basically how it looks. Um it's

  262. 9:39

    very simple. You just give it a bash

  263. 9:41

    tool. We have a nice helper called bash

  264. 9:42

    tool on npm and you attach it to a

  265. 9:45

    sandbox and you can attach files to the

  266. 9:46

    sandbox for it to read, write and

  267. 9:48

    execute.

  268. 9:50

    And after this revelation and after I

  269. 9:52

    saw that we were passing so many of the

  270. 9:54

    questions that we failed to do before, I

  271. 9:56

    wrote this banger blog post. It's uh

  272. 9:58

    it's actually up today. And the week

  273. 10:01

    that I wrote this, it was responsible

  274. 10:02

    for 70% of our versel.com traffic. So

  275. 10:05

    you know it's a banger. And after that,

  276. 10:09

    the next logical step was that we want

  277. 10:12

    to figure out the common use cases we

  278. 10:14

    had. So by then we've already sort of

  279. 10:16

    let a leash on all of our cell and we

  280. 10:19

    were getting thousands of queries a day

  281. 10:21

    from people wanting everything from

  282. 10:23

    customer metrics sales metrics number

  283. 10:25

    metrics npm downloads and it turns out

  284. 10:28

    that a lot of these queries are actually

  285. 10:30

    the same in shape you know there's only

  286. 10:31

    so many ways you can do an aggregation

  287. 10:33

    only so many ways you can look up a

  288. 10:34

    product only so many ways you can do

  289. 10:36

    billing info and so we actually have a

  290. 10:38

    recurring job that takes the most recent

  291. 10:40

    queries and tries to distill them into a

  292. 10:42

    skill and right now we have roughly 100

  293. 10:44

    skills that do a mix of aggregation all

  294. 10:47

    the way through looking up specific data

  295. 10:49

    about certain people. And we found this

  296. 10:51

    very effective because if you think

  297. 10:53

    about every new agent run, it sort of

  298. 10:55

    just starts from nothing. You know,

  299. 10:56

    there's really no pre-established

  300. 10:58

    context besides, you know, the semantic

  301. 11:00

    layer and the system prompt. But with a

  302. 11:02

    skill, it already starts off with a lot

  303. 11:04

    of contextual knowledge that has

  304. 11:05

    otherwise already been done.

  305. 11:09

    And this is roughly how it looks. It's

  306. 11:11

    very similar to the previous one, but

  307. 11:12

    the inclusion of a skills folder is

  308. 11:14

    actually very powerful. Um, we also

  309. 11:16

    built this tool at Verscell called

  310. 11:17

    Skillsh. It's the most popular way to

  311. 11:19

    find agent skills and run them yourself.

  312. 11:23

    And I I'm saying all this because this

  313. 11:25

    journey is something that most of you

  314. 11:27

    may hit once in a while where you start

  315. 11:29

    from something simple and you gradually

  316. 11:30

    add complexity and you eventually hit a

  317. 11:32

    system in which you can ship to prod.

  318. 11:35

    And I'm telling you this because at

  319. 11:37

    every step along building this agent,

  320. 11:39

    someone Everell was agent curious and

  321. 11:42

    they tried to fork off of my DZero agent

  322. 11:45

    and build their own. And at every step,

  323. 11:47

    we sort of had a better way to do

  324. 11:49

    something that was not previously known.

  325. 11:51

    And we were wondering like what if

  326. 11:53

    people today could start from the very

  327. 11:55

    last insight and not have to ever start

  328. 11:57

    from just a simple prompt or from

  329. 12:00

    reinventing best principles from first

  330. 12:03

    principles.

  331. 12:04

    And so we actually thought what if we

  332. 12:06

    built the Nex.js for agents. For those

  333. 12:09

    that don't know, Nex.js is a popular web

  334. 12:11

    framework that Verscell built that

  335. 12:13

    invented this thing of file system uh

  336. 12:16

    framework defined infrastructure. You

  337. 12:18

    don't have to worry about where things

  338. 12:19

    go. You just have to write files in the

  339. 12:22

    right conventions and it automatically

  340. 12:24

    declares where they should go. Your

  341. 12:26

    pages go to the CDN. Your serverless

  342. 12:28

    functions go there. Your caching goes in

  343. 12:30

    the middle. And we thought, you know,

  344. 12:32

    building agents should be this simple.

  345. 12:34

    You should only have to create a skills

  346. 12:35

    folder, a tools folder, a channels

  347. 12:37

    folder, and you should be able to just

  348. 12:39

    declare these very easily. And the

  349. 12:40

    framework should know exactly how to

  350. 12:42

    make an agent out of it.

  351. 12:45

    And that's why two weeks ago we released

  352. 12:46

    Eve. Eve is a agent framework like the

  353. 12:49

    next.js GS for agents where it's very

  354. 12:51

    easy from just starting with a sample

  355. 12:53

    template to having a fully agent ready

  356. 12:56

    and being able to add in your own custom

  357. 12:57

    knowledge, your own custom tools and

  358. 12:59

    even integrated into the channels that

  359. 13:01

    you are familiar with.

  360. 13:04

    This is roughly what we think an agent

  361. 13:05

    actually looks like. You know, an agent

  362. 13:07

    has a runtime and it has channels. And

  363. 13:09

    in that runtime, you're going to have

  364. 13:10

    durability. You're going to want to run

  365. 13:12

    things in an isolate environment. You're

  366. 13:14

    going to want to call into different

  367. 13:15

    models. And you're going to want to have

  368. 13:16

    connections. And we built this with open

  369. 13:19

    source in mind. You know, we built Eve

  370. 13:21

    so you can plug in your own open source

  371. 13:22

    adapters for Postgress, OpenAI's uh

  372. 13:25

    responses API, Docker, other connectors.

  373. 13:28

    But we also made it incredibly easy to

  374. 13:30

    deploy in Verscell. The only thing here

  375. 13:32

    you see different is that everything

  376. 13:33

    here is using a Verscell product that

  377. 13:35

    we've been building over the years in

  378. 13:36

    order to make it easy to build these

  379. 13:38

    experiences. Versell workflows for

  380. 13:40

    durability, sandbox for secure

  381. 13:42

    execution, and Verscell connect,

  382. 13:44

    something we just released to make it

  383. 13:45

    easy to generate short-lived ODC tokens

  384. 13:48

    for connections.

  385. 13:51

    And we actually rewrote the whole D0ero

  386. 13:53

    agent in Eve as we were building Eve and

  387. 13:56

    from the convoluted structures behind

  388. 13:57

    the scenes that you did not see from the

  389. 13:59

    code. Um, this is roughly how the file

  390. 14:01

    system looks. It's very simple. You have

  391. 14:02

    a bunch of system instructions, a couple

  392. 14:05

    skills, a couple tools, and it's very

  393. 14:07

    easy to compose this into a real agent,

  394. 14:09

    and it's very easy to iterate on. We

  395. 14:12

    actually gave this out to a few beta

  396. 14:13

    customers before we actually fully

  397. 14:15

    released it two weeks ago at our London

  398. 14:16

    event. And this one company that

  399. 14:18

    partners closely with us, Aura. They've

  400. 14:20

    rebuilt their agent that's sort of like

  401. 14:22

    a mini claw to go and test people's

  402. 14:25

    services. It goes to websites, installs

  403. 14:27

    them, it tries to use them. And they've

  404. 14:30

    seen incredible success on building

  405. 14:33

    their own agent from the ground up using

  406. 14:35

    Eve compared to using an off-the-shelf

  407. 14:37

    cloud code. Fewer steps, better

  408. 14:40

    successes, as well as better insights.

  409. 14:45

    And when you deploy Eve to Verscell, you

  410. 14:47

    get observability observability out of

  411. 14:49

    the box. You can see here that you get

  412. 14:50

    all the agent runs, you see all the tool

  413. 14:52

    calls, you see each step it takes as

  414. 14:55

    well as maybe some estimated costs and

  415. 14:56

    some optimizations you could potentially

  416. 14:58

    take.

  417. 15:00

    And you can get start today at eve.dev.

  418. 15:03

    You can just clone it and you can just

  419. 15:04

    start a template, deploy easily,

  420. 15:06

    self-host if you need. And the reason

  421. 15:08

    why I bring this up is because I hope

  422. 15:10

    that there will be more and more

  423. 15:12

    business specific use case agents. You

  424. 15:15

    know, before we built Ezero, we actually

  425. 15:17

    battle tested a lot of the industry

  426. 15:20

    well-funded startups that were doing

  427. 15:22

    these vertical agents that were

  428. 15:24

    dedicated to taking your Snowflake

  429. 15:26

    instance and making it so their agent

  430. 15:28

    could run Snowflake queries against it.

  431. 15:31

    But we found out that what really makes

  432. 15:33

    this agent good is it has a lot of very

  433. 15:36

    specific uh company knowledge. You know,

  434. 15:39

    the way that Versel is a web- based

  435. 15:41

    company. We have a lot of customers that

  436. 15:43

    have websites and web properties. That

  437. 15:45

    goes a lot deeper into when you should

  438. 15:48

    query for what and what things link to

  439. 15:50

    what. And so a lot of these

  440. 15:52

    off-the-shelf agents, they're great.

  441. 15:54

    They're good to try, but I think if you

  442. 15:56

    really want to get the most juice out of

  443. 15:57

    a squeeze, you should really try to

  444. 15:58

    build your own agent and add in as much

  445. 16:00

    company specific knowledge as you can.

  446. 16:03

    Today, you know, we've had 20 roughly

  447. 16:06

    decently PMF agents adversel that range

  448. 16:09

    from anything from marketing retros to

  449. 16:13

    figure out who to reach out to to the

  450. 16:15

    first ever red line of a contract when

  451. 16:18

    legal sees a new negotiation all the way

  452. 16:20

    to my data science agent helping with

  453. 16:22

    with data queries. And that goes to show

  454. 16:26

    that we ever have been very

  455. 16:27

    agent-filled. You know, all of this

  456. 16:30

    stuff is actually saving us a lot of

  457. 16:32

    time. The data team has never been more

  458. 16:34

    productive. They have more time to go

  459. 16:36

    and improve the performance of

  460. 16:38

    Snowflake, to add new data sources that

  461. 16:40

    were missing, to fill in the gaps that

  462. 16:42

    they previously did not have time to

  463. 16:43

    because they were so busy writing

  464. 16:45

    queries. And I think it's never been

  465. 16:48

    easier for you at your big, small,

  466. 16:50

    medium-sized company to sort of automate

  467. 16:53

    away some of the things that you do not

  468. 16:55

    want to do or some of the things that

  469. 16:56

    you're spending too much time doing. You

  470. 16:58

    know, I think a lot of HR, finance,

  471. 17:00

    sales can be somewhat automated with

  472. 17:04

    agents. And I think Eve is the best way

  473. 17:06

    to build said agents today.

  474. 17:09

    And these are my socials. Thank you all

  475. 17:11

    for coming and listening. I'm Andrew and

  476. 17:13

    I'll be around if you want to chat

  477. 17:15

    outside.

  478. 17:31

    >> [music]