Building Production-Ready AI Agents for Internal Workflow Automation

vercel · Tech · 2025 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.5 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Internal enterprise workflow automation with specialized AI agents

Vercel needed a repeatable way to identify and deploy internal AI agents that could automate high-volume but low-cognitive-load work across sales, trust and safety, and business intelligence without overreaching into tasks current models handle poorly.

Constraints:

Architecture

Vercel frames agents as workflow steps where an LLM can autonomously use tools in a loop. The company selected internal projects by asking employees what busy work they hated, then built specialized agents for workflows with clear triggers, steps, and outputs. The lead-processing agent classifies contact-sales submissions, researches companies through LinkedIn and Google, drafts qualified-lead emails, hands them to salespeople for personalization, and records results in Salesforce. The anti-abuse agent ingests reports from a form or API, uses project/team/domain/payment/visual-inspection tools, summarizes findings with confidence, and routes recommendations to humans in Salesforce. The data-analyst agent accepts Slack questions, uses schema plus a curated semantic catalog to generate SQL, executes queries, summarizes results with graphics, and replies in the Slack thread. Vercel AI SDK and use workflow provide the TypeScript/workflow substrate, while sub-agents remain ordinary functions/tools.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  use-case-discovery-interviews[Use-case discovery interviews] --> workflow-design-layer[Workflow design layer]
  workflow-design-layer --> vercel-ai-sdk[Vercel AI SDK]
  workflow-design-layer --> use-workflow-abstraction[Use workflow abstraction]
  workflow-design-layer --> lead-processing-agent[Lead processing agent]
  workflow-design-layer --> anti-abuse-agent[Anti-abuse agent]
  workflow-design-layer --> data-analyst-agent[Data analyst agent]
  lead-processing-agent --> research-sub-agent[Research sub-agent]
  research-sub-agent --> linkedin-and-google-tools[LinkedIn and Google tools]
  lead-processing-agent --> salesperson-review[Salesperson review]
  lead-processing-agent --> salesforce[Salesforce]
  salesperson-review --> salesforce
  anti-abuse-agent --> abuse-report-intake[Abuse report intake]
  anti-abuse-agent --> project-inspection-tools[Project inspection tools]
  project-inspection-tools --> multimodal-model[Multimodal model]
  anti-abuse-agent --> salesforce
  salesforce --> trust-and-safety-queue[Trust and safety queue]
  data-analyst-agent --> slack-interface[Slack interface]
  data-analyst-agent --> semantic-catalog[Semantic catalog]
  semantic-catalog --> sql-execution-layer[SQL execution layer]
  data-analyst-agent --> sql-execution-layer
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Use-case discovery interviews Department-by-department process that asks employees which repetitive busy work they hate most. Workflow design layer
Workflow design layer Models each candidate process as trigger, steps, branches, outputs, and agentic decision points. Use-case discovery interviews, Vercel AI SDK, Use workflow abstraction, Lead processing agent, Anti-abuse agent, Data analyst agent
Vercel AI SDK TypeScript framework Vercel recommends for building agents. Workflow design layer, Use workflow abstraction
Use workflow abstraction Vercel workflow abstraction for modeling agentic workflows. Workflow design layer, Vercel AI SDK
Lead processing agent Sales workflow agent that filters contact-sales submissions, researches leads, drafts email, and records CRM data. Workflow design layer, Research sub-agent, Salesperson review, Salesforce
Research sub-agent Specialized agent/tool for LinkedIn and Google research about companies and contacts. Lead processing agent, LinkedIn and Google tools
LinkedIn and Google tools External research tools used to enrich lead records similarly to the human process. Research sub-agent
Salesperson review Human-in-the-loop step where salespeople personalize and send the drafted email. Lead processing agent, Salesforce
Salesforce CRM and case-management system where lead and abuse-agent outputs are logged for human teams. Lead processing agent, Salesperson review, Anti-abuse agent, Trust and safety queue
Anti-abuse agent Trust-and-safety agent that evaluates abuse reports, inspects project context and visual content, and recommends outcomes. Workflow design layer, Abuse report intake, Project inspection tools, Multimodal model, Salesforce
Abuse report intake Web form and large-reporter API that trigger abuse review. Anti-abuse agent
Project inspection tools Tools for deployed assets, team age, domains, payment information, and related platform metadata. Anti-abuse agent, Multimodal model
Multimodal model Visual inspection model used to assess reported pages such as phishing/login impersonation. Anti-abuse agent, Project inspection tools
Trust and safety queue Human review queue where operators act on block/manual-review/false-positive recommendations. Salesforce, Anti-abuse agent
Data analyst agent Slack-based self-service analytics agent that generates SQL, executes it, and summarizes results. Workflow design layer, Slack interface, Semantic catalog, SQL execution layer
Slack interface User-facing trigger and delivery channel for business-intelligence questions and results. Data analyst agent
Semantic catalog Curated business-context layer that teaches the data agent what tables, columns, and metrics mean. Data analyst agent, SQL execution layer
SQL execution layer Query-building and execution path that returns data for the data analyst agent to summarize. Data analyst agent, Semantic catalog

