Исследователи из Стэнфорда выпустили OpenJarvis: фреймворк для создания локальных персональных агентов искусственного интеллекта

Исследователи из Стэнфорда представили OpenJarvis — фреймворк с открытым исходным кодом для создания персональных агентов искусственного интеллекта, работающих исключительно на устройстве. Проект разработан в лаборатории масштабирования интеллекта Стэнфордского университета и представлен как исследовательская платформа и готовая к развёртыванию инфраструктура для систем искусственного интеллекта, ориентированных на локальную работу. Основное внимание уделяется не только выполнению моделей, но и более широкому программному стеку, необходимому для того, чтобы сделать агентов на устройстве пригодными к использованию, измеримыми и адаптируемыми с течением времени.

Почему OpenJarvis?

По мнению исследовательской группы Стэнфорда, большинство современных проектов в области персонального искусственного интеллекта всё ещё сохраняют локальный компонент относительно небольшим, а основные рассуждения проводят через внешние облачные API. Такая схема приводит к задержкам, повторяющимся затратам и проблемам с раскрытием данных, особенно для помощников/агентов, которые работают с личными файлами, сообщениями и постоянным контекстом пользователя.

OpenJarvis разработан для того, чтобы изменить этот баланс, сделав локальное выполнение стандартным, а использование облака — опциональным. Исследовательская группа связывает этот релиз со своими более ранними исследованиями Intelligence Per Watt. В этой работе они сообщают, что локальные языковые модели и локальные ускорители могут точно обслуживать 88,7% одношаговых чатов и логических запросов с интерактивной задержкой, а эффективность интеллекта улучшилась в 5,3 раза с 2023 по 2025 год.

OpenJarvis позиционируется как программный уровень, вытекающий из этого результата: если модели и потребительское оборудование становятся практичными для более локальных рабочих нагрузок, то разработчикам нужен стандартный стек для создания и оценки таких систем.

Архитектура из пяти примитивов

На архитектурном уровне OpenJarvis организован вокруг пяти примитивов: интеллекта, движка, агентов, инструментов и памяти, а также обучения. Исследовательская группа описывает их как компонуемые абстракции, которые можно тестировать, заменять и оптимизировать независимо или использовать вместе как интегрированную систему.

Intelligence: слой модели

Примитив Intelligence — это слой модели. Он расположен над изменяющимся набором семейств локальных моделей и предоставляет унифицированный каталог моделей, чтобы разработчикам не приходилось вручную отслеживать количество параметров, соответствие оборудованию или компромиссы по памяти для каждого выпуска. Цель — упростить выбор модели, изучая его отдельно от других частей системы, таких как серверная часть логического вывода или логика агента.

Engine: среда выполнения логического вывода

Примитив Engine — это среда выполнения логического вывода. Это общий интерфейс для таких серверных частей, как Ollama, vLLM, SGLang, llama.cpp, и облачных API. Уровень движка более широко представлен как аппаратно-зависимое выполнение, где такие команды, как jarvis init, обнаруживают доступное оборудование и рекомендуют подходящую конфигурацию движка и модели, а jarvis doctor помогает поддерживать эту настройку.

Для разработчиков это одна из наиболее практичных частей дизайна: фреймворк не предполагает единого времени выполнения, а рассматривает логический вывод как подключаемый слой.

Agents: поведенческий слой

Примитив Agents — это поведенческий слой. Стэнфорд описывает его как часть, которая превращает возможности модели в структурированные действия в реальных условиях ограничений устройства, таких как ограниченные контекстные окна, ограниченная рабочая память и ограничения эффективности. Вместо того чтобы полагаться на одного агента общего назначения, OpenJarvis поддерживает компонуемые роли.

В статье Стэнфорда упоминаются такие роли, как Оркестратор, который разбивает сложные задачи на подзадачи, и Оператор, который предназначен для лёгкого выполнения повторяющихся личных рабочих процессов. Документация также описывает систему управления агентами, которая обрабатывает системные подсказки, инструменты, контекст, логику повторных попыток и логику выхода.

Tools & Memory: заземление агента

Примитив Tools & Memory — это уровень заземления. Этот примитив включает поддержку MCP (Model Context Protocol) для стандартизированного использования инструментов, Google A2A для связи между агентами и семантического индексирования для локального поиска по заметкам, документам и статьям. Он также поддерживает платформы обмена сообщениями, веб-чаты и вебхуки.

Кроме того, он охватывает более узкий взгляд на инструменты, который включает веб-поиск, доступ к калькулятору, ввод-вывод файлов, интерпретацию кода, поиск и внешние серверы MCP. OpenJarvis — это не просто локальный чат-интерфейс; он предназначен для подключения локальных моделей к инструментам и постоянному личному контексту, сохраняя при этом хранение данных и управление ими локально по умолчанию.

