Sau gần 6 tháng thử nghiệm đủ loại trợ lý AI — từ cloud API đến self-hosted web UI — mình nhận ra mình dùng terminal nhiều hơn bất kỳ giao diện nào. Đó là lý do mình chuyển sang OpenClaw: một CLI assistant mã nguồn mở, nhẹ, chạy offline được, và không gửi dữ liệu ra ngoài nếu bạn kết hợp với local model.
So sánh các cách tiếp cận để có trợ lý AI cá nhân
Trước khi chọn được stack hiện tại, mình đã thử đủ cả ba hướng. Mỗi cái đều có lý do để thử — và lý do để bỏ.
Gọi trực tiếp cloud API
OpenAI, Claude, Gemini — model đều mạnh, nhưng dùng hàng ngày thì bất tiện. Mỗi lần hỏi lại phải mở script, không có memory giữa các session, và chi phí cộng dồn nhanh hơn tưởng — mình từng tốn $15/tháng chỉ để hỏi những câu debug lặt vặt bằng GPT-4o-mini. Chưa kể việc paste code nội bộ hay config production lên cloud là rủi ro không đáng.
Self-hosted web UI (Open WebUI, LibreChat)
Nếu cần giao diện đẹp để demo hoặc chia sẻ với team, Open WebUI hay LibreChat làm tốt. Nhưng với cá nhân thì overkill: Docker chiếm 400-600MB RAM ngay cả lúc không ai dùng, và mỗi lần chỉ muốn hỏi nhanh một câu lại phải mở tab trình duyệt, chuyển focus khỏi terminal đang làm việc.
CLI assistant như OpenClaw
Gõ câu hỏi ngay trong terminal — không rời khỏi nơi đang làm việc. Không Docker, không tab trình duyệt, memory session lưu local theo từng project. Với developer và sysadmin sống trong command line, đây là luồng làm việc tự nhiên nhất.
Phân tích ưu nhược điểm thực tế của OpenClaw
Ưu điểm
- Privacy hoàn toàn: Kết hợp với Ollama, toàn bộ dữ liệu ở lại máy — không có gì ra internet
- Lightweight: Không cần Docker, không cần web server — chỉ là Python package, chiếm chưa đến 50MB
- Session memory: Lưu lịch sử hội thoại theo ngữ cảnh, đặt tên session theo project
- Multi-backend: Hỗ trợ Ollama, OpenAI API, Anthropic Claude — đổi backend không cần cấu hình lại toàn bộ
- Pipe-friendly: Đọc stdin, pipe output — tích hợp mượt vào shell script và workflow tự động
Nhược điểm cần biết trước
- Không có web UI — không dùng được nếu cần chia sẻ với người không quen terminal
- Cấu hình ban đầu cần chút thời gian, nhất là phần backend và model
- Multimodal (hình ảnh, PDF) còn hạn chế so với web UI đầy đủ tính năng
- Community nhỏ hơn so với các project lớn như Open WebUI
Chọn OpenClaw khi nào — và khi nào thì không
OpenClaw phù hợp nếu bạn làm việc chủ yếu trong terminal và cần hỏi nhanh giữa chừng mà không muốn mất focus. Đặc biệt hữu ích khi xử lý data nhạy cảm — code nội bộ, database schema, config production — mà không thể paste lên cloud. Ngược lại, nếu cần chia sẻ với người dùng không quen terminal, hoặc làm việc nhiều với hình ảnh và PDF, Open WebUI vẫn mạnh hơn.
Hướng dẫn cài đặt OpenClaw
Yêu cầu hệ thống
- Python 3.10+
- Ollama đã cài và chạy (nếu dùng local model) — xem bài hướng dẫn chạy LLM local với Ollama
- Hoặc API key của OpenAI / Anthropic nếu dùng cloud backend
Cài đặt qua pip
# Cài đặt OpenClaw vào venv (khuyến nghị)
python -m venv ~/.openclaw-venv
source ~/.openclaw-venv/bin/activate
pip install openclaw
# Xác nhận cài thành công
openclaw --version
Cài từ source để có tính năng mới nhất
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pip install -e .
# Kiểm tra
openclaw --version
Cấu hình ban đầu
Sau khi cài, chạy lệnh khởi tạo để tạo file config mặc định:
openclaw init
# Tạo file tại: ~/.config/openclaw/config.yaml
Mở file config và chỉnh theo backend bạn đang dùng:
# ~/.config/openclaw/config.yaml
# Backend mặc định: Ollama (local, privacy tốt nhất)
backend: ollama
ollama:
url: http://localhost:11434
model: llama3.2 # hoặc qwen2.5, mistral, phi4
# Nếu dùng OpenAI API:
# backend: openai
# openai:
# api_key: sk-...
# model: gpt-4o-mini
# Nếu dùng Anthropic:
# backend: anthropic
# anthropic:
# api_key: sk-ant-...
# model: claude-haiku-4-5-20251001
# Memory: giữ bao nhiêu message trong context
memory:
enabled: true
max_history: 20
# Thư mục lưu session
sessions:
dir: ~/.openclaw/sessions
Kiểm tra kết nối backend
openclaw check
# Output khi OK:
# ✓ Backend: ollama
# ✓ Model: llama3.2 (4.7GB)
# ✓ Connection: OK
# ✓ Response time: 320ms
Sử dụng OpenClaw trong workflow thực tế
Hỏi nhanh không cần context (one-shot mode)
# Câu hỏi đơn giản
openclaw ask "Lệnh nào để xem port đang listen trên Linux?"
# Phân tích log qua pipe
cat /var/log/nginx/error.log | tail -50 | openclaw ask "Phân tích lỗi này và gợi ý fix"
# Review file code
openclaw ask --file main.py "Review code này, tìm security issue nếu có"
Chat session có memory theo project
# Bắt đầu session mới
openclaw chat
# Tiếp tục session đặt tên sẵn
openclaw chat --session wp-project
# Xem danh sách session đang có
openclaw sessions list
Tích hợp vào shell workflow
# Phân tích trạng thái Kubernetes
kubectl get pods --all-namespaces | openclaw ask "Pod nào đang có vấn đề?"
# Tự động viết git commit message
git diff --staged | openclaw ask "Viết git commit message ngắn gọn bằng tiếng Anh"
# Giải thích lệnh phức tạp trước khi chạy
openclaw ask "Giải thích lệnh này làm gì: find / -name '*.conf' -mtime -7 -exec grep -l 'password' {} +"
Tips sau 6 tháng dùng thực tế
System prompt riêng cho từng project
Mỗi project của mình có một session riêng với system prompt chứa context của stack đó — PHP version, database, WordPress version. Không cần giải thích lại mỗi lần, mở session là vào việc luôn:
openclaw chat --session wp-project \
--system "Bạn là WordPress developer. Stack: PHP 8.2, MySQL 8.0, WP 6.4. \
Trả lời ngắn gọn bằng tiếng Việt, ưu tiên code snippet thực tế."
Alias giúp gõ nhanh hơn
# Thêm vào ~/.bashrc hoặc ~/.zshrc
alias ai='openclaw ask'
alias aic='openclaw chat'
alias explain='openclaw ask "Giải thích lệnh này: "'
# Áp dụng
source ~/.bashrc
# Dùng
ai "Cú pháp regex validate email trong Python"
explain "awk '{sum += \$1} END {print sum}'"
Export session ra Markdown để lưu lại
# Export cuộc hội thoại quan trọng thành file
openclaw sessions export wp-project --format markdown > notes/wp-project-notes.md
Cách này đã chạy ổn trên 2 VPS Ubuntu 22.04 — 6 tháng không gặp vấn đề, không memory leak. Pipeline hay dùng nhất là pipe stderr của service vào OpenClaw để phân tích lỗi realtime — nhanh hơn nhiều so với copy-paste lên web UI.
# Theo dõi log và hỏi ngay khi có lỗi
journalctl -u myapp -f | grep ERROR | while read line; do
echo "$line" | openclaw ask "Lỗi này nghĩa là gì và fix thế nào?"
done
Tổng kết
Hiện tại mình vẫn giữ cả Open WebUI lẫn OpenClaw, nhưng mỗi cái một mục đích: Open WebUI cho những lúc cần giao diện hoặc xử lý file phức tạp, OpenClaw cho mọi câu hỏi nhanh trong terminal hàng ngày. Không muốn phụ thuộc cloud và không muốn chạy thêm Docker chỉ để hỏi AI? Đây là điểm khởi đầu đáng thử — nhẹ, linh hoạt, dữ liệu ở lại trong máy.

