Cách tạo nhiều subagent trong Claude Code để hoàn thành nhiệm vụ

Claude Code là một công cụ tuyệt vời, ngay cả khi bạn không phải là nhà phát triển. Nhưng có rất nhiều thứ mà người dùng Claude Pro thường không bao giờ thử.

Một trong những thứ đó là sử dụng khả năng tạo ra nhiều subagent cùng lúc để hoàn thành nhiệm vụ của bạn, và đó là một bước ngoặt hoàn toàn thay đổi cuộc chơi.

Đừng coi Claude Code như một agent đơn lẻ!

Cách hầu hết mọi người sử dụng Claude Code trông như thế này: Mở terminal, giao cho nó một tác vụ, xem nó đọc file và thực hiện thay đổi, chờ nó hoàn thành, rồi giao cho nó việc tiếp theo. Một agent, một công việc, tuần tự từ đầu đến cuối.

Điều này hoạt động tốt với hầu hết mọi thứ. Nhưng nó có một giới hạn, và giới hạn đó xuất hiện ngay khi bạn làm việc với bất kỳ thứ gì có các thành phần chuyển động thực sự. Xây dựng một tính năng mới trong khi cần viết các bài kiểm test. Tái cấu trúc một mô-đun trong khi cần cập nhật tài liệu. Khám phá một codebase từ ba góc độ khác nhau để hiểu cách mọi thứ được kết nối với nhau. Trong mô hình phiên đơn, tất cả những điều đó đều là một hàng đợi. Mọi thứ đều chờ đợi.

Vấn đề khác là ngữ cảnh. Khi một phiên đơn chạy càng lâu, cửa sổ ngữ cảnh sẽ đầy ắp mọi thứ: Nội dung file, suy luận trung gian, kết quả tìm kiếm, các quyết định được đưa ra 2 giờ trước. Sự chú ý của mô hình giảm đi khi luồng càng dài. Chất lượng giảm, ban đầu một cách tinh tế và sau đó trở nên rõ rệt.

Các subagent giải quyết cả hai vấn đề này cùng một lúc. Thay vì một agent thực hiện mọi việc, phiên chính của bạn trở thành người điều phối. Nó chia nhỏ công việc, giao phó từng phần cho một subagent, và mỗi subagent chạy trong cửa sổ ngữ cảnh riêng biệt với công việc cụ thể của nó. Chúng có thể chạy song song. Khi chúng hoàn thành, phiên chính sẽ nhận kết quả của chúng và tiếp tục.

Cách thiết lập các subagent trong Claude Code

Điều này dễ hơn bạn nghĩ. Không có flag đặc biệt nào cần truyền hoặc file cấu hình nào cần tìm kiếm. Các subagent trong Claude Code chỉ là những file Markdown nằm trong một thư mục.

Bạn có hai nơi để đặt chúng. ~/.claude/agents/ là thư mục toàn cục, có nghĩa là bất kỳ phiên Claude Code nào trên máy của bạn đều có thể sử dụng bất kỳ agent nào nằm ở đó. Thư mục .claude/agents/ bên trong một dự án cụ thể chỉ có phạm vi cục bộ cho dự án đó, điều này hữu ích nếu bạn muốn các agent được commit vào repo và chia sẻ với nhóm của mình.

Mỗi agent là một file Markdown duy nhất với một khối YAML frontmatter ở đầu và một prompt hệ thống trong phần thân. Đây là ví dụ về một agent cực kỳ cơ bản:

--- name: swift-engineer
description: Sử dụng agent này khi cần viết code SwiftUI views hoặc code mạng Swift. Gọi cho bất kỳ màn hình iOS, ViewModel hoặc công việc mạng async/await nào.
model: claude-sonnet-4-6
tools: Read, Write, Glob
---

Bạn là một kỹ sư iOS cấp cao chỉ viết bằng Swift. Tuân thủ nghiêm ngặt MVVM: views là ngu ngốc, logic nằm trong ViewModels, tất cả các cuộc gọi mạng đều sử dụng async/await.

Trước khi viết bất cứ điều gì, hãy đọc cấu trúc dự án hiện có bằng Glob và khớp với bất kỳ quy ước nào đã có sẵn. Trả về danh sách mọi file bạn đã tạo hoặc sửa đổi.

Phần name là cách mà bạn và Claude gọi nó..Phần description mới là phần thực sự quan trọng quyết định cách agent chính sử dụng nó. Hãy viết mô tả như một quy tắc định tuyến, cụ thể về thời điểm gọi nó và giá trị trả về. Mô tả mơ hồ sẽ dẫn đến định tuyến mơ hồ. "Sử dụng agent này khi..." theo sau là một điều kiện cụ thể là mẫu hoạt động hiệu quả.

Trường tools là một danh sách cho phép. Người viết bài test có lẽ không cần xóa file. Người đánh giá code có lẽ không nên có quyền ghi. Khóa công cụ cho mỗi agent là một trong những việc hữu ích hơn bạn có thể làm ở đây vì lý do bảo mật và tính hợp lý.

Nếu bạn không muốn tự viết file, Claude Code có lệnh /agents mở trình quản lý tương tác. Bạn mô tả những gì mình muốn, Claude sẽ viết cấu hình agent cho bạn, và bạn chọn phạm vi để lưu nó. Các mô tả mà nó tạo ra thường tốt hơn so với những gì hầu hết mọi người viết thủ công trong lần thử đầu tiên.

Giờ đây, bạn chỉ cần yêu cầu Claude thực hiện một việc mà agent được thiết kế để làm, và nó sẽ tự động định tuyến nếu mô tả đủ cụ thể.

Đối với công việc song song, prompt cho agent chính rất đơn giản. Ví dụ:

Tôi đang xây dựng một ứng dụng iOS với giao diện người dùng Swift và backend Swift Vapor.

Khởi tạo 3 subagent song song:
1. Sử dụng subagent swift-engineer. Xây dựng màn hình đăng nhập và dashboard SwiftUI.
2. Sử dụng subagent backend-engineer. Xây dựng các API endpoint Vapor cho /auth/login
3. Sử dụng subagent test-writer. Viết các bài kiểm tra cho các API endpoint và Swift ViewModels.

Mỗi subagent chạy đồng thời, trong ngữ cảnh riêng của nó, báo cáo lại một cách độc lập. Phiên chính sẽ tiếp tục khi cả ba hoàn thành. Điều mà trước đây là ba tìm kiếm tuần tự với luồng ngữ cảnh ngày càng phình to giờ đây là 3 worker độc lập chạy cùng một lúc.

Bạn sẽ cần một chút thời gian để làm quen

Thứ liên kết tất cả những điều này lại với nhau là tính độc lập. Nếu hai phần công việc cần chia sẻ trạng thái hoặc một phần phụ thuộc vào đầu ra của phần kia, chúng thuộc về luồng chính. Nếu chúng có thể hoạt động mà không biết về nhau, chúng là những ứng viên tiềm năng cho subagent. Ranh giới đó thường khá rõ ràng một khi bạn để ý.

Tuy nhiên, có một vấn đề với cách tiếp cận này, đó là việc sử dụng token. Sử dụng nhiều agent cùng lúc sẽ tiêu tốn rất nhiều token, nhưng đừng lo lắng. Bạn cũng có thể sử dụng Claude Code miễn phí bằng cách kết hợp nó với một LLM cục bộ, nghĩa là bạn sẽ không bao giờ hết token.

Thứ Năm, 11/06/2026 17:10
31 👨 5
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖ Claude