Site logo
Authors
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Published on
Published on

GitHub Copilot Agent Mode: Công cụ AI tự động hóa toàn diện cho lập trình viên

Giới thiệu

GitHub Copilot đã phát triển từ một công cụ hoàn thành code thông minh trở thành một trợ lý lập trình được hỗ trợ bởi AI với chế độ Agent. Tính năng này cho phép Copilot hiểu ngữ cảnh, thực hiện các tác vụ và tự động hóa quy trình làm việc trực tiếp trong IDE của bạn, tạo cảm giác như bạn đang làm việc cùng một lập trình viên senior.

Chế độ Agent được thiết kế để giúp bạn giải quyết các tác vụ lập trình phức tạp, từ viết code đến debug và testing, đồng thời vẫn giữ cho bạn toàn quyền kiểm soát. Trong bài viết này, chúng ta sẽ khám phá các tính năng chính của chế độ Agent của GitHub Copilot, cách sử dụng nó hiệu quả và tác động tiềm năng đến quy trình phát triển của bạn.

Copilot agent mode

Chế độ Agent của GitHub Copilot là gì?

GitHub Copilot từ lâu đã được biết đến như một AI pair programmer, cung cấp các gợi ý và hoàn thành code khi bạn gõ. Tuy nhiên, với chế độ Agent, nó phát triển thành một công cụ mạnh mẽ hơn nhiều: một agent tự động có khả năng giải quyết các tác vụ lập trình đa bước với sự hỗ trợ tối thiểu. Hãy xem nó như một cộng sự không chỉ gợi ý code mà còn phân tích codebase, đề xuất chỉnh sửa, chạy các lệnh terminal, theo dõi output và lặp lại cho đến khi hoàn thành công việc.

Không giống như các tính năng truyền thống của Copilot, tập trung vào các gợi ý thời gian thực hoặc chỉnh sửa đa file thông qua Copilot Edits, chế độ Agent hoạt động trong một vòng lặp động và lặp đi lặp lại. Nó có thể:

  • Phân tích workspace của bạn: Tự động xác định các file và ngữ cảnh liên quan.
  • Thực hiện các tác vụ: Viết code, chạy build và thực hiện các test.
  • Tự điều chỉnh: Phản hồi với các lỗi (compile, lint hoặc runtime) và điều chỉnh cách tiếp cận.
  • Suy luận ý định: Vượt ra ngoài prompt rõ ràng của bạn để xử lý các tác vụ phụ liên quan.

Hành vi tác nhân này—nơi AI chủ động trong khi vẫn giữ cho bạn kiểm soát—đánh dấu một bước tiến quan trọng trong cách chúng ta tương tác với các trợ lý lập trình.

Các tính năng chính của chế độ Agent của GitHub Copilot

  • Nhận thức ngữ cảnh: Chế độ Agent hiểu ngữ cảnh của codebase, cho phép nó đưa ra các gợi ý phù hợp và thực hiện các tác vụ dựa trên dự án hiện tại của bạn.
  • Giao diện hội thoại: Bạn có thể tương tác với Copilot bằng ngôn ngữ tự nhiên, giúp việc truyền đạt nhu cầu và nhận phản hồi phù hợp trở nên dễ dàng hơn.
  • Tự động hóa tác vụ: Chế độ Agent có thể tự động hóa các tác vụ lặp đi lặp lại như tạo code, testing và debugging, giải phóng bạn để tập trung vào các vấn đề phức tạp hơn.
  • Hợp tác thời gian thực: AI hoạt động như một đối tác cộng tác, cung cấp gợi ý và thực hiện các tác vụ theo thời gian thực, nâng cao trải nghiệm lập trình của bạn.
  • Xử lý lỗi: Chế độ Agent có thể xác định và giải quyết các lỗi trong code của bạn, khiến nó trở thành công cụ có giá trị cho việc debugging và cải thiện chất lượng code.
  • Tích hợp với VS Code: Chế độ Agent được tích hợp liền mạch vào Visual Studio Code, cho phép bạn tận dụng các khả năng của nó mà không cần rời khỏi môi trường phát triển.

Bắt đầu với Chế độ Agent trong VS Code

  1. Mở command palette (Ctrl+Shift+P hoặc Cmd+Shift+P trên Mac).
  2. Open user settings
  3. Tìm kiếm chat.agent.enabled
  4. Đánh dấu vào ô để bật GitHub Copilot Agent Mode
  5. Đóng tab cài đặt.
  6. Mở Copilot chat (Ctrl+Shift+I hoặc Cmd+Shift+I trên Mac) và chuyển sang chế độ agent.

