Nếu chỉ nhìn ở mức API, Axios thường dễ dùng hơn. Nhưng nếu hệ của mình sống bằng streaming, pooling, timeout, proxy, retry, và kết nối dài hơi, thì chỗ cần quan tâm không còn là API surface nữa mà là transport behavior.
Table of contents
Open Table of contents
Kết luận ngắn
- Axios hợp với app layer và DX quen tay.
- Undici hợp với core transport trong runtime Node.js.
- Với OpenClaw, lớp outbound path nên ưu tiên Undici hoặc built-in fetch dựa trên Undici.
Khác nhau ở đâu
Axios
Ưu điểm:
- vào việc nhanh,
- cú pháp quen,
- interceptors tiện,
- dùng chung cho browser và Node dễ hơn.
Đổi lại, Axios thường là lớp abstraction tiện tay hơn là lớp transport lý tưởng cho một runtime backend chạy lâu.
Undici
Ưu điểm:
- bám sát transport behavior của Node hơn,
- hợp cho connection pooling,
- hợp cho streaming và abort lifecycle,
- ít che các chi tiết quan trọng trong network path.
Đây là thứ đáng giá trong những hệ có gateway, proxy, model provider, stream dài, và timeout nhạy.
Vì sao chuyện này quan trọng với OpenClaw
Trong OpenClaw, network call không chỉ là gọi REST. Nó thường nằm giữa:
- provider request,
- SSE hoặc chunked streaming,
- retry,
- timeout,
- proxy behavior,
- auth profile,
- và observability.
Nếu transport layer mơ hồ, bug sẽ xuất hiện ở những nơi khó chịu nhất: request treo, stream ngắt nửa chừng, socket reuse lỗi, hoặc timeout không đúng kỳ vọng.
Khi nào nên dùng Axios
Axios vẫn rất ổn nếu anh đang làm:
- app layer thin client,
- dashboard nội bộ,
- browser + Node shared client,
- integration script không quá nhạy về transport.
Nếu mục tiêu là code nhanh, team dễ maintain, và traffic path không phức tạp, Axios hoàn toàn có lý.
Khi nào nên dùng Undici
Undici hợp hơn nếu anh đang làm:
- backend Node.js chạy lâu,
- proxy hoặc gateway,
- hệ agent có streaming,
- tool runtime cần timeout chính xác,
- request volume đủ lớn để connection behavior đáng quan tâm.
Recommendation cho repo kiểu OpenClaw
Hướng sạch nhất là:
- giữ Undici hoặc fetch built on Undici cho core path,
- chỉ thêm Axios ở lớp convenience nếu thật sự có lý,
- không đổi transport chỉ vì API quen tay hơn.
Chốt lại
Axios tốt cho productivity. Undici tốt cho nền móng transport của một runtime Node.js nghiêm túc. Với OpenClaw, mình nên ưu tiên cái thứ hai trước, rồi mới nghĩ tới convenience layer.