Local Browser - ИИ-веб-автоматизация на устройстве
Скоро мы запустим поддержку runanywhere-web-sdk в нашем основном репозитории: пожалуйста, посмотрите: https://github.com/RunanywhereAI/runanywhere-sdks
Расширение для Chrome, использующее WebLLM для запуска веб-автоматизации на базе ИИ полностью на устройстве. Никаких облачных API, никаких ключей API, полная конфиденциальность.
Demo
https://github.com/user-attachments/assets/898cc5c2-db77-4067-96e6-233c5da2bae5
Возможности
- ИИ на устройстве: использует WebLLM с ускорением WebGPU для локального вывода LLM
- Многоагентная система: агенты Planner + Navigator для интеллектуального выполнения задач
- Автоматизация браузера: навигация, клики, ввод, извлечение данных с веб-страниц
- Конфиденциальность прежде всего: весь ИИ работает локально, данные не покидают ваше устройство
- Офлайн-поддержка: работает без интернета после первоначальной загрузки модели
Быстрый старт
Предварительные требования
- Chrome 124+ (требуется для WebGPU в сервис-воркерах)
- Node.js 18+ и npm
- GPU с поддержкой WebGPU (большинство современных GPU подходят)
Установка
-
Клонируйте и установите зависимости:
cd local-browser
npm install
-
Соберите расширение:
-
Загрузите в Chrome:
- Откройте
chrome://extensions
- Включите «Режим разработчика» (справа вверху)
- Нажмите «Загрузить распакованное расширение»
- Выберите папку
dist из этого проекта
-
Первый запуск:
- Нажмите на иконку расширения на панели инструментов
- При первом запуске будет загружена модель ИИ (~1 ГБ)
- Она кэшируется для последующего использования
Использование
- Перейдите на любую веб-страницу
- Нажмите на иконку расширения Local Browser
- Введите задачу, например:
- «Найди 'WebGPU' в Википедии и извлеки первый абзац»
- «Перейди на example.com и расскажи, что там есть»
- «Найди поле поиска и выполни поиск 'AI news'»
- Наблюдайте, как ИИ выполняет задачу шаг за шагом
Разработка
Режим разработки
Эта команда отслеживает изменения и автоматически пересобирает проект.
Структура проекта
local-browser/
├── manifest.json # Манифест расширения Chrome (MV3)
├── src/
│ ├── background/ # Сервис-воркер
│ │ ├── index.ts # Точка входа и обработка сообщений
│ │ ├── llm-engine.ts # Обёртка WebLLM
│ │ └── agents/ # Система ИИ-агентов
│ │ ├── base-agent.ts
│ │ ├── planner-agent.ts
│ │ ├── navigator-agent.ts
│ │ └── executor.ts
│ ├── content/ # Скрипты содержимого
│ │ ├── dom-observer.ts # Извлечение состояния страницы
│ │ └── action-executor.ts
│ ├── popup/ # Пользовательский интерфейс всплывающего окна (React)
│ │ ├── App.tsx
│ │ └── components/
│ └── shared/ # Общие типы и константы
└── dist/ # Папка сборки
Как это работает
- Пользователь вводит задачу в интерфейсе всплывающего окна
- Планировщик (Planner Agent) анализирует задачу и создаёт стратегию высокого уровня
- Навигатор (Navigator Agent) изучает текущий DOM страницы и выбирает следующее действие
- Скрипт содержимого выполняет действие (клик, ввод, извлечение и т. д.)
- Цикл повторяется до завершения задачи или возникновения ошибки
Система агентов
Расширение использует двухагентную архитектуру, вдохновлённую Nanobrowser:
- PlannerAgent: стратегическое планирование, создаёт пошаговый подход
- NavigatorAgent: тактическое выполнение, выбирает конкретные действия на основе состояния страницы
Оба агента выводят структурированный JSON, который анализируется и выполняется.
Конфигурация модели
Модель по умолчанию: Qwen2.5-1.5B-Instruct-q4f16_1-MLC (~1 ГБ)
Альтернативные модели (настраиваются в src/shared/constants.ts):
Phi-3.5-mini-instruct-q4f16_1-MLC (~2 ГБ, лучшее рассуждение)
Llama-3.2-1B-Instruct-q4f16_1-MLC (~0,7 ГБ, меньше)
Устранение неполадок
WebGPU не поддерживается
- Обновите Chrome до версии 124 или новее
- Проверьте
chrome://gpu, чтобы убедиться в поддержке WebGPU
- Некоторые GPU могут не поддерживать WebGPU
Модель не загружается
- Убедитесь, что у вас достаточно свободного места на диске (~2 ГБ)
- Проверьте консоль браузера на наличие ошибок
- Попробуйте очистить хранилище расширения и перезагрузить его
Действия не выполняются
- Некоторые страницы блокируют скрипты содержимого (chrome://, страницы расширений)
- Попробуйте открыть обычную веб-страницу, например wikipedia.org
Расширение не работает после обновления Chrome
- Перейдите на
chrome://extensions
- Нажмите кнопку перезагрузки расширения
Ограничения
- Демонстрационный характер: это прототип, а не промышленное ПО
- Без компьютерного зрения: используется только текстовый анализ DOM (без анализа скриншотов)
- Одна вкладка: работает только с текущей активной вкладкой
- Базовые действия: поддерживает навигацию, клики, ввод, извлечение, прокрутку, ожидание
- Размер модели: маленькие модели могут испытывать трудности со сложными задачами
Технологический стек
- WebLLM: локальный вывод LLM с WebGPU
- React: интерфейс всплывающего окна
- TypeScript: типобезопасная разработка
- Vite + CRXJS: сборка расширения Chrome
- Chrome Extension Manifest V3: современная архитектура расширения
Благодарности
Этот проект вдохновлён:
- Nanobrowser — многоагентная веб-автоматизация (лицензия MIT)
- WebLLM — вывод LLM в браузере (лицензия Apache-2.0)
Лицензии зависимостей
| Пакет | Лицензия |
|---|
| @mlc-ai/web-llm | Apache-2.0 |
| React | MIT |
| Vite | MIT |
| @crxjs/vite-plugin | MIT |
| TypeScript |
Лицензия
Лицензия MIT — подробности см. в файле LICENSE.