21 điểm bởi GN⁺ 2024-12-21 | 2 bình luận | Chia sẻ qua WhatsApp

Agent là gì?

  • Có nhiều cách định nghĩa agent, nhưng có thể chia thành hai nhóm:
    • Workflow: LLM và công cụ được điều phối thông qua các luồng mã được định nghĩa trước
    • Agents: LLM tự kiểm soát một cách động việc thực hiện tác vụ và sử dụng công cụ
  • Tại Anthropic, cả hai đều được xếp vào hệ thống agentic (Agentic Systems), nhưng có khác biệt quan trọng về mức độ linh hoạt và tự chủ

Khi nào nên dùng agent?

  • Nếu có thể giải bằng một giải pháp đơn giản, điều quan trọng là phải giảm thiểu độ phức tạp
  • Workflow: hữu ích khi xử lý các tác vụ có thể dự đoán trước, mang lại tính nhất quán và ổn định
  • Agents: phù hợp khi cần tính linh hoạt ở quy mô lớn và ra quyết định lấy mô hình làm trung tâm
  • Trong đa số trường hợp, chỉ cần tối ưu lời gọi LLM hoặc tận dụng các ví dụ ngữ cảnh là đủ

Hướng dẫn sử dụng framework

  • Các framework tiêu biểu:
  • Ưu điểm của framework:
    • Đơn giản hóa việc gọi LLM, định nghĩa công cụ và chuỗi gọi
  • Nhược điểm:
    • Có thể làm tăng độ phức tạp hoặc khiến việc gỡ lỗi khó hơn
  • Khuyến nghị: bắt đầu trực tiếp với API của LLM, và ngay cả khi dùng framework thì vẫn cần hiểu mã nền tảng

Các thành phần của hệ thống agent

LLM tăng cường (Augmented LLM)

  • Đặc điểm: được bổ sung khả năng truy xuất, dùng công cụ và bộ nhớ
  • Cách triển khai:
    • Có thể tích hợp với công cụ bên thứ ba bằng Model Context Protocol
    • Cung cấp giao diện đơn giản và có tài liệu rõ ràng

Các mẫu workflow chính

  • Chuỗi prompt (Prompt Chaining)
    • Chia tác vụ thành các bước con cố định để xử lý tuần tự
    • Trường hợp sử dụng:
      • Tạo nội dung marketing rồi dịch
      • Soạn thảo tài liệu rồi rà soát
  • Routing
    • Phân loại dữ liệu đầu vào và chuyển đến tác vụ phù hợp
    • Trường hợp sử dụng:
      • Phân loại yêu cầu hỗ trợ khách hàng (câu hỏi chung, yêu cầu hoàn tiền, hỗ trợ kỹ thuật)
      • Chuyển câu hỏi đơn giản sang mô hình nhỏ, câu hỏi phức tạp sang mô hình mạnh hơn
  • Song song hóa (Parallelization)
    • Tách tác vụ hoặc chạy cùng một tác vụ nhiều lần
    • Trường hợp sử dụng:
      • Dùng nhiều prompt khi rà soát lỗ hổng mã nguồn
      • Tách đầu vào người dùng để lọc và phản hồi
  • Orchestrator-Workers
    • Một LLM trung tâm phân rã tác vụ, giao cho các worker LLM và tổng hợp kết quả
    • Trường hợp sử dụng:
      • Chỉnh sửa tệp trong các tác vụ lập trình phức tạp
      • Tác vụ tìm kiếm nhiều nguồn thông tin
  • Evaluator-Optimizer
    • Đánh giá phản hồi của LLM, cung cấp phản hồi và cải thiện lặp đi lặp lại
    • Trường hợp sử dụng:
      • Nâng cao chất lượng trong dịch văn học
      • Tác vụ tìm kiếm và phân tích đa bước

Agent

  • Agent lập kế hoạch cho tác vụ và thực thi độc lập, đồng thời tương tác với con người khi cần
  • Đặc điểm:
    • Dùng công cụ để lấy "sự thật" từ môi trường và đánh giá tiến độ
    • Có thể thiết lập kiểm tra và điều kiện dừng trong quá trình thực hiện
  • Trường hợp sử dụng:
    • Agent lập trình phức tạp
    • Các triển khai nơi Claude thực hiện tác vụ trên máy tính

Kết hợp mẫu và tùy biến

  • Các mẫu trên có thể được điều chỉnh và kết hợp cho phù hợp với từng tình huống cụ thể
  • Chỉ nên thêm độ phức tạp khi đã chứng minh được rằng nó cải thiện kết quả

Tóm tắt

  • Thành công trong lĩnh vực LLM không nằm ở việc xây dựng hệ thống phức tạp nhất, mà ở việc tạo ra hệ thống phù hợp với nhu cầu
  • Hãy bắt đầu với prompt đơn giản, tối ưu qua đánh giá, và chỉ cân nhắc thêm hệ thống agent nhiều bước khi các giải pháp đơn giản không còn đủ
  • Các nguyên tắc cốt lõi khi triển khai agent
    1. Giữ sự đơn giản: giữ thiết kế của agent càng đơn giản càng tốt
    2. Ưu tiên tính minh bạch: thể hiện rõ các bước lập kế hoạch của agent
    3. Cải thiện chất lượng giao diện agent-computer (ACI): tài liệu hóa công cụ và kiểm thử kỹ lưỡng
  • Về việc dùng framework và chiến lược triển khai
    • Framework hữu ích cho giai đoạn triển khai ban đầu, nhưng cũng nên cân nhắc xây hệ thống với ít tầng trừu tượng hơn và các thành phần cơ bản
    • Nếu tuân theo các nguyên tắc trên, có thể tạo ra các agent mạnh mẽ nhưng vẫn đáng tin cậy và dễ bảo trì

Trường hợp khách hàng: ứng dụng agent trong thực tế

  • A. Hỗ trợ khách hàng
    • Cung cấp giải pháp hiệu quả thông qua luồng hội thoại tự nhiên và tích hợp dữ liệu bên ngoài
    • Ưu điểm:
      • Có thể đo lường bằng tỷ lệ giải quyết thành công
      • Có thể áp dụng mô hình giá theo mức sử dụng
  • B. Agent lập trình
    • Các giải pháp mã nguồn có thể được xác minh qua kiểm thử tự động
    • Ưu điểm:
      • Có thể dùng kết quả kiểm thử làm phản hồi
      • Không gian vấn đề rõ ràng và có cấu trúc
  • C. Thiết kế và tối ưu công cụ
    • Thiết kế có tính đến cách LLM sử dụng công cụ
    • Cách làm được khuyến nghị:
      • Dùng tên tham số trực quan và ngắn gọn
      • Kiểm thử và cải tiến lặp đi lặp lại
      • Đưa ví dụ và các trường hợp biên vào phần định nghĩa công cụ

2 bình luận

 
savvykang 2024-12-23

Có vẻ như low-code đã được áp dụng theo cách hơi vụng về, nhưng nếu không có schema dữ liệu và quản lý phiên bản thì sẽ không thể theo dõi các thay đổi.

 
curiousotter 2024-12-23

Với trải nghiệm còn nông, bề ngoài nó cho cảm giác như đang ghép các hàm trong lập trình hàm, nhưng lại là kiểu lập trình hỗn loạn khi chẳng biết I/O của hàm (tham số, kiểu trả về) sẽ là gì..?
Trong lúc làm thì tôi liên tục nghĩ rằng có nhất thiết phải làm cái này không..? Có cần hỗ trợ đến mức này không..
Đến giờ tôi vẫn chưa thực sự cảm nhận rõ lĩnh vực nào thật sự cần đến hệ thống agentic