Data flow

The shared workflow pattern starts with a trigger such as a contact-sales form, abuse report, or Slack message. A main agent enters a reasoning loop and calls specialized tools or sub-agents. For leads, it filters spam/support/low-quality submissions, researches the company and person, drafts an email, hands the draft to a salesperson, and updates Salesforce. For abuse reports, it examines the reported project, deployed assets, team history, domains, payment data, and visual content, then recommends block, manual review, or false positive for a human queue. For analytics, it reads schema and semantic-catalog context, builds and executes SQL, summarizes the result, generates graphics, and posts back to Slack.

6 supporting quotes
“There's a trigger like something triggers the workflow. Step one, two, three, and some kind of output. And to make that agentic you just replace one of the steps by an agent which can now make decisions. Um it can call tools like this and then in practice”transcript, stated
“to make that agentic you just replace one of the steps by an agent which can now make decisions. Um it can call tools”transcript, stated
“user hits that submit button taking um triggering the workflow um that kicks off the main agent which has a reasoning loop”transcript, stated
“the agent can just route it to support because it probably actually won't be that great for the customer if these the the salesperson answers their support request”transcript, stated
“of how your business works so it can actually make good decisions. So again the schema is there's now a slack message that kicks off the agent. Um it will then look at you know roughly what data to look to look at building query with like the right tables right columns”transcript, stated
“It executes the query um and then comes back summarizing the result in a human readable format. Does graphics etc.”transcript, stated

Why this architecture

Vercel selected repetitive, hated tasks because they are frequent enough to matter and structured enough for current models. The workflow-step framing avoids overcomplicating agents: tools are functions, agents are functions, and sub-agents are simply specialized agents callable as tools. Human review remains where humans are better, such as personalization and takedown decisions, while the agent handles research, triage, and information synthesis.

5 supporting quotes
“and you Ask them, "What do you hate most about your job?" Or like the the variant of like, "What busy work would you love to never do again?" Right? And these questions are magical because they yield answers that people Why do they hate it? They hate it because”transcript, stated
“do for the AI to actually excel at, right? And so these tasks need to be need to be like boring. They need to be like low cognitive load that which doesn't mean again like it's still two years ago you could have never dreamed of implementing them but like but it you know don't start with the most”transcript, stated
“don't think so much in fanciness. It's just like like tools are functions, agents are functions. So you can use agents as sub agents. All right. Um, did I mention I work for cell? So we make two things that are really relevant. AI SDK if you're into TypeScript, probably the best way to build agents.”transcript, stated
“specialized in researching people on LinkedIn and Google and that's all it knows to do and it comes back with the information. And finally, it makes a draft email um if the lead is qualified, right? And then that we give that draft email to the actual”transcript, stated
“then that we give that draft email to the actual salesperson who then can personalize it because you know humans are actually better at this”transcript, stated