Vscode enable agent mode

Copilot agent mode

  1. Viết prompt:
    • Trong chế độ Agent, bạn có thể chỉ định yêu cầu cấp cao mà không cần chỉ rõ các file cần làm việc. Copilot sẽ tự xác định ngữ cảnh và file liên quan để chỉnh sửa một cách độc lập.
    • Thử nghiệm với một số prompt ví dụ sau để bắt đầu:
      • "Tạo một ứng dụng web lập kế hoạch bữa ăn sử dụng React và Node.js."
      • "Thêm chức năng chia sẻ mạng xã hội."
      • "Thay thế xác thực hiện tại bằng OAuth."
    • Bạn cũng có thể yêu cầu Copilot hỗ trợ với các tác vụ cụ thể, chẳng hạn như:
      • "Tạo trang đăng nhập có xác thực..."
      • "Triển khai tính năng lọc kết quả tìm kiếm..."
      • "Tạo layout responsive cho thiết bị di động."
  2. Xem xét và Phê duyệt
    1. Chế độ Agent sẽ đề xuất các thay đổi, chạy lệnh và kiểm tra kết quả. Bạn sẽ thấy từng bước trong giao diện, với các tùy chọn để phê duyệt lệnh terminal hoặc hoàn tác chỉnh sửa nếu cần.
  3. Học liên tục
  • Chế độ Agent học từ phản hồi và tương tác của bạn, cải thiện các đề xuất và thực hiện tác vụ theo thời gian.

Cách Chế độ Agent Hoạt động bên dưới

Sự kỳ diệu của chế độ Agent nằm ở quy trình lặp lại và tích hợp công cụ. Dưới đây là cái nhìn về những gì xảy ra khi bạn gửi một prompt:

  1. Thu thập ngữ cảnh: Nó quét workspace của bạn, tận dụng các công cụ như tìm kiếm file để xác định code liên quan.
  2. Lập kế hoạch và thực thi: Nó chia yêu cầu của bạn thành các tác vụ phụ, đề xuất chỉnh sửa code và chạy lệnh (ví dụ: npm install, tsc --build).
  3. Giám sát và lặp lại: Nó theo dõi output từ terminal và kết quả test, quay trở lại để sửa lỗi hoặc hoàn thiện công việc.
  4. Phối hợp công cụ: Nó sử dụng các công cụ tích hợp (ví dụ: tìm nạp nội dung web) và hỗ trợ các server Model Context Protocol (MCP) để mở rộng chức năng.

Sự tự chủ này được cân bằng với sự giám sát của người dùng. Mọi thay đổi đều được hiển thị dưới dạng diff, và các lệnh terminal yêu cầu phê duyệt, đảm bảo bạn luôn nắm quyền kiểm soát.

Các tính năng và lợi ích chính

Đây là lý do tại sao chế độ Agent nổi bật:

  • Giải quyết vấn đề tự động: Nó không chỉ viết code—mà còn build, test và debug.
  • Tiết kiệm thời gian: Các tác vụ phức tạp có thể mất hàng giờ (ví dụ: refactoring qua nhiều file hoặc chuyển đổi code cũ) được giảm xuống còn vài phút.
  • Linh hoạt: Hoạt động với nhiều ngôn ngữ và framework, từ Python đến TypeScript đến Go.
  • Kiểm soát: Phản hồi giao diện phong phú và tùy chọn hoàn tác giúp bạn luôn kiểm soát.
  • Khả năng mở rộng: Hoạt động tốt trong cả dự án nhỏ và repo lớn (mặc dù nó hoạt động tốt hơn trong codebase nhỏ, tập trung).

Theo kinh nghiệm của tôi, chế độ Agent lý tưởng cho việc xây dựng prototype, tự động hóa các tác vụ lặp đi lặp lại, hoặc xử lý các thay đổi đa file nơi ngữ cảnh là chìa khóa. Ví dụ, tôi đã sử dụng nó để refactor một codebase JavaScript cũ sang TypeScript, và nó xử lý các định nghĩa kiểu, đổi tên file và cập nhật test một cách liền mạch.

Ví dụ thực tế: Xây dựng một tính năng trong 5 phút

Hãy xem qua một kịch bản. Giả sử bạn muốn thêm một tính năng theo dõi lượng nước tiêu thụ vào ứng dụng iOS hiện có:

  1. Mở chế độ Agent trong VS Code.
  2. Prompt: "Thêm tính năng theo dõi lượng nước tiêu thụ vào ứng dụng iOS của tôi sử dụng SwiftUI."
  3. Chế độ Agent:
    • Tạo một view SwiftUI mới để theo dõi.
    • Cập nhật mô hình dữ liệu với struct WaterIntake.
    • Thêm logic để lưu và hiển thị lượng nước tiêu thụ hàng ngày.
    • Chạy swift build và test thông qua tích hợp với Xcode.
  4. Xem xét sự khác biệt, phê duyệt các thay đổi, và bạn đã hoàn thành.

Việc này chỉ mất chưa đầy năm phút của tôi, so với một giờ hoặc hơn khi làm thủ công. Chìa khóa? Khả năng kết nối các chi tiết của chế độ Agent mà không cần tôi quản lý từng bước.

Mẹo để tối đa hóa chế độ Agent

  • Hãy cụ thể: Prompt mơ hồ dẫn đến kết quả mơ hồ. Hãy thử "Tạo một REST API với Express.js và MongoDB" thay vì "Tạo một API."
  • Lặp lại: Nếu lần đầu không hoàn hảo, hãy tinh chỉnh prompt hoặc hoàn tác các chỉnh sửa cụ thể.
  • Thêm ngữ cảnh: Sử dụng #file để tham chiếu đến các file cụ thể hoặc kéo chúng vào prompt để có độ chính xác cao.
  • Tận dụng MCP: Tích hợp các công cụ tùy chỉnh qua server MCP cho quy trình làm việc phù hợp.

Các trường hợp sử dụng & Ví dụ

  1. Debugging: Yêu cầu Copilot xác định và sửa lỗi trong code của bạn. Ví dụ, "Tại sao hàm này trả về null?" hoặc "Sửa lỗi cú pháp trong dòng này."
  2. Tạo Code: Yêu cầu Copilot tạo code boilerplate hoặc các hàm cụ thể. Ví dụ, "Tạo một endpoint REST API để xác thực người dùng."
  3. Testing: Chỉ dẫn Copilot tạo các unit test cho code của bạn. Ví dụ, "Viết unit test cho hàm này sử dụng Jest."
  4. Refactoring: Yêu cầu Copilot refactor code của bạn để tăng tính đọc hiểu hoặc hiệu suất. Ví dụ, "Refactor hàm này để sử dụng async/await."
  5. Tài liệu: Yêu cầu Copilot tạo tài liệu cho code của bạn. Ví dụ, "Tạo comment JSDoc cho hàm này."
  6. Học tập: Sử dụng Copilot để giải thích các đoạn code phức tạp hoặc thuật toán. Ví dụ, "Giải thích cách thuật toán sắp xếp này hoạt động."
  7. Code Review: Yêu cầu Copilot review code của bạn và đề xuất cải tiến. Ví dụ, "Review code này theo best practices."
  8. Tích hợp: Hướng dẫn Copilot tích hợp thư viện bên thứ ba hoặc API vào dự án của bạn. Ví dụ, "Tích hợp Stripe để xử lý thanh toán."
  9. Triển khai: Yêu cầu Copilot giúp với các tác vụ triển khai, chẳng hạn như thiết lập pipeline CI/CD hoặc cấu hình dịch vụ đám mây. Ví dụ, "Thiết lập một workflow GitHub Actions để triển khai ứng dụng này lên AWS."

Kết luận

Chế độ Agent của GitHub Copilot là một công cụ mạnh mẽ có thể nâng cao đáng kể trải nghiệm lập trình của bạn. Bằng cách cho phép tương tác ngôn ngữ tự nhiên và tự động hóa tác vụ, nó cho phép bạn tập trung vào việc giải quyết vấn đề cấp cao trong khi AI xử lý các chi tiết nhỏ. Cho dù bạn đang debugging, tạo code hay cộng tác với đồng nghiệp, chế độ Agent có thể là một tài sản có giá trị trong bộ công cụ phát triển của bạn.

Chia sẻ

Là 1 kỹ sư phần mềm với nhiều năm kinh nghiệm, tôi tin rằng Agent mode nói chung và Agent mode của GitHub Copilot nói riêng là một bước tiến quan trọng trong lập trình được hỗ trợ bởi AI. Bằng cách tận dụng các khả năng của nó, các developer có thể hợp lý hóa quy trình làm việc, cải thiện chất lượng code, tăng hiệu suất công việc và đẩy nhanh tốc độ phát triển phần mềm. Tôi khuyến khích bạn khám phá tính năng này và xem nó có thể chuyển đổi trải nghiệm lập trình của bạn như thế nào.

Tham khảo