Vercel Knowledge Agent Template 深度解析:无需向量数据库的文件系统 AI Agent
Vercel Labs 开源了一套颠覆性的 AI Agent 模板——不用向量数据库、不用 Embedding,纯靠文件系统操作(grep、find、cat)构建知识型 Agent。这是对传统 RAG 架构的一次大胆挑战。
项目概览
Knowledge Agent Template 是 Vercel Labs 开源的文件系统与知识库 AI Agent 模板,核心理念是:
- 零向量数据库 —— 无需 Embedding 模型、无需分块、无需向量存储
- 纯文件系统搜索 —— 使用
grep、find、cat在隔离沙盒中搜索知识 - 多平台部署 —— 一套代码,同时支持 Web 聊天、GitHub Bot、Discord Bot
- 实时可观测 —— 所有操作可视化,没有黑盒
GitHub: https://github.com/vercel-labs/knowledge-agent-template
核心创新:告别 RAG,回归文件系统
传统 RAG 的问题
| 传统 RAG | Knowledge Agent |
|---|---|
| 文本分块 + Embedding | 原始文件直接存储 |
| 向量数据库检索 | grep / find / cat 搜索 |
| 近似匹配,结果不可解释 | 精确匹配,结果可验证 |
| 需要维护 Embedding 流水线 | 零基础设施开销 |
| 更新知识需重新 Embedding | 文件同步即可 |
文件系统搜索的优势
Agent 查询: "如何配置认证?"
传统方式:
1. 查询向量化 → 2. 向量检索 → 3. 返回近似文本块
Knowledge Agent:
1. grep -r "配置.*认证" /docs
2. cat 找到的文件
3. 返回精确内容 + 文件路径
结果:确定性、可解释、即时响应。
系统架构
┌─────────────────────────────────────────────────────────────┐
│ Your AI Application │
│ (Discord bot / GitHub bot / Chat) │
└─────────────────────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ @savoir/sdk │
│ AI SDK 兼容工具 (bash, bash_batch) │
└─────────────────────────────┬───────────────────────────────┘
│ API 调用
▼
┌─────────────────────────────────────────────────────────────┐
│ apps/app │
│ (Unified Nuxt App) │
│ ┌────────────┐ ┌────────────┐ ┌─────────────────────┐ │
│ │ Sandbox │ │ Content │ │ Vercel Workflows │ │
│ │ Manager │ │ Sync │ │ (scheduled sync) │ │
│ └─────┬──────┘ └─────┬──────┘ └─────────────────────┘ │
└────────┼───────────────┼────────────────────────────────────┘
│ │
▼ ▼
┌────────────┐ ┌────────────┐
│ Vercel │ │ GitHub │
│ Sandbox │◄──│ Snapshot │
│ │ │ Repo │
└────────────┘ └────────────┘
核心组件
| 包 | 职责 |
|---|---|
@savoir/sdk |
AI SDK 兼容工具封装(bash、bash_batch) |
@savoir/agent |
Agent 核心:路由、提示词、工具、类型 |
apps/app |
统一 Nuxt 应用(UI + API + Bot 集成) |
关键特性详解
1. 智能复杂度路由
系统根据问题复杂度自动选择模型:
用户提问
│
▼
┌─────────────┐
│ 复杂度分类器 │ trivial → fast/cheap model
│ │ simple → standard model
│ │ complex → powerful model
└─────────────┘
成本优化自动化,无需手动维护规则。
2. 共享沙盒池
- 池化设计:沙盒在多个用户和会话间共享
- 快速启动:已有沙盒直接连接(<100ms)
- 快照恢复:无可用沙盒时从快照启动(1-3s)
- 只读安全:危险命令被屏蔽,内容只读
3. 多平台 Bot 适配
基于 Chat SDK 的插件化架构:
// 添加新平台只需一个适配器文件
export const slackAdapter: BotAdapter = {
// 处理 Slack 消息
// 转换为统一格式
// 调用 Agent
// 返回响应
}
已支持:Web Chat、GitHub Issues、Discord
即将支持:Slack、Linear
4. AI 驱动的 Admin Agent
向你的应用询问运营问题:
- “过去 24 小时发生了什么错误?”
- “哪个模型用的 token 最多?”
- “最慢的端点是哪个?”
Admin Agent 内置工具:query_stats、query_errors、run_sql、chart
内容源(Sources)
支持多种知识源,统一汇聚为文件:
| 源类型 | 说明 |
|---|---|
| GitHub | 拉取仓库 Markdown 文档 |
| YouTube | 获取频道视频转录文本 |
| 自定义 | 任何能输出文件的源(RSS、API、Slack 导出等) |
配置示例:
// GitHub 源
{
type: 'github',
repo: 'vercel/next.js',
branch: 'main',
contentPath: 'docs',
readmeOnly: false
}
// YouTube 源
{
type: 'youtube',
channelId: 'UC_x5XG1OV2P6uZZ5FSM9Ttw',
maxVideos: 50
}
快速开始
使用 SDK
import { generateText } from 'ai'
import { createSavoir } from '@savoir/sdk'
const savoir = createSavoir({
apiUrl: process.env.SAVOIR_API_URL!,
apiKey: process.env.SAVOIR_API_KEY,
})
const { text } = await generateText({
model: yourModel,
tools: savoir.tools, // bash 和 bash_batch 工具
maxSteps: 10,
prompt: '如何配置认证?',
})
部署到 Vercel
本地开发
git clone https://github.com/vercel-labs/knowledge-agent-template.git
cd knowledge-agent-template
bun install
cp apps/app/.env.example apps/app/.env
# 配置环境变量
bun run dev
AI 辅助定制
项目内置 Agent Skills,可用 Cursor / Claude Code 自动化定制:
| Skill | 用途 |
|---|---|
add-tool.md |
添加新的 AI SDK 工具 |
add-source.md |
添加知识源 |
add-bot-adapter.md |
添加新平台 Bot 适配器 |
rename-project.md |
重命名整个项目 |
使用方式:告诉你的 AI 助手 “Follow the add-bot-adapter skill to add Slack support”
适用场景
✅ 技术文档问答 — 比传统 RAG 更精确的代码搜索
✅ 企业内部知识库 — 同步 Confluence、Notion、GitHub
✅ 开源项目助手 — 为项目提供 AI 支持(如 Next.js 官方文档助手)
✅ 视频内容搜索 — YouTube 频道转录后全文检索
总结
Knowledge Agent Template 代表了 AI Agent 架构的一种新思路:
- 简化基础设施 — 无需向量数据库,降低运维复杂度
- 提升可解释性 — 文件系统操作完全透明
- 降低延迟 — 本地搜索比向量检索更快
- 易于扩展 — 任何能输出文件的源都能接入
这是对 “一切问题都用 Embedding 解决” 这一惯性思维的有力挑战。对于文档类、代码类知识库,文件系统搜索可能是更简单、更有效的方案。
参考项目: https://github.com/vercel-labs/knowledge-agent-template