Models used: 2025 frontier models · LLMs · Vercel AI SDK · use workflow · Multimodal models · Sub-agents · Text-to-SQL

Scale

Alternatives considered (roads not taken)

Top-down mandate to build agents

Rejected because: The speaker argues that successful projects start from concrete repetitive work rather than abstract organizational pressure to use agents.

“many companies are like putting down top-down mandates, right? I watched the Salesforce keynote and we're building agents this year”transcript, stated
“you go and you interview your employees and you Ask them, "What do you hate most about your job?" Or like the the variant of like, "What busy work would you love to never do again?" Right? And these questions are magical because they yield answers that”transcript, stated

Starting with the most difficult company problem

Rejected because: The methodology intentionally targets low-cognitive-load repetitive work that frontier models can do reliably today.

“dreamed of implementing them but like but it you know don't start with the most difficult thing in your company right this kind of message and so I mentioned how I have this like methodology for figuring out um what agents have built and it all centers around one uh single questions which is you go”transcript, stated
“it's the sweet spot for current generation AI because it finds these problems that are actually easy enough for AI to do”transcript, stated

Monolithic general agents

Rejected because: Vercel treats sub-agents as simple specialized functions/tools, making workflows easier to compose and reason about.

3 supporting quotes
“the tool actually happens to be another workflow subworkflow or people use like use like fancy language like sub agent”transcript, stated
“don't think so much in fanciness. It's just like like tools are functions, agents are functions. So you can use agents as sub agents. All right. Um, did I mention I work for cell? So we make two things that are really relevant. AI SDK if you're into TypeScript, probably the best way to build agents.”transcript, stated
“there's an agent that's specialized in researching people on LinkedIn and Google and that's all it knows to do”transcript, stated

Letting the anti-abuse agent take down websites automatically

Rejected because: Vercel's default as a hosting provider is not to take down websites, so the agent prepares evidence and recommendations for human review.

3 supporting quotes
“default thing isn't to take down websites like we actually try to never do that right. So we actually do not let this agent just run wild but but you can just imagine the difference of like as the human operator seeing everything you would have researched already”transcript, stated
“our action our default thing isn't to take down websites like we actually try to never do that right. So we actually do not let this agent just run wild but but you can just imagine the difference of like as the human operator seeing everything you would”transcript, stated
“the human operator seeing everything you would have researched already in a list and then making a quick decision”transcript, stated

Generic text-to-SQL tools without business context

Rejected because: The data agent relies on a curated semantic catalog that teaches company-specific business meaning, which generic tools lack.

3 supporting quotes
“why would you beat this like probably super highowered hundred million dollar startup that specializes in this?”transcript, stated
“the answer is that you're doing the work of teaching the agent about your business and you know giving it semantic understanding of how your business works so it can actually make good decisions. So again the schema is there's now a slack message that kicks”transcript, stated
“looking at the your curated semantic catalog of of the information about the company that tells it what to do. It executes the query um and then comes back summarizing the result in a human readable format. Does graphics etc. And finally goes back to the”transcript, stated

Opening the anti-abuse agent source publicly

Rejected because: Vercel withheld that code because abuse detection is adversarial and public details can help bad actors evade detection.

“this agent we actually not open sourcing because there's a bit of a cat and mouse game situation. But if you're actually in a similar situation, you know, you can you can hit me up and I'm very happy to actually share the code uh privately. Very cool. So for”transcript, stated
“if you're actually in a similar situation, you know, you can you can hit me up and I'm very happy to actually share the code uh privately.”transcript, stated

Patterns

tool-use-orchestration (agent-architecture)

Vercel defines agents as LLMs using tools in a loop and embeds agents as decision-capable steps inside ordinary workflows.