Learning: улучшение по замкнутому циклу

Пятый примитив, Learning, — это то, что даёт фреймворку путь улучшения по замкнутому циклу. Исследователи из Стэнфорда описывают его как уровень, который использует локальные трассировки взаимодействия для синтеза обучающих данных, уточнения поведения агентов и улучшения выбора моделей с течением времени.

OpenJarvis поддерживает оптимизацию на четырёх уровнях стека: веса модели, подсказки LM, логика агента и механизм логического вывода. Примеры, перечисленные исследовательской группой, включают SFT, GRPO, DPO, оптимизацию подсказок с помощью DSPy, оптимизацию агентов с помощью GEPA и настройку на уровне движка, такую как выбор квантования и пакетное планирование.

Эффективность как первоочередной показатель

Важным техническим моментом в OpenJarvis является акцент на оценке с учётом эффективности. Фреймворк рассматривает энергию, FLOPs, задержку и стоимость в долларах как первоочередные ограничения наряду с качеством выполнения задачи.

Также подчёркивается важность аппаратно-независимой системы телеметрии для профилирования энергопотребления на графических процессорах NVIDIA через NVML, AMD GPUs и Apple Silicon через powermetrics с интервалами выборки 50 мс. Команда jarvis bench предназначена для стандартизации бенчмаркинга по задержкам, пропускной способности и энергопотреблению на запрос.

Интерфейсы для разработчиков и варианты развёртывания

С точки зрения разработчика, OpenJarvis предоставляет несколько точек входа. В официальных документах показаны браузерное приложение, настольное приложение, Python SDK и CLI. Браузерное приложение можно запустить с помощью команды ./scripts/quickstart.sh, которая устанавливает зависимости, запускает Ollama и локальную модель, запускает серверную и клиентскую части и открывает локальный пользовательский интерфейс.

Настольное приложение доступно для macOS, Windows и Linux, при этом серверная часть по-прежнему работает на компьютере пользователя. Python SDK предоставляет объект Jarvis() и такие методы, как ask() и ask_full(), а интерфейс командной строки включает такие команды, как jarvis ask, jarvis serve, jarvis memory index и jarvis memory search.

В документации также указано, что все основные функции работают без подключения к сети, а облачные API являются опциональными. Для команд разработчиков, создающих локальные приложения, ещё одной практической функцией является jarvis serve, которая запускает сервер FastAPI с потоковой передачей SSE и описывается как замена OpenAI clients. Это снижает затраты на миграцию для разработчиков, которые хотят создать прототип с интерфейсом, похожим на API, сохраняя при этом локальный логический вывод.

Подписывайтесь на наш репозиторий, читайте документацию и технические подробности. Также подписывайтесь на нас в Twitter и присоединяйтесь к нашему сообществу в ML SubReddit и подписывайтесь на нашу рассылку. А если вы в Telegram, присоединяйтесь к нам и там!

1. Какие проблемы решает OpenJarvis в контексте разработки локальных агентов искусственного интеллекта?

В тексте указано, что большинство современных проектов в области персонального искусственного интеллекта всё ещё сохраняют локальный компонент относительно небольшим, а основные рассуждения проводят через внешние облачные API. Такая схема приводит к задержкам, повторяющимся затратам и проблемам с раскрытием данных. OpenJarvis разработан для того, чтобы изменить этот баланс, сделав локальное выполнение стандартным, а использование облака — опциональным.

2. Какие примитивы лежат в основе архитектуры OpenJarvis?

На архитектурном уровне OpenJarvis организован вокруг пяти примитивов:
* Intelligence (слой модели);
* Engine (среда выполнения логического вывода);
* Agents (поведенческий слой);
* Tools & Memory (уровень заземления агента);
* Learning (улучшение по замкнутому циклу).

3. Какие преимущества предоставляет OpenJarvis разработчикам?

OpenJarvis предоставляет несколько точек входа для разработчиков, включая браузерное приложение, настольное приложение, Python SDK и CLI. Это упрощает процесс разработки и тестирования локальных агентов искусственного интеллекта. Кроме того, фреймворк поддерживает оптимизацию на четырёх уровнях стека: веса модели, подсказки LM, логика агента и механизм логического вывода.

4. Какие технические аспекты учитывает OpenJarvis при оценке эффективности?

Фреймворк рассматривает энергию, FLOPs, задержку и стоимость в долларах как первоочередные ограничения наряду с качеством выполнения задачи. Также подчёркивается важность аппаратно-независимой системы телеметрии для профилирования энергопотребления.

5. Какие варианты развёртывания предлагает OpenJarvis?

С точки зрения разработчика, OpenJarvis предоставляет несколько точек входа. В официальных документах показаны браузерное приложение, настольное приложение, Python SDK и CLI. Все основные функции работают без подключения к сети, а облачные API являются опциональными.

Источник