- Để các tác nhân phụ hoạt động hiệu quả, cần tối ưu hóa tên và mô tả của chúng nhằm định hướng rõ ràng cho tác nhân chính về thời điểm và cách thức kích hoạt.
- Việc xác định định dạng đầu ra cụ thể giúp tác nhân phụ biết khi nào đã hoàn thành nhiệm vụ và giảm thời gian chạy không cần thiết.
- Hạn chế quyền truy cập công cụ của tác nhân phụ theo vai trò của chúng và yêu cầu báo cáo trở ngại giúp tăng cường độ tin cậy và ngăn chặn các tác dụng phụ không mong muốn.
Designing effective subagents
- Tối ưu hóa Tên và Mô tả: Sửa đổi
tênvàmô tảcủa tác nhân phụ trong tệp cấu hình để tác nhân chính có thể khởi chạy chúng một cách chính xác và cung cấp lời nhắc đầu vào phù hợp. - Định dạng Đầu ra Rõ ràng: Xác định một
định dạng đầu racụ thể tronglời nhắc hệ thốngcủa tác nhân phụ để tạo điểm dừng tự nhiên, giúp chúng hoàn thành nghiên cứu hiệu quả hơn. - Báo cáo Trở ngại: Yêu cầu tác nhân phụ báo cáo các
trở ngại(như giải pháp thay thế, vấn đề phụ thuộc, lệnh cần cờ đặc biệt) trong tóm tắt đầu ra để tác nhân chính không phải khám phá lại. - Giới hạn Quyền truy cập Công cụ: Chỉ cấp quyền truy cập công cụ (ví dụ:
đọc tệp,bash,sửa đổi,ghi) mà tác nhân phụ thực sự cần cho vai trò của mình. - Phân quyền Cụ thể: Giữ tác nhân phụ ở chế độ
chỉ đọcnếu chúng chỉ nghiên cứu; chỉ cấp quyềnchỉnh sửavàghicho các tác nhân phụ thực sự thay đổi mã (ví dụ: tác nhân định kiểu). - Ảnh hưởng Lời nhắc: Sử dụng
mô tảcủa tác nhân phụ để ảnh hưởng đến hướng dẫn màluồng tác nhân chínhcung cấp khi ủy quyền nhiệm vụ.
tác nhân phụ— sub agenttác nhân chính— main agentlời nhắc hệ thống— system promptlời nhắc đầu vào— input promptđịnh dạng đầu ra— output formattrở ngại— obstacle / workaroundquyền truy cập công cụ— tool accesschỉ đọc— read-onlytệp cấu hình tác nhân phụ— sub agent config fileluồng tác nhân chính— main agent thread
Giới thiệu về tác nhân phụ hiệu quả
Sau khi bạn đã biết cách tạo tác nhân phụ, hãy cùng xem xét các mẫu thiết kế dẫn đến tác nhân phụ hiệu quả.
Tối ưu hóa tên và mô tả tác nhân phụ
Đầu tiên, hãy hiểu rõ hơn về cách dữ liệu của tác nhân phụ trong tệp cấu hình sub agent config file được sử dụng. Bất cứ khi nào bạn gửi một tin nhắn đến tác nhân chính trong cửa sổ ngữ cảnh, tên và mô tả của mỗi tác nhân phụ sẽ được bao gồm trong lời nhắc hệ thống. Do đó, nếu bạn muốn kiểm soát tốt hơn thời điểm tác nhân chính tự động khởi chạy một tác nhân phụ, bạn nên sửa đổi tên và mô tả của nó.
Tiếp theo, hãy nhớ rằng khi một tác nhân phụ được khởi chạy, tác nhân chính sẽ viết một lời nhắc đầu vào. Khi viết lời nhắc đầu vào này, nó sử dụng mô tả làm hướng dẫn. Vì vậy, nếu bạn muốn kiểm soát tốt hơn thời điểm tác nhân chính tự động khởi chạy một tác nhân phụ, bạn nên sửa đổi tên và mô tả.
Hãy xem xét lại tác nhân phụ đánh giá của chúng ta. Hiện tại, khi tác nhân chính chạy tác nhân phụ này, tác nhân phụ sẽ nhận được một lời nhắc đầu vào yêu cầu nó sử dụng get diff để tìm các thay đổi hiện tại. Nếu chúng ta muốn tác nhân chính đáng tin cậy hơn trong việc chỉ định chính xác các tệp cần đánh giá cho tác nhân phụ, chúng ta sẽ cập nhật mô tả. Bạn phải cho tác nhân AI biết chính xác những tệp nào bạn muốn nó đánh giá. Bây giờ, nếu chúng ta yêu cầu Claude chạy tác nhân đánh giá mã (code reviewer agent), chúng ta sẽ thấy một đầu vào khác.
Bạn cũng có thể ảnh hưởng đến những gì luồng tác nhân chính (main thread) nói với một tác nhân phụ thông qua mô tả. Ví dụ, việc thêm cụm từ 'trả về các nguồn có thể trích dẫn' vào mô tả của tác nhân phụ tìm kiếm web (web search sub agent) sẽ khiến luồng tác nhân chính đưa hướng dẫn đó vào khi ủy quyền nhiệm vụ.
Định dạng đầu ra và báo cáo trở ngại
Cải tiến quan trọng nhất bạn có thể thực hiện là xác định một định dạng đầu ra trong lời nhắc hệ thống. Điều này tạo ra các điểm dừng tự nhiên cho tác nhân phụ. Nếu không có định dạng đầu ra được xác định, các tác nhân phụ sẽ gặp khó khăn trong việc quyết định khi nào đã hoàn thành đủ nghiên cứu và chúng có xu hướng chạy lâu hơn rất nhiều so với các tác nhân phụ được cung cấp một định dạng đầu ra.
Khi một tác nhân phụ phát hiện ra một giải pháp thay thế (workaround) cho một vấn đề nào đó, chẳng hạn như giải quyết vấn đề phụ thuộc (dependency issue) hoặc nhận thấy một lệnh nhất định cần các cờ (flags) đặc biệt, những chi tiết này nên xuất hiện trong tóm tắt. Nếu không, luồng tác nhân chính sẽ phải tự mình khám phá lại cùng một giải pháp, trở ngại gặp phải, bất kỳ vấn đề thiết lập, giải pháp thay thế được phát hiện, hoặc lỗi môi trường (environment quirks), các lệnh cần cờ hoặc cấu hình đặc biệt, các phụ thuộc hoặc import gây ra vấn đề. Việc yêu cầu báo cáo trở ngại một cách rõ ràng trong định dạng đầu ra sẽ giúp làm nổi bật thông tin này.
Giới hạn quyền truy cập công cụ
Một tác nhân phụ chỉ đọc (read-only sub agent) chỉ sử dụng glob, grep, read sẽ không thể vô tình sửa đổi tệp. Ràng buộc (constraint) này làm rõ vai trò của tác nhân phụ và ngăn chặn các tác dụng phụ không mong muốn. Vì vậy, hãy nghĩ về những gì tác nhân phụ thực sự cần làm. Nếu nó chỉ nghiên cứu, nó chỉ cần đọc tệp. Do đó, hãy giữ nó ở chế độ chỉ đọc. Bằng cách đó, nó không thể vô tình sửa đổi bất cứ điều gì trong quá trình khám phá.
Một người đánh giá cần chạy get diff để xem những gì đã thay đổi. Vì vậy, hãy cấp cho nó quyền truy cập bash, nhưng nó vẫn không cần chỉnh sửa tệp. Chỉ cấp quyền chỉnh sửa (edit) và ghi (write) cho các tác nhân phụ thực sự nên thay đổi mã của bạn, chẳng hạn như một tác nhân định kiểu (styling agent) áp dụng cập nhật CSS. Điều này cũng giúp làm rõ mục đích của từng tác nhân phụ khi bạn có nhiều tác nhân phụ.
Tóm tắt các đặc điểm tác nhân phụ hiệu quả
Tóm lại, các tác nhân phụ hiệu quả sử dụng đầu ra có cấu trúc, báo cáo trở ngại, có mô tả cụ thể và giới hạn quyền truy cập công cụ.
TL;DR
- Để các tác nhân phụ hoạt động hiệu quả, cần tối ưu hóa tên và mô tả của chúng nhằm định hướng rõ ràng cho tác nhân chính về thời điểm và cách thức kích hoạt.
- Việc xác định định dạng đầu ra cụ thể giúp tác nhân phụ biết khi nào đã hoàn thành nhiệm vụ và giảm thời gian chạy không cần thiết.
- Hạn chế quyền truy cập công cụ của tác nhân phụ theo vai trò của chúng và yêu cầu báo cáo trở ngại giúp tăng cường độ tin cậy và ngăn chặn các tác dụng phụ không mong muốn.
Điểm chính
- Tối ưu hóa Tên và Mô tả: Sửa đổi
tênvàmô tảcủa tác nhân phụ trong tệp cấu hình để tác nhân chính có thể khởi chạy chúng một cách chính xác và cung cấp lời nhắc đầu vào phù hợp. - Định dạng Đầu ra Rõ ràng: Xác định một
định dạng đầu racụ thể tronglời nhắc hệ thốngcủa tác nhân phụ để tạo điểm dừng tự nhiên, giúp chúng hoàn thành nghiên cứu hiệu quả hơn. - Báo cáo Trở ngại: Yêu cầu tác nhân phụ báo cáo các
trở ngại(như giải pháp thay thế, vấn đề phụ thuộc, lệnh cần cờ đặc biệt) trong tóm tắt đầu ra để tác nhân chính không phải khám phá lại. - Giới hạn Quyền truy cập Công cụ: Chỉ cấp quyền truy cập công cụ (ví dụ:
đọc tệp,bash,sửa đổi,ghi) mà tác nhân phụ thực sự cần cho vai trò của mình. - Phân quyền Cụ thể: Giữ tác nhân phụ ở chế độ
chỉ đọcnếu chúng chỉ nghiên cứu; chỉ cấp quyềnchỉnh sửavàghicho các tác nhân phụ thực sự thay đổi mã (ví dụ: tác nhân định kiểu). - Ảnh hưởng Lời nhắc: Sử dụng
mô tảcủa tác nhân phụ để ảnh hưởng đến hướng dẫn màluồng tác nhân chínhcung cấp khi ủy quyền nhiệm vụ.
Từ vựng
tác nhân phụ— sub agenttác nhân chính— main agentlời nhắc hệ thống— system promptlời nhắc đầu vào— input promptđịnh dạng đầu ra— output formattrở ngại— obstacle / workaroundquyền truy cập công cụ— tool accesschỉ đọc— read-onlytệp cấu hình tác nhân phụ— sub agent config fileluồng tác nhân chính— main agent thread
Nội dung chi tiết
Giới thiệu về tác nhân phụ hiệu quả
Sau khi bạn đã biết cách tạo tác nhân phụ, hãy cùng xem xét các mẫu thiết kế dẫn đến tác nhân phụ hiệu quả.
Tối ưu hóa tên và mô tả tác nhân phụ
Đầu tiên, hãy hiểu rõ hơn về cách dữ liệu của tác nhân phụ trong tệp cấu hình sub agent config file được sử dụng. Bất cứ khi nào bạn gửi một tin nhắn đến tác nhân chính trong cửa sổ ngữ cảnh, tên và mô tả của mỗi tác nhân phụ sẽ được bao gồm trong lời nhắc hệ thống. Do đó, nếu bạn muốn kiểm soát tốt hơn thời điểm tác nhân chính tự động khởi chạy một tác nhân phụ, bạn nên sửa đổi tên và mô tả của nó.
Tiếp theo, hãy nhớ rằng khi một tác nhân phụ được khởi chạy, tác nhân chính sẽ viết một lời nhắc đầu vào. Khi viết lời nhắc đầu vào này, nó sử dụng mô tả làm hướng dẫn. Vì vậy, nếu bạn muốn kiểm soát tốt hơn thời điểm tác nhân chính tự động khởi chạy một tác nhân phụ, bạn nên sửa đổi tên và mô tả.
Hãy xem xét lại tác nhân phụ đánh giá của chúng ta. Hiện tại, khi tác nhân chính chạy tác nhân phụ này, tác nhân phụ sẽ nhận được một lời nhắc đầu vào yêu cầu nó sử dụng get diff để tìm các thay đổi hiện tại. Nếu chúng ta muốn tác nhân chính đáng tin cậy hơn trong việc chỉ định chính xác các tệp cần đánh giá cho tác nhân phụ, chúng ta sẽ cập nhật mô tả. Bạn phải cho tác nhân AI biết chính xác những tệp nào bạn muốn nó đánh giá. Bây giờ, nếu chúng ta yêu cầu Claude chạy tác nhân đánh giá mã (code reviewer agent), chúng ta sẽ thấy một đầu vào khác.
Bạn cũng có thể ảnh hưởng đến những gì luồng tác nhân chính (main thread) nói với một tác nhân phụ thông qua mô tả. Ví dụ, việc thêm cụm từ 'trả về các nguồn có thể trích dẫn' vào mô tả của tác nhân phụ tìm kiếm web (web search sub agent) sẽ khiến luồng tác nhân chính đưa hướng dẫn đó vào khi ủy quyền nhiệm vụ.
Định dạng đầu ra và báo cáo trở ngại
Cải tiến quan trọng nhất bạn có thể thực hiện là xác định một định dạng đầu ra trong lời nhắc hệ thống. Điều này tạo ra các điểm dừng tự nhiên cho tác nhân phụ. Nếu không có định dạng đầu ra được xác định, các tác nhân phụ sẽ gặp khó khăn trong việc quyết định khi nào đã hoàn thành đủ nghiên cứu và chúng có xu hướng chạy lâu hơn rất nhiều so với các tác nhân phụ được cung cấp một định dạng đầu ra.
Khi một tác nhân phụ phát hiện ra một giải pháp thay thế (workaround) cho một vấn đề nào đó, chẳng hạn như giải quyết vấn đề phụ thuộc (dependency issue) hoặc nhận thấy một lệnh nhất định cần các cờ (flags) đặc biệt, những chi tiết này nên xuất hiện trong tóm tắt. Nếu không, luồng tác nhân chính sẽ phải tự mình khám phá lại cùng một giải pháp, trở ngại gặp phải, bất kỳ vấn đề thiết lập, giải pháp thay thế được phát hiện, hoặc lỗi môi trường (environment quirks), các lệnh cần cờ hoặc cấu hình đặc biệt, các phụ thuộc hoặc import gây ra vấn đề. Việc yêu cầu báo cáo trở ngại một cách rõ ràng trong định dạng đầu ra sẽ giúp làm nổi bật thông tin này.
Giới hạn quyền truy cập công cụ
Một tác nhân phụ chỉ đọc (read-only sub agent) chỉ sử dụng glob, grep, read sẽ không thể vô tình sửa đổi tệp. Ràng buộc (constraint) này làm rõ vai trò của tác nhân phụ và ngăn chặn các tác dụng phụ không mong muốn. Vì vậy, hãy nghĩ về những gì tác nhân phụ thực sự cần làm. Nếu nó chỉ nghiên cứu, nó chỉ cần đọc tệp. Do đó, hãy giữ nó ở chế độ chỉ đọc. Bằng cách đó, nó không thể vô tình sửa đổi bất cứ điều gì trong quá trình khám phá.
Một người đánh giá cần chạy get diff để xem những gì đã thay đổi. Vì vậy, hãy cấp cho nó quyền truy cập bash, nhưng nó vẫn không cần chỉnh sửa tệp. Chỉ cấp quyền chỉnh sửa (edit) và ghi (write) cho các tác nhân phụ thực sự nên thay đổi mã của bạn, chẳng hạn như một tác nhân định kiểu (styling agent) áp dụng cập nhật CSS. Điều này cũng giúp làm rõ mục đích của từng tác nhân phụ khi bạn có nhiều tác nhân phụ.
Tóm tắt các đặc điểm tác nhân phụ hiệu quả
Tóm lại, các tác nhân phụ hiệu quả sử dụng đầu ra có cấu trúc, báo cáo trở ngại, có mô tả cụ thể và giới hạn quyền truy cập công cụ.