3 supporting quotes
“about what agents are they are according to anthropic I think this is probably the the most popular definition LMS autonomously using tools in a loop and like this definition is like is actually horrible because it doesn't tell you at all what it does, right? It's just like it's actually an”transcript, stated
“replace one of the steps by an agent which can now make decisions. Um it can call tools”transcript, stated
“tools are functions, agents are functions. So you can use agents as sub agents.”transcript, stated

workflow-decomposition (workflow-design)

The talk decomposes business processes into trigger, steps, outputs, and replaceable agentic substeps; the same decomposition is used for lead, abuse, and analytics agents.

3 supporting quotes
“Workflows. This is the simplest possible workflow. It has no branches or loops, but it could, right?”transcript, stated
“There's a trigger like something triggers the workflow. Step one, two, three, and some kind of output.”transcript, stated
“But my talk is really about what agents to build. Okay. So, what agents are we building? Obvious like many companies are like putting down top-down mandates, right?”transcript, stated

human-in-the-loop-gate (deployment-safety)

Vercel keeps humans at final personalization and high-stakes review points: salespeople personalize lead emails and trust-and-safety staff act on abuse recommendations.

3 supporting quotes
“we give that draft email to the actual salesperson who then can personalize it because you know humans are actually better at this”transcript, stated
“So we actually do not let this agent just run wild but but you can just imagine the difference of like as the human operator seeing everything you would have researched already in a list and then making a quick decision how much faster that is.”transcript, stated
“the human operator seeing everything you would have researched already in a list and then making a quick decision”transcript, stated

multi-agent-orchestration (agent-architecture)

Vercel treats sub-agents as specialized agents callable by larger agents, such as a LinkedIn/Google research sub-agent inside the lead workflow.

3 supporting quotes
“another workflow subworkflow or people use like use like fancy language like sub agent right that just means that this tool of the agent happens to be another agent. Um, but like you don't need any like fancy protocols like A2A or like don't think so much in fanciness. It's just like like tools”transcript, stated
“specialized in researching people on LinkedIn and Google and that's all it knows to do”transcript, stated
“research data analysis agent because I think this is something that either you need directly in your company or it's a great building block for for a larger agent. Cool. So with that, um, these were just a few examples, right? Like obviously there's this whole universe of agents to build. Um,”transcript, stated

rag-retrieval (data-access)

The data analyst agent uses schema and a curated semantic catalog as business-specific context before generating SQL and summarizing results.

“teaching the agent about your business and you know giving it semantic understanding of how your business works”transcript, stated
“building query with like the right tables right columns and again looking at the your curated semantic catalog”transcript, stated

structured-output-contract (analytics)

The analytics agent turns natural-language Slack questions into SQL queries and structured results before posting human-readable summaries and graphics.

3 supporting quotes
“go into Slack and say hey data agent can you you know answer this question”transcript, stated
“It executes the query um and then comes back summarizing the result in a human readable format. Does graphics etc.”transcript, stated
“finally goes back to the select thread with the answer to the original question.”transcript, stated

safety-policy-enforcement (trust-and-safety)

The abuse agent combines platform metadata and visual inspection to recommend block/manual-review/false-positive outcomes while leaving final takedown authority to humans.

3 supporting quotes
“it summarizes the findings with a confidence score and recommends block manual review or maybe it's a false positive”transcript, stated
“So we actually do not let this agent just run wild but but you can just imagine the difference of like as the human operator seeing everything you would have researched already in a list and then making a quick decision how much faster that is.”transcript, stated
“our default thing isn't to take down websites like we actually try to never do that”transcript, stated

Tradeoffs

Find agent projects through employee pain interviews

Chose Ask departments what busy work they hate over Starting from a generic directive to build agents.

Rationale: The pain-interview method finds repetitive tasks that current models can handle and that employees actively want automated.

