3.4 KiB
3.4 KiB
🎯 Решение: browser-use с GUI браузером
✅ Проблема решена!
Теперь все действия через hermes-agent ТРАНСЛИРУЮТСЯ на GUI браузер в реальном времени.
🚀 Как использовать
1️⃣ Запустите стек
docker compose --profile gui up -d
2️⃣ Откройте VNC в браузере
open http://localhost:6080/vnc.html
3️⃣ Дайте задачу agentу
Напишите что-нибудь типа:
"Откройте example.com и найдите заголовок страницы"
Или запустите напрямую:
docker compose exec -T hermes-agent python \
/root/.hermes/skills/autonomous-ai-agents/browser-use/scripts/run_browser_use.py \
--task "Open google.com and search for 'hello world'" \
--max-steps 5
4️⃣ Смотрите действия в VNC окне 🎬
Вы видите как агент:
- 🔍 Навигирует по сайтам
- 🖱️ Кликает по кнопкам
- ⌨️ Вводит текст
- 📜 Скроллит страницу
🔧 Что было исправлено
Проблема: "Host header is specified and is not an IP address"
Chromium CDP API проверяет Host заголовок в HTTP запросах и отвергает имена хостов.
Решение: Используем IP адрес контейнера вместо имени:
- ❌
BROWSER_USE_CDP_URL=http://chromium-gui:9223 - ✅
BROWSER_USE_CDP_URL=http://172.25.0.3:9223
Файлы, которые были обновлены:
-
docker-compose.yml- Изменена
BROWSER_USE_CDP_URLнаhttp://172.25.0.3:9223 - Добавлена зависимость от
chromium-guiв hermes-agent
- Изменена
-
docker/chromium-gui/start.sh- Добавлена socat для проксирования TCP через IPv6
- Chromium слушает на
::1:9223(IPv6 localhost) - socat пробрасывает
9223на все интерфейсы
📊 Архитектура
hermes-agent (контейнер)
│
├─ BROWSER_USE_CDP_URL=http://172.25.0.3:9223
│
└─→ chromium-gui (контейнер)
│
├─ Chromium слушает на ::1:9223 (IPv6)
│
├─ socat (TCP-LISTEN:9223 → TCP6:[::1]:9223)
│
├─ x11vnc (захватывает Xvfb)
│
└─ websockify (VNC → WebSocket)
│
└─→ http://localhost:6080/vnc.html (ваш браузер)
🎮 Протестировано
# ✅ CDP доступен
docker compose exec -T hermes-agent bash -c 'curl -s http://172.25.0.3:9223/json/version'
# ✅ VNC доступен
open http://localhost:6080/vnc.html
# ✅ socat проксирует
docker compose exec chromium-gui netstat -tlnp | grep 9223
📚 Дополнительно
- Полная документация:
GUI_BROWSER_SETUP.md - Диагностика проблем: смотрите раздел "Диагностика" в
GUI_BROWSER_SETUP.md
Теперь browser-use полностью интегрирован с GUI браузером! 🎉