Chia sẻ bởi Tù Bà Khuỳm
Bạn có bao giờ cảm thấy mệt mỏi với việc thực hiện lặp đi lặp lại các tác vụ trên trình duyệt web? Từ việc tìm kiếm thông tin, thu thập dữ liệu đến việc tương tác với các trang web phức tạp? Giờ đây, với sự kết hợp của n8n và node Browser Use chạy local, bạn hoàn toàn có thể tự động hóa những công việc này một cách hiệu quả như dân chuyên nghiệp.
Bài viết này sẽ hướng dẫn bạn chi tiết cách cài đặt và sử dụng công cụ Browser Use cùng với server local để điều khiển trình duyệt, thực hiện các tác vụ web tự động ngay trên máy tính của bạn. Chúng ta sẽ đi qua từng bước, từ chuẩn bị môi trường, cài đặt server, tích hợp vào n8n và khám phá các ví dụ thực tế.
Chuẩn bị cần thiết trước khi bắt đầu
Để có thể cài đặt và chạy server Browser Use local cũng như tích hợp với n8n, bạn cần đảm bảo máy tính của mình đã có sẵn các công cụ sau:
- Git: Hệ thống quản lý phiên bản phân tán, dùng để tải mã nguồn của Browser Use server về máy.
- Python: Ngôn ngữ lập trình chính được sử dụng cho server local (phiên bản 3.9 trở lên được khuyến nghị).
- UV (hoặc
venv
/pip
): Công cụ quản lý môi trường ảo và gói thư viện cho Python. UV là một lựa chọn mới, tốc độ cao, nhưng bạn vẫn có thể sử dụngpython -m venv
vàpip
truyền thống.
Bạn có thể tìm và tải các công cụ này từ trang web chính thức của chúng nếu chưa có.
Cài đặt server Browser Use local
Đây là bước quan trọng để thiết lập "bộ não" điều khiển trình duyệt trên máy tính của bạn. Hãy làm theo các bước sau:
- Chọn thư mục làm việc: Mở terminal hoặc command prompt, di chuyển đến thư mục bạn muốn chứa mã nguồn của server (ví dụ:
cd path/to/your/projects
). - Clone mã nguồn: Sử dụng Git để tải mã nguồn từ repository về máy:
git clone https://github.com/blotato/BrowserUse.git
- Di chuyển vào thư mục dự án:
cd BrowserUse
- Tạo và kích hoạt môi trường ảo: Sử dụng UV (hoặc
venv
) để tạo một môi trường ảo riêng cho dự án, tránh xung đột thư viện.- Với UV:
uv venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows
- Với
venv
:python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows
(.venv)
) xuất hiện ở đầu dòng lệnh. - Với UV:
- Cài đặt các thư viện cần thiết: Cài đặt các gói Python được liệt kê trong file
requirements.txt
.- Với UV:
uv pip install -r requirements.txt
- Với
pip
:pip install -r requirements.txt
- Với UV:
- Tạo và cấu hình file
.env
:- Sao chép file
.env.example
thành file.env
. File này chứa các cấu hình quan trọng cho server. - Mở file
.env
bằng trình soạn thảo code hoặc text editor và chỉnh sửa các thông số sau:PORT
: Cổng mà server sẽ lắng nghe. Mặc định là8000
, nhưng bạn có thể đổi sang cổng khác (ví dụ:24006
như trong video) nếu cổng 8000 đang được sử dụng bởi ứng dụng khác. Chúng ta sẽ ghi đè cổng này khi chạy bằng PM2 ở bước sau, nhưng việc cấu hình ở đây vẫn hữu ích.AI_PROVIDER
: Chọn nhà cung cấp AI bạn muốn sử dụng (ví dụ:google
,openai
).GOOGLE_API_KEY
: Nếu bạn chọngoogle
làmAI_PROVIDER
, hãy cung cấp API Key của Google AI Studio (Gemini). Bạn có thể tạo key miễn phí tạiaistudio.google.com
.GOOGLE_MODEL_NAME
: Chọn model Gemini bạn muốn dùng (ví dụ:gemini-1.5-flash-latest
hoặcgemini-pro
). Model "flash" thường nhanh và miễn phí hoặc rất rẻ.CHROME_PATH
vàUSER_DATA_DIR
:- Nếu bạn muốn Browser Use sử dụng trình duyệt Chrome đã cài đặt sẵn trên máy cùng với profile hiện tại của bạn (cookie, extension...), hãy điền đường dẫn đến file thực thi Chrome (
CHROME_PATH
) và thư mục User Data (USER_DATA_DIR
) của bạn. - Nếu bạn bỏ trống hoặc xóa hai dòng này, Browser Use sẽ tự động tải về một phiên bản trình duyệt Chromium riêng để hoạt động.
- Nếu bạn muốn Browser Use sử dụng trình duyệt Chrome đã cài đặt sẵn trên máy cùng với profile hiện tại của bạn (cookie, extension...), hãy điền đường dẫn đến file thực thi Chrome (
- Sao chép file
- Chạy server với PM2: PM2 là một trình quản lý tiến trình giúp server của bạn chạy ngầm (background) và tự động khởi động lại nếu gặp lỗi.
-
Cài đặt PM2 (nếu chưa có):
npm install pm2 -g
(Yêu cầu Node.js và npm đã được cài đặt). -
Khởi chạy server:
pm2 start server.py --name browser-use-server --interpreter python -- --port 24006
--name browser-use-server
: Đặt tên cho tiến trình để dễ quản lý.--interpreter python
: Chỉ định trình thông dịch là Python.-- --port 24006
: Truyền tham số--port
vào scriptserver.py
. Thay24006
bằng cổng bạn muốn sử dụng (phải khớp với cổng bạn sẽ cấu hình trong n8n sau này).
-
Kiểm tra trạng thái server:
pm2 status # Xem trạng thái tất cả tiến trình pm2 logs browser-use-server # Xem log của server
Nếu bạn thấy server đang ở trạng thái
online
và log hiển thị dòngrunning on http://...:24006
(với cổng bạn đã chọn), nghĩa là server đã cài đặt và chạy thành công! -
Các lệnh PM2 hữu ích khác:
pm2 stop <id|name>
: Dừng server (ví dụ:pm2 stop browser-use-server
hoặcpm2 stop 0
nếu ID là 0).pm2 restart <id|name>
: Khởi động lại server.pm2 delete <id|name>
: Xóa server khỏi danh sách quản lý của PM2.
-
Như vậy, bạn đã hoàn tất việc cài đặt server local để điều khiển trình duyệt. Bước tiếp theo là tích hợp nó vào n8n.
Cài đặt node Browser Use trên n8n
Để n8n có thể giao tiếp với server local bạn vừa cài, chúng ta cần cài đặt Community Node tương ứng.
- Thiết lập biến môi trường cho n8n: Bạn cần khai báo một biến môi trường để n8n biết rằng nó có thể tải các Community Node không chính thức. Cách thực hiện tùy thuộc vào cách bạn cài đặt n8n:
- Docker/Docker Compose: Thêm biến
N8N_INSECURE_MAIN_PROCESS_NODE_PACKAGES=n8n-nodes-browser-use
vào file.env
hoặc phầnenvironment
trongdocker-compose.yml
của bạn. - Chạy trực tiếp bằng npm/node: Set biến môi trường trước khi khởi động n8n:
export N8N_INSECURE_MAIN_PROCESS_NODE_PACKAGES=n8n-nodes-browser-use # Linux/macOS set N8N_INSECURE_MAIN_PROCESS_NODE_PACKAGES=n8n-nodes-browser-use # Windows (cmd) $env:N8N_INSECURE_MAIN_PROCESS_NODE_PACKAGES="n8n-nodes-browser-use" # Windows (PowerShell)
- Docker/Docker Compose: Thêm biến
- Khởi động lại n8n: Sau khi thiết lập biến môi trường, hãy khởi động lại n8n để thay đổi có hiệu lực.
- Cài đặt Community Node trong n8n:
- Truy cập giao diện web của n8n.
- Đi tới Settings > Community Nodes.
- Nhấp vào Install a community node.
- Trong ô npm package name, nhập
n8n-nodes-browser-use
. - Nhấp Install.
- Chờ quá trình cài đặt hoàn tất. Bạn sẽ thấy node
n8n-nodes-browser-use
xuất hiện trong danh sách Installed Nodes.
Giờ đây, node Browser Use
đã sẵn sàng để bạn sử dụng trong các workflow của mình.
Hướng dẫn sử dụng Browser Use trong n8n
Sau khi cài đặt xong, chúng ta sẽ khám phá cách sử dụng node Browser Use để thực hiện tự động hóa web n8n.
1. Thiết lập Credential
Trước tiên, bạn cần tạo một credential để kết nối node Browser Use trong n8n với server local đang chạy.
- Trong n8n, đi tới Credentials > Add credential.
- Tìm kiếm và chọn Browser Use.
- Điền các thông tin sau:
- Credential Name: Đặt tên gợi nhớ (ví dụ:
Local BrowserUse Server
). - Base URL: Nhập địa chỉ URL và cổng của server local bạn đã chạy bằng PM2 (ví dụ:
http://localhost:24006
hoặchttp://<your-local-ip>:24006
nếu n8n chạy trên máy khác trong cùng mạng).
- Credential Name: Đặt tên gợi nhớ (ví dụ:
- Nhấp Save. N8n sẽ thử kết nối đến server. Nếu bạn thấy thông báo "Connection tested successfully!", nghĩa là đã kết nối thành công.
2. Các luồng tự động hóa phổ biến
Node Browser Use cung cấp hai cách tiếp cận chính để tự động hóa: kiểm soát luồng thủ công và để AI tự quyết định hành động.
Flow 1: Kiểm soát luồng thủ công (User-Controlled)
Trong luồng này, bạn sẽ chỉ định rõ ràng từng bước mà trình duyệt cần thực hiện. Đây là cách tiếp cận phù hợp khi bạn biết chính xác quy trình cần tự động hóa.
Ví dụ: Tìm giá rẻ nhất của iPhone 16 Pro Max 256GB trên Shopee.
Cấu trúc Workflow:
- Start Node: Nơi bắt đầu workflow.
- (Optional) Set Node: Tạo một biến chứa câu lệnh hướng dẫn (instruction) cho trình duyệt.
- Ví dụ:
instruction = "Lên trang shopee.vn, tìm kiếm 'iPhone 16 Pro Max 256GB' và cho tôi biết giá bán rẻ nhất tìm thấy."
- Ví dụ:
- Browser Use Node (Operation: Run Task):
- Credential: Chọn credential bạn đã tạo ở bước trên.
- Operation: Chọn
Run Task
. - Instruction: Sử dụng biến
instruction
từ Set Node (hoặc nhập trực tiếp câu lệnh). - AI Provider: Chọn nhà cung cấp AI bạn đã cấu hình trong file
.env
của server (ví dụ:Google
). - (Optional) Headful Mode: Bật tùy chọn này nếu bạn muốn nhìn thấy cửa sổ trình duyệt mở ra và thực hiện các thao tác. Rất hữu ích khi debug, nhưng nên tắt đi khi workflow đã ổn định để tiết kiệm tài nguyên.
- Node này sẽ gửi yêu cầu đến server local và trả về một
taskId
.
- Wait Node: Chờ một khoảng thời gian ngắn (ví dụ: 5 giây) để trình duyệt có thời gian hoàn thành tác vụ.
- Browser Use Node (Operation: Get Task Status):
- Credential: Chọn credential tương ứng.
- Operation: Chọn
Get Task Status
. - Task ID: Sử dụng
taskId
trả về từ node "Run Task". - Node này sẽ kiểm tra xem tác vụ đã hoàn thành hay chưa.
- IF Node: Kiểm tra trạng thái trả về từ node "Get Task Status".
- Nếu trạng thái là
completed
(hoặc tương đương), đi tiếp đến bước lấy kết quả. - Nếu chưa hoàn thành (ví dụ:
running
,pending
), quay lại Wait Node (bước 4) để kiểm tra lại sau.
- Nếu trạng thái là
- Browser Use Node (Operation: Get Task Result):
- Credential: Chọn credential tương ứng.
- Operation: Chọn
Get Task Result
. - Task ID: Sử dụng
taskId
từ node "Run Task". - Node này sẽ lấy kết quả cuối cùng mà trình duyệt thu thập được (ví dụ: "Giá rẻ nhất là 32.290.000đ").
Ưu điểm: Kiểm soát chính xác từng bước, dễ debug.
Nhược điểm: Cần xây dựng luồng logic phức tạp hơn cho các tác vụ nhiều bước.
Flow 2: Để AI tự động điều khiển (AI-Controlled)
Trong luồng này, bạn sẽ sử dụng một AI Agent (ví dụ: n8n Agent hoặc Langchain Agent) kết hợp với các "tool" là các operation của Browser Use. Bạn chỉ cần đưa ra yêu cầu chung, và AI sẽ tự quyết định khi nào cần chạy tác vụ, khi nào kiểm tra trạng thái và khi nào lấy kết quả.
Ví dụ: Lấy 5 tin tức mới nhất về AI từ Google News.
Cấu trúc Workflow:
- Start Node / Webhook Node: Nhận yêu cầu đầu vào (ví dụ: câu chat "Lấy 5 tin mới nhất về AI trên Google News").
- Agent Node (ví dụ: n8n Agent):
- Model: Chọn mô hình ngôn ngữ lớn (LLM) bạn muốn sử dụng (cần cấu hình credential tương ứng, ví dụ: Gemini).
- Prompt: Viết một prompt hướng dẫn AI cách sử dụng các tool Browser Use. Nhấn mạnh rằng nó cần:
- Chạy tác vụ (
Run Task
). - Kiểm tra trạng thái (
Get Task Status
) lặp lại cho đến khi hoàn thành. - Lấy kết quả (
Get Task Result
) sau khi tác vụ hoàn thành.
- Chạy tác vụ (
- Tools: Thêm các tool sau, mỗi tool tương ứng với một operation của Browser Use Node:
- Tool 1: Run Task: Sử dụng Browser Use Node với Operation
Run Task
. Mô tả tool này cho AI biết nó dùng để bắt đầu một tác vụ duyệt web dựa trên input của người dùng. - Tool 2: Get Task Status: Sử dụng Browser Use Node với Operation
Get Task Status
. Mô tả tool này dùng để kiểm tra trạng thái của mộttaskId
đã chạy. - Tool 3: Get Task Result: Sử dụng Browser Use Node với Operation
Get Task Result
. Mô tả tool này dùng để lấy kết quả cuối cùng khi tác vụ đã hoàn thành.
- Tool 1: Run Task: Sử dụng Browser Use Node với Operation
- Max Iterations: Đặt số lần lặp tối đa mà Agent được phép thực hiện (bao gồm cả việc gọi tool và suy nghĩ). Đối với các tác vụ web cần thời gian chờ hoặc nhiều bước kiểm tra status, bạn cần tăng giá trị này lên (ví dụ: 20, 50 hoặc hơn). Nếu giá trị này quá thấp, Agent có thể dừng lại trước khi tác vụ hoàn tất, dẫn đến lỗi không lấy được kết quả dù trình duyệt đã chạy xong.
- Output Node: Hiển thị kết quả cuối cùng do Agent trả về.
Cách hoạt động:
- Bạn gửi yêu cầu (ví dụ: "Tìm 5 tin AI mới").
- Agent Node nhận yêu cầu, dựa vào prompt và các tool được cung cấp, nó sẽ:
- Gọi tool
Run Task
với yêu cầu của bạn, nhận vềtaskId
. - Gọi tool
Get Task Status
vớitaskId
đó. - Nếu chưa xong, đợi một chút (Agent tự xử lý) và gọi lại
Get Task Status
. Lặp lại bước này. - Khi
Get Task Status
trả về "completed", Agent gọi toolGet Task Result
vớitaskId
. - Trả kết quả cuối cùng cho bạn.
- Gọi tool
Ưu điểm: Workflow đơn giản hơn, linh hoạt hơn khi yêu cầu thay đổi, AI tự xử lý logic chờ đợi.
Nhược điểm: Khó debug hơn nếu AI hành động không như ý, cần prompt kỹ lưỡng, cần chú ý max_iterations
.
Kết luận
Việc kết hợp n8n với node Browser Use và server local mở ra khả năng tự động hóa web n8n mạnh mẽ và linh hoạt. Bạn có thể kiểm soát trình duyệt ngay trên máy tính của mình, thực hiện các tác vụ từ đơn giản đến phức tạp mà không cần các dịch vụ đám mây đắt đỏ.
Qua bài hướng dẫn này, bạn đã học được cách:
- Chuẩn bị môi trường và cài đặt server Browser Use local.
- Cài đặt và cấu hình node Browser Use trong n8n.
- Xây dựng các workflow tự động hóa theo hai cách: kiểm soát thủ công và để AI điều khiển.
Hãy thử áp dụng những kiến thức này vào công việc hàng ngày của bạn. Tự động hóa việc kiểm tra giá sản phẩm, thu thập tin tức, điền form, hay bất kỳ tác vụ lặp lại nào trên web. Khả năng là vô tận! Nếu bạn có ý tưởng tự động hóa nào khác hay gặp khó khăn trong quá trình thực hiện, đừng ngần ngại để lại bình luận bên dưới.