3 supporting quotes
“you go and you interview your employees and you Ask them, "What do you hate most about your job?"”transcript, stated
“They hate it because it's boring. It's repetitive. It doesn't tickle their brain”transcript, stated
“because these things are repetitive and stuff like companies do a lot, they're also high business impact.”transcript, stated

Keep salespeople in the lead-email loop

Chose Agent drafts plus human personalization over Fully automated outreach email sending.

Rationale: The agent is well suited to repetitive research, while humans remain better at nuanced personalization and relationship handling.

“And finally, it makes a draft email um if the lead is qualified, right? And then that we give that draft email to the actual salesperson who then can personalize it because you know humans are actually better at this and and send then and send it to the customer.”transcript, stated
“then that we give that draft email to the actual salesperson who then can personalize it because you know humans are actually better at this”transcript, stated

Use human review for abuse enforcement

Chose Agent recommendations in Salesforce over Automated website blocking.

Rationale: The agent accelerates investigation while preserving human accountability for potentially harmful takedown actions.

3 supporting quotes
“it summarizes the findings with a confidence score and recommends block manual review or maybe it's a false positive”transcript, stated
“So we actually do not let this agent just run wild but but you can just imagine the difference of like as the human operator seeing everything you would have researched already in a list and then making a quick decision how much faster that is.”transcript, stated
“seeing everything you would have researched already in a list and then making a quick decision how much faster that is”transcript, stated

Invest in a semantic catalog for data analysis

Chose Company-specific semantic context plus SQL generation over Off-the-shelf generic text-to-SQL.

Rationale: The semantic catalog lets the agent choose tables and columns using business meaning, which generic tools do not know.

3 supporting quotes
“the answer is that you're doing the work of teaching the agent about your business”transcript, stated
“giving it semantic understanding of how your business works so it can actually make good decisions”transcript, stated
“looking at the your curated semantic catalog of of the information about the company that tells it what to do”transcript, stated

Open-source reference agents selectively

Chose Lead and data analyst agents as public reference architectures over Open-sourcing every internal agent or selling them as agent-as-a-service products.

Rationale: Reference implementations help developers learn concrete patterns, while adversarial anti-abuse logic stays private.

3 supporting quotes
“not an agent as a service thing, right? You're not supposed to drop this into your company”transcript, stated
“it actually helps a lot to see very concretely how this is implemented”transcript, stated
“this agent we actually not open sourcing because there's a bit of a cat and mouse game situation”transcript, stated

Gotchas (what bit them)

AI project selection fails when teams choose tasks outside current model strengths.

Root cause: Teams overgeneralize from AI's coding ability and assume the same capability applies to every business problem.

Resolution: Start with boring, repetitive, low-cognitive-load tasks employees hate, then scale from successful internal examples.

3 supporting quotes
“AI is incredible at coding and it's not as good at essentially any other task”transcript, stated
“pick tasks that are easy enough to do for the AI to actually excel at”transcript, stated
“interview your employees and you Ask them, "What do you hate most about your job?" Or like the the variant of like, "What busy work would you love to never do again?" Right? And these questions are magical because they yield answers that people Why do they hate it? They hate it because it's boring.”transcript, stated

A sales agent can degrade customer experience if support requests are routed to sales.

Root cause: Contact-sales forms receive spam, low-quality submissions, and support requests mixed with legitimate leads.

Resolution: Run initial classification and route support requests to support before doing lead research.

3 supporting quotes
“it first start to check if this like does this look like spam lowquality submission or support request.”transcript, stated
“people love putting support requests into your contact sales form.”transcript, stated
“the agent can just route it to support because it probably actually won't be that great for the customer”transcript, stated

Autonomous abuse takedowns would conflict with Vercel's hosting-provider default.

Root cause: False positives in takedown decisions can remove legitimate websites, and abuse detection is adversarial.

Resolution: Use the agent to gather evidence and recommend actions, but keep human operators responsible for the final queue decision.

