Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Agentic Loop Lifecycle: AI Agent biết khi nào nên tiếp tục hay dừng như thế nào?

    Một trong những thành phần cốt lõi của Agentic Architecture & OrchestrationAgentic Loop (hay còn gọi là Coordinator Runtime). Đây là cơ chế điều phối giúp AI Agent có thể tự thực hiện một chuỗi hành động, sử dụng công cụ (tools) khi cần và chỉ dừng lại khi đã hoàn thành nhiệm vụ.

    Điểm thú vị là Coordinator Runtime không tự suy đoán xem model đã làm xong hay chưa. Thay vào đó, toàn bộ luồng thực thi được điều khiển bởi một tín hiệu mà Claude trả về sau mỗi lần suy luận, đó là stop_reason. stop_reason hoạt động như thế nào?


    Sau mỗi request gửi đến Claude, model sẽ trả về một giá trị stop_reason để cho biết trạng thái hiện tại của quá trình suy luận, hai trạng thái trả về:

    1. tool_use – Tiếp tục Agentic Loop

    Khi stop_reason = tool_use, điều đó có nghĩa là Claude chưa thể đưa ra câu trả lời cuối cùng và cần sử dụng một hoặc nhiều tool để thu thập thêm thông tin hoặc thực hiện một hành động.

    Lúc này, Coordinator Runtime sẽ:
    1. Thực thi các tool mà Claude yêu cầu.
    2. Thu thập kết quả từ các tool.
    3. Append các tool results vào conversation history.
    4. Gửi toàn bộ context đã được cập nhật trở lại cho Claude.
    5. Claude tiếp tục suy luận và quyết định bước tiếp theo (next action).
    Quá trình này sẽ lặp lại cho đến khi model xác định rằng không cần gọi thêm tool nào nữa.

    2. end_turn – Kết thúc Agentic Loop

    Khi stop_reason = end_turn, điều đó có nghĩa là Claude đã hoàn tất quá trình suy luận.

    Coordinator Runtime lúc này chỉ cần:
    • Kết thúc vòng lặp.
    • Trả câu trả lời cuối cùng cho người dùng.
    Không có thêm tool nào được gọi sau thời điểm này.
    VÍ DỤ MINH HỌA:
    Giả sử người dùng hỏi: "Hôm nay thời tiết thế nào? Có nên mang ô không?"
    Luồng thực thi sẽ diễn ra như sau:

    Bước 1:
    • Coordinator gửi yêu cầu đến Claude.
    • Claude nhận thấy mình không có dữ liệu thời tiết theo thời gian thực nên trả về:
      • stop_reason = tool_use
      • Tool: get_weather("Đà Nẵng")
    Bước 2:
    • Coordinator thực thi get_weather().
    • Kết quả trả về:
      • Nhiệt độ: 31°C
      • Khả năng mưa: 85%
    Coordinator append kết quả này vào conversation history rồi gửi lại toàn bộ context cho Claude.
    Bước 3:
    Claude tiếp tục suy luận dựa trên dữ liệu mới:
    • Nhiệt độ cao.
    • Khả năng mưa lớn.
    Lần này Claude đã có đủ thông tin nên trả về:
    stop_reason = end_turn

    Cùng với câu trả lời:
    "Hôm nay Đà Nẵng có khả năng mưa khoảng 85%. Bạn nên mang theo ô nếu ra ngoài."
    Toàn bộ Agentic Loop kết thúc tại đây (terminates).

    Tại sao phải append tool results vào conversation history?

    Đây là điểm rất quan trọng nhưng cũng thường bị bỏ qua.

    Claude không ghi nhớ kết quả của tool một cách tự động. Mỗi lần suy luận mới, model chỉ nhìn thấy những gì có trong conversation history.

    Nếu Coordinator chỉ thực thi tool mà không đưa kết quả trở lại conversation, Claude sẽ không biết:
    • Tool vừa trả về điều gì.
    • Có cần gọi thêm tool khác hay không.
    • Có đủ dữ liệu để trả lời người dùng chưa.
    Việc append tool results giúp model luôn có đầy đủ context để tiếp tục suy luận và quyết định hành động tiếp theo một cách chính xác.

    Việc sử dụng giá trị stop_reason giúp tránh các anti-patterns:

    Một Agentic Loop được thiết kế đúng sẽ không cố gắng tự đoán trạng thái của model.

    Ví dụ, đây đều là những anti-pattern phổ biến:
    • Đọc nội dung phản hồi của assistant rồi suy luận rằng "có vẻ đã xong".
    • Kiểm tra xem phản hồi có chứa những từ như "Completed", "Done", "Finished" để quyết định kết thúc.
      • ví dụ: Trong response có chứa từ "completed" hoặc "done" sẽ dừng tuy nhiên phản hồi có thể trả về 1 từ đồng nghĩa như "success" sẽ khiến coordinator runtime hiểu sai về response của model -> sai next action.
    • Thiết lập số vòng lặp cố định (ví dụ tối đa 5 lần) làm cơ chế dừng chính.
    Những cách tiếp cận này dễ gây lỗi vì phụ thuộc vào nội dung ngôn ngữ tự nhiên hoặc các giả định bên ngoài (hardcode).
    Thay vào đó, Coordinator Runtime chỉ cần dựa vào stop_reason mà model trả về. Đây là tín hiệu điều khiển (control signal) được thiết kế riêng để orchestration, giúp vòng lặp hoạt động ổn định, rõ ràng và đáng tin cậy hơn.
    KẾT LUẬN:
    Trong Agentic Architecture, Coordinator Runtime không quyết định thay cho model nên làm gì tiếp theo. Vai trò của nó là điều phối vòng lặp dựa trên tín hiệu stop_reason.
    • tool_use → thực thi tool, append kết quả vào conversation history và để Claude tiếp tục suy luận.
    • end_turn → kết thúc vòng lặp và trả kết quả cho người dùng.
    Nhờ cơ chế này, việc ra quyết định vẫn thuộc về model, còn runtime chỉ chịu trách nhiệm thực thi và cung cấp đầy đủ context cho từng vòng suy luận. Đây cũng là nền tảng giúp Agentic AI có thể hoạt động linh hoạt thay vì phụ thuộc vào các workflow hay decision tree được lập trình sẵn.
Working...
X