Craig McLuckie из Stacklok считает, что агенты программирования не должны оставаться привязанными к устройству разработчика и его интерактивному процессу, и представляет открытый проект Mecatl как модель распределённой архитектуры, отделяющей цикл работы агента от клиентов, сред выполнения, инструментов и вспомогательных сервисов.
Ценность агентов программирования больше не ограничивается диалоговым интерфейсом, отвечающим на вопросы. Их практическое применение связано с наличием мощных инструментов, общего репозитория и файловой системы, дочерних агентов и навыков, сохраняющих то, чему система научилась в ходе предыдущих задач. По словам Craig McLuckie из Stacklok, следующий шаг — перенести эти возможности с компьютера разработчика в долгоживущие сервисы и интерфейсы, которыми могут пользоваться люди, вообще не открывающие терминал.
Проблема заключается в том, что большинство существующих сред выполнения агентов разработаны вокруг настольной модели: один пользователь, одно устройство, локальная файловая система и интерактивный процесс, одновременно объединяющий пользовательский интерфейс, цикл работы агента, изоляцию, хранилище учётных данных, размещение инструментов и базу данных сеанса. Эта модель подходит отдельному разработчику, но становится менее удобной, когда организации требуется запускать сотни сеансов, применять детальные политики к инструментам, возобновлять сеанс после отказа узла или переходить между разными устройствами.
Отделение цикла работы агента от остальной системы
McLuckie предлагает строить то, что он называет «облачно-нативным операционным поясом», как распределённое приложение с самого начала, вместо того чтобы просто помещать настольную среду в контейнер. Контейнер может изменить место выполнения процесса, но не устраняет взаимозависимость его компонентов. В Stacklok для этой цели был представлен открытый фреймворк Mecatl.
В Mecatl ядро отвечает за цикл работы агента, включая вывод, распределение вызовов инструментов, разрешения, хуки и выпуск событий. Остальные элементы подключаются к нему через чёткие интерфейсы:
- Конечные клиенты и API, включая TUI под названием mecatui, интерфейсы gRPC и HTTP/SSE, а также SDK на языке TypeScript.
- Среды выполнения, рабочие пространства и исполнители команд, в которых агент выполняет свои задачи.
- Экосистема инструментов, включающая встроенные инструменты, службы MCP через потоковый HTTP, навыки и интеграции с приложениями.
- Вспомогательные сервисы для управления поставщиками моделей, состоянием сеансов, журналом событий, идентификацией и координацией.
Что меняется на практике?
Такое разделение превращает цикл работы агента в компонент, который можно выпускать, развёртывать и контролировать, как любой другой сервис. Его можно запускать в терминале, как сервис или в Kubernetes без замены самого цикла. В руководстве mecak8s рабочие узлы можно заменять во время работы, сохраняя постоянные сеансы при выпуске новой версии.
Состояние сеанса и журнал событий хранятся в постоянном хранилище в рамках модели координации с одним писателем. Если рабочий узел выходит из строя, резервный рабочий узел может продолжить работу с последней сохранённой границы хода. Однако это не равнозначно распределённой транзакции: выполнявшаяся в момент сбоя операция не возобновляется, а работа, выполненная после последнего успешного сохранения, может быть потеряна. Поэтому проект описывает эту возможность как сохранность на уровне ходов, а не как гарантию полноценной распределённой транзакции.
Явный каталог также позволяет ограничивать разрешённые инструменты, навыки и интеграции, устанавливая пределы полномочий, аудита и среды выполнения. Поскольку клиент не владеет файловой системой, учётными данными или состоянием сеанса, один и тот же цикл может обслуживать терминал, удалённый сервис, встроенное приложение или развёртывание Kubernetes, а также связывать веб-интерфейс, интеграцию со Slack и совместный редактор с одним и тем же сеансом.
Оставшиеся нерешённые вопросы
Источник подчёркивает, что Mecatl всё ещё находится на раннем этапе, а «облачно-нативный операционный пояс» является скорее архитектурным направлением, чем завершённой спецификацией. Один из главных вопросов — определение того, кто вызывает внешнюю систему: пользователь, агент, сеанс или многоуровневый дочерний агент? Проект предлагает собственную область доверия SPIFFE с кодированием полной цепочки делегирования в JWT, чтобы принимающие системы могли принимать решения на основе цепочки идентичностей.
Проект также изучает пути для инструментов, выходящие за рамки MCP, чтобы такой инструмент, как анализатор PDF, мог напрямую работать с файловой системой, вместо того чтобы передавать все входные и выходные данные через контекстное окно модели. Кроме того, появляется идея «доказательства контекста»: выпуска упакованного контекста, его подписания, атрибуции, распространения и подчинения политикам, как любого артефакта в цепочке поставок программного обеспечения.
Редакционный комментарий: значение этого подхода заключается не в запуске нового интерфейса, а в переопределении агента как управляемого сервиса вместо долгоживущего персонального процесса. Однако источник чётко различает то, что уже работает в Mecatl, и то, что всё ещё находится на стадии проектирования; кроме того, текущая устойчивость не предотвращает потерю выполняемой работы и пока не определяет окончательно модель идентичности или прямую передачу данных между инструментами. Поэтому внедрение этой модели требует практической оценки среды развёртывания, пределов полномочий и гарантий сохранности данных, прежде чем считать её готовой заменой всех локальных сред агентов.