Knowledge Agent Template: AI-агенты с файловым поиском без эмбеддингов
📂 Исходный код на GitHubШаблон AI-агента на Vercel SDK с файловым поиском вместо эмбеддингов. Боты для GitHub и Discord, админ-панель, AI-агент для операционных вопросов, разделяемый пул песочниц и умная маршрутизация запросов по сложности.
Knowledge Agent Template — открытый шаблон от Vercel Labs для построения AI-агентов, которые ищут информацию через файловую систему вместо векторных баз данных. Никаких эмбеддингов, чанков и сложных пайплайнов — агент использует grep, find и cat внутри изолированных песочниц. Поддерживает GitHub-репозитории, YouTube-транскрипты и произвольные API как источники знаний. Деплоится как чат-приложение, GitHub-бот, Discord-бот или всё сразу.
Ключевая идея
Вместо привычного RAG-пайплайна (чтобы найти ответ, нужно нарезать документы на чанки, сгенерировать эмбеддинги, сохранить в векторную БД и потом искать ближайшие соседи) Knowledge Agent Template использует прямой файловый поиск. Агент запускает знакомые каждому разработчику команды — grep для поиска, find для навигации, cat для чтения — внутри изолированной Vercel Sandbox с клоном репозитория-снапшота.
Результаты поиска детерминированы, объяснимы и мгновенны. Инфраструктура — ноль: не нужна векторная БД, не нужен пайплайн чанкинга, не нужна модель эмбеддингов.
Возможности
Файловый поиск без эмбеддингов. Агент ищет напрямую в файлах через bash-команды. Детерминированный результат, никаких галлюцинаций векторного поиска.
Мультиплатформенные боты. Один агент — везде: веб-чат, GitHub Issues, Discord. Скоро Slack и Linear. Новые платформы добавляются одним адаптером через Chat SDK.
Встроенная админ-панель. Статистика использования, логи ошибок, управление пользователями, конфигурация источников и ручной запуск синхронизации — всё из коробки.
AI-админ-агент. Можно спросить у приложения о нём самом: «Какие ошибки были за последние 24 часа?», «Покажи расход токенов по моделям», «Какие эндпоинты самые медленные?». Админ-агент имеет доступ к инструментам query_stats, query_errors, run_sql, chart.
Умная маршрутизация по сложности. Каждый входящий запрос классифицируется по сложности и направляется к подходящей модели: простые вопросы — к быстрым и дешёвым, сложные — к мощным. Оптимизация затрат без ручных правил.
Визуализация работы агента. Чат-интерфейс показывает в реальном времени, какие файлы читает агент, какие команды выполняет и сколько времени занимает каждый шаг.
Шеринг диалогов. Любой диалог можно расшарить одной кнопкой — генерируется публичная ссылка с автором, заголовком и полной историей обмена.
Пул песочниц. Песочницы разделяются между пользователями и диалогами. При старте чата агент подключается к уже запущенной песочнице — запуск менее 100 мс. Если свободных нет, новая поднимается из пребилженного снапшота за 1-3 секунды. Песочницы read-only с блокировкой опасных команд.
Архитектура
Три слоя:
Ваше приложение (Discord/ GitHub/ веб-чат)
│
▼
@savoir/sdk ← AI SDK-совместимые инструменты (bash, bash_batch)
│
▼
apps/app (Nuxt) ← Песочницы, синхронизация контента, Vercel Workflows
│
┌─────┴─────┐
▼ ▼
Vercel Sandbox GitHub Snapshot Repo
Контент из источников (GitHub, YouTube) синхронизируется в snapshot-репозиторий через Vercel Workflow. При запросе API поднимает или переиспользует песочницу с клонированным репозиторием. SDK-инструменты выполняют grep/find/cat — результат возвращается модели.
Пакеты
| Пакет | Описание |
|---|---|
@savoir/sdk |
AI SDK-совместимые инструменты для агентов |
@savoir/agent |
Ядро агента: роутер, промпты, инструменты, типы |
apps/app |
Nuxt-приложение: чат-UI, API, боты |
Быстрый старт
Установка через Bun:
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
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,
maxSteps: 10,
prompt: 'How do I configure authentication?',
})
Обязательные переменные окружения: BETTER_AUTH_SECRET, GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET. Опционально — AI_GATEWAY_API_KEY для локальной разработки и NUXT_GITHUB_SNAPSHOT_REPO для песочниц.
Деплой на Vercel — в один клик через кнопку Deploy в README.
Кастомизация
Шаблон рассчитан на форк и доработку под себя. Доступны:
- Переименование инстанса (имя, иконка, описание)
- Добавление источников контента (GitHub-репозитории, YouTube-каналы, произвольные API)
- Создание кастомных AI-инструментов
- Добавление ботов-адаптеров (Slack, Linear)
- Кастомизация промптов и темизация UI
В проекте есть локальные навыки в .agents/skills/ (add-tool, add-source, add-bot-adapter, rename-project) — кастомизацию можно делегировать AI-агенту.
Боты
Два встроенных бота на базе Vercel Chat SDK:
- GitHub Bot — отвечает на упоминания в issues и PR через GitHub App
- Discord Bot — отвечает на упоминания и продолжает диалоги в тредах
Оба используют тот же AI-агент и базу знаний, что и веб-чат.
Технологический стек
Nuxt, Nuxt UI, NuxtHub (SQLite, KV, blob storage), Vercel AI SDK, Vercel Sandbox, Vercel Workflow, Better Auth, Drizzle ORM, Vercel Chat SDK. Языки: TypeScript (55%), Vue (45%). Лицензия MIT.