# Hiểu rõ hơn về add_conditional_edges Chúng ta lấy 2 ví dụ để so sánh ``` builder.add_conditional_edges("node_1", decide_dring) ``` và ``` builder.add_conditional_edges("router", { "coffee_node": "coffee_node", "tea_node": "tea_node", "fallback_node": "fallback_node" }) ``` Hai dòng `builder.add_conditional_edges(...)` trên **đều dùng để thêm điều kiện rẽ nhánh**, nhưng **cách dùng và mục đích của chúng có sự khác biệt rõ ràng**.
Tiêu chí`builder.add_conditional_edges("node_1", decide_dring)``builder.add_conditional_edges("router", { "coffee_node": ..., ... })`
**Kiểu truyền đối số**Truyền **một hàm** điều kiện (condition function)Truyền **một dict** ánh xạ giá trị trả về từ router đến các node tương ứng
**Ai quyết định rẽ nhánh?**Hàm `decide_dring(state)` sẽ quyết định đi đến node nàoHàm `router(state)` sẽ trả về một string → dict ánh xạ string đó đến node tương ứng
**Giá trị trả về** của hàmTrả về tên node dưới dạng stringTrả về tên node dưới dạng string, **phải trùng với key trong dict**
**Node được gắn vào**Gắn vào một node bình thường (`node_1`)Gắn vào một router node (`router`)
**Sử dụng khi**Khi bạn muốn **node đang xử lý** tự quyết định rẽ nhánh tiếp theoKhi bạn tách riêng logic định tuyến ra một **router riêng biệt**
**Ví dụ hàm điều kiện**`def decide_dring(state): return "coffee_node" if ... else "tea_node"``def router(state): return "coffee_node" / "tea_node" / "fallback_node"`
**Thường dùng khi**Bạn muốn `node_1` vừa xử lý vừa quyết định hướng đi tiếpBạn muốn tách riêng xử lý (node) và định tuyến (router) một cách rõ ràng
**Dạng****Ý nghĩa**
`add_conditional_edges("node_1", decide_dring)`Node xử lý xong rồi chọn tiếp theo đi đâu.
`add_conditional_edges("router", { ... })`Router chỉ quyết định hướng đi, còn xử lý nằm ở node khác.
#### **Khi nào dùng cái nào?**
Nếu bạn muốn...Hãy dùng...
Một node tự quyết định rẽ nhánh tiếp theo`add_conditional_edges("node_1", decide_dring)`
Một router chuyên dùng để rẽ nhánh`add_conditional_edges("router", { ... })`
**Tác giả: Đỗ Ngọc Tú** **Công Ty Phần Mềm [VHTSoft](https://vhtsoft.com/ "Công Ty Phần Mềm VHTSoft")**