Skip to content

Compare versions

From:To:
+3~12
# Vercel AI SDK
Vercel AI SDK

Что это. Библиотека для TypeScript, через которую приложения говорят с языковыми моделями: потоковые ответы, инструменты, агенты. Сам проект описывает себя так: «The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and agents».

Возраст. Репозиторий на GitHub заведён 23 мая 2023 года. Проект ведёт компания Vercel.

Размер. 26 500 звёзд, 5 100 форков на сентябрь 2026.

## Привычки, описанные им самимAdded
Привычки, описанные им самим

Правила лежат в CONTRIBUTING.md, подробности — в каталоге contributing/. Главное проект говорит в первых строках: его сопровождение всё больше автоматизируется, и от этого меняется само понятие полезного вклада.

Хороший баг-репорт ценится выше готового PR:

Because of this, the most helpful contribution is often a high-quality issue rather than a complete pull request. Clear bug reports, minimal reproductions, failing tests, precise documentation feedback, and thoughtful feature requests help us understand the problem and make better fixes for everyone.

Поэтому самый полезный вклад — часто не готовый pull request, а качественная задача. Понятные баг-репорты, минимальные воспроизведения, падающие тесты, точные замечания по документации и продуманные запросы возможностей помогают понять проблему и сделать исправление лучше для всех.

Автора задачи не забывают: если из неё вырастет исправление, его обещают указать соавтором — «we will credit the issue author with co-authorship where appropriate».

Проект понимает, что это непривычно, и просит говорить, если мешает:

We know this transition may feel different from how open source contribution has traditionally worked… If this process creates friction or frustration, please open a feedback issue and tell us what is not working.

Мы понимаем, что такой переход отличается от привычного открытого вклада… Если процесс создаёт трение или раздражение, откройте задачу типа feedback и расскажите, что не работает.

## Привычки, видные по перепискеMoved
Привычки, видные по переписке

Отвечает по существу и проектное решение согласовывает за один день — а выпускает его через десять месяцев. Между вопросом и ответом в #309 — два года и восемь дней.

Цена осторожности названа устройством: новый обратный вызов в библиотеке, на которую опираются десятки тысяч, — это изменение контракта, а не добавленная функция.

## Мелкие правила, по которым узнаётся свойAdded
Мелкие правила, по которым узнаётся свой

Формат коммитов не требуется, зато требуется подпись. CONTRIBUTING: «We don't require a specific commit message format, but please be descriptive» — и тут же «All commits must be signed». Заголовок PR при этом форматный: fix(package-name): description, feat(package-name): description, chore(package-name): description.

Changeset — всегда patch, и это не semver. Комментарий в .github/workflows/verify-changesets.yml объясняет:

vercel/ai uses https://github.com/changesets/changesets for versioning and changelogs, but is not following semantic versioning. Instead, it uses patch for both fixes and features. It uses minor for "marketing releases", accompanied by a blog post and migration guide.

Проект использует changesets для версий и changelog, но не следует семантическому версионированию. patch идёт и на исправления, и на новые возможности; minor — для «маркетинговых релизов» с постом в блоге и гайдом по миграции.

Отсюда жирное «Please do not use minor or major changesets» в CONTRIBUTING; CI проверяет это по меткам.

Инструменты: pnpm v11, Node v22.13, v24 или v26; lint-staged форматирует файлы при коммите. В именах никаких e, msg, cfg: contributing/naming-conventions.md требует «Avoid single-letter variables» — код читают и агенты.

Метки ставит бот по промпту из .github/tigent.yml: «when in doubt, add support». Файла CODEOWNERS нет.

## Чего ждать, если придёте со своей правкойAdded
Чего ждать, если придёте со своей правкой

Всё ниже — из CONTRIBUTING.md, шаблона PR и файлов contributing/ самого проекта.

Сначала задача, потом код:

