6 điểm bởi GN⁺ 6 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Gemini CLI bắt đầu chính thức hỗ trợ kiến trúc đa tác tử, cho phép ủy quyền các tác vụ phức tạp và lặp đi lặp lại cho các subagent chuyên biệt
  • Mỗi subagent chạy trong môi trường cô lập với cửa sổ ngữ cảnh độc lập, system instruction tùy chỉnh và bộ công cụ riêng
  • Có thể định nghĩa subagent tùy chỉnh bằng tệp Markdown và YAML frontmatter, đồng thời chia sẻ ở phạm vi toàn cục hoặc cấp độ dự án với nhóm
  • Có thể chạy song song nhiều subagent, giúp rút ngắn đáng kể tổng thời gian cho nhiều tác vụ như nghiên cứu, refactor
  • Cùng với các agent tích hợp sẵn mặc định (generalist, cli_help, codebase_investigator), có thể ủy quyền tác vụ một cách tường minh bằng cú pháp @agent, mở rộng khả năng mở rộng của quy trình phát triển dựa trên CLI

Khái niệm subagent và các lợi ích cốt lõi

  • Subagent là agent chuyên biệt hoạt động cùng với phiên Gemini CLI chính; khi nhận tác vụ phức tạp, Gemini CLI đóng vai trò điều phối chiến lược và ủy quyền các tác vụ con cho subagent phù hợp nhất
  • Mỗi subagent có tools, MCP server, system instructioncửa sổ ngữ cảnh riêng, đồng thời chạy trong trạng thái hoàn toàn cô lập
  • Toàn bộ quá trình thực thi của subagent, gồm hàng chục lần gọi công cụ, tìm kiếm tệp và chạy kiểm thử, được gộp thành một phản hồi duy nhất rồi trả về cho agent chính
    • Điều này giúp ngăn cửa sổ ngữ cảnh chính bị lấp đầy, duy trì tốc độ và hiệu quả chi phí cho các tương tác tiếp theo
  • Ba lợi ích chính:
    • Agent mặc định có thể tập trung vào mục tiêu tổng thể, việc ra quyết định và phản hồi cuối cùng
    • Có thể chạy song song các subagent chuyên cho nghiên cứu, khám phá mã, phân tích, kiểm thử... để tăng tốc công việc
    • Vì subagent trả về phản hồi tóm tắt hoặc có định dạng, nên giúp ngăn context rotcontext pollution trong phiên chính

Tạo subagent tùy chỉnh

  • Định nghĩa subagent tùy chỉnh trong tệp Markdown (.md) bằng YAML frontmatter
  • Khi đặt trong ~/.gemini/agents, nó sẽ được đăng ký như agent toàn cục cho quy trình làm việc cá nhân; khi commit vào .gemini/agents của repository, có thể chia sẻ với cả nhóm ở cấp độ dự án
  • Cũng có thể đóng gói như một phần của extension bằng cách đưa tệp định nghĩa agent vào thư mục agents/ của Gemini CLI extensions
  • Cấu hình mẫu cho agent frontend-specialist:
    • Khai báo trong frontmatter các trường như name, description, tools(read_file, grep_search, glob, list_directory, web_fetch, google_web_search), model: inherit
    • Trong system instruction, chỉ định vai trò Senior Frontend Specialist và UI/UX Architect
    • Nêu rõ các nguyên tắc cốt lõi như thiết kế kiến trúc mô-đun, tối ưu hiệu năng dựa trên Core Web Vitals, tuân thủ khả năng truy cập WCAG 2.1+
    • Hướng dẫn bao gồm ưu tiên API native của trình duyệt, thiết kế component kiểu Atomic, phản hồi trực quan theo từng trạng thái (loading, skeleton, lỗi, trạng thái rỗng, thành công), Progressive Enhancement và thiết kế ưu tiên khả năng bảo trì
    • Vai trò của agent này chỉ giới hạn ở phân tích và đề xuất cải thiện, không trực tiếp chỉnh sửa mã
  • Khi đặt tệp tại .gemini/agents/frontend-specialist.md, Gemini CLI sẽ ngay lập tức nhận diện đây là một chuyên gia mới

Chạy song song

  • Gemini CLI hỗ trợ thực thi subagent song song, cho phép chạy đồng thời nhiều subagent hoặc nhiều instance của cùng một subagent
  • Khi cần nghiên cứu 5 chủ đề khác nhau hoặc refactor nhiều component riêng lẻ, có thể dispatch nhiều agent cùng lúc để rút ngắn mạnh tổng thời gian xử lý
  • Ví dụ yêu cầu tường minh: "Run the frontend-specialist on each package in parallel."
  • Lưu ý:
    • Khi dùng subagent song song cho các tác vụ chỉnh sửa mã quy mô lớn, có thể xảy ra xung đột và rủi ro các agent ghi đè mã của nhau
    • Vì các yêu cầu được gửi đồng thời khi chạy song song, bạn có thể chạm giới hạn sử dụng (usage limits) nhanh hơn

Các subagent tích hợp sẵn và cách dùng

  • Ba subagent được tích hợp mặc định trong Gemini CLI:
    • generalist: agent đa dụng có quyền truy cập mọi công cụ, phù hợp cho các tác vụ tiêu tốn nhiều lượt như refactor hàng loạt hoặc chạy lệnh cho đầu ra lớn (về bản chất là bản sao của agent Gemini CLI thông thường dưới dạng subagent)
    • cli_help: agent chuyên gia về chính Gemini CLI, truy cập trực tiếp tài liệu Gemini CLI để trả lời các câu hỏi liên quan đến tính năng
    • codebase_investigator: chuyên về khám phá codebase, lập bản đồ kiến trúc, phân tích nguyên nhân gốc của lỗi và nắm bắt phụ thuộc trên toàn hệ thống
  • Gemini CLI thực hiện định tuyến tự động dựa trên description của subagent, nhưng cũng có thể dùng cú pháp @agent để ủy quyền tác vụ cho một agent cụ thể một cách tường minh
    • Ví dụ: @frontend-specialist yêu cầu review ứng dụng và gắn cờ các điểm cần cải thiện
    • Ví dụ: @generalist cập nhật license header cho toàn bộ dự án
    • Ví dụ: @codebase_investigator lập bản đồ luồng xác thực
  • Khi thêm tên subagent sau ký hiệu @, tác vụ sẽ được xử lý trong cửa sổ ngữ cảnh cô lập của agent đó
  • Để xem tất cả subagent hiện được cấu hình, hãy chạy lệnh /agents trong Gemini CLI

1 bình luận

 
chlrhdmltkfkd 5 ngày trước

gemini cli chỉ cần hoạt động cho tử tế là được, vậy mà lúc nào cũng treo