От ответа модели к действию
На WWDC26 Apple показала агента, который выполняет поручения с помощью языковой модели на Mac. Агент передаёт ей задачу, получает предложение следующего шага и вызывает нужный инструмент. Например, после правки кода он может запустить сборку, прочитать ошибку и попробовать исправить её. Результат каждого действия возвращается модели, и цикл повторяется.
На каждом шаге модели нужно обработать поступившие данные. От скорости этого этапа зависит, сколько придётся ждать, даже если сам ответ появляется быстро. В примере Apple вычисления выполняет MLX, а загрузкой и запуском модели занимается пакет MLX-LM. Локальный сервер связывает модель с агентом, который управляет инструментами.
Вычисления можно оставить на своём компьютере, но инструментам иногда нужен интернет. В показанном Apple примере инструмент GitHub обращается в сеть за данными. Поэтому локальная модель ещё не делает всю работу агента автономной.
Как устроен агент
Локальная модель. Действия — под контролем приложения.
Проследите одно действие от предложения модели до результата.
Модель предлагает следующий шаг
- Модель
- Разрешения
- Инструмент
- Результат
Модель получает задачу и описание инструментов. Она может предложить, например, запустить сборку проекта. Само предложение ещё не выполняет команду.
Приложение проверяет действие
- Модель
- Разрешения
- Инструмент
- Результат
Правила задаёт приложение: какие файлы можно читать и менять, нужна ли сеть и когда спросить пользователя. MLX сам по себе не выдаёт эти разрешения.
Инструмент выполняет команду
- Модель
- Разрешения
- Инструмент
- Результат
- Сборка проекта
- На Mac
- Запрос к GitHub
- Через интернет
Сборка может работать на Mac. Инструмент GitHub из примера Apple обращается в интернет — даже когда модель остаётся локальной.
Результат возвращается модели
- Модель
- Разрешения
- Инструмент
- Результат
Модель получает вывод сборки или сообщение об ошибке и предлагает следующий шаг. Цикл продолжается, пока агент не закончит задачу или не остановится.
На что расходуется память
Обученная модель хранится в виде чисел — весов. MLX-LM умеет квантовать их, то есть записывать с меньшей разрядностью. Миллиард четырёхбитных значений занимает примерно 0,5 гигабайта без служебных данных. Так можно оценить размер самих весов.
При работе понадобятся ещё память для промежуточных вычислений и кэш уже обработанного текста. Чем длиннее переписка или другой рабочий контекст, тем больше места он может занять. В документации MLX-LM предупреждают: слишком большая для доступной оперативной памяти модель может работать медленно.
Для пробы полезно дать модели файл или переписку, с которыми вы действительно собираетесь работать. Короткое приветствие почти ничего не скажет о том, сколько придётся ждать ответа на большом документе.
Локальная модель
Память нужна и для разговора
- Модель
- Контекст
- Рабочие данные
- Свободно
Увеличьте длину разговора и посмотрите, как меняется занятая память.
Кэш хранит результаты обработки предыдущего текста. С ростом контекста он может занимать больше памяти.
Когда одного Mac мало
Модель можно распределить между несколькими компьютерами. Один способ — отдать каждому последовательную группу слоёв: тогда данные проходят через машины по очереди. Так для большой модели можно использовать память нескольких Mac, хотя отдельный фрагмент ответа всё ещё вычисляется последовательно.
Другой способ — разделить каждый слой между компьютерами. Они будут считать одновременно, но им придётся чаще обмениваться данными. Для быстрого обмена Apple использует Thunderbolt 5, протокол RDMA и библиотеку JACCL. RDMA передаёт данные между памятью машин, сокращая участие процессора и операционной системы.
В демонстрации Apple модель Qwen 3.6 с 27 миллиардами параметров выдавала ответ почти втрое быстрее на четырёх M3 Ultra, чем на одном. Этот результат относится к конкретной модели и соединению; скорость другой задачи нужно измерять отдельно.
Какие действия можно доверить агенту
В отдельной сессии о безопасности Apple разбирает косвенное внедрение инструкций. Агент читает внешний текст, а модель принимает указания внутри него за команду. Например, кто-то может вставить в комментарий к документу просьбу отправить весь проект на посторонний сервер. Агент должен обработать такой текст как содержимое документа, а не как новое поручение владельца.
Поэтому разработчику нужно определить, каким источникам доверяет агент и что разрешено его инструментам. Прочитать файл, перезаписать его и отправить наружу — разные действия. Apple предлагает проверять их и запрашивать подтверждение там, где ошибка дорого обойдётся пользователю.
Даже если модель работает на Mac, права на файлы и сетевые запросы задаёт приложение. Начать проверку можно с небольшого поручения: просмотреть результат и список действий, которые агент выполнил по пути.
Источники и примечания к материалу собраны в полной версии статьи.
