Hướng dẫn cài đặt và cấu hình Roo Code (Cline) trên VS Code: Biến AI thành cộng sự tự trị

Artificial Intelligence tutorial - IT technology blog
Artificial Intelligence tutorial - IT technology blog

Khoảng cách giữa Autocomplete và một AI Coding Agent

GitHub Copilot hay Cursor Tab rất tiện khi bạn gõ nhanh một hàm helper hoặc boilerplate. Nhưng khi gặp bài toán thực tế — ví dụ refactor 5 file service cùng lúc, đồng bộ Prisma schema với migration script, hoặc chạy test rồi sửa mã đến khi pass — công cụ autocomplete lập tức chạm trần.

Quy trình cũ rất tốn công: copy code sang cửa sổ chat, copy lỗi terminal ngược lại, rồi paste từng diff vào editor. Bạn phải đóng vai trò “người chuyển tiếp tin nhắn” giữa terminal và LLM.

Autonomous Coding Agent giải quyết triệt để sự phiền toái này. Bản fork mã nguồn mở nổi bật hiện nay là Roo Code (phát triển từ Cline) được cấp quyền thao tác trực tiếp trên workspace VS Code: đọc cây thư mục, soi nội dung file, tạo git diff để áp dụng thay đổi, và tự mở terminal chạy lệnh test hoặc build để sửa lỗi vòng lặp.

Cài đặt Roo Code trên VS Code trong 1 phút

Roo Code mở rộng từ Cline với nhiều cải tiến: chia chế độ làm việc (Code, Architect, Ask), hỗ trợ Custom Modes và tối ưu token context. Các bước cài đặt:

  1. Nhấn tổ hợp phím Ctrl + Shift + X (hoặc Cmd + Shift + X trên macOS) để mở Extensions.
  2. Tìm kiếm từ khóa Roo Code.
  3. Chọn extension do RooVeterinaryInc phát hành rồi bấm Install.

Cài đặt xong, biểu tượng hình chú kangaroo sẽ xuất hiện ở thanh Activity Bar bên trái. Nhấp vào icon này để mở panel làm việc.

Cấu hình Provider và tối ưu ngân sách token

Khác với mô hình thu phí cố định 20 USD/tháng, Roo Code sử dụng cơ chế BYOK (Bring Your Own Key). Bạn chỉ trả tiền đúng theo lượng token API tiêu thụ. Nếu không cấu hình hợp lý, bạn vừa dễ “cháy túi”, vừa đối mặt với rủi ro để AI chạy lệnh phá hoại workspace.

1. Thiết lập API Provider qua OpenRouter

Nhấp vào icon bánh răng (Settings) ở góc trên panel Roo Code. Tại mục Provider, bạn nên chọn OpenRouter thay vì kết nối thẳng tới từng hãng riêng lẻ. OpenRouter cho phép nạp trước 5–10 USD qua thẻ quốc tế và đổi model linh hoạt theo từng độ khó của task:

  • Task hóc búa, đổi kiến trúc, refactor logic chéo file: Dùng Claude 3.5 Sonnet hoặc Claude 3.7 Sonnet. Hai model này sinh diff cực kỳ chuẩn xác, ít hallucination và hỗ trợ prompt caching giúp giảm tới 80–90% chi phí đọc lại context. Một phiên refactor phức tạp thường tiêu tốn khoảng 0.20 – 0.60 USD.
  • Task cơ bản (viết unit test, gen mock data, tra cứu code): Chuyển sang DeepSeek V3 hoặc Gemini 2.5 Flash. Chi phí chỉ khoảng 0.14 – 0.30 USD cho mỗi triệu token, rẻ hơn 10 lần so với Claude nhưng vẫn xử lý mượt các tác vụ đơn lập.

2. Ép khuôn agent với file .clinerules

Mỗi repository đều có convention riêng. Thay vì lặp lại các yêu cầu như “không dùng any” hay “dùng Vitest thay vì Jest” trong từng prompt, hãy tạo file .clinerules ngay tại thư mục gốc dự án.

Dưới đây là file mẫu cho dự án Node.js/TypeScript:

# Project Rules for Roo Code

## Tech Stack
- Runtime: Node.js 20 LTS
- Framework: Fastify with TypeScript
- Testing: Vitest
- ORM: Prisma

