spinny:~/writing $ vim agentic-infrastructure-stack.md
1~2Мы часто говорили об агентных фреймворках. LangGraph, CrewAI, AutoGen, различные SDK, цикл, вызов инструментов, память, планировщик, критик, супервизор. Все полезные слова, ради бога. Но чем больше я смотрю на реально используемые агенты, тем больше мне кажется, что самое интересное переместилось ниже уровня фреймворка.3~4Вопрос уже не просто в том: какую библиотеку мне использовать, чтобы заставить думать пошаговую модель?5~6Реальный вопрос заключается в следующем: где будет жить этот агент, когда он перестанет быть демо?7~8Потому что серьезный агент — это не функция, которая вызывает модель и возвращает текст. Это небольшая распределенная система. Он должен читать контекст, использовать инструменты, выполнять код, трогать файлы, запоминать решения, спрашивать разрешение, хорошо проваливаться, перезагружаться, оставлять логи, не сжигать бюджет и не превращаться в бульдозер внутри производственного репозитория.9~10Каркас – это руль. Инфраструктура — это дорога, тормоза, гараж, страховка и человек, который знает, где ключи.11~12## Потому что сейчас об этом много говорят13~14В 2023 и 2024 годах разговор был очень сосредоточен на моделях. Какой LLM? Сколько контекста? Сколько это стоит? Насколько он хорош в программировании?15~16В 2025 и 2026 годах разговор сместился. Модели достаточно хороши, чтобы выполнять реальную работу, но именно поэтому становятся видны скучные детали: время выполнения, безопасность, соединители, идентичность, наблюдаемость, выполнение кода, развертывание, откат.17~18Это естественный переход от магии к инженерии.19~20Когда агенту просто нужно сгенерировать ответ, достаточно чата. Когда вам нужно открыть запрос на включение, запросить базу данных, вызвать CRM, начать работу, перемещаться по сайту, прочитать Slack, скомпилировать код и обновить документ, вам нужна операционная система.21~22Не в буквальном смысле. В организационном смысле.23~24## Первая часть: среда выполнения, в которой агент может работать долго25~26Агент часто работает поэтапно. Посмотрите на состояние, выберите действие, используйте инструмент, наблюдайте за результатом, обновите план, повторите.27~28Если этот цикл существует внутри одного HTTP-запроса, у вас сразу возникает проблема. Некоторые действия выполняются медленно. Некоторые ждут вмешательства человека. Некоторые терпят неудачу, и их нужно попробовать еще раз. Некоторые должны пережить развертывание или тайм-аут.29~30Именно здесь в игру вступают устойчивые рабочие процессы, очереди, фоны заданий и конечные автоматы. Они не гламурны, но они представляют собой разницу между агентом, который на демо-версии кажется умным, и тем, кого можно оставить работать, пока вы идете за кофе.31~32По моему мнению, среда выполнения агента должна отвечать на очень конкретные вопросы:33~34- где мне сохранить состояние между одним шагом и другим?35- что произойдет, если процесс завершится на полпути?36- могу ли я сделать паузу и попросить одобрения?37- могу ли я переиграть пробежку, чтобы понять, почему он сделал такой выбор?38- могу ли я ограничить продолжительность, память, инструменты и стоимость?39~40Vercel активно продвигается в этом направлении, предлагая AI SDK, функции, рабочие процессы и инструменты для создания агентов в веб-приложениях. Но дело не только в Верселе. Дело в том, что агенту нужен оперативный дом, а не отдельная конечная точка.41~42##Вторая часть: песочница, ведь агент должен иметь возможность испачкаться, не сломавшись43~44Как только агент пишет код или выполняет команды, необходима песочница.45~46Вроде техническое слово, но идея бытовая: ты даешь ему верстак. Он может открывать файлы, устанавливать зависимости, запускать тесты, проводить эксперименты, генерировать выходные данные. Если он ошибется, вы возместите ущерб. Если это работает, продвигайте результат.47~48Агентская песочница должна иметь некоторые свойства:49~50- изолированная файловая система;51- Ограничения по процессору, памяти и времени;52- управляемая сеть;53- секреты монтируются только при необходимости;54- полные журналы;55- возможность экспорта артефактов;56- чистый сброс между запусками, если это необходимо.57~58Vercel Sandbox идет именно в этом направлении: изолированные среды для запуска кода, установки зависимостей, работы с файлами и создания артефактов без запуска всего в основной среде выполнения приложения.59~60Эта вещь важнее, чем кажется. Многие агентные прототипы переходят непосредственно из модели в реальную систему. Модель может вызвать инструмент. Инструменты могут делать многое. Все это кажется элегантным до первой неправильной команды, первой зависимости, установленной не в том месте, и первого токена, попадающего в журнал.61~62Песочница — это взрослый способ сказать: давай, но здесь.63~64## Третья часть: MCP и проблема с разъемом65~66Протокол контекста модели стал одной из самых интересных частей экосистемы, поскольку он пытается стандартизировать то, что в противном случае быстро становится неуправляемым: то, как модель обнаруживает и использует внешние инструменты.67~68Без стандарта каждая интеграция представляет собой маленький остров. Коннектор для GitHub сделан так, один для Slack — другой, один для баз данных с разной семантикой, один для автоматизации браузера, который выглядит ни на что.69~70MCP предлагает общий язык между клиентом и сервером: инструменты, ресурсы, подсказки, авторизация, транспорт, обнаружение. Он не решает волшебным образом проблемы управления и безопасности, но дает грамматику.71~72И грамматика имеет значение. Когда агент может подключиться ко многим инструментам, вопрос не просто в том, «сможет ли он это сделать?». Проблема в том, «понимает ли он, что он может сделать, в каких пределах, от имени кого и какой след оставить?».73~74Для меня MCP — это не шумиха, потому что он «вызывает инструменты». Мы уже это сделали. Это хайп, потому что он смещает центр тяжести с единой интеграции на оперативный каталог инструментов.75~76В хорошей агентной архитектуре MCP становится своего рода патч-панелью:77~78- GitHub для кода и проблем;79- Slack для разговорного контекста;80- Linear или Jira для плановых работ;81- доступная только для чтения база данных для аналитики;82- браузер или парсер, контролируемый для внешних сайтов;83- хранение документов;84- изолированные среды выполнения;85- внутренние системы подвергаются строгим разрешениям.86~87Сложность заключается в том, что каталог инструментов без политики — это всего лишь более элегантный способ создать хаос.88~89## Четвертая часть: личность и разрешения90~91Это та область, на которую многие демо-версии закрывают глаза.92~93Агент действует от чьего-либо имени. Поэтому должно быть ясно, кто является субъектом действия.94~95Используются ли права пользователя? Из сервисного аккаунта? Из рабочего места? У вас есть временный или постоянный доступ? Вы можете прочитать все или только некоторые ресурсы? Можешь написать? Можете ли вы отменить? Может ли он писать реальным людям?96~97Если вы плохо ответите на эти вопросы, рано или поздно у вас появится помощник с ключами от дома и без памяти о том, кто ему их дал.98~99Эмпирическое правило, которое мне нравится, заключается в следующем: агент должен быть способен делать меньше, чем человек, но не больше, чем человек. А когда ему нужно сделать что-то более рискованное, он должен остановиться и спросить.100~101Это означает OAuth, область действия токена, управление секретами, журнал аудита, политику инструментов, список разрешений, этап утверждения. Не очень романтическая вещь. Необходимые вещи.102~103##Пятый кусок: память и контекст, но без накопления мусора104~105Агентам нужна память, но память опасна, когда становится чердаком.106~107Существует как минимум три типа памяти:108~109- запустить память: что произошло в этом исполнении;110- память проекта: условности, решения, ограничения;111- личная или командная память: предпочтения, тон, ритуалы, процессы.112~113Поместить все в командную строку — это ярлык. Это работает до тех пор, пока не перестанет работать. О полезной памяти нужно заботиться: индексировать, обновлять, просрочивать, проверять, делать доступной для цитирования.114~115Агент, который плохо помнит, хуже агента, который не помнит. Потому что он говорит уверенно.116~117Поэтому инфраструктура должна включать поиск, файлы инструкций, базу знаний, встраивание при необходимости, а также очистку. Нужна культура памяти: что входит, кто это одобряет, когда приходит в упадок, как это исправить.118~119## Шестая часть: наблюдаемость, оценка и воспроизведение120~121Если агент допускает ошибку, журнала «вызванная модель» недостаточно.122~123Вы хотите увидеть маршрут. Какой контекст он получил? Какие инструменты были доступны? Какой инструмент вы выбрали? С какими аргументами? Какой ответ вы получили? Сколько это стоило? Где оно застряло? Одобрил ли человек что-нибудь? Является ли ошибка модели, инструмента, подсказки, данных или разрешения?124~125Здесь агенты больше похожи на распределенные системы, чем на чат-ботов.126~127Вам нужны читаемые трассировки, а не просто текстовые журналы. Вам нужно иметь возможность воспроизвести пробежку. Необходимо сравнить две версии одного и того же агента на известных задачах. Нам нужно измерить регрессию: он не только «отвечает лучше», но и «закрывает нужный тикет, не затрагивая нежелательные файлы».128~129Агентские оценки сложнее текстовых, поскольку они включают в себя действия. Недостаточно сравнить ожидаемую строку. Вы должны учитывать последовательность действий, побочные эффекты, качество артефакта, время, стоимость, количество человеческих вмешательств.130~131Самое смешное, что мы всегда возвращаемся к этому: разработке программного обеспечения. Тесты, окружения, трассировки, откаты. За исключением того, что код теперь тоже решает, что делать дальше.132~133## Часть седьмая: человеческие интерфейсы134~135Агенту не обязательно просто жить в чате.136~137Некоторым агентам нужна доска. Другие страница со статусом и журналом. Другие кнопки «одобрить». Больше встроенных комментариев. Still others of a CLI.138~139Пользовательский интерфейс меняет поведение. Если единственный способ контролировать агента — написать длинное сообщение, пользователь будет давать агенту расплывчатые инструкции. Однако если он видит план, различия, источники, риски и следующие действия, он может вмешаться.140~141Достойная агентская инфраструктура включает в себя поверхности управления:142~143- current status;144- редактируемый план;145- произведенные артефакты;146- разница;147- запросы на одобрение;148- хронология;149- кнопка остановки;150- кнопка повтора;151- видимые разрешения.152~153Это кажется тривиальным, но это не так. Разница между «жутким ИИ» и «надежным помощником» зачастую заключается лишь в том, что последний показывает вам, где у него руки.154~155## Ментальный стек156~157Если бы я нарисовал это сегодня, минимальный стек агентов был бы таким:158~1591. Модель: рассуждения, генерация, вызов инструментов, при необходимости мультимодальная.1602. Оркестрация: цикл, шаг, планировщик, политика, участие человека в цикле.1613. Надежная среда выполнения: рабочий процесс, очередь, повтор, пауза, возобновление.1624. Песочница: выполнение кода, изолированная файловая система, ограничения, артефакты.1635. Уровень инструментов: MCP, внутренний API, браузер, база данных, репозиторий.1646. Уровень идентификации: OAuth, область действия, секрет, аудит, политика.1657. Уровень памяти: контекст проекта, извлечение, инструкции, срок действия.1668. Наблюдаемость: отслеживание, воспроизведение, оценка, метрики стоимости и качества.1679. Поверхность продукта: чат, когда достаточно, информационная панель, когда это необходимо, просмотр, когда это важно.168~169Агентская структура в основном охватывает пункт 2 и часть пункта 1. Остальное — настоящая работа.170~171## Что бы я сделал на практике172~173Если бы команда сказала мне: «Нам нужны агенты в производстве», я бы не стал начинать с десяти агентов.174~175Я бы начал с небольшого, повторяющегося и наблюдаемого рабочего процесса. Например: открывать запросы на обслуживание, обновлять документацию по закрытым проблемам, готовить еженедельный обзор, сортировать повторяющиеся ошибки, создавать тесты для затронутых файлов.176~177Тогда я бы установил очень четкие ограничения:178~179- никакой записи без веток или песочницы;180- никаких секретов в подсказке;181- инструменты в белом списке;182- человеческое одобрение внешних действий;183- обязательная регистрация и трассировка;184- бюджет на прогон;185- выход всегда доступен для проверки.186~187Только тогда я бы расширился.188~189Агенты не терпят неудачу только потому, что модели ошибаются. Они терпят неудачу, потому что мы помещаем их в неопределенную среду, с запутанными разрешениями и театральными ожиданиями.190~191## Мое чтение192~193Агентская инфраструктура в лучшем смысле скучна.194~195Это не та часть, которая заставляет вас аплодировать в демо. Это та часть, которая позволяет вам использовать демо-версию в понедельник утром с реальными людьми, реальными данными и реальными последствиями.196~197Будущее агентов не будет решаться только тем, у кого лучший образец для подражания. Это будет решать тот, кто построит лучшее место, где он сможет работать: изолированный, когда он экспериментирует, подключенный, когда это необходимо, всегда наблюдаемый, уполномоченный критериями и достаточно скромный, чтобы остановиться, когда он не знает.198~199Именно здесь агенты перестают быть игрушкой и становятся инфраструктурой.200~201## Источники202~203- [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~
NORMAL · agentic-infrastructure-stack.md [readonly]210 lines · :q to close