Nếu bạn đã nhấp vào bài viết này, có lẽ bạn đang dùng một trong các agent mã hóa tích hợp AI hiện có và muốn xem Roo Code thể hiện ra sao. Tóm lại, nếu phải gói gọn Roo Code trong vài từ, thì đó là:
- Mã nguồn mở
- Nhiều chế độ tương tác và persona
- Nhiệm vụ "boomerang"
- Hệ thống checkpoint giống Git
- Tùy biến chuyên sâu
- Quản lý ngữ cảnh nâng cao
Đây là những lợi thế Roo Code có thêm bên cạnh các tính năng chung mà mọi agent mã hóa AI đều cung cấp như hỗ trợ MCP, chat với codebase, thực thi lệnh terminal và chỉnh sửa tệp.
Trong hướng dẫn này, chúng ta sẽ khám phá Roo Code và tất cả những tính năng vừa nêu một cách chuyên sâu, đồng thời so sánh với Cline. Chúng ta sẽ cùng đi qua các ví dụ thực tiễn và xem cách những chế độ tương tác khác nhau giúp nó nổi bật trên thị trường agent AI đang rất sôi động.
Roo Code Là Gì Và Có Thể Làm Được Gì?
Roo Code là một trợ lý mã hóa AI mã nguồn mở hoạt động dưới dạng tiện ích mở rộng của VS Code. Khác với các công cụ tự động hoàn thành thông thường, nó đóng vai trò một đối tác phát triển có thể tùy biến, có thể tạo tệp, chạy lệnh terminal, duyệt website và xử lý các tác vụ nhiều bước qua các chế độ chuyên biệt. Bạn có thể kiểm soát chi tiết mọi thứ, từ quyền tự động phê duyệt đến nhà cung cấp lập chỉ mục codebase.
Công cụ hỗ trợ nhiều nhà cung cấp AI, bao gồm Anthropic, OpenAI, Google Gemini, AWS Bedrock và mô hình cục bộ qua Ollama. Nó hiểu các codebase lớn nhờ lập chỉ mục ngữ nghĩa có thể cấu hình, đi kèm tự động hóa trình duyệt, hỗ trợ giao thức MCP, và cô đọng ngữ cảnh thông minh cho các dự án phức tạp.
Những điểm khiến Roo Code khác biệt:
- Nhiều chế độ tương tác: Chuyển giữa Architect (lập kế hoạch), Code (triển khai), Ask (hỏi đáp), Debug (xử lý sự cố), và các chế độ tùy chỉnh cho từng giai đoạn phát triển
- Hồ sơ cấu hình: Gán các mô hình AI và thiết lập khác nhau cho từng chế độ, như dùng o3 cho lập kiến trúc và Claude Sonnet 4 để thực thi mã
- Nhiệm vụ Boomerang: Điều phối các quy trình phức tạp tự động di chuyển giữa nhiều chế độ và persona
- Quản lý ngữ cảnh nâng cao: Cấu hình giới hạn ngữ cảnh, bật cô đọng tự động và kiểm soát chính xác thông tin nào được đưa vào mỗi cuộc trao đổi
- Lập chỉ mục codebase có thể tùy biến: Tự chọn nhà cung cấp embedding và cơ sở dữ liệu vector cho tìm kiếm mã ngữ nghĩa, toàn quyền kiểm soát hành vi tìm kiếm và quyền riêng tư
Sự kết hợp này biến Roo Code từ một trợ lý đơn thuần thành một môi trường phát triển có thể cấu hình, thích ứng với thói quen làm việc và mở rộng theo yêu cầu dự án.
Cài Đặt Và Thiết Lập Roo Code
Roo Code có thể được cài đặt dễ dàng qua chợ tiện ích mở rộng của VS Code:

Sau khi cài đặt, hãy khởi động lại VS Code của bạn (hoặc Cursor, Windsurf) và tiện ích Roo Code sẽ xuất hiện ở thanh bên trái. Nhấp vào đó và làm theo các hướng dẫn trên màn hình để thiết lập tài khoản và cấu hình ban đầu. Bạn sẽ thấy giao diện như sau:

Tiếp theo, bạn cần chọn nhà cung cấp mô hình trong phần cài đặt vì Roo Code là mã nguồn mở và không bao gồm tín dụng trả trước:

Roo Code làm việc với cả nhà cung cấp AI lớn và nhỏ. Dù cá nhân tôi chỉ dùng các mô hình Claude, bạn có thể chọn các router bên thứ ba như OpenRouter, Requesty, hoặc các giải pháp doanh nghiệp như Google Vertex và AWS Bedrock. Tôi đề xuất bắt đầu với OpenRouter.
Roo Code cung cấp 5 USD tín dụng, và bạn có thể thiết lập chỉ với một API key để truy cập tất cả mô hình mà OpenRouter lưu trữ (gần như bất kỳ mô hình nào bạn nghĩ tới). Sau khi thiết lập API key OpenRouter, nhớ cuộn xuống trong cùng trang cài đặt và bật khả năng reasoning cho mô hình bạn chọn (trong hướng dẫn này, chúng ta sẽ dùng Claude 4 Sonnet):

Giờ thì bạn đã sẵn sàng bắt đầu dùng Roo Code!
Cách Sử Dụng Roo Code: 7 Ví Dụ Thực Tiễn
Trong phần này, chúng ta sẽ khám phá các tính năng chính của Roo Code khi xây dựng một trò chơi cờ ca-rô 4x4 đơn giản. Ví dụ này đủ đơn giản để giữ chi phí API thấp khi thử nghiệm, nhưng cũng đủ hoàn chỉnh để trình diễn mọi tính năng.
Bắt đầu thôi!
Cấu hình tự động phê duyệt (auto-approve)
Lúc đầu, chúng ta đã đề cập rằng Roo Code cho phép kiểm soát gần như toàn bộ hành vi của agent mã hóa. Điều này thể hiện xuyên suốt ở mọi tính năng mà Roo Code cung cấp — bắt đầu từ cài đặt auto-approve:

