Blog

Ghi chép về engineering, AI agents và hạ tầng — những thứ tôi học được khi xây hệ thống thật.

Ảnh bìa: Khi UNIQUE vẫn trùng: điều tra MySQL corrupt
28 phút đọc

Khi UNIQUE vẫn trùng: điều tra MySQL corrupt

Trong tình huống giả định, quá trình dựng replica đã phơi bày 43 bảng InnoDB bị corrupt âm thầm: secondary index trả về một dòng, trong khi scan theo PRIMARY cho thấy hai bản ghi trùng `obj_id`. Chuỗi bằng chứng cho thấy ZFS-backed NFS với synchronous-write semantics bị nới lỏng có thể phá vỡ cam kết `fsync()`, khiến index lệch khỏi clustered data sau các sự cố và làm truy vấn production trả kết quả sai mà không báo lỗi. Bài học cốt lõi là phải dùng storage bảo đảm durability, duy trì backup đã thử restore và kiểm tra tính toàn vẹn định kỳ, bởi replica không thay thế backup nhưng có thể vô tình trở thành phép thử phát hiện corruption.

MySQLInnoDBZFSSREPostmortem
#MySQL#InnoDB#ĐiềuTraSựCố#HỏngChỉMục#ToànVẹnDữLiệu#LưuTrữZFS#VậnHànhSRE#SaoLưuDữLiệu
Ảnh bìa: Subagent trong Claude Code: context riêng, quyền hạn và cách điều phối
24 phút đọc

Subagent trong Claude Code: context riêng, quyền hạn và cách điều phối

Subagent trong Claude Code là đơn vị thực thi có context, system prompt, model và phạm vi công cụ riêng, giúp cách ly log cùng dữ liệu trung gian khỏi phiên chính nhưng không mặc nhiên tách biệt filesystem. Delegation hiệu quả khi nhiệm vụ có ranh giới, quyền hạn và đầu ra rõ ràng—đặc biệt với chạy test, khảo sát codebase, review độc lập hoặc tra cứu tài liệu—đồng thời cần cân nhắc chi phí tái tạo context, xung đột khi sửa file và các lớp kiểm soát như permission, hook hoặc worktree.

Claude CodeAI AgentsDeveloper Tools
#ClaudeCode#Subagent#TacNhanAI#LapTrinhAI#DieuPhoiTacNhan#CongCuLapTrinh#TuDongHoa#KyThuatPhanMem
Ảnh bìa: Từ prompt đến mascot chuyển động trong Codex
21 phút đọc

Từ prompt đến mascot chuyển động trong Codex

Bài viết trình bày pipeline thực hành biến ảnh raster do GPT Image tạo hoặc chỉnh sửa thành mascot chuyển động, từ đặc tả nhân vật, ảnh tham chiếu, chuẩn hoá frame và đóng gói spritesheet đến manifest và state machine trong runtime. Chất lượng của mascot phụ thuộc chủ yếu vào tính nhất quán, khả năng kiểm tra và hợp đồng rõ ràng giữa asset với runtime; mô hình chỉ cung cấp nguyên liệu thị giác, còn code và visual QA biến chúng thành một thành phần phần mềm ổn định, có thể tái tạo và vận hành lâu dài.

CodexGPT ImageAnimation
#MascotChuyenDong#CodexPet#GPTImage#TaoAnhBangAI#HoatAnhNhanVat#QuyTrinhSpritesheet#LapTrinhAnimation#ThietKeMascot
Ảnh bìa: ZFS vận hành ra sao và những rủi ro cần tính trước
27 phút đọc

ZFS vận hành ra sao và những rủi ro cần tính trước

ZFS hợp nhất filesystem và volume manager với checksum, copy-on-write, redundancy, snapshot và replication để phát hiện lỗi dữ liệu, đồng thời có thể tự sửa khi còn bản dư thừa hợp lệ. Tuy nhiên, độ an toàn và hiệu năng phụ thuộc lớn vào topology pool/vdev, đặc tính workload, phần cứng và các thiết lập như record size, SLOG hay special vdev—nhiều lựa chọn rất khó thay đổi về sau. Vì vậy, cần xác định rõ loại lỗi phải chịu, kế hoạch dung lượng, giám sát và quy trình backup–khôi phục trước khi tạo pool.

ZFSStorageHệ thống
Ảnh bìa: MCP không phải API: cách kết nối LLM với tool và dữ liệu
12 phút đọc

MCP không phải API: cách kết nối LLM với tool và dữ liệu

Giải thích kiến trúc Model Context Protocol, sự khác nhau giữa tools, resources và prompts, kèm một MCP server Python có thể chạy và kiểm tra bằng Inspector.

MCPAIDeveloper Tools
Ảnh bìa: Vibe coding và phần trách nhiệm không thể giao cho AI
11 phút đọc

Vibe coding và phần trách nhiệm không thể giao cho AI

Vibe coding giúp rút ngắn thời gian tạo phần mềm chạy được, nhưng không thay thế quá trình hiểu, kiểm chứng và thiết lập các ranh giới bảo mật cần thiết. AI có thể viết code và đề xuất kiểm thử, song con người vẫn phải chịu trách nhiệm xác định quyền hạn, áp dụng đặc quyền tối thiểu, kiểm tra cả hành vi bị từ chối và chỉ phát hành khi có đủ bằng chứng về độ an toàn.

