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 активно наполягає на цьому фронті, створюючи 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- слабкий для розмовного контексту;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## The seventh piece: human interfaces134~135The agent doesn't have to just live in a chat.136~137Some agents need a board. Others a page with status and log. Others of an "approve" button. Більше внутрішніх коментарів. Ще інші з CLI.138~139Інтерфейс користувача змінює поведінку. Якщо єдиним способом керування агентом є написання довгого повідомлення, користувач дасть агенту розпливчасті інструкції. Однак якщо він бачить план, різницю, джерела, ризики та наступні дії, він може точно втрутитися.140~141Пристойна агентська інфраструктура включає контрольні поверхні:142~143- поточний стан;144- редагований план;145- виготовлені артефакти;146- диф;147- запити на погодження;148- хронологія;149- кнопка зупинки;150- кнопка повторити спробу;151- видимі дозволи.152~153It seems trivial, but it isn't. Різниця між «страшним штучним інтелектом» і «надійним помічником» часто полягає лише в тому, що останній показує, до чого він приклав руку.154~155## The mental stack156~157Якби я намалював це сьогодні, мінімальний стек агентів був би таким:158~1591. Модель: міркування, генерація, виклик інструменту, мультимодальний, якщо необхідно.1602. Оркестровка: цикл, крок, планувальник, політика, людина в циклі.1613. Надійний час виконання: робочий процес, черга, повторна спроба, пауза, відновлення.1624. Пісочниця: виконання коду, ізольована файлова система, обмеження, артефакти.1635. Інструментальний рівень: MCP, внутрішній API, браузер, база даних, репозиторій.1646. Рівень ідентифікації: OAuth, область, секрет, аудит, політика.1657. Рівень пам'яті: контекст проекту, пошук, інструкції, термін дії.1668. Спостережуваність: відстеження, повторне відтворення, оцінка, показники вартості та якості.1679. Поверхня продукту: чат, коли достатньо, інформаційна панель, коли потрібно, огляд, коли це важливо.168~169Агентна структура в основному охоплює пункти 2 і частину пункту 1. Решта — справжня робота.170~171## What I would do in practice172~173Якби команда сказала мені, що «нам потрібні агенти у виробництві», я б не починав із десяти агентів.174~175Я б почав з невеликого, повторюваного та помітного робочого процесу. Наприклад: відкрити PR-запити на технічне обслуговування, оновити документацію із закритих проблем, підготувати щотижневий огляд, відсортувати повторювані помилки, створити тести для файлів, які зазнали впливу.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