## Coding Standards
- Ưu tiên functional programming, hạn chế dùng class trừ service adapter.
- Nghiêm cấm dùng type `any`, luôn định nghĩa interface hoặc type tường minh.
- Khi chỉnh sửa business logic, bắt buộc bổ sung unit test trong `tests/`.
- Giữ nguyên các comment giải thích nghiệp vụ sẵn có trong file.

## Terminal Restrictions
- Chỉ chạy test trên file chỉ định: `npx vitest run <path-to-test>`.
- Không chạy toàn bộ test suite khi chưa có yêu cầu.
- Cấm tự ý gõ `npm install` để thêm package mới mà chưa hỏi trước.

Roo Code sẽ tự nạp nội dung file này vào system prompt ở mỗi lượt chat. Agent sẽ bám sát chuẩn của team ngay từ file đầu tiên.

3. Phân quyền Auto-Approval an toàn

Roo Code có thể tự gõ lệnh bash và sửa code trên máy bạn. Đây là thế mạnh, nhưng cũng là con dao hai lưỡi nếu bạn trao toàn quyền cho AI. Vào mục Auto-Approve trong Settings để siết lại quyền:

  • Read files & Directory listing: Bật Always allow. Thao tác đọc file và tra cứu thư mục hoàn toàn vô hại, giúp agent quét codebase nhanh mà không phải chờ bạn bấm xác nhận liên tục.
  • Edit files: Giữ chế độ Manual Approve. Hãy tạo thói quen kiểm tra git diff hiển thị trên panel trước khi cho phép AI ghi đè nội dung lên ổ đĩa.
  • Execute Terminal Commands: Tuyệt đối không bật phê duyệt tự động toàn bộ. Bạn chỉ nên whitelist một vài lệnh an toàn như git status, git diff, npx vitest*. Các lệnh tác động tới hạ tầng như prisma migrate, git push, hoặc lệnh xóa rm, del dứt khoát phải bấm duyệt thủ công.

Kiểm soát vòng lặp và context thực tế

Để tránh tình trạng agent chạy vòng quanh, sửa sai rồi lại sửa tiếp làm tiêu tốn API, bạn nên áp dụng quy trình kiểm soát sau:

1. Bắt đầu với một prompt có phạm vi hẹp

Đừng ra lệnh mơ hồ như: “Viết API auth cho tôi”. Hãy chia nhỏ thành mục tiêu cụ thể:

# Prompt mẫu rõ ràng, có tiêu chí nghiệm thu:
"Đọc file src/utils/jwt.ts. Viết hàm verifyToken(token: string) có handle lỗi TokenExpiredError.
Sau đó tạo test tương ứng trong tests/jwt.test.ts và chạy `npx vitest run tests/jwt.test.ts` để kiểm chứng."

Agent sẽ tự động gọi read_file, tạo diff bổ sung hàm, rồi tự mở terminal chạy Vitest. Nếu test báo đỏ, nó sẽ đọc stack trace và tự sửa file cho tới khi test pass.

2. Theo dõi Context Size để tránh tốn tiền oan

Nhìn xuống thanh trạng thái dưới cùng của panel Roo Code, bạn sẽ thấy hai chỉ số:

  • Context: Số lượng token đang lưu trong bộ nhớ phiên làm việc. Khi con số này vượt qua mốc 60.000 – 70.000 tokens, chi phí mỗi lượt request sẽ tăng vọt vì LLM phải đọc lại toàn bộ lịch sử dài ngoằng. Model cũng dễ rơi vào trạng thái “loạn ngữ” và quên mất chỉ thị ban đầu.
  • Cost: Chi phí tích lũy theo thời gian thực của task hiện tại.

Giải pháp rất đơn giản: khi xong một task, hãy bấm nút New Task (+) để dọn sạch context. Một phiên làm việc chỉ nên giải quyết một đầu việc duy nhất.

Cuối cùng, trước khi giao việc lớn cho agent, hãy tạo một checkpoint an toàn với Git:

git checkout -b chore/agent-refactor-auth
git add . && git commit -m "checkpoint before roo code session"

Nếu agent lạc lối và sửa hỏng codebase, bạn chỉ mất 2 giây để gõ git reset --hard HEAD và đưa mọi thứ về trạng thái ban đầu.

Share: