科学工具
科学工具让世界更美好
让世界更美好

基于Next.js、AI SDK和Workflow DevKit构建的线索鉴定与人工审核代理工具 Lead Agent基于Next.js、AI SDK和Workflow DevKit构建的线索鉴定与人工审核代理工具 Lead Agent

Lead Agent 是一个智能的入站潜在客户资格审查和研究代理,基于Next.js、AI SDK和Workflow DevKit构建。当用户通过销售表单提交潜在客户信息后,能自动启动一个持久化的工作流,利用深度研究代理进行全面背景调查,通过AI SDK的generateObject功能对潜在客户进行智能分类(如合格、跟进、支持等),最后生成个性化的回复邮件。Lead Agent 集成了人工参与环节,通过Slack发送生成的邮件供人工审批,确保外发沟通的准确性和合规性。Lead Agent 允许用户自定义资格分类、调整AI提示词、扩展代理工具和工作流步骤,以适应不同组织的具体需求。

Lead Agent的核心是通过表单收集销售线索,触发后续的资格审核流程与深度研究,同时接入Slack实现人工反馈,具体流程如下:

1、表单提交后立即向用户返回成功响应,避免用户等待

2、借助Workflow DevKit启动持久化的后台任务,确保流程不中断

3、深度研究代理会对线索展开全面调研,挖掘关键信息

4、通过generateObject功能,结合线索数据与研究报告对线索分类

5、自动生成个性化跟进邮件

6、将邮件发送至Slack等待人工审批,保障沟通准确性

7、接收Slack的Webhook事件,根据审批结果决定是否发送邮件

Lead Agent的技术选型围绕高效开发与稳定运行展开,各组件分工明确:

框架:采用Next.js 16,提供服务端渲染与路由管理能力

持久化执行:依赖Workflow DevKit,实现后台任务的可靠运行

AI能力:集成Vercel AI SDK与AI Gateway,支撑研究、分类、邮件生成等AI任务

人工交互:通过Slack Bolt与Vercel Slack Bolt Adapter,搭建Slack沟通通道

网络搜索:接入Exa.ai,为线索研究提供外部信息支持

Lead Agent 安装部署

安装环境要求

• 安装Node.js 20及以上版本

• 选择pnpm(推荐)或npm作为包管理工具

• 准备包含机器人令牌与签名密钥的Slack工作区,可参考Vercel Slack代理模板文档创建Slack应用,应用的权限与配置可通过根目录下的manifest.json文件设置,创建时将该文件内容粘贴到Slack控制台即可;同时需将交互与事件订阅的请求URL更新为生产环境域名

• 若未设置Slack环境变量,应用仍能运行但Slack机器人功能会禁用

• 准备Vercel AI Gateway API密钥与Exa API密钥

安装

1、克隆仓库并进入项目目录:

git clone https://github.com/vercel-labs/lead-agent.git
cd lead-agent

2、安装依赖:

pnpm install

3、配置环境变量:

先复制示例文件生成环境变量配置文件:

cp .env.example .env.local

.env.local中配置以下变量:

AI_GATEWAY_API_KEY:Vercel AI Gateway的API密钥

SLACK_BOT_TOKENSLACK_SIGNING_SECRETSLACK_CHANNEL_ID:Slack机器人相关配置

EXA_API_KEY:Exa.ai的API密钥

4、启动开发服务器:

pnpm dev

5、打开http://localhost:3000,即可看到应用界面并提交测试线索

基础定制操作

• 仓库中包含多个空函数作为占位符,需在lib/services.ts中完善这些函数才能充分使用模板,比如在queryKnowledgeBase中添加自定义知识库搜索逻辑

• 根据业务需求调整提示词(Prompt)内容

高级操作

1、线索分类调整:在lib/types.tsqualificationCategorySchema中添加新的分类类别

2、AI调用配置修改:在lib/services.ts中调整所有AI调用的提示词与参数

3、代理功能优化:在lib/services.ts中调整参数以优化代理性能,或为代理添加新工具

4、服务函数扩展:若有额外需求,可在lib/services.ts中新增服务函数

5、工作流扩展:参考Vercel Workflow文档为现有工作流添加新步骤,或为其他资格审核流程、外展流程创建新工作流

6、Slack消息定制:Slack消息通过Slack的Block Kit定义,可在lib/slack.ts中编辑消息样式与内容