3 supporting quotes
“as a hosting provider like obviously our action our default thing isn't to take down websites”transcript, stated
“So we actually do not let this agent just run wild but but you can just imagine the difference of like as the human operator seeing everything you would have researched already in a list and then making a quick decision how much faster that is.”transcript, stated
“the human operator seeing everything you would have researched already in a list and then making a quick decision”transcript, stated

Generic text-to-SQL lacks business context.

Root cause: Schema alone does not teach the agent which tables, columns, and metrics reflect the business's real semantics.

Resolution: Curate a semantic catalog that teaches the agent company-specific business meaning before query generation.

3 supporting quotes
“teaching the agent about your business and you know giving it semantic understanding of how your business works”transcript, stated
“Um it will then look at you know roughly what data to look to look at building query with like the right tables right columns and again looking at the your curated semantic catalog of of the information about the company that tells it what to do.”transcript, stated
“your curated semantic catalog of of the information about the company that tells it what to do”transcript, stated

Open-sourcing adversarial detection code can help attackers.

Root cause: Abuse prevention is a cat-and-mouse game, so publishing detection details may teach bad actors how to evade the system.

Resolution: Open-source non-adversarial reference agents, but share the abuse-agent code privately only with similar teams.

“this agent we actually not open sourcing because there's a bit of a cat and mouse game situation”transcript, stated
“if you're actually in a similar situation, you know, you can you can hit me up and I'm very happy to actually share the code uh privately.”transcript, stated

Evaluation

The talk reports measured business impacts for deployed internal agents and frames evaluation as choosing tasks that match model capability, instrumenting workflow outputs, and preserving human review where correctness matters. The lead agent is measured through saved manual work; the abuse agent is measured by time per case; the data analyst agent is validated through real business questions, including the deployments-per-year statistic used in the talk.

Metrics: Hundreds of days saved by lead processing · 59% reduction in anti-abuse time per case · Thousands of abuse reports per week handled by intake · 400 million deployments per year as a data-agent researched fact · Human review of lead emails and abuse recommendations · Quality of data answers returned to Slack with readable summaries and graphics

5 supporting quotes
“In our case, this actually so it has saved literally hundreds of of days. Um there was a press article on Business Insider that said we had 10 people doing this work and we fired nine.”transcript, stated
“since we introduced this, we got about a 59% reduction in in time per case.”transcript, stated
“large scale reporters actually have an API and and so we actually getting thousands and thousands of reports per week.”transcript, stated
“this uh 400 million employments per year stat. I actually researched this with this agent”transcript, stated
“So we actually do not let this agent just run wild but but you can just imagine the difference of like as the human operator seeing everything you would have researched already in a list and then making a quick decision how much faster that is.”transcript, stated

Outcomes

The case describes internal production agents at Vercel: a 400-million-deployments-per-year platform, thousands of abuse reports per week, lead work taking about 15 minutes per submission, hundreds of days saved by the lead agent, and a 59% reduction in anti-abuse time per case. The data agent's output was used to research the 400-million-deployments statistic cited in the talk.

6 supporting quotes
“we went department by department and just basically asked people exactly this question”transcript, stated
“In our case, this actually so it has saved literally hundreds of of days. Um there was a press article on Business Insider that said we had 10 people doing this work and we fired nine.”transcript, stated
“since we introduced this, we got about a 59% reduction in in time per case.”transcript, stated
“It executes the query um and then comes back summarizing the result in a human readable format. Does graphics etc.”transcript, stated
“this?" Very cool. Cool. And again, um we have credible information. Um we have this one open source as well. So, versell.comoss-data-analyst has the open source project. Um, once again, this is not an agent as a service business, but I think it's a great reference architecture for how to build this”transcript, stated
“behavior of the model to fill these things out and like more concretely you know this new kind of software is really automation of workflows that were previously non-automatable right again the same point and and like I mean workflows here in this like practical way sometimes people have definitions”transcript, stated