Debug AI Agent như một pro — GenAI Observability với OpenTelemetry

Debug AI Agent như một pro — GenAI Observability với OpenTelemetry

"Agent của mình mất 45 giây để trả lời câu hỏi 'Đà Lạt hôm nay thế nào?'. Không biết lỗi ở model, ở tool, hay ở đâu." — Câu này mình nghe từ không ít anh em đang build AI Agent. Và câu trả lời thường là: đoán mò, rồi đổi model, rồi tinh chỉnh prompt, rồi vẫn chậm. Bài này mình sẽ chỉ cách dùng OpenTelemetry để không phải đoán nữa. Nhìn vào một cái dashboard là biết ngay lỗi nằm ở tầng nào, mất bao nhiêu giây ở bước nào, và dữ liệu đầu vào của ... »

Từ Git Diff đến Blast Radius: Code Review Graph có thể hỗ trợ AI Code Review như thế nào?

Từ Git Diff đến Blast Radius: Code Review Graph có thể hỗ trợ AI Code Review như thế nào?

Trong những năm gần đây, các AI coding assistant ngày càng được sử dụng nhiều hơn trong quá trình phát triển phần mềm, từ sinh code, refactoring cho đến code review. Một cách sử dụng phổ biến là cung cấp git diff hoặc nội dung của Pull Request cho AI và yêu cầu: Review this change. Với những thay đổi nhỏ và độc lập, cách tiếp cận này thường mang lại kết quả khá tốt. Tuy nhiên, khi codebase trở nên lớn hơn và có nhiều dependency giữa các module, chỉ đọc phần code thay đổi thường chưa đủ để ... »

Có bao nhiêu cách chạy một AI Agent?

Có bao nhiêu cách chạy một AI Agent?

Góc nhìn của một backend engineer sau vài tháng nhét agent vào production Mở đầu: agent thực ra rất nhỏTrước khi bàn "chạy ở đâu", cần thống nhất "chạy cái gì". Bỏ hết marketing đi, một AI agent chỉ là vòng lặp này: async function agentLoop(messages: Message[], tools: Tool[]) { while (true) { const res = await llm.createMessage({ messages, tools }); messages.push({ role: 'assistant', content: res.content }); if (res.stop_reason !== 'tool_use') return res; const toolResults = await Promise.all( res.content .filter((b) => b.type === 'tool_use') .map(async (b) => ({ type: 'tool_result' as const, tool_use_id: ... »

Chuyển từ Windows 11 sang CachyOS: cái hay, cái dở dưới góc nhìn của một lập trình viên

Chuyển từ Windows 11 sang CachyOS: cái hay, cái dở dưới góc nhìn của một lập trình viên

Giới thiệu chung Mình làm lập trình web trên Windows trong một thời gian dài và nhìn chung mọi thứ đều ổn. Vài năm trở lại đây Windows ngày càng có nhiều biểu hiện khó chịu, nhưng vì đã quá quen nên mình đều tặc lưỡi cho qua. Vài tháng trước mình xem một số bài về "rice" Linux trên Reddit và khá thích thú với giao diện của những người dùng này. Nếu thích giao diện windows, bạn hoàn toàn có thể "rice" giống như No_Beyond_5483 trên reddit đã làm: "Start Menu& ... »

TỪ UBER UREVIEW ĐẾN DỰ ÁN THẬT: NGHỆ THUẬT DÙNG AI CODE REVIEW KHÔNG RÁC

TỪ UBER UREVIEW ĐẾN DỰ ÁN THẬT: NGHỆ THUẬT DÙNG AI CODE REVIEW KHÔNG RÁC

Tản mạnHẹ hẹ, chào anh em! Chắc anh em nào gần đây tích hợp AI vào quy trình CI/CD hay dùng các công cụ AI coding agent như Claude Code, Codex để tự động review code đều từng nếm trải cảm giác vừa mừng vừa… ức chế (haizz). Mừng là vì bot phản hồi nhanh như chớp, vừa tạo Pull Request (PR) xong là 30 giây sau đã thấy thông báo ting ting. Nhưng mở ra đọc thì hỡi ôi: Một PR sửa đúng 3 dòng logic fix bug gấp thì bot nhảy vào yêu cầu: “Bạn nên refactor ... »

Redis vẫn UP nhưng Latency vẫn tăng vọt: Vấn đề nằm ở đâu?

Redis vẫn UP nhưng Latency vẫn tăng vọt: Vấn đề nằm ở đâu?

Redis vẫn UP nhưng Latency vẫn tăng vọt: Vấn đề nằm ở đâu? 1. Vậy vấn đề này là gì?Nhiều team dùng redis-cli PING hoặc metric redis_up = 1 để kết luận Redis "khỏe". Tuy nhiên, PING chỉ trả lời một câu hỏi: Redis còn phản hồi hay không. Nó không trả lời câu hỏi quan trọng hơn: Redis đang phản hồi nhanh hay chậm. Ví dụ minh họa: $ redis-cli -h prod-redis-01 PING PONG $ redis-cli -h prod-redis-01 --latency-history -i 5 min: 1 ms, max: 3 ms, avg: 1.42 ms ... min: 1 ms, max: 4180 ms, avg: 210 ms ... »

GraphQL cho AI Agent

GraphQL cho AI Agent

Tóm tắtCó ba điểm chính mà bài blog này chỉ ra: Thứ nhất, GraphQL không thắng REST một cách tuyệt đối khi người dùng API là AI agent. Nó thắng ở đúng những chỗ mà trước đây không ai quan tâm: chọn được chính xác field cần lấy nên tiết kiệm token, cho phép agent tự hỏi server xem có những gì, và kiểm soát quyền tới từng field. Đổi lại, REST vẫn hơn hẳn về khả năng cache, mức độ chuẩn hóa và độ đơn giản khi vận hành. Thứ hai, thứ quyết định thành bại là kiến trúc ... »

REST, SOAP, gRPC, Webhook, WebSocket, WebRTC: Khi nào nên dùng loại nào?

REST, SOAP, gRPC, Webhook, WebSocket, WebRTC: Khi nào nên dùng loại nào?

REST, SOAP, gRPC, Webhook, WebSocket và WebRTC — cách các hệ thống thực sự nói chuyện với nhau Con người có nhiều cách giao tiếp: gửi thư, gọi điện, nhắn tin, họp video. Mỗi cách phù hợp với một hoàn cảnh — không ai gọi video call chỉ để hỏi "mấy giờ rồi", và cũng không ai gửi thư tay để báo cháy nhà. Hệ thống phần mềm cũng vậy. REST, SOAP, gRPC, Webhook, WebSocket và WebRTC không phải sáu "đối thủ" cạnh tranh nhau, mà là sáu kiểu hội thoại khác nhau giữa các máy tính. Chọn ... »