Before investing in a full implementation for a bug fix, please consider opening or improving an issue first. Maintainers and automated workflows may prepare the final fix, and we will credit high-quality reports that lead to fixes.

Прежде чем вкладываться в полную реализацию исправления, сначала откройте или улучшите задачу. Итоговое исправление могут подготовить мейнтейнеры и автоматика, а качественные отчёты, приведшие к исправлению, будут отмечены.

Чеклист PR короткий, и его нельзя править: подписанные коммиты («PRs with unsigned commits cannot be merged»), тесты, документация, patch-changeset, самопроверка. Плюс раздел «End-to-End Verification» — как проверили вручную.

Пустые задачи закрыты: blank_issues_enabled: false, вопросы отправляют на форум community.vercel.com.

Новый провайдер — лучше своим пакетом. contributing/add-new-provider.md:

Every provider is welcome to create a 3rd party package. We are happy to link to it from our documentation. If you would prefer a 1st party @ai-sdk/<provider> package, please create an issue first to discuss.

Любой провайдер может сделать сторонний пакет — мы с радостью дадим на него ссылку в документации. Хотите пакет @ai-sdk/<provider> внутри проекта — сначала откройте задачу для обсуждения.

Релизы — дело мейнтейнеров: contributing/releases.md озаглавлен «for maintainers only». Бот changesets собирает PR «Version Packages», его слияние публикует пакеты в npm.

## Кто в кадреMoved
Кто в кадре

Люди, встреченные в наших разборах этого проекта. Черта называется только вместе с поступком — с датой и ссылкой. Ник — главный, имя — из профиля; нет имени в профиле — только ник.

lgrammel — Lars Grammel

Ведёт разработку SDK.

В #309, открытом два года:

  • 12.07.2024 — пришёл через год с ответом «the AI SDK functions support a abortSignal option» — верным и не про то, о чём спрашивали;
  • 17.09.2024 — на предложение xl0 ответил в тот же день: объяснил, почему предложенная форма плоха («because of typesafety»), и тут же предложил свою: «I would prefer something like onAbort — would that work for you?»;
  • 18.07.2025 — сам принёс PR #7394 с onAbort, закрыв и #309, и #6699.

Спроектировал решение за один день и выпускал его десять месяцев.

jvandenaardweg — Jordy van den Aardweg

10.07.2023 — #309: спросил не про удобство, а про деньги: «I want to know how many tokens are generated when the user cancels the stream». Задача прожила два года и восемь дней.

verrannt — Pascal Schröder

03.08.2024 — через три недели после ответа мейнтейнера переспросил: «It is not at all clear to me how I would go about implementing it». Переспрос, показавший, что ответили на соседний вопрос.

xl0 — Alexey Zaytsev

17.09.2024 — предложил конкретное устройство («abortSignal должен вызывать onFinish»). Предложение отклонили, но именно оно сдвинуло задачу с мёртвой точки.

Хор #309

Люди, приходившие по одному с одним и тем же за два года: lassegit (Lasse, 31.08.2023 — «I need a callback to be able to track token usage»), GorvGoyl (Gourav Goyal, 18.10.2023 — «what are some current workarounds till the team fixes the issue?»), yvngjordi (Jordan, 20.01.2024 — «guess Vercel SDK is just limited»), winddpan (12.03.2024 — «hope Vercel can solve it»), hassanbazzi (25.07.2023 — «this is very important»).

Двадцать четыре комментария, и почти каждый — про учёт расхода.

## Разборы, где встречаетсяChanged
Разборы, где встречается
  • «Два года, чтобы перестать печатать» — сколько токенов сгорело, когда пользователь нажал «стоп»: вопрос, проживший два года, и решение, спроектированное за день.

Карточка собрана 02.09.2026 из открытых источников: репозиторий, документация проекта, переписка в PR и задачах. Фотографий и личных данных здесь нет и не будет. Нашли неточность или хотите, чтобы вас убрали, — напишите, поправим без вопросов.