spinny:~/writing $ less agentic-infrastructure-stack.md
12Мы часто говорили об агентных фреймворках. LangGraph, CrewAI, AutoGen, различные SDK, цикл, вызов инструментов, память, планировщик, критик, супервизор. Все полезные слова, ради бога. Но чем больше я смотрю на реально используемые агенты, тем больше мне кажется, что самое интересное переместилось ниже уровня фреймворка.34Вопрос уже не просто в том: какую библиотеку мне использовать, чтобы заставить думать пошаговую модель?56Реальный вопрос заключается в следующем: где будет жить этот агент, когда он перестанет быть демо?78Потому что серьезный агент — это не функция, которая вызывает модель и возвращает текст. Это небольшая распределенная система. Он должен читать контекст, использовать инструменты, выполнять код, трогать файлы, запоминать решения, спрашивать разрешение, хорошо проваливаться, перезагружаться, оставлять логи, не сжигать бюджет и не превращаться в бульдозер внутри производственного репозитория.910Каркас – это руль. Инфраструктура — это дорога, тормоза, гараж, страховка и человек, который знает, где ключи.1112## Потому что сейчас об этом много говорят1314В 2023 и 2024 годах разговор был очень сосредоточен на моделях. Какой LLM? Сколько контекста? Сколько это стоит? Насколько он хорош в программировании?1516В 2025 и 2026 годах разговор сместился. Модели достаточно хороши, чтобы выполнять реальную работу, но именно поэтому становятся видны скучные детали: время выполнения, безопасность, соединители, идентичность, наблюдаемость, выполнение кода, развертывание, откат.1718Это естественный переход от магии к инженерии.1920Когда агенту просто нужно сгенерировать ответ, достаточно чата. Когда вам нужно открыть запрос на включение, запросить базу данных, вызвать CRM, начать работу, перемещаться по сайту, прочитать Slack, скомпилировать код и обновить документ, вам нужна операционная система.2122Не в буквальном смысле. В организационном смысле.2324## Первая часть: среда выполнения, в которой агент может работать долго2526Агент часто работает поэтапно. Посмотрите на состояние, выберите действие, используйте инструмент, наблюдайте за результатом, обновите план, повторите.2728Если этот цикл существует внутри одного HTTP-запроса, у вас сразу возникает проблема. Некоторые действия выполняются медленно. Некоторые ждут вмешательства человека. Некоторые терпят неудачу, и их нужно попробовать еще раз. Некоторые должны пережить развертывание или тайм-аут.2930Именно здесь в игру вступают устойчивые рабочие процессы, очереди, фоны заданий и конечные автоматы. Они не гламурны, но они представляют собой разницу между агентом, который на демо-версии кажется умным, и тем, кого можно оставить работать, пока вы идете за кофе.3132По моему мнению, среда выполнения агента должна отвечать на очень конкретные вопросы:3334- где мне сохранить состояние между одним шагом и другим?35- что произойдет, если процесс завершится на полпути?36- могу ли я сделать паузу и попросить одобрения?37- могу ли я переиграть пробежку, чтобы понять, почему он сделал такой выбор?38- могу ли я ограничить продолжительность, память, инструменты и стоимость?3940Vercel активно продвигается в этом направлении, предлагая AI SDK, функции, рабочие процессы и инструменты для создания агентов в веб-приложениях. Но дело не только в Верселе. Дело в том, что агенту нужен оперативный дом, а не отдельная конечная точка.4142##Вторая часть: песочница, ведь агент должен иметь возможность испачкаться, не сломавшись4344Как только агент пишет код или выполняет команды, необходима песочница.4546Вроде техническое слово, но идея бытовая: ты даешь ему верстак. Он может открывать файлы, устанавливать зависимости, запускать тесты, проводить эксперименты, генерировать выходные данные. Если он ошибется, вы возместите ущерб. Если это работает, продвигайте результат.4748Агентская песочница должна иметь некоторые свойства:4950- изолированная файловая система;51- Ограничения по процессору, памяти и времени;52- управляемая сеть;53- секреты монтируются только при необходимости;54- полные журналы;55- возможность экспорта артефактов;56- чистый сброс между запусками, если это необходимо.5758Vercel Sandbox идет именно в этом направлении: изолированные среды для запуска кода, установки зависимостей, работы с файлами и создания артефактов без запуска всего в основной среде выполнения приложения.5960Эта вещь важнее, чем кажется. Многие агентные прототипы переходят непосредственно из модели в реальную систему. Модель может вызвать инструмент. Инструменты могут делать многое. Все это кажется элегантным до первой неправильной команды, первой зависимости, установленной не в том месте, и первого токена, попадающего в журнал.6162Песочница — это взрослый способ сказать: давай, но здесь.6364## Третья часть: MCP и проблема с разъемом6566Протокол контекста модели стал одной из самых интересных частей экосистемы, поскольку он пытается стандартизировать то, что в противном случае быстро становится неуправляемым: то, как модель обнаруживает и использует внешние инструменты.6768Без стандарта каждая интеграция представляет собой маленький остров. Коннектор для GitHub сделан так, один для Slack — другой, один для баз данных с разной семантикой, один для автоматизации браузера, который выглядит ни на что.6970MCP предлагает общий язык между клиентом и сервером: инструменты, ресурсы, подсказки, авторизация, транспорт, обнаружение. Он не решает волшебным образом проблемы управления и безопасности, но дает грамматику.7172И грамматика имеет значение. Когда агент может подключиться ко многим инструментам, вопрос не просто в том, «сможет ли он это сделать?». Проблема в том, «понимает ли он, что он может сделать, в каких пределах, от имени кого и какой след оставить?».7374Для меня MCP — это не шумиха, потому что он «вызывает инструменты». Мы уже это сделали. Это хайп, потому что он смещает центр тяжести с единой интеграции на оперативный каталог инструментов.7576В хорошей агентной архитектуре MCP становится своего рода патч-панелью:7778- GitHub для кода и проблем;79- Slack для разговорного контекста;80- Linear или Jira для плановых работ;81- доступная только для чтения база данных для аналитики;82- браузер или парсер, контролируемый для внешних сайтов;83- хранение документов;84- изолированные среды выполнения;85- внутренние системы подвергаются строгим разрешениям.8687Сложность заключается в том, что каталог инструментов без политики — это всего лишь более элегантный способ создать хаос.8889## Четвертая часть: личность и разрешения9091Это та область, на которую многие демо-версии закрывают глаза.9293Агент действует от чьего-либо имени. Поэтому должно быть ясно, кто является субъектом действия.9495Используются ли права пользователя? Из сервисного аккаунта? Из рабочего места? У вас есть временный или постоянный доступ? Вы можете прочитать все или только некоторые ресурсы? Можешь написать? Можете ли вы отменить? Может ли он писать реальным людям?9697Если вы плохо ответите на эти вопросы, рано или поздно у вас появится помощник с ключами от дома и без памяти о том, кто ему их дал.9899Эмпирическое правило, которое мне нравится, заключается в следующем: агент должен быть способен делать меньше, чем человек, но не больше, чем человек. А когда ему нужно сделать что-то более рискованное, он должен остановиться и спросить.100101Это означает OAuth, область действия токена, управление секретами, журнал аудита, политику инструментов, список разрешений, этап утверждения. Не очень романтическая вещь. Необходимые вещи.102103##Пятый кусок: память и контекст, но без накопления мусора104105Агентам нужна память, но память опасна, когда становится чердаком.106107Существует как минимум три типа памяти:108109- запустить память: что произошло в этом исполнении;110- память проекта: условности, решения, ограничения;111- личная или командная память: предпочтения, тон, ритуалы, процессы.112113Поместить все в командную строку — это ярлык. Это работает до тех пор, пока не перестанет работать. О полезной памяти нужно заботиться: индексировать, обновлять, просрочивать, проверять, делать доступной для цитирования.114115Агент, который плохо помнит, хуже агента, который не помнит. Потому что он говорит уверенно.116117Поэтому инфраструктура должна включать поиск, файлы инструкций, базу знаний, встраивание при необходимости, а также очистку. Нужна культура памяти: что входит, кто это одобряет, когда приходит в упадок, как это исправить.118119## Шестая часть: наблюдаемость, оценка и воспроизведение120121Если агент допускает ошибку, журнала «вызванная модель» недостаточно.122123Вы хотите увидеть маршрут. Какой контекст он получил? Какие инструменты были доступны? Какой инструмент вы выбрали? С какими аргументами? Какой ответ вы получили? Сколько это стоило? Где оно застряло? Одобрил ли человек что-нибудь? Является ли ошибка модели, инструмента, подсказки, данных или разрешения?124125Здесь агенты больше похожи на распределенные системы, чем на чат-ботов.126127Вам нужны читаемые трассировки, а не просто текстовые журналы. Вам нужно иметь возможность воспроизвести пробежку. Необходимо сравнить две версии одного и того же агента на известных задачах. Нам нужно измерить регрессию: он не только «отвечает лучше», но и «закрывает нужный тикет, не затрагивая нежелательные файлы».128129Агентские оценки сложнее текстовых, поскольку они включают в себя действия. Недостаточно сравнить ожидаемую строку. Вы должны учитывать последовательность действий, побочные эффекты, качество артефакта, время, стоимость, количество человеческих вмешательств.130131Самое смешное, что мы всегда возвращаемся к этому: разработке программного обеспечения. Тесты, окружения, трассировки, откаты. За исключением того, что код теперь тоже решает, что делать дальше.132133## Часть седьмая: человеческие интерфейсы134135Агенту не обязательно просто жить в чате.136137Некоторым агентам нужна доска. Другие страница со статусом и журналом. Другие кнопки «одобрить». Больше встроенных комментариев. Still others of a CLI.138139Пользовательский интерфейс меняет поведение. Если единственный способ контролировать агента — написать длинное сообщение, пользователь будет давать агенту расплывчатые инструкции. Однако если он видит план, различия, источники, риски и следующие действия, он может вмешаться.140141Достойная агентская инфраструктура включает в себя поверхности управления:142143- current status;144- редактируемый план;145- произведенные артефакты;146- разница;147- запросы на одобрение;148- хронология;149- кнопка остановки;150- кнопка повтора;151- видимые разрешения.152153Это кажется тривиальным, но это не так. Разница между «жутким ИИ» и «надежным помощником» зачастую заключается лишь в том, что последний показывает вам, где у него руки.154155## Ментальный стек156157Если бы я нарисовал это сегодня, минимальный стек агентов был бы таким:1581591. Модель: рассуждения, генерация, вызов инструментов, при необходимости мультимодальная.1602. Оркестрация: цикл, шаг, планировщик, политика, участие человека в цикле.1613. Надежная среда выполнения: рабочий процесс, очередь, повтор, пауза, возобновление.1624. Песочница: выполнение кода, изолированная файловая система, ограничения, артефакты.1635. Уровень инструментов: MCP, внутренний API, браузер, база данных, репозиторий.1646. Уровень идентификации: OAuth, область действия, секрет, аудит, политика.1657. Уровень памяти: контекст проекта, извлечение, инструкции, срок действия.1668. Наблюдаемость: отслеживание, воспроизведение, оценка, метрики стоимости и качества.1679. Поверхность продукта: чат, когда достаточно, информационная панель, когда это необходимо, просмотр, когда это важно.168169Агентская структура в основном охватывает пункт 2 и часть пункта 1. Остальное — настоящая работа.170171## Что бы я сделал на практике172173Если бы команда сказала мне: «Нам нужны агенты в производстве», я бы не стал начинать с десяти агентов.174175Я бы начал с небольшого, повторяющегося и наблюдаемого рабочего процесса. Например: открывать запросы на обслуживание, обновлять документацию по закрытым проблемам, готовить еженедельный обзор, сортировать повторяющиеся ошибки, создавать тесты для затронутых файлов.176177Тогда я бы установил очень четкие ограничения:178179- никакой записи без веток или песочницы;180- никаких секретов в подсказке;181- инструменты в белом списке;182- человеческое одобрение внешних действий;183- обязательная регистрация и трассировка;184- бюджет на прогон;185- выход всегда доступен для проверки.186187Только тогда я бы расширился.188189Агенты не терпят неудачу только потому, что модели ошибаются. Они терпят неудачу, потому что мы помещаем их в неопределенную среду, с запутанными разрешениями и театральными ожиданиями.190191## Мое чтение192193Агентская инфраструктура в лучшем смысле скучна.194195Это не та часть, которая заставляет вас аплодировать в демо. Это та часть, которая позволяет вам использовать демо-версию в понедельник утром с реальными людьми, реальными данными и реальными последствиями.196197Будущее агентов не будет решаться только тем, у кого лучший образец для подражания. Это будет решать тот, кто построит лучшее место, где он сможет работать: изолированный, когда он экспериментирует, подключенный, когда это необходимо, всегда наблюдаемый, уполномоченный критериями и достаточно скромный, чтобы остановиться, когда он не знает.198199Именно здесь агенты перестают быть игрушкой и становятся инфраструктурой.200201## Источники202203- [Vercel: Как создавать агенты ИИ с помощью Vercel и AI SDK] (https://vercel.com/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk)204- [Документы Vercel: Песочница](https://vercel.com/docs/sandbox)205- [Документация Vercel: Работа с песочницей](https://vercel.com/docs/sandbox/working-with-sandbox)206- [Документы Vercel: MCP](https://vercel.com/docs/mcp)207- [Протокол контекста модели: спецификация](https://modelcontextprotocol.io/specification)208- [OpenAI: Новые инструменты для создания агентов](https://openai.com/index/new-tools-for-building-agents/)209- [Блог Cloudflare: Агенты в Cloudflare](https://blog.cloudflare.com/agents-on-cloudflare/)210
:Агентская инфраструктура и новый бэкэндlines 1-210 (END) — press q to close