Agent-first язык программирования звучит как хорошая идея, да?
В конце концов, агентам не нужны фигурные скобки. Им не нужна красотаif,while,for,match,Result,try,await, naming conventions и вот этого всего, сделанного для нас - кожаных мешков.
Именно поэтомуZeroот Vercel Labs на первый взгляд выглядит как интересный эксперимент. Официальный сайт называет его языком для агентов, README говорит про "agent-first programming language", аавторский пост в Xобещает systems language, который быстрее, меньше и проще для агентов в использовании и дебаге.
Звучит почти убедительно.До тех пор, пока вы не открываете код.
Что такое Zero
Zero - экспериментальный systems language от Vercel Labs. Репозиторийvercel-labs/zeroна момент написания уже набрал тысячи звезд, релизы и стандартный для продуктов Vercel уровень упаковки: сайт, документация, примеры, CLI, бенчмарки и т.д, и т.п.
Официальный pitch такой:
- минималистичный и простой синтаксис, чтобы агент мог "выучить его на лету";
- стандартная библиотека вместо поиска зависимостей;
- structured tooling: diagnostics, graph facts, size reports, repair plans в машинно-читаемом виде;
- explicit effects: доступ к внешнему миру должен быть виден в сигнатуре;
- предсказуемая память, маленькие native binaries, меньше магии.
Если убрать маркетинг, идея нормальная. Даже хорошая.
Проблема в том, что почти каждый пункт уже существует где-то рядом: в Rust, Zig, TypeScript, Language Server Protocol, компиляторах с JSON output, статических анализаторах, линтерах, пакетных менеджерах и просто в нормальной инженерной дисциплине. Zero же пытается продать это как новые подходы в дизайне языка, приправленные синтаксисом а-ляret + 40 2, чтобы казаться более "агентским".
Agent-first learnability
Официальная формулировка: язык должен быть маленьким, регулярным, с небольшим количеством special cases, чтобы агент мог быстро научиться по примерам, документации и feedback от компилятора.
В теории - отлично. LLM действительно лучше работают с регулярными паттернами. Чем меньше синтаксических исключений, тем ниже вероятность, что модель начнет галлюцинировать JavaScript внутри Rust внутри YAML.
Но есть нюанс, который почему-то постоянно забывают в разговорах про "язык для AI": агент не появляется в вакууме. Он обучается на датасете.
TypeScript, Rust, Zig, Python, Go, C, C++ есть в training data в промышленных объемах. Там есть миллионы репозиториев, issues, PR, Stack Overflow, блогов, compiler errors, CI logs, cargo output, GitHub Actions, линтеров и гайдов на Хабр о том, как завести create-react-app. Данных по zero, извиняюсь за каламбур, - zero.
То есть "агент может выучить язык на лету" на практике означает: каждый раз кормить агенту документацию, примеры, skill-файлы и надеяться, что он не перепутает синтаксис Zero с любым похожим языком, который был у него в датасете. Это не learnability. Это context tax.
И пока я писал эту статью о синтаксисе Zero, его похожести на другие языки и той самой learnability случается следующее:
21 мая 2026 года в репозитории появляется коммит229331fe93119e481cd24fd75b3d67a9e2c1db84:
Сухая статистика: 711 файлов изменено, 6854 вставки, 8904 удаления. Мигрировали examples, fixtures, docs, skills и command contracts.
С одной стороны, да, синтаксис стал "регулярнее". С другой - он стал похож на... Lisp? Извиняюсь перед любителями Lisp на всякий случай.
И самое смешное: агентам не "не нужны if/while/for". Документация Zero спокойно оставляетif,else,while, rangefor,match,enum,choice,type,defer,owned
Да, теперь выглядит действительно "agents-first".
Standard library first
Zero говорит: "агентам не надо каждый раз выбирать dependency stack". Частые задачи должны жить в стандартной библиотеке, с документированными API и предсказуемым поведением. Это, без иронии, правильная цель.
Агенты действительно плохо выбирают зависимости. Они берут пакет с 80 звездочками, последним релизом в 2019 году, API из README, которого уже нет, и потом с уверенностью объясняют, что "ошибка, вероятно, связана с окружением. Пошарьте свой .env. Я разберусь".
Но standard-library-first - это не уникальная идея. Go живет на этом десятилетиями. Python со своим "batteries included", тоже пытался. Rust пошел в другую сторону, но компенсировал ecosystem + cargo +docs.rs. TypeScript вообще паразитирует на огромной JS-экосистеме.
У Zero пока есть набор модулей:std.mem,std.codec,std.parse,std.fs,std.io,std.json,std.env,std.time,std.rand,std.proc,std.crypto,std.net,std.http. На бумаге выглядит прилично. Но проблема в том, что агенту нужен не толькоstd.parse.isAsciiDigit, а знания вокруг: библиотеки, баги, паттерны, Stack Overflow, CI failures, странные edge cases и чужой production experience.
Без этого агент не "пишет на языке". Он решает синтаксическую головоломку с подсказками от компилятора.
Deterministic tooling
Несмотря на странную формулировку, тут Zero действительно выделяет хорошую идею.
Идея: человек читает сообщение, агент читает JSON. Компилятор не просто ругается, а дает структурированное описание проблемы и потенциальный план исправления.Это сильная часть Zero, но проблема в том, что для этого не нужен новый язык. Это уже есть в Rust! Cargo, rust-analyzer, clippy, rustfix, compiler suggestions - вся эта инфраструктура годами строилась именно вокруг машинно-читаемых сигналов. Да даже TypeScript имеет compiler API и language service. ESLint давно выдает machine-readable reports и autofix.
Zero делает правильную вещь, но делает ее в самом дорогом месте: на уровне нового языка, новой экосистемы, нового синтаксиса и новой привычки для всех.
Сравнение с TypeScript, Zig, Rust
Возьмем самый честный пример: функция возвращает 42, программа печатаетmath works.
Zero (новый row syntax)
TypeScript
TypeScript не systems language, он явно не agents-first, но у него есть то, что для агента пока важнее синтаксической "регулярности": гигантская обучающая база. Модель видела этот код миллионы раз. Она знает, как выглядитif, как выглядитprocess.stdout.write, как выглядят типы, ошибкиtsc, ESLint autofix, Vitest, package.json и Stack Overflow ответы из 2007 года, которые уже не работают, но все еще лежат в датасете как культурный слой.И самое интересное, что Zero, как язык, сразу сделанный для агентов даже не особо-то и компактнее. То есть вы вряд ли сэкономите много токенов при переезде на него с TS.Поехали сравнивать с более близкими экземплярами.
Если бы Zero был "Zig plus first-class JSON repair metadata for agents", разговор был бы интереснее. Но текущий row syntax выглядит не как следующий шаг после Zig, а как попытка доказать, что префиксные операторы - это точно нужно агентам.
Rust сложный.Давайте все, кто пытался его изучить, но так и не осилил, нажмут стрелочку вверх под этой статьей.Но Rust дает агенту сильные guard rails в виде типов, ownership,?,cargo check,rustc --error-format=json, rust-analyzer и огромной базы реального кода.
Да, агент будет спорить с borrow checker. Но это хотя бы будет спор с надежным механизмом, который уже проверен годами и тысячами разработчиков.
Если свести сравнение к тому, что реально важно агенту, получается не очень празднично для Zero:
TypeScript
Объем кода в датасетах
почти ноль
Structured diagnostics
через compiler/language service tooling
слабее, но язык простой для анализа
rustc --error-format=json, cargo, rust-analyzer, clippy
заявлено как центральная фича, но мало примеров
Явные эффекты
нет, в основном дисциплина и tooling
ошибки/allocators явнее, IO не capability-first
ошибки черезResult, ownership, но IO не capability-first
World,!,check, capability model
Читаемость(на случай если вы уперлись в лимиты агента)
высокая, если не смотреть на типы React
высокая для systems-разработчика
высокая после адаптации и стадии принятия borrow checker
спорная после row syntax
Но самый честный аргумент против Zero: агенты учатся на прошлом
Vercel говорит: язык должен быть learnable on demand.
Но LLM не учится как человек-разработчик, которому выдали tutorial. LLM продолжает предсказывать следующий токен на основе своего датасета. Если в прошлом нет языка, у модели нет "интуиции". Есть только prompt, docs и feedback loop.
Да, агент может читать документацию Zero. Да, можно положить в репозиторийAGENTS.md, skill-data и examples. Да, можно сделатьzero check --json,zero fix --plan --json,zero explain NAM003.
Но это означает, что лучший сценарий для Zero - не "агенты наконец получили свой язык". Лучший сценарий - "мы построили маленькую closed-loop среду, где агент может много раз ошибаться, компилятор его поправляет, а человек надеется, что итоговый diff имеет смысл".
Это не революция языка. Это REPL с autocomplete с ценой в ваших токенах.
Что говорят люди
Запуск в X был заметным.В агрегированном кластере Diggпо оригинальному посту Chris Tate указаны 1.2M views, сотни комментариев и почти идеально расколотый sentiment: 49.9% positive против 50.1% negative. Удивительно, что так много позитивных.
НаReddit в обсужденииr/WebAfterAIдискуссия была более инженерной. Один комментарий хорошо формулирует скепсис: effects flavor - интересно, но не объяснено, что именно здесь так хорошо для агентов, потому что похожие linter/checker workflows есть во многих языках.Но один комментарий хочу выделить отдельно, потому что это буквально та мысль, которая мучает меня и по сей день: почему это не middleware/readable layer поверх существующих языков?
То есть общественный консенсус примерно следующий: идея интересная, но все ждут, когда кто-то объяснит, зачем ради нее нужен новый язык, а не нормальные инструменты для старых.
Стоит проговорить, что вообще мне нравятся Vercel и их продукты, пока не нужно за них платить. Они сделали деплой пет-проектов очень простым и бесплатным, запустили классную инициативу с skills.sh,сделали шикарный cli agent-browser, но есть и очень спорные решения с их стороны, как например и это.Zero - хороший эксперимент и ненужный язык программирования.
Если язык “для агентов”, но отсутствует в датасетах агентов, он начинает с минуса.Если он “learnable on demand”, но синтаксис уже через несколько дней радикально меняется, будто у авторов нет четкого представления, что они хотят сделать.Если он “agent-first”, но его все равно должны ревьюить люди в какой-то момент, то human readability нельзя выбрасывать как необязательную роскошь.
Возможно, через год Zero превратится в очень умный compiler/tooling layer, который все будут цитировать как ранний пример agent-readable development environment. Возможно, Vercel найдет killer use-case. А возможно, Zero станет еще одним репозиторием, который люди будут открывать в 2030 году со словами: “О, помните, когда мы думали, что AI-агентам нужен свой язык программирования?”
Если вам понравилась статья, и вы все-таки хотите читать о реальнополезныхинструментах для агентской разработки, то приглашаю в свой телеграм канал:OpenKirill: AI Coding и другие приколы. Мы там разбираем тулинг, следим за новыми трендами в AI кодинге, и хорошо проводим время.