Исследователи из Стэнфорда представили 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 являются опциональными.