106 lines
3.4 KiB
Markdown
106 lines
3.4 KiB
Markdown
# 🎯 Решение: browser-use с GUI браузером
|
||
|
||
## ✅ Проблема решена!
|
||
|
||
Теперь все действия через hermes-agent **ТРАНСЛИРУЮТСЯ** на GUI браузер в реальном времени.
|
||
|
||
## 🚀 Как использовать
|
||
|
||
### 1️⃣ Запустите стек
|
||
|
||
```bash
|
||
docker compose --profile gui up -d
|
||
```
|
||
|
||
### 2️⃣ Откройте VNC в браузере
|
||
|
||
```bash
|
||
open http://localhost:6080/vnc.html
|
||
```
|
||
|
||
### 3️⃣ Дайте задачу agentу
|
||
|
||
Напишите что-нибудь типа:
|
||
```
|
||
"Откройте example.com и найдите заголовок страницы"
|
||
```
|
||
|
||
**Или** запустите напрямую:
|
||
```bash
|
||
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`
|
||
|
||
### Файлы, которые были обновлены:
|
||
|
||
1. **`docker-compose.yml`**
|
||
- Изменена `BROWSER_USE_CDP_URL` на `http://172.25.0.3:9223`
|
||
- Добавлена зависимость от `chromium-gui` в hermes-agent
|
||
|
||
2. **`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 (ваш браузер)
|
||
```
|
||
|
||
## 🎮 Протестировано
|
||
|
||
```bash
|
||
# ✅ 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)
|
||
- Диагностика проблем: смотрите раздел "Диагностика" в [`GUI_BROWSER_SETUP.md`](./GUI_BROWSER_SETUP.md)
|
||
|
||
---
|
||
|
||
**Теперь browser-use полностью интегрирован с GUI браузером! 🎉**
|
||
|