SecurityVibe CodingTriết luận
#VibeCoding#BảoMậtPhầnMềm#TráchNhiệmVớiAI#LậpTrìnhAnToàn#RanhGiớiTinCậy#ĐặcQuyềnTốiThiểu#KiểmThửBảoMật#PhátTriểnPhầnMềm
Ảnh bìa: Poison Context: khi một giả định sai sống dai trong phiên làm việc
17 phút đọc

Poison Context: khi một giả định sai sống dai trong phiên làm việc

Poison Context khiến agent liên tục dựa vào dữ liệu sai, kết quả cũ hoặc giả định chưa kiểm chứng. Bài viết giải thích cách nhận diện, cô lập và phục hồi context trước khi lỗi lan sang các bước tiếp theo.

AI AgentsContext Engineering
Ảnh bìa: SM của NVIDIA và CU của AMD không phải hai đơn vị cùng thước đo
15 phút đọc

SM của NVIDIA và CU của AMD không phải hai đơn vị cùng thước đo

SM, CU, CUDA core hay Stream Processor nói gì về sức mạnh GPU? Bài viết bóc tách kiến trúc NVIDIA và AMD, rồi đưa ra checklist chọn card theo đúng workload thay vì đếm core.

GPUHardwareNVIDIAAMD
Ảnh bìa: Bên trong GPU: vì sao kiến trúc này hợp với nhân ma trận?
16 phút đọc

Bên trong GPU: vì sao kiến trúc này hợp với nhân ma trận?

Đi từ SM, warp và hệ thống bộ nhớ tới matrix tiling, xử lý ảnh và Transformer để hiểu GPU mạnh ở đâu, và vì sao nhiều core chưa bao giờ là toàn bộ câu chuyện.

GPUCUDAAI
Ảnh bìa: GPU và hành trình của một token
29 phút đọc

GPU và hành trình của một token

Đi từ prompt tới token kế tiếp qua CPU, VRAM, các tầng Transformer và những cụm nhân tính toán bên trong GPU; đồng thời chỉ ra điều gì thực sự quyết định tốc độ chạy model local.

AIGPUHardwareLocal LLM
Ảnh bìa: Token của LLM không phải là một từ
23 phút đọc

Token của LLM không phải là một từ

Token được tạo ra thế nào, đếm ra sao, chiếm context window ở đâu và vì sao token/giây chưa đủ để nói một LLM nhanh. Một bản đồ thực dụng từ tokenizer tới chi phí và hiệu năng inference.

LLMTokenizationContext WindowInference
Ảnh bìa: Bộ nhớ của agent: nhớ đúng còn khó hơn nhớ nhiều
13 phút đọc

Bộ nhớ của agent: nhớ đúng còn khó hơn nhớ nhiều

Bộ nhớ của agent không chỉ là nhét lịch sử chat vào vector database. Bài này đi từ các loại bộ nhớ tới luồng ghi, truy xuất, hợp nhất, quên và cách đo một hệ thống bộ nhớ dùng được trong thực tế.

LLM AgentsMemoryArchitecture
Ảnh bìa: Agent loop: vòng lặp biến LLM thành tác nhân biết hành động
10 phút đọc

Agent loop: vòng lặp biến LLM thành tác nhân biết hành động

Một mô hình ngôn ngữ chỉ sinh chữ. Thứ biến nó thành agent là một vòng lặp nghĩ – làm – nhìn. Đi từ Chain-of-Thought, ReAct, tool use tới self-reflection, với paper gốc và vài quan sát từ thực tế.

LLM AgentsAgent LoopReasoningPapers
Ảnh bìa: Skill library của Voyager: cái kho khiến agent càng chơi càng giỏi
8 phút đọc

Skill library của Voyager: cái kho khiến agent càng chơi càng giỏi

Voyager học suốt đời trong Minecraft nhờ một skill library dạng vector database — nơi mỗi kỹ năng là đoạn code agent tự viết, tự kiểm rồi cất lại để dùng sau. Bài này mổ xẻ cơ chế đó.

LLM AgentsSkillsVoyagerPapers
Ảnh bìa: Skills: khi agent tự xây và tái sử dụng kỹ năng
9 phút đọc

Skills: khi agent tự xây và tái sử dụng kỹ năng

Một agent giỏi không giải lại từ đầu mỗi lần — nó tích luỹ kỹ năng rồi gọi lại khi cần. Từ skill library của Voyager tới progressive disclosure của Agent Skills, kèm paper gốc và vài suy nghĩ.

LLM AgentsSkillsTool UsePapers
Ảnh bìa: Hooks trong Claude Code hoạt động thế nào?
8 phút đọc

Hooks trong Claude Code hoạt động thế nào?

Hooks biến những chỉ dẫn 'nhớ làm giúp tôi' thành đảm bảo chắc chắn. Bài này mổ xẻ vòng đời hook, cách cấu hình, luồng vào/ra bằng exit code & JSON, kèm ví dụ thật.

Claude CodeHooksAutomationDevTools