Việc kiểm soát chi tiết cài đặt auto-approve rất quan trọng vì nó cho phép bạn quyết định chính xác hành động AI nào diễn ra tự động và hành động nào cần bạn phê duyệt trước. Bạn có thể để các tác vụ thường lệ như chỉnh sửa mã nhanh được thông qua mà không bị dừng lại, trong khi giữ các hành động lớn hơn như xóa tệp hoặc lệnh terminal ở chế độ duyệt thủ công để tránh bất ngờ không mong muốn.
Sử dụng các chế độ khác nhau trong Roo Code
Roo Code có cách tiếp cận thấu đáo với phát triển dựa trên AI, giúp nó khác biệt so với các công cụ như Cursor hay Windsurf. Trong khi hầu hết IDE mang tính agent đẩy bạn vào chế độ thực thi ngay khi bạn mô tả yêu cầu, Roo Code nhận ra rằng nhảy vào viết code mà không có kế hoạch phù hợp thường dẫn đến rắc rối.
Tôi muốn xây dựng một trò chơi cờ ca-rô 4x4 bằng Python với giao diện terminal gọn gàng.
Trò chơi nên hỗ trợ hai người chơi luân phiên, phát hiện thắng theo hàng, cột,
và đường chéo, đồng thời xử lý kết quả hòa. Nên có yếu tố màu sắc, không chỉ đen trắng, nhưng hệ thống màu phải tối giản.
Hãy nghĩ về mặt trái của việc thực thi ngay: mã không phù hợp với kiến trúc tổng thể, triển khai vội vã tạo ra nợ kỹ thuật, và lời giải bỏ sót các trường hợp biên vì không có thời gian suy xét yêu cầu. Những vấn đề này tích tụ theo thời gian, gây đau đầu khi bảo trì và buộc bạn quay lại phần việc tưởng như đã “xong”.
Đó là lý do Roo Code cung cấp các chế độ tương tác khác nhau cho các giai đoạn phát triển phần mềm khác nhau:
- Chế độ Architect: Lập kế hoạch và thiết kế trước khi triển khai
- Chế độ Code: Viết, chỉnh sửa và tái cấu trúc mã
- Chế độ Ask: Nhận câu trả lời và giải thích
- Chế độ Debug: Chẩn đoán và sửa lỗi phần mềm
- Chế độ Orchestrator (nhiệm vụ boomerang): Điều phối tác vụ qua nhiều chế độ
- Chế độ tùy chỉnh: Xây dựng persona chuyên biệt như người viết tài liệu hay chuyên gia refactor
Bạn có thể chuyển chế độ từ menu thả xuống ở góc trái dưới hoặc dùng lệnh gạch chéo như /ask, /architect, /debug, /code trong ô chat. Tôi đặc biệt đánh giá cao việc có một chế độ hỏi đáp riêng không ảnh hưởng tới dự án hay mã nguồn — điều tôi thường xuyên làm trong các dự án của mình. Ở các IDE khác, điều này đồng nghĩa phải chuyển sang luồng chat mới hoặc dùng ChatGPT/Anthropic, luôn làm gián đoạn quy trình.

Những chế độ này không chỉ là các biến thể của một agent với prompt khác nhau. Mỗi chế độ đi kèm các công cụ và quyền truy cập được định sẵn bởi đội ngũ Roo Code. Ví dụ, chế độ Architect chỉ đọc dự án của bạn, trong khi chế độ Code có quyền dùng mọi công cụ như chỉnh sửa, lệnh terminal và MCP.

Chế độ Debug đáng được nhắc riêng vì nó dùng cách tiếp cận toán học để thu hẹp khả năng lỗi, với hướng dẫn tùy chỉnh để phản tư, chắt lọc khả năng, thêm log (điều mà LLM hiếm khi làm trừ khi được yêu cầu), và xác nhận trước khi sửa.
Các tính năng bổ sung giúp các chế độ trở nên mạnh mẽ:
- Mô hình "dính" (Sticky models): Bạn có thể gán mỗi chế độ một mô hình AI khác nhau như o3 cho Architect và Claude Sonnet 4 cho thực thi Code (một bộ đôi mạnh). Các mô hình gán này được giữ nguyên ngay cả khi chuyển chế độ hay khởi động lại VS Code.
- Chuyển đổi theo ngữ cảnh: Roo có thể xin phép chuyển chế độ giữa chừng dựa trên ngữ cảnh, đảm bảo bạn luôn dùng đúng công cụ cho công việc.

- Tùy biến toàn diện: Nếu các chế độ dựng sẵn chưa đáp ứng nhu cầu, bạn có thể tinh chỉnh system prompt của chúng (dù không khuyến nghị), thêm hướng dẫn tùy chỉnh, hoặc tạo chế độ riêng phù hợp tác vụ của bạn. Xem tài liệu về chế độ tùy chỉnh để biết hướng dẫn chi tiết về cách xây dựng persona chuyên biệt của riêng bạn.

Trò chơi cuối cùng do Roo tạo. Lưới tham chiếu vị trí trông lệch vì các LLM đều gặp khó khi đếm và căn chỉnh đầu ra trong terminal.
Sử dụng hồ sơ cấu hình (configuration profiles)
Một tính năng độc đáo khác trong Roo Code là khả năng tạo hồ sơ cấu hình tùy chỉnh. Trong khi các chế độ tương tác quyết định hành vi của agent, các hồ sơ cấu hình cho phép bạn tùy chỉnh ở cấp API bằng cách tạo các cấu hình LLM với thiết lập mô hình khác nhau.
Khi bạn đã cấu hình một nhà cung cấp như OpenRouter, bạn sẽ thấy một hồ sơ mặc định hiển thị cạnh chế độ tương tác ở góc trái dưới giao diện. Mở phần cài đặt sẽ cho thấy hồ sơ mặc định này chứa các cấu hình cụ thể cho mô hình đã chọn như Claude 4 Sonnet với giới hạn reasoning, giới hạn tốc độ và tham số nhiệt độ nhất định.

Bằng cách nhấp biểu tượng dấu cộng, bạn có thể tạo thêm các hồ sơ cấu hình để gán cho các chế độ tương tác khác nhau sau này. Điều này mở ra nhiều khả năng thú vị:
- Với chế độ người viết tài liệu tùy chỉnh, bạn có thể chọn Gemini 2.0 Flash với nhiệt độ thấp để tạo tài liệu nhanh
- Tạo hồ sơ khác với lượng thinking tokens tối đa cho chế độ architect hoặc debug khi cần kế hoạch chiến lược phức tạp hoặc sửa lỗi dai dẳng
- Thiết lập nhiệt độ khác nhau cho tác vụ sáng tạo so với công việc phân tích
- Cấu hình hồ sơ chuyên biệt cho các nhà cung cấp mô hình khác nhau, chuyển giữa OpenAI, Anthropic hoặc mô hình cục bộ tùy theo tác vụ
Khả năng ghép cặp mô hình và cấu hình cụ thể với từng chế độ tương tác mang lại mức kiểm soát mà bạn khó tìm thấy ở các nền tảng agent khác. Bạn có thể để o3 mini phụ trách lập kế hoạch kiến trúc trong khi Claude Sonnet 4 thực thi mã, mỗi bên với thiết lập tối ưu riêng.
Cấu hình lập chỉ mục codebase
Roo Code cho phép bạn cấu hình một khía cạnh khác mà hầu hết nền tảng mã hóa dạng agent thường “đóng kín”: lập chỉ mục codebase. Tính năng này hỗ trợ truy vấn ngôn ngữ tự nhiên như “Cách xác thực được xử lý ra sao?” hoặc “Chỉ cho tôi nơi chúng ta xóa bản ghi khách hàng,” ngay cả khi bạn không biết hàm hay tên tệp cụ thể.

Trong khi các IDE khác ẩn nhà cung cấp embedding với người dùng, Roo Code trao cho bạn toàn quyền kiểm soát cách codebase được lập chỉ mục và tìm kiếm. Điều này quan trọng vì các mô hình embedding khác nhau mạnh ở những tác vụ khác nhau, và bạn có thể muốn xử lý cục bộ cho dự án nhạy cảm hoặc giải pháp đám mây cho sự tiện lợi.
Hệ thống cần hai thành phần để hoạt động:
- Nhà cung cấp embedding để chuyển mã thành vector có thể tìm kiếm
- Cơ sở dữ liệu vector để lưu trữ và tìm kiếm các vector đó
Với nhà cung cấp embedding, bạn có thể chọn:
- Google Gemini (hiện miễn phí và khuyến nghị để bắt đầu)
- OpenAI (các mô hình text-embedding)
- Ollama (cho vận hành hoàn toàn cục bộ)
- Nhà cung cấp tương thích OpenAI (như triển khai trên Azure)
Với cơ sở dữ liệu vector, bạn có các lựa chọn sau:
- Qdrant Cloud với gói miễn phí để thử nghiệm
- Qdrant cục bộ chạy trong Docker để có tính riêng tư trọn vẹn
Cả hai thiết lập đều miễn phí để dùng thử.
Ngoài việc chọn nhà cung cấp, Roo Code cho phép tinh chỉnh hành vi tìm kiếm:
- Ngưỡng điểm tìm kiếm: Kiểm soát mức độ tương đồng cần có để mã khớp truy vấn. Giá trị thấp (0,15–0,3) trả về kết quả rộng để khám phá, trong khi giá trị cao (0,6–0,8) chỉ cho kết quả chính xác. Mặc định 0,4 cân bằng độ chính xác và độ bao phủ.
- Số lượng kết quả tối đa: Quy định số đoạn mã được trả về trong một lần tìm để kiểm soát ngữ cảnh mà không làm quá tải AI.
Tính linh hoạt của cấu hình mang lại nhiều lợi thế:
- Tìm kiếm ngữ nghĩa: Tìm mã theo ý nghĩa thay vì từ khóa chính xác
- Khám phá xuyên dự án: Tìm trên tất cả tệp, không chỉ những gì đang mở
- Nhận diện mẫu: Xác định các triển khai tương tự và mẫu mã trong toàn dự án
- Kiểm soát riêng tư: Giữ mọi thứ cục bộ với Ollama và Qdrant trong Docker, hoặc dùng nhà cung cấp đám mây cho tiện lợi
Hệ thống lập chỉ mục tôn trọng các mẫu bỏ qua của dự án trong .gitignore và .rooignore, vì vậy nó sẽ không lãng phí thời gian xử lý các thư mục phụ thuộc như node_modules. Nó cũng theo dõi thay đổi tệp và cập nhật chỉ mục tự động, đảm bảo tìm kiếm luôn cập nhật khi bạn code.
Cấu hình ngữ cảnh
Cửa sổ ngữ cảnh có lẽ là ràng buộc quan trọng nhất của các mô hình mã hóa. Kích thước cửa sổ quyết định lượng thông tin AI có thể xem xét cùng lúc, ảnh hưởng trực tiếp đến khả năng hiểu dự án và đưa ra quyết định sáng suốt trên nhiều tệp.
Vì vậy, kỹ nghệ ngữ cảnh là then chốt, tức là thiết kế luồng thông tin đi vào ngữ cảnh của mô hình. Một lần nữa, Roo Code cho phép bạn kiểm soát ở mức thấp nội dung nào được đưa vào ngữ cảnh và nội dung nào không.

Trong phần cài đặt, có một khung riêng để cấu hình ngữ cảnh. Tại đây, bạn có thể thiết lập:
- Giới hạn ngữ cảnh tab đang mở: Kiểm soát số tệp mở được tự động đưa vào
- Giới hạn ngữ cảnh tệp trong workspace: Đặt số tệp tối đa trong workspace có thể đọc
- Giới hạn số tệp đọc đồng thời: Quản lý số tệp có thể xử lý cùng lúc
- Số dòng đọc mỗi tệp: Giới hạn số dòng đọc từ mỗi tệp (-1 để đọc toàn bộ tệp)

Nếu cuộn xuống trong cùng khung này, bạn sẽ thấy tùy chọn khác để tự động kích hoạt cô đọng ngữ cảnh thông minh. Khi cửa sổ ngữ cảnh đầy đến một ngưỡng nhất định, một prompt tóm tắt tùy chỉnh (bạn có thể tự viết) sẽ được kích hoạt. Việc này cô đọng ngữ cảnh chỉ còn phần tóm tắt, giải phóng không gian để tiếp tục trao đổi và làm việc.
Trong các IDE như Cursor hay Windsurf, bạn phải chuyển sang luồng chat mới khi chạm giới hạn ngữ cảnh. Khi làm vậy, thông tin từ luồng hiện tại bị mất hoặc bạn phải tự tay chuyển thông tin sang luồng mới.
Thực thi lệnh terminal và cấu hình
Roo Code có thể tự động kết nối với terminal nội bộ của VS Code, thực thi lệnh và đọc đầu ra theo thời gian thực. Nếu muốn, nó cũng cung cấp tùy chọn terminal nội tuyến nhanh hơn hiển thị kết quả trực tiếp trong giao diện chat.
Dù tính năng thực thi terminal cũng có ở các nền tảng agent khác, các tùy chọn tùy biến của Roo Code giúp nó nổi bật. Hệ thống tích hợp shell hoạt động tự động mà không cần thiết lập và cung cấp cho bạn một số khả năng:
- Thực thi lệnh và đọc đầu ra mà không cần sao chép-dán thủ công
- Tự động phát hiện và sửa lỗi trong ứng dụng đang chạy
- Theo dõi mã thoát lệnh và thay đổi thư mục làm việc
- Dừng lệnh đang chạy ngay từ giao diện chat

Bạn có thể cấu hình một số tùy chọn dành riêng cho terminal trong phần cài đặt:
- Giới hạn đầu ra terminal: Kiểm soát lượng đầu ra lệnh được ghi nhận và đưa vào ngữ cảnh (mặc định: 500 dòng)
- Nén đầu ra thanh tiến trình: Xử lý đầu ra động như thanh tiến trình gọn gàng hơn, chỉ hiển thị trạng thái cuối thay vì mọi cập nhật
- Tắt tích hợp shell của terminal: Khi bật (khuyến nghị), Roo dùng terminal nội tuyến. Khi tắt, nó chạy lệnh trong bảng terminal của VS Code
Hệ thống cũng xử lý tốt các thiết lập shell phức tạp. Nếu bạn dùng ZSH với Oh My Zsh và powerlevel10k, hoặc các cấu hình tùy biến khác, Roo Code cung cấp các cách khắc phục cụ thể và thiết lập thời gian chờ cho những shell khởi tạo lâu hơn. Cũng có các tùy chọn riêng cho người dùng PowerShell trên Windows và thiết lập WSL.
Các tính năng tiện lợi (quality-of-life)
Ngoài các tính năng lớn đã đề cập, Roo Code còn có nhiều cải tiến tinh tế giúp công việc phát triển hằng ngày mượt mà và hiệu quả hơn.
@mention ngữ cảnh để thu thập thông tin toàn diện
@mention ngữ cảnh cung cấp cách mạnh mẽ để đưa thông tin cụ thể trực tiếp vào cuộc trò chuyện. Bạn có thể tham chiếu tệp, thư mục, đầu ra terminal, commit git, lỗi trong VS Code, và cả hình ảnh bằng cách dùng ký hiệu @ trong ô chat. Điều này giúp bạn cung cấp cho Roo Code chính xác ngữ cảnh cần thiết mà không cần sao chép-dán thủ công.
Tích hợp MCP với chợ một cú nhấp
Roo Code cung cấp khả năng tích hợp MCP (Model Context Protocol) mạnh mẽ với chợ chuyên dụng để cài đặt server chỉ bằng một cú nhấp. Dù chợ hiện có ít lựa chọn, bạn có thể đóng góp bằng cách mở pull request để thêm các server MCP chính thức vào kho Roo Code. Việc này mở ra khả năng truy cập các công cụ và dịch vụ bên ngoài chuyên biệt, mở rộng năng lực của Roo Code vượt xa các tính năng tích hợp sẵn.
Quản lý checkpoint với Git "bóng"
Quản lý checkpoint hoạt động thông qua một kho Git "bóng" chạy song song với mã hiện có của bạn. Điều này tạo lưới an toàn cho công việc, cho phép bạn tạo điểm khôi phục và theo dõi thay đổi mà không ảnh hưởng đến quy trình Git thông thường. Bạn có thể dễ dàng quay lại trạng thái trước nếu có sự cố trong quá trình phát triển.
Quản lý chat và theo dõi chi phí
Cửa sổ quản lý chat riêng giúp bạn tổ chức các cuộc trò chuyện bằng cách lọc theo workspace, ngày tạo, lượng token sử dụng, mức tiêu thụ cửa sổ ngữ cảnh và chi phí API thực tế. Tính minh bạch này giúp bạn hiểu và kiểm soát chi phí phát triển AI trong khi vẫn giữ công việc gọn gàng.
Nhập/xuất chế độ và chợ chia sẻ
Bạn có thể nhập và xuất các chế độ tùy chỉnh dưới dạng tệp văn bản, giúp chia sẻ thực hành mã hóa giữa các thành viên trong nhóm dễ dàng. Cũng có chợ riêng cho các chế độ, nơi bạn có thể đóng góp chế độ tự tạo để người khác dùng với nhập khẩu một cú nhấp. Điều này giúp tiêu chuẩn hóa cách làm trên các nhóm và chia sẻ quy trình đã được kiểm chứng.
Tối ưu hóa prompt tích hợp sẵn
Một nút luôn hiển thị trong ô nhập chat cho phép bạn tối ưu và cải thiện prompt trước khi gửi. Bạn thậm chí có thể viết prompt "trình tối ưu prompt" của riêng mình trong trang cài đặt chuyên dụng, điều chỉnh quá trình tối ưu hóa theo nhu cầu và phong cách của bạn.
Hành động trên trình duyệt qua computer use
Bạn có thể bật hành động trên trình duyệt qua khả năng computer use trong phần cài đặt. Điều này cho phép Roo Code tương tác trực tiếp với các ứng dụng web, mở ra khả năng kiểm thử, thu thập dữ liệu web và tự động hóa tương tác với các công cụ dựa trên trình duyệt.
Để được hướng dẫn thêm về việc tận dụng tối đa các tính năng này, hãy xem trang mẹo & thủ thuật trong tài liệu Roo Code.
Cline so với Roo Code
Roo Code và Cline có chung “dòng dõi” nhưng phát triển theo những hướng khác nhau. Roo Code thực tế khởi đầu với tên “Roo Cline,” là một nhánh của dự án Cline gốc. Các nhà phát triển đứng sau Roo Code nhìn thấy tiềm năng ở nền tảng của Cline nhưng muốn tiến xa hơn — rời bỏ phụ thuộc vào LangChain, cải thiện hiệu năng, và bổ sung các tính năng như nhiều chế độ tương tác và tùy biến sâu. Việc đổi tên thành “Roo Code” phản ánh tầm nhìn rộng hơn và trọng tâm rõ ràng hơn cho nhà phát triển.
Nếu Cline nhấn mạnh sự đơn giản và đồng hành, Roo Code hướng tới kiểm soát và linh hoạt. Cách tiếp cận human-in-the-loop của Cline nghĩa là mọi hành động đều cần phê duyệt — hoàn hảo cho lập trình viên muốn tham gia vào từng quyết định. Roo Code đi con đường khác với hệ thống chế độ, cho phép bạn chuyển giữa Architect chỉ lập kế hoạch, Code tập trung thực thi, hoặc Debug chuyên biệt. Mức kiểm soát chi tiết này mở rộng đến mọi thứ, từ nhà cung cấp lập chỉ mục codebase đến giới hạn đầu ra terminal.
Bộ tính năng phản ánh khác biệt về triết lý:
- Thế mạnh của Cline: Tách biệt Plan & Act, hệ thống bộ nhớ (memory bank), thiết lập đơn giản hơn, tích hợp chợ MCP đang hoạt động, quản lý checkpoint sau mỗi lần gọi công cụ
- Thế mạnh của Roo Code: Nhiều chế độ tương tác, hồ sơ cấu hình, lập chỉ mục codebase có thể tùy biến, nhiệm vụ boomerang cho quy trình phức tạp, cô đọng ngữ cảnh
- Tính năng chung: Mã nguồn mở, hỗ trợ MCP, checkpoint/kiểm soát phiên bản, quy tắc tùy chỉnh, trả phí theo mức sử dụng
Hãy chọn dựa trên phong cách và nhu cầu phát triển của bạn. Cline phù hợp nhất khi bạn muốn một đối tác AI thẳng thắn, luôn đưa bạn vào vòng lặp cho mọi thay đổi — lý tưởng cho phát triển cẩn trọng, có phương pháp hoặc khi làm việc với codebase quan trọng. Roo Code hợp với những ai muốn tinh chỉnh hành vi trợ lý AI, thử nghiệm nhiều chế độ làm việc, hoặc cần cấu hình chuyên biệt cho các loại dự án khác nhau. Cả hai công cụ đều tôn trọng quyền kiểm soát của bạn đối với quy trình phát triển; chúng chỉ cung cấp các mức độ tùy biến khác nhau để đạt được điều đó.
Kết Luận Và Tài Nguyên Tham Khảo
Roo Code phục vụ những người dùng “power user” làm việc trên các dự án lớn, phức tạp, đòi hỏi quản lý ngữ cảnh cẩn trọng và kiểm soát chính xác hành vi của agent. Với dự án vừa và nhỏ hoặc tạo mẫu nhanh, yêu cầu thiết lập của Roo Code có thể là quá nhiều. Nếu bạn mới bắt đầu với mã hóa tích hợp AI, tôi khuyên nên bắt đầu với Cline vì cách tiếp cận đơn giản hơn, hoặc thậm chí Cursor là một ChatGPT nâng cao trực tiếp trong VS Code của bạn.
Roo Code hoạt động tốt nhất khi bạn là người dùng giàu kinh nghiệm, đã hiểu các agent mã hóa tích hợp AI và muốn toàn quyền với quy trình làm việc. Thời gian học hệ thống cấu hình của nó sẽ xứng đáng khi bạn cần các tính năng như gán mô hình theo từng chế độ, lập chỉ mục codebase tùy chỉnh hoặc điều phối nhiệm vụ boomerang.
Để tìm hiểu thêm về trợ lý mã hóa AI, hãy xem các tài nguyên sau:
Nếu bạn đã nhấp vào bài viết này, có lẽ bạn đang dùng một trong các agent mã hóa tích hợp AI hiện có và muốn xem Roo Code thể hiện ra sao. Tóm lại, nếu phải gói gọn Roo Code trong vài từ, thì đó là:
Đây là những lợi thế Roo Code có thêm bên cạnh các tính năng chung mà mọi agent mã hóa AI đều cung cấp như hỗ trợ MCP, chat với codebase, thực thi lệnh terminal và chỉnh sửa tệp.
Trong hướng dẫn này, chúng ta sẽ khám phá Roo Code và tất cả những tính năng vừa nêu một cách chuyên sâu, đồng thời so sánh với Cline. Chúng ta sẽ cùng đi qua các ví dụ thực tiễn và xem cách những chế độ tương tác khác nhau giúp nó nổi bật trên thị trường agent AI đang rất sôi động.
Roo Code Là Gì Và Có Thể Làm Được Gì?
Roo Code là một trợ lý mã hóa AI mã nguồn mở hoạt động dưới dạng tiện ích mở rộng của VS Code. Khác với các công cụ tự động hoàn thành thông thường, nó đóng vai trò một đối tác phát triển có thể tùy biến, có thể tạo tệp, chạy lệnh terminal, duyệt website và xử lý các tác vụ nhiều bước qua các chế độ chuyên biệt. Bạn có thể kiểm soát chi tiết mọi thứ, từ quyền tự động phê duyệt đến nhà cung cấp lập chỉ mục codebase.
Công cụ hỗ trợ nhiều nhà cung cấp AI, bao gồm Anthropic, OpenAI, Google Gemini, AWS Bedrock và mô hình cục bộ qua Ollama. Nó hiểu các codebase lớn nhờ lập chỉ mục ngữ nghĩa có thể cấu hình, đi kèm tự động hóa trình duyệt, hỗ trợ giao thức MCP, và cô đọng ngữ cảnh thông minh cho các dự án phức tạp.
Những điểm khiến Roo Code khác biệt:
Sự kết hợp này biến Roo Code từ một trợ lý đơn thuần thành một môi trường phát triển có thể cấu hình, thích ứng với thói quen làm việc và mở rộng theo yêu cầu dự án.
Cài Đặt Và Thiết Lập Roo Code
Roo Code có thể được cài đặt dễ dàng qua chợ tiện ích mở rộng của VS Code:
Sau khi cài đặt, hãy khởi động lại VS Code của bạn (hoặc Cursor, Windsurf) và tiện ích Roo Code sẽ xuất hiện ở thanh bên trái. Nhấp vào đó và làm theo các hướng dẫn trên màn hình để thiết lập tài khoản và cấu hình ban đầu. Bạn sẽ thấy giao diện như sau:
Tiếp theo, bạn cần chọn nhà cung cấp mô hình trong phần cài đặt vì Roo Code là mã nguồn mở và không bao gồm tín dụng trả trước:
Roo Code làm việc với cả nhà cung cấp AI lớn và nhỏ. Dù cá nhân tôi chỉ dùng các mô hình Claude, bạn có thể chọn các router bên thứ ba như OpenRouter, Requesty, hoặc các giải pháp doanh nghiệp như Google Vertex và AWS Bedrock. Tôi đề xuất bắt đầu với OpenRouter.
Roo Code cung cấp 5 USD tín dụng, và bạn có thể thiết lập chỉ với một API key để truy cập tất cả mô hình mà OpenRouter lưu trữ (gần như bất kỳ mô hình nào bạn nghĩ tới). Sau khi thiết lập API key OpenRouter, nhớ cuộn xuống trong cùng trang cài đặt và bật khả năng reasoning cho mô hình bạn chọn (trong hướng dẫn này, chúng ta sẽ dùng Claude 4 Sonnet):
Giờ thì bạn đã sẵn sàng bắt đầu dùng Roo Code!
Cách Sử Dụng Roo Code: 7 Ví Dụ Thực Tiễn
Trong phần này, chúng ta sẽ khám phá các tính năng chính của Roo Code khi xây dựng một trò chơi cờ ca-rô 4x4 đơn giản. Ví dụ này đủ đơn giản để giữ chi phí API thấp khi thử nghiệm, nhưng cũng đủ hoàn chỉnh để trình diễn mọi tính năng.
Bắt đầu thôi!
Cấu hình tự động phê duyệt (auto-approve)
Lúc đầu, chúng ta đã đề cập rằng Roo Code cho phép kiểm soát gần như toàn bộ hành vi của agent mã hóa. Điều này thể hiện xuyên suốt ở mọi tính năng mà Roo Code cung cấp — bắt đầu từ cài đặt auto-approve:
Việc kiểm soát chi tiết cài đặt auto-approve rất quan trọng vì nó cho phép bạn quyết định chính xác hành động AI nào diễn ra tự động và hành động nào cần bạn phê duyệt trước. Bạn có thể để các tác vụ thường lệ như chỉnh sửa mã nhanh được thông qua mà không bị dừng lại, trong khi giữ các hành động lớn hơn như xóa tệp hoặc lệnh terminal ở chế độ duyệt thủ công để tránh bất ngờ không mong muốn.
Sử dụng các chế độ khác nhau trong Roo Code
Roo Code có cách tiếp cận thấu đáo với phát triển dựa trên AI, giúp nó khác biệt so với các công cụ như Cursor hay Windsurf. Trong khi hầu hết IDE mang tính agent đẩy bạn vào chế độ thực thi ngay khi bạn mô tả yêu cầu, Roo Code nhận ra rằng nhảy vào viết code mà không có kế hoạch phù hợp thường dẫn đến rắc rối.
Tôi muốn xây dựng một trò chơi cờ ca-rô 4x4 bằng Python với giao diện terminal gọn gàng.
Trò chơi nên hỗ trợ hai người chơi luân phiên, phát hiện thắng theo hàng, cột,
và đường chéo, đồng thời xử lý kết quả hòa. Nên có yếu tố màu sắc, không chỉ đen trắng, nhưng hệ thống màu phải tối giản.
Hãy nghĩ về mặt trái của việc thực thi ngay: mã không phù hợp với kiến trúc tổng thể, triển khai vội vã tạo ra nợ kỹ thuật, và lời giải bỏ sót các trường hợp biên vì không có thời gian suy xét yêu cầu. Những vấn đề này tích tụ theo thời gian, gây đau đầu khi bảo trì và buộc bạn quay lại phần việc tưởng như đã “xong”.
Đó là lý do Roo Code cung cấp các chế độ tương tác khác nhau cho các giai đoạn phát triển phần mềm khác nhau:
Bạn có thể chuyển chế độ từ menu thả xuống ở góc trái dưới hoặc dùng lệnh gạch chéo như
/ask,/architect,/debug,/codetrong ô chat. Tôi đặc biệt đánh giá cao việc có một chế độ hỏi đáp riêng không ảnh hưởng tới dự án hay mã nguồn — điều tôi thường xuyên làm trong các dự án của mình. Ở các IDE khác, điều này đồng nghĩa phải chuyển sang luồng chat mới hoặc dùng ChatGPT/Anthropic, luôn làm gián đoạn quy trình.Những chế độ này không chỉ là các biến thể của một agent với prompt khác nhau. Mỗi chế độ đi kèm các công cụ và quyền truy cập được định sẵn bởi đội ngũ Roo Code. Ví dụ, chế độ Architect chỉ đọc dự án của bạn, trong khi chế độ Code có quyền dùng mọi công cụ như chỉnh sửa, lệnh terminal và MCP.
Chế độ Debug đáng được nhắc riêng vì nó dùng cách tiếp cận toán học để thu hẹp khả năng lỗi, với hướng dẫn tùy chỉnh để phản tư, chắt lọc khả năng, thêm log (điều mà LLM hiếm khi làm trừ khi được yêu cầu), và xác nhận trước khi sửa.
Các tính năng bổ sung giúp các chế độ trở nên mạnh mẽ:
Trò chơi cuối cùng do Roo tạo. Lưới tham chiếu vị trí trông lệch vì các LLM đều gặp khó khi đếm và căn chỉnh đầu ra trong terminal.
Sử dụng hồ sơ cấu hình (configuration profiles)
Một tính năng độc đáo khác trong Roo Code là khả năng tạo hồ sơ cấu hình tùy chỉnh. Trong khi các chế độ tương tác quyết định hành vi của agent, các hồ sơ cấu hình cho phép bạn tùy chỉnh ở cấp API bằng cách tạo các cấu hình LLM với thiết lập mô hình khác nhau.
Khi bạn đã cấu hình một nhà cung cấp như OpenRouter, bạn sẽ thấy một hồ sơ mặc định hiển thị cạnh chế độ tương tác ở góc trái dưới giao diện. Mở phần cài đặt sẽ cho thấy hồ sơ mặc định này chứa các cấu hình cụ thể cho mô hình đã chọn như Claude 4 Sonnet với giới hạn reasoning, giới hạn tốc độ và tham số nhiệt độ nhất định.
Bằng cách nhấp biểu tượng dấu cộng, bạn có thể tạo thêm các hồ sơ cấu hình để gán cho các chế độ tương tác khác nhau sau này. Điều này mở ra nhiều khả năng thú vị:
Khả năng ghép cặp mô hình và cấu hình cụ thể với từng chế độ tương tác mang lại mức kiểm soát mà bạn khó tìm thấy ở các nền tảng agent khác. Bạn có thể để o3 mini phụ trách lập kế hoạch kiến trúc trong khi Claude Sonnet 4 thực thi mã, mỗi bên với thiết lập tối ưu riêng.
Cấu hình lập chỉ mục codebase
Roo Code cho phép bạn cấu hình một khía cạnh khác mà hầu hết nền tảng mã hóa dạng agent thường “đóng kín”: lập chỉ mục codebase. Tính năng này hỗ trợ truy vấn ngôn ngữ tự nhiên như “Cách xác thực được xử lý ra sao?” hoặc “Chỉ cho tôi nơi chúng ta xóa bản ghi khách hàng,” ngay cả khi bạn không biết hàm hay tên tệp cụ thể.
Trong khi các IDE khác ẩn nhà cung cấp embedding với người dùng, Roo Code trao cho bạn toàn quyền kiểm soát cách codebase được lập chỉ mục và tìm kiếm. Điều này quan trọng vì các mô hình embedding khác nhau mạnh ở những tác vụ khác nhau, và bạn có thể muốn xử lý cục bộ cho dự án nhạy cảm hoặc giải pháp đám mây cho sự tiện lợi.
Hệ thống cần hai thành phần để hoạt động:
Với nhà cung cấp embedding, bạn có thể chọn:
Với cơ sở dữ liệu vector, bạn có các lựa chọn sau:
Cả hai thiết lập đều miễn phí để dùng thử.
Ngoài việc chọn nhà cung cấp, Roo Code cho phép tinh chỉnh hành vi tìm kiếm:
Tính linh hoạt của cấu hình mang lại nhiều lợi thế:
Hệ thống lập chỉ mục tôn trọng các mẫu bỏ qua của dự án trong
.gitignorevà.rooignore, vì vậy nó sẽ không lãng phí thời gian xử lý các thư mục phụ thuộc nhưnode_modules. Nó cũng theo dõi thay đổi tệp và cập nhật chỉ mục tự động, đảm bảo tìm kiếm luôn cập nhật khi bạn code.Cấu hình ngữ cảnh
Cửa sổ ngữ cảnh có lẽ là ràng buộc quan trọng nhất của các mô hình mã hóa. Kích thước cửa sổ quyết định lượng thông tin AI có thể xem xét cùng lúc, ảnh hưởng trực tiếp đến khả năng hiểu dự án và đưa ra quyết định sáng suốt trên nhiều tệp.
Vì vậy, kỹ nghệ ngữ cảnh là then chốt, tức là thiết kế luồng thông tin đi vào ngữ cảnh của mô hình. Một lần nữa, Roo Code cho phép bạn kiểm soát ở mức thấp nội dung nào được đưa vào ngữ cảnh và nội dung nào không.
Trong phần cài đặt, có một khung riêng để cấu hình ngữ cảnh. Tại đây, bạn có thể thiết lập:
Nếu cuộn xuống trong cùng khung này, bạn sẽ thấy tùy chọn khác để tự động kích hoạt cô đọng ngữ cảnh thông minh. Khi cửa sổ ngữ cảnh đầy đến một ngưỡng nhất định, một prompt tóm tắt tùy chỉnh (bạn có thể tự viết) sẽ được kích hoạt. Việc này cô đọng ngữ cảnh chỉ còn phần tóm tắt, giải phóng không gian để tiếp tục trao đổi và làm việc.
Trong các IDE như Cursor hay Windsurf, bạn phải chuyển sang luồng chat mới khi chạm giới hạn ngữ cảnh. Khi làm vậy, thông tin từ luồng hiện tại bị mất hoặc bạn phải tự tay chuyển thông tin sang luồng mới.
Thực thi lệnh terminal và cấu hình
Roo Code có thể tự động kết nối với terminal nội bộ của VS Code, thực thi lệnh và đọc đầu ra theo thời gian thực. Nếu muốn, nó cũng cung cấp tùy chọn terminal nội tuyến nhanh hơn hiển thị kết quả trực tiếp trong giao diện chat.
Dù tính năng thực thi terminal cũng có ở các nền tảng agent khác, các tùy chọn tùy biến của Roo Code giúp nó nổi bật. Hệ thống tích hợp shell hoạt động tự động mà không cần thiết lập và cung cấp cho bạn một số khả năng:
Bạn có thể cấu hình một số tùy chọn dành riêng cho terminal trong phần cài đặt:
Hệ thống cũng xử lý tốt các thiết lập shell phức tạp. Nếu bạn dùng ZSH với Oh My Zsh và powerlevel10k, hoặc các cấu hình tùy biến khác, Roo Code cung cấp các cách khắc phục cụ thể và thiết lập thời gian chờ cho những shell khởi tạo lâu hơn. Cũng có các tùy chọn riêng cho người dùng PowerShell trên Windows và thiết lập WSL.
Các tính năng tiện lợi (quality-of-life)
Ngoài các tính năng lớn đã đề cập, Roo Code còn có nhiều cải tiến tinh tế giúp công việc phát triển hằng ngày mượt mà và hiệu quả hơn.
@mention ngữ cảnh để thu thập thông tin toàn diện
@mention ngữ cảnh cung cấp cách mạnh mẽ để đưa thông tin cụ thể trực tiếp vào cuộc trò chuyện. Bạn có thể tham chiếu tệp, thư mục, đầu ra terminal, commit git, lỗi trong VS Code, và cả hình ảnh bằng cách dùng ký hiệu @ trong ô chat. Điều này giúp bạn cung cấp cho Roo Code chính xác ngữ cảnh cần thiết mà không cần sao chép-dán thủ công.
Tích hợp MCP với chợ một cú nhấp
Roo Code cung cấp khả năng tích hợp MCP (Model Context Protocol) mạnh mẽ với chợ chuyên dụng để cài đặt server chỉ bằng một cú nhấp. Dù chợ hiện có ít lựa chọn, bạn có thể đóng góp bằng cách mở pull request để thêm các server MCP chính thức vào kho Roo Code. Việc này mở ra khả năng truy cập các công cụ và dịch vụ bên ngoài chuyên biệt, mở rộng năng lực của Roo Code vượt xa các tính năng tích hợp sẵn.
Quản lý checkpoint với Git "bóng"
Quản lý checkpoint hoạt động thông qua một kho Git "bóng" chạy song song với mã hiện có của bạn. Điều này tạo lưới an toàn cho công việc, cho phép bạn tạo điểm khôi phục và theo dõi thay đổi mà không ảnh hưởng đến quy trình Git thông thường. Bạn có thể dễ dàng quay lại trạng thái trước nếu có sự cố trong quá trình phát triển.
Quản lý chat và theo dõi chi phí
Cửa sổ quản lý chat riêng giúp bạn tổ chức các cuộc trò chuyện bằng cách lọc theo workspace, ngày tạo, lượng token sử dụng, mức tiêu thụ cửa sổ ngữ cảnh và chi phí API thực tế. Tính minh bạch này giúp bạn hiểu và kiểm soát chi phí phát triển AI trong khi vẫn giữ công việc gọn gàng.
Nhập/xuất chế độ và chợ chia sẻ
Bạn có thể nhập và xuất các chế độ tùy chỉnh dưới dạng tệp văn bản, giúp chia sẻ thực hành mã hóa giữa các thành viên trong nhóm dễ dàng. Cũng có chợ riêng cho các chế độ, nơi bạn có thể đóng góp chế độ tự tạo để người khác dùng với nhập khẩu một cú nhấp. Điều này giúp tiêu chuẩn hóa cách làm trên các nhóm và chia sẻ quy trình đã được kiểm chứng.
Tối ưu hóa prompt tích hợp sẵn
Một nút luôn hiển thị trong ô nhập chat cho phép bạn tối ưu và cải thiện prompt trước khi gửi. Bạn thậm chí có thể viết prompt "trình tối ưu prompt" của riêng mình trong trang cài đặt chuyên dụng, điều chỉnh quá trình tối ưu hóa theo nhu cầu và phong cách của bạn.
Hành động trên trình duyệt qua computer use
Bạn có thể bật hành động trên trình duyệt qua khả năng computer use trong phần cài đặt. Điều này cho phép Roo Code tương tác trực tiếp với các ứng dụng web, mở ra khả năng kiểm thử, thu thập dữ liệu web và tự động hóa tương tác với các công cụ dựa trên trình duyệt.
Để được hướng dẫn thêm về việc tận dụng tối đa các tính năng này, hãy xem trang mẹo & thủ thuật trong tài liệu Roo Code.
Cline so với Roo Code
Roo Code và Cline có chung “dòng dõi” nhưng phát triển theo những hướng khác nhau. Roo Code thực tế khởi đầu với tên “Roo Cline,” là một nhánh của dự án Cline gốc. Các nhà phát triển đứng sau Roo Code nhìn thấy tiềm năng ở nền tảng của Cline nhưng muốn tiến xa hơn — rời bỏ phụ thuộc vào LangChain, cải thiện hiệu năng, và bổ sung các tính năng như nhiều chế độ tương tác và tùy biến sâu. Việc đổi tên thành “Roo Code” phản ánh tầm nhìn rộng hơn và trọng tâm rõ ràng hơn cho nhà phát triển.
Nếu Cline nhấn mạnh sự đơn giản và đồng hành, Roo Code hướng tới kiểm soát và linh hoạt. Cách tiếp cận human-in-the-loop của Cline nghĩa là mọi hành động đều cần phê duyệt — hoàn hảo cho lập trình viên muốn tham gia vào từng quyết định. Roo Code đi con đường khác với hệ thống chế độ, cho phép bạn chuyển giữa Architect chỉ lập kế hoạch, Code tập trung thực thi, hoặc Debug chuyên biệt. Mức kiểm soát chi tiết này mở rộng đến mọi thứ, từ nhà cung cấp lập chỉ mục codebase đến giới hạn đầu ra terminal.
Bộ tính năng phản ánh khác biệt về triết lý:
Hãy chọn dựa trên phong cách và nhu cầu phát triển của bạn. Cline phù hợp nhất khi bạn muốn một đối tác AI thẳng thắn, luôn đưa bạn vào vòng lặp cho mọi thay đổi — lý tưởng cho phát triển cẩn trọng, có phương pháp hoặc khi làm việc với codebase quan trọng. Roo Code hợp với những ai muốn tinh chỉnh hành vi trợ lý AI, thử nghiệm nhiều chế độ làm việc, hoặc cần cấu hình chuyên biệt cho các loại dự án khác nhau. Cả hai công cụ đều tôn trọng quyền kiểm soát của bạn đối với quy trình phát triển; chúng chỉ cung cấp các mức độ tùy biến khác nhau để đạt được điều đó.
Kết Luận Và Tài Nguyên Tham Khảo
Roo Code phục vụ những người dùng “power user” làm việc trên các dự án lớn, phức tạp, đòi hỏi quản lý ngữ cảnh cẩn trọng và kiểm soát chính xác hành vi của agent. Với dự án vừa và nhỏ hoặc tạo mẫu nhanh, yêu cầu thiết lập của Roo Code có thể là quá nhiều. Nếu bạn mới bắt đầu với mã hóa tích hợp AI, tôi khuyên nên bắt đầu với Cline vì cách tiếp cận đơn giản hơn, hoặc thậm chí Cursor là một ChatGPT nâng cao trực tiếp trong VS Code của bạn.
Roo Code hoạt động tốt nhất khi bạn là người dùng giàu kinh nghiệm, đã hiểu các agent mã hóa tích hợp AI và muốn toàn quyền với quy trình làm việc. Thời gian học hệ thống cấu hình của nó sẽ xứng đáng khi bạn cần các tính năng như gán mô hình theo từng chế độ, lập chỉ mục codebase tùy chỉnh hoặc điều phối nhiệm vụ boomerang.
Để tìm hiểu thêm về trợ lý mã hóa AI, hãy xem các tài nguyên sau: