OpenClaw hấp dẫn vì nó biến agent thành một thứ bạn có thể nhắn qua Telegram, Slack, Discord hoặc channel khác. Nhưng chính điểm đó cũng nguy hiểm: một assistant luôn bật, có provider key, có workspace, có thể đọc file và có thể gọi tool, không nên được setup kiểu “cứ chạy thử đã”.
Bài này không lặp lại bài deep-dive OpenClaw: open-source agent framework đang dẫn đầu 2026. Ở đây chỉ có câu hỏi thực dụng hơn: nếu muốn dùng OpenClaw để vibe coding, setup bước đầu thế nào để không mở blast radius quá rộng.
Lưu ý quan trọng: command và capability của OpenClaw đổi nhanh. Trước khi làm theo trên máy thật, mở official docs của OpenClaw và kiểm tra lại lệnh cài đặt, quyền truy cập, cách nối channel, và nơi lưu credential.
OpenClaw trong bài này là gì
Trong ngữ cảnh vibe coding, tôi nhìn OpenClaw như một self-hosted gateway cho agent. Nó đứng giữa nhiều chat channel và agent runtime. Bạn nhắn từ Telegram, gateway nhận message, xác định sender, workspace, model provider, rồi agent xử lý task.
Đừng hiểu nó là “một app build website tự động”. Nó gần với personal agent runtime hơn: nhận yêu cầu, giữ session, gọi model, gọi tool, trả kết quả về channel.
Vì vậy setup OpenClaw nên bắt đầu từ ba ranh giới:
- Ai được nhắn cho agent.
- Agent được làm việc trong folder nào.
- Agent được gọi tool nào mà không cần hỏi lại.
Nếu ba ranh giới này mơ hồ, đừng nối nó vào repo thật.
Local hay VPS
Local machine phù hợp khi bạn mới học:
- dễ tắt process khi thấy hành vi lạ;
- không expose service ra internet;
- dễ nhìn log, file, workspace;
- phù hợp để smoke test trên toy repo.
VPS phù hợp khi bạn đã hiểu flow:
- agent chạy 24/7;
- dùng được từ điện thoại;
- tách khỏi laptop cá nhân;
- dễ giới hạn trong một home directory riêng.
Nhưng VPS cũng có risk riêng. Nếu bạn cấu hình webhook/channel sai, một service internet-facing có thể nhận input ngoài ý muốn. Nếu shell tool quá rộng, agent có thể chạm tới secrets, SSH key, deployment config. Vì vậy bài đầu nên dùng local hoặc VPS sạch, user riêng, không chứa data cá nhân.
Cài đặt tối thiểu
Docs OpenClaw hiện ghi Node 24 là recommended, hoặc Node 22 LTS từ 22.19 trở lên cho compatibility. Trước khi chạy theo, kiểm tra lại docs vì version requirement có thể đổi.
Skeleton setup nên đi theo thứ tự này:
node --version
npm --version
npm install -g openclaw@latest
openclaw onboard --install-daemon
openclaw gateway status
Theo README hiện tại, --install-daemon là đường recommended để Gateway chạy như user service. Nếu bạn chỉ muốn debug foreground, đọc docs về openclaw gateway stop và openclaw gateway --port 18789 --verbose. Nếu docs của bạn dùng lệnh khác, theo docs mới hơn. Đừng copy command từ blog này như source of truth.
Điểm cần chú ý không phải là cài được binary. Điểm cần chú ý là sau onboarding, bạn biết rõ các thứ này nằm ở đâu:
- config file;
- credentials store;
- workspace folder;
- log folder;
- command để stop gateway;
- command để kiểm tra status.
Nếu setup wizard tạo sẵn daemon hoặc service, đừng để nó chạy nền rồi quên. Ghi lại cách stop trước khi nối channel.
Tạo workspace đầu tiên
Workspace đầu tiên không nên là repo chính. Tạo một folder rỗng hoặc toy repo:
mkdir -p ~/agent-labs/openclaw-toy-app
cd ~/agent-labs/openclaw-toy-app
git init
printf '# Toy app\n' > README.md
git add README.md
git commit -m "chore(toy): init lab"
Mục tiêu của workspace đầu tiên là kiểm tra routing và permission, không phải ship app.
Trong OpenClaw, map agent hoặc channel vào workspace này. Nếu config hỗ trợ allowlist theo sender, bật allowlist ngay từ đầu. Chỉ cho phép Telegram user ID của bạn, không cho group public, không wildcard toàn bộ channel.
Một workspace tốt cho lab có tính chất:
- không có SSH key;
- không có
.envthật; - không mount cả home directory;
- có Git để rollback;
- có README mô tả mục tiêu lab.
Nếu agent cần đọc code, nó đọc toy repo. Nếu nó cần sửa file, nó sửa toy repo. Nếu nó tự tin quá mức, thiệt hại vẫn nhỏ.
Provider key và secrets
Provider key không được paste vào Telegram chat. Cũng không nên lưu trong repo. Nếu OpenClaw hỗ trợ auth command hoặc credentials store riêng, dùng cơ chế đó. Nếu dùng environment variable, đặt ở file local không commit.
Pattern tôi dùng:
mkdir -p ~/.openclaw-local
chmod 700 ~/.openclaw-local
Sau đó lưu token theo cách docs yêu cầu. Nếu docs nói credentials được lưu dưới thư mục riêng với permission chặt, kiểm tra lại permission bằng:
ls -la ~/.openclaw
Không cần khoe key cho agent biết. Agent chỉ cần provider đã được runtime cấu hình.
Nối Telegram nhưng giữ cửa hẹp
Telegram là control surface tiện nhất cho vibe coding qua điện thoại. Nhưng nó phải là một cửa hẹp.
Checklist trước khi bật:
- Bot token không nằm trong repo.
- Chỉ user ID của bạn được phép gửi task.
- Group chat nếu có thì phải require mention.
- Default workspace là toy repo.
- Shell/file-write tool nếu có thì phải qua approval hoặc giới hạn path.
Nếu OpenClaw docs hiện có lệnh riêng để connect Telegram, dùng lệnh trong docs. Đừng đoán tên command. Sau khi connect, test bằng message vô hại:
List files in the current workspace. Do not edit anything.
Kết quả mong muốn: agent chỉ thấy toy repo, không liệt kê home directory.
Smoke test đúng cách
Smoke test đầu tiên không phải “build me a SaaS”. Nó nên là một task nhỏ, quan sát được:
In this toy repo, create a single README section called "Lab Notes" with three bullet points about what this repo is for. Do not create any other file.
Sau đó kiểm tra:
git status --short
git diff
Nếu diff chỉ là README, tốt. Nếu agent tạo thêm folder, config, package, hoặc động vào file ngoài workspace, dừng setup và kiểm tra lại permission.
Smoke test thứ hai:
Before making any change, explain which file you will edit and wait for my approval.
Nếu agent vẫn sửa ngay, bạn chưa có approval boundary. Đừng dùng nó với repo thật.
Khi nào mới dùng với app thật
Chỉ chuyển sang app thật khi bạn đã pass bốn điều kiện:
- Bạn biết stop gateway.
- Bạn biết credential nằm ở đâu.
- Bạn xác minh agent chỉ thấy workspace được phép.
- Bạn đã rollback được một thay đổi bằng Git.
Ngay cả lúc đó, hãy bắt đầu bằng branch riêng và yêu cầu agent đọc repo trước:
Inspect this repo and summarize the app structure. Do not edit files. Do not run install commands. Do not read files outside the repository.
Vibe coding có kiểm soát không bắt đầu bằng prompt hay. Nó bắt đầu bằng blast radius nhỏ.
Chốt lại
OpenClaw phù hợp nếu bạn muốn một agent luôn sẵn sàng qua chat channel. Nhưng setup đầu tiên phải coi nó như một process có quyền trên máy, không phải chatbot vui vẻ.
Cài được là bước dễ. Bước khó là đảm bảo agent chỉ nghe đúng người, chỉ vào đúng folder, chỉ dùng đúng tool, và có Git checkpoint trước khi sửa. Nếu chưa làm được bốn thứ đó, OpenClaw chỉ nên chạy trong toy repo.