1 điểm bởi GN⁺ 2025-04-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • 12 Factor Agents đưa ra các nguyên tắc để xây dựng các ứng dụng LLM đáng tin cậy
  • Dựa trên trải nghiệm sử dụng các framework AI agent, tác giả nhận ra rằng phần lớn sản phẩm không phải là agent thực thụ
  • 12 Factor Agents khám phá cách đưa phần mềm dựa trên LLM lên mức đủ tốt để có thể cung cấp cho khách hàng
  • 12 yếu tố bao gồm các kỹ thuật cốt lõi giúp cải thiện độ tin cậy, khả năng mở rộng và khả năng bảo trì của phần mềm LLM
  • Tích hợp các khái niệm mô-đun vào sản phẩm hiện có là cách để nhanh chóng cung cấp phần mềm AI chất lượng cao

12 Factor Agents - Nguyên tắc xây dựng ứng dụng LLM đáng tin cậy

  • Dựa trên trải nghiệm sử dụng các framework AI agent, tác giả nhận ra rằng phần lớn sản phẩm không phải là agent thực thụ
  • 12 Factor Agents khám phá cách đưa phần mềm dựa trên LLM lên mức đủ tốt để có thể cung cấp cho khách hàng
  • 12 yếu tố bao gồm các kỹ thuật cốt lõi giúp cải thiện độ tin cậy, khả năng mở rộng và khả năng bảo trì của phần mềm LLM
  • Tích hợp các khái niệm mô-đun vào sản phẩm hiện có là cách để nhanh chóng cung cấp phần mềm AI chất lượng cao

Tóm tắt: 12 yếu tố

  • Chuyển ngôn ngữ tự nhiên thành lời gọi công cụ: Hiểu cách dùng ngôn ngữ tự nhiên để gọi công cụ
  • Sở hữu prompt: Việc sở hữu và quản lý prompt là rất quan trọng
  • Sở hữu context window: Việc sở hữu và quản lý context window là rất quan trọng
  • Công cụ là đầu ra có cấu trúc: Công cụ nên được coi là đầu ra có cấu trúc
  • Tích hợp trạng thái thực thi và trạng thái nghiệp vụ: Quản lý bằng cách tích hợp trạng thái thực thi với trạng thái nghiệp vụ

Lời hứa của agent

  • DAG(Directed Acyclic Graph): Phần mềm có thể được biểu diễn bằng đồ thị có hướng, và các bộ điều phối DAG đã trở nên phổ biến
  • Lời hứa của agent: Khi dùng agent, có thể bỏ DAG và để LLM quyết định lộ trình theo thời gian thực
  • Agent hoạt động theo vòng lặp: Agent vận hành như một vòng lặp trong đó LLM quyết định bước tiếp theo, thực thi lời gọi công cụ và thêm kết quả vào context window

Vì sao là 12-factor agents?

  • Giới hạn của các framework hiện có: Nhiều nhà xây dựng SaaS đang cố gắng tạo agent, nhưng do giới hạn của các framework hiện có nên khó đạt chất lượng trên 80%
  • Tầm quan trọng của khái niệm mô-đun: Tích hợp các khái niệm mô-đun vào sản phẩm hiện có là cách để nhanh chóng cung cấp phần mềm AI chất lượng cao

Mẫu thiết kế cho các ứng dụng LLM xuất sắc

  • Yếu tố cốt lõi của agent: Có những yếu tố cốt lõi làm nên một agent tốt, và khi dùng framework thì có thể có được phần lớn các yếu tố đó
  • Tích hợp các khái niệm mô-đun: Tích hợp các khái niệm mô-đun vào sản phẩm hiện có là cách để nhanh chóng cung cấp phần mềm AI chất lượng cao

Tài nguyên liên quan

  • Tool Use podcast: Nội dung liên quan được đề cập trong tập phát sóng tháng 3 năm 2025
  • The Outer Loop: Blog đề cập đến nội dung liên quan
  • Web seminar: Tổ chức webinar cùng @hellovai về tối đa hóa hiệu năng LLM
  • Open source agent: Xây dựng OSS agent bằng phương pháp luận này

1 bình luận

 
GN⁺ 2025-04-17
Ý kiến Hacker News
  • Đây là một wiki rất hữu ích. Cảm ơn, chắc chắn tôi sẽ dùng. Hôm qua tôi vừa xây dựng một "AI Agents framework" mới ra mắt. Framework này dựa trên mô hình actor, máy trạng thái và lập trình hướng quan điểm. Tôi đặc biệt thích điểm 5 và 7

    • Hợp nhất trạng thái thực thi và trạng thái nghiệp vụ
    • Sở hữu luồng điều khiển của chính nó
    • SecAI làm rất tốt những điều này, như một thư viện luồng điều khiển dạng đồ thị với các lệnh gọi LLM được nhúng vào các nút của đồ thị. Luồng được tăng cường bằng thương lượng, hủy bỏ và quan hệ trạng thái nên hữu cơ hơn
    • Điều thường bị bỏ lỡ ở các framework khác là công cụ phát triển chuyên dụng. Nó cho phép lập trình cho thất bại, kiểm tra chi tiết mọi bước, đồng thời cung cấp xuất dữ liệu tự động và tích hợp đơn giản
    • Tôi đã phát hành bản demo kỹ thuật đầu tiên, kèm một triển khai tham chiếu cho thấy toàn bộ công cụ phát triển
    • Nút Send/Stop cho phép bắt đầu/tạm dừng/tiếp tục bằng một API đơn giản. Nó có tính trong suốt mạng nên có thể mở rộng
  • Tuyệt vời. Sau vài năm làm việc này, tôi đã lập danh sách bài học của riêng mình. Điều quan trọng nhất là sở hữu vòng lặp lập kế hoạch ở tầng thấp nhất

    • Có lập kế hoạch động cũng không sao, nhưng bạn nên sở hữu vòng lặp OODA và có heuristic để quyết định liệu nó có đang hội tụ về một lời giải hay không
    • Bạn nên nhúng một workflow engine và để mô hình xây dựng đặc tả workflow chạy trên engine đó
  • Thật may khi tài liệu này xuất hiện đúng lúc này. Cảm ơn

    • Tôi đang hình dung một sandbox nghe nhìn kiểu như vvvv. Ý tưởng là cắm vào các nút LM hoặc các nút mạng nơ-ron cục bộ đơn giản để thực hiện các tác vụ cụ thể, đồng thời giới hạn đầu ra rất chặt
    • Luồng đi từ câu hỏi sang câu trả lời rất hấp dẫn. Các pipeline nhiều giai đoạn cũng cực kỳ thú vị
  • Tôi tò mò không biết các thư viện như DSPY phù hợp với factor-2 như thế nào

    • Tôi đã thấy ví dụ dùng BAML để tạo prompt. Việc tự tay viết prompt để trích xuất thông tin có cấu trúc từ dữ liệu phi cấu trúc không hề dễ
    • Tôi muốn biết mọi người nghĩ gì về việc dùng prompt thô của DSPY
  • Đây là một bài blog cũ, nhưng nội dung về các mẫu framework đã đồng điệu với tôi suốt sự nghiệp. Tốt hơn là dùng LLM như một thư viện thay vì một framework

    • Framework hấp dẫn hơn, dễ bán hơn, và dẫn đến hiệu ứng khóa chặt cùng các dịch vụ bổ sung
  • Tuyệt vời. 80% tôi đã học theo cách khó khăn, còn 20% còn lại sẽ là phần đọc rất đáng giá

    • Tôi đã thành công với LangGraph và schema pydantic. Tôi tò mò người khác thấy cái gì hữu ích
  • Thêm một điều nữa: hãy lên kế hoạch chi phí khi mở rộng

    • Chi phí có thể rất lớn khi mở rộng, nên bất cứ thứ gì có thể xử lý bằng thành phần mang tính quyết định thì hãy thử trước. Điều đó có thể giảm hallucination và độ trễ, đồng thời tạo ra khác biệt lớn về tiết kiệm chi phí
  • Để việc tuân theo các nguyên tắc dễ hơn, cần có một câu chuyện xuyên suốt nhất quán. Dùng ví dụ thực tế sẽ tốt hơn

  • Tôi rất vui vì nó đã lên trang nhất HN

  • Thật tuyệt khi thấy BAML xuất hiện ở đây. Tôi đồng ý 100% với việc coi LLM như một hàm