---
title: "Ba tiếng làm việc với một AI agent trên dự án thật: nhật ký và số đo"
url: https://www.thinnd.site/ky-su/nhat-ky-ai-agent-du-an-that/
language: vi
author: "Nhu Duy Thin (Thinnd)"
published: 2026-10-29
updated: 2026-10-29
section: "Ký sự thực tế"
tags: ["AI agent", "ký sự", "số đo", "kiểm chứng", "quy trình"]
summary: "Trong một buổi làm việc ba tiếng với AI agent trên dự án này, 7 trong 12 commit là sửa lại sau phản hồi của người, dù chúng chỉ chiếm khoảng 5% số dòng thay đổi. Gần nửa số tin nhắn của người là báo lỗi hoặc yêu cầu làm lại, và phần lớn lỗi là điều mắt nhìn thấy chứ không phải lỗi logic."
license: "Cite with the author name and the canonical URL above."
---

# Ba tiếng làm việc với một AI agent trên dự án thật: nhật ký và số đo

> Ký sự này đo từ hai nguồn có thể kiểm lại: lịch sử git của dự án blog này và lịch sử trò chuyện giữa người viết và AI agent (Claude Code). Không có số liệu nào được dựng lại.
>
> Giới hạn nói trước: đây là **một buổi làm việc, một dự án, một cặp người và agent**, không có nhóm đối chứng. Ký sự cho thấy một bức tranh cụ thể, không chứng minh điều gì về mọi dự án.

---

## Tóm tắt nhanh

- Trong **3 giờ 18 phút** giữa commit đầu và commit cuối, agent đã cùng người đưa ra **12 commit**, tổng cộng **6.922 dòng** được thêm hoặc xóa.
- Người gửi **33 tin nhắn**: 11 lệnh commit, 7 yêu cầu việc mới và **15 tin báo lỗi hoặc yêu cầu làm lại** (khoảng 45%).
- **7 trong 12 commit** là sửa lại sau phản hồi, nhưng chúng chỉ gồm **323 dòng**, tức khoảng **4,7%** số dòng thay đổi. Lỗi nhỏ, nhưng tốn nhiều vòng.
- Lỗi người phát hiện phần lớn là điều **mắt nhìn thấy**: ô nằm lồng trong ô, chấm tròn bị cắt, chữ lọt sai ngôn ngữ, câu chữ cứng. Ít nhất bốn lỗi **lọt qua kiểm tra tự động** vì lúc đó chưa có phép kiểm đúng loại.
- Một lần agent **sửa sai chỗ**: nó di chuyển một nhãn trong khi nguyên nhân thật nằm ở khung ảnh. Đo trước khi sửa mới ra nguyên nhân.
- Bài học thực tế: mỗi lỗi nên để lại **một phép kiểm mới** và **một dòng trong sổ tay** của dự án.

---

## 1. Bối cảnh

Dự án là blog tĩnh cá nhân này: nội dung Markdown, một bộ sinh trang viết tay, ba ngôn ngữ (Việt, Anh, Nhật) và các bộ slide. Trong buổi làm việc, người viết giao việc cho agent bằng tin nhắn, agent đọc và sửa file, chạy build, chạy script kiểm tra, rồi người xem kết quả trên trình duyệt và nhắn lại. Commit chỉ được tạo khi người ra lệnh.

Điều này khác với "agent chạy một mình cả đêm". Đây là kiểu **người ngồi cạnh**, phản hồi liên tục. Hãy nhớ khi đọc các con số.

---

## 2. Nhật ký các commit

Thời gian lấy từ lịch sử git (giờ địa phương, cùng một ngày). "Loại" là tiền tố của commit.

| Giờ | Loại | Nội dung | Lý do ra đời |
|---|---|---|---|
| 11:08 | feat | Bản dịch ba ngôn ngữ và chỉnh giao diện | Người gửi ảnh lỗi giao diện, nhờ rà soát |
| 11:26 | feat | Bài "Vì sao không nên tin AI tuyệt đối" cùng bộ slide | Việc mới |
| 11:45 | feat | Làm bài dễ hiểu hơn, thêm ví dụ khi dev làm việc với AI | Phản hồi: khó hiểu, thuật ngữ khô |
| 12:26 | fix | Viết lại slide mơ hồ, sửa bố cục demo bàn phím | Phản hồi kèm ảnh lỗi |
| 12:30 | docs | Đồng bộ bài viết với chuẩn đã dùng cho slide | Phản hồi: chưa đúng chuẩn |
| 12:35 | fix | Dịch nhãn tiếng Việt còn sót trong slide Anh và Nhật | Phản hồi kèm ảnh |
| 12:49 | feat | Bài "Làm việc nhóm thời AI" cùng 21 slide | Việc mới |
| 12:55 | feat | Viết lại chữ trên slide cho có sức hút | Phản hồi: diễn đạt thô kệch |
| 12:57 | fix | Thêm tên chủ đề vào trang bìa | Phản hồi kèm ảnh |
| 14:15 | feat | Triển khai SEO, GEO, AEO (33 file) | Việc mới |
| 14:22 | fix | Giữ chấm ăng-ten của mascot không bị che | Phản hồi kèm ảnh |
| 14:26 | fix | Sửa lại đúng nguyên nhân: khung SVG cắt chấm | Phản hồi: vẫn lỗi |

Bốn bản giao lớn (11:26, 12:49, 14:15 và bản đầu 11:08) đều có sửa theo sau. Sau bộ slide nhóm, lần sửa đầu đến sau **6 phút**. Sau gói SEO, lần sửa đầu đến sau **7 phút** và lần sửa đúng nguyên nhân đến sau **11 phút**.

---

## 3. Số đo

| Chỉ số | Giá trị | Nguồn đo |
|---|---|---|
| Khoảng giữa commit đầu và cuối | 3 giờ 18 phút | git log |
| Số commit | 12 (6 tính năng, 1 tài liệu, 5 sửa lỗi) | git log |
| Tổng dòng thêm hoặc xóa qua các commit | 6.922 (một dòng viết lại hai lần tính hai lần) | git log, thống kê từng commit |
| Hiệu số cuối cùng so với trước buổi làm việc | 40 file, thêm 5.983, xóa 311 | git diff |
| Tin nhắn của người | 33 | Lịch sử trò chuyện |
| Trong đó: lệnh commit, việc mới, báo lỗi hoặc làm lại | 11, 7, 15 | Phân loại thủ công |
| Commit sửa sau phản hồi | 7 trên 12 | Phân loại thủ công |
| Số dòng của các commit sửa | 323 trên 6.922 (4,7%) | git log |

Cách phân loại tin nhắn: "báo lỗi hoặc làm lại" là tin nói rằng kết quả vừa giao có lỗi, khó hiểu hoặc chưa đúng ý. "Việc mới" là yêu cầu thêm nội dung hay tính năng. Phân loại do tay, có thể có tranh luận ở vài tin.

Điều đáng chú ý nhất là **tỷ lệ 7 trên 12 commit so với 4,7% số dòng**. Phần lớn công sức nằm ở số vòng quay lại, không nằm ở khối lượng chữ.

---

## 4. Mười một lỗi người phát hiện

Đây là các lỗi tiêu biểu mà người nhìn thấy trước agent. Cột cuối cho biết gốc rễ.

| # | Điều người thấy | Gốc rễ | Nhóm |
|---|---|---|---|
| 1 | Ô tìm kiếm "không hoạt động" | Logic lọc đúng, nhưng kết quả nằm dưới màn hình đầu nên gõ xong không thấy gì | Trải nghiệm |
| 2 | "Tóc" mascot đen, mất hút ở chế độ tối | Màu cố định trong ảnh SVG | Nhìn thấy |
| 3 | Viền màu be nhạt trông xấu | Agent chọn màu theo độ tương phản chứ không theo thẩm mỹ | Thẩm mỹ |
| 4 | Tiêu đề tiếng Nhật ngắt dòng làm đứt ý | Trình duyệt tự ngắt giữa cụm từ | Ngôn ngữ |
| 5 | Slide dùng chữ "Nhiệt độ" ai cũng không hiểu | Dịch thuật ngữ máy móc | Chữ |
| 6 | Dòng mở đầu slide mơ hồ, chỉ báo trước nội dung | Câu mở đầu kiểu "có một cách hình dung AI chọn từng chữ" không nói gì | Chữ |
| 7 | Chữ Việt còn sót trên slide tiếng Nhật | Hai nhãn trang bìa gõ thẳng, không qua cơ chế dịch | Ngôn ngữ |
| 8 | Ô nằm lồng trong ô ở slide bàn phím | Luật CSS bắt cả thẻ bọc chữ dịch | Nhìn thấy |
| 9 | Tiêu đề slide chép nguyên lời yêu cầu, nghe thô kệch | Agent làm theo chữ của yêu cầu | Chữ |
| 10 | Trang bìa thiếu tên chủ đề | Tiêu đề hấp dẫn đã thay mất tên chủ đề | Chữ |
| 11 | Chấm tròn ở đầu mascot vẫn bị cắt sau lần sửa đầu | Lần đầu sửa sai chỗ: nhãn không phải thủ phạm, khung SVG mới là | Nguyên nhân |

Phân nhóm: 4 lỗi về chữ, 2 về ngôn ngữ, 2 về điều nhìn thấy, 1 về trải nghiệm, 1 về thẩm mỹ, 1 về chẩn đoán sai nguyên nhân.

**Điều đáng nói:** không lỗi nào trong số này là lỗi logic của chương trình. Chúng nằm ở chỗ **kết quả trông ra sao với một con mắt**, nơi agent không có mắt để nhìn nếu người không cho nó ảnh, và nơi kiểm tra tự động chưa được dạy để nhìn.

---

## 5. Kiểm tra tự động có bắt được không?

Agent có viết các script kiểm tra: kiểm bố cục slide (chữ tràn, đè nhau, tiêu đề xuống dòng), và sau đó kiểm chữ lọt ngôn ngữ. Những script này bắt được nhiều lỗi trước khi người thấy. Nhưng ít nhất bốn lỗi trong bảng trên **lọt qua vì lúc đó chưa có phép kiểm đúng loại**:

- Lỗi 7, 8, 10 và 11: kiểm tra bố cục báo "ổn" hoặc chưa tồn tại, nhưng người vẫn thấy sai. Kiểm tra bố cục không hỏi "chữ có lọt sai ngôn ngữ không", "trang có nêu đúng chủ đề không" hay "chấm tròn có bị cắt khi chuyển động không".

Mỗi lần như vậy, phản ứng đúng là **thêm một phép kiểm mới**: bước quét chữ lọt ngôn ngữ, phép đo khoảng cách giữa chấm tròn và nhãn ở bốn độ rộng, quy tắc "tiêu đề phải nêu chủ đề". Kiểm tra tự động tăng dần theo lỗi người gặp.

Lỗi số 11 đáng đọc kỹ. Phép đo khoảng cách báo không đè nhau, nhưng thủ phạm lại là khung SVG cắt hình khi chấm nhảy lên. Chỉ khi tái hiện lỗi ở **đỉnh chuyển động** và so hình với khung mới ra nguyên nhân. Bài học: **đo trước khi sửa, và tái hiện đúng tình huống lỗi**.

Đây cũng là cùng mô hình trong bài [vì sao không nên tin AI tuyệt đối](https://www.thinnd.site/ky-thuat/khong-nen-tin-ai-tuyet-doi/): kết quả trông hoàn chỉnh, kiểm tra nội bộ báo ổn, và người nhìn vào mới thấy điều sai.

---

## 6. Sáu điều rút ra

1. **Phản hồi của người chủ yếu về điều nhìn thấy và cảm nhận.** Hình, chữ, tên gọi, bố cục. Hãy chuẩn bị cho agent cách xem được kết quả (ảnh chụp, đo bằng script) thay vì chờ người chỉ ra.
2. **Chi phí nằm ở số vòng, không ở số dòng.** Bảy commit sửa chỉ 323 dòng. Nếu muốn giảm chi phí, giảm số lần quay lại bằng cách nêu rõ "xong là thế nào" từ đầu.
3. **Kiểm tra tự động chỉ bắt thứ nó được dạy bắt.** Sau mỗi lỗi, thêm một phép kiểm. Nếu không, lỗi cùng loại sẽ quay lại.
4. **Đo trước khi sửa.** Lần sửa chấm tròn đầu tiên sai chỗ vì dựa vào phỏng đoán đầu tiên nghe hợp lý. Tái hiện lỗi ở trạng thái xấu nhất.
5. **Agent làm theo chữ.** Khi người nói "thay vì A, đang hướng tới B", agent chép lại nguyên văn thành tiêu đề. Hãy yêu cầu diễn đạt lại thay vì sao chép đề bài.
6. **Ghi bài học vào sổ tay của dự án.** Mỗi lỗi lặp lại thành một dòng trong tệp hướng dẫn (xem bài [sổ tay cho AI](https://www.thinnd.site/ky-thuat/so-tay-cho-ai-agents-md/)). Dự án này hiện có bốn bộ hướng dẫn riêng và một tệp ghi chú chung, gần như mỗi mục sinh ra từ một lỗi ở trên.

---

## 7. Giới hạn của ký sự này

- **Một buổi, một dự án, một cặp.** Không thể suy ra mức độ chung. Dự án là blog nội dung và giao diện, nơi lỗi nhìn thấy chiếm nhiều. Một dự án backend sẽ cho bức tranh khác.
- **Không có đối chứng.** Không biết nếu người tự làm một mình thì mất bao lâu, nên không kết luận agent nhanh hay chậm hơn. Bài về nghiên cứu METR đã nhắc: cảm giác nhanh không đồng nghĩa với nhanh.
- **Phân loại thủ công.** Tin nhắn và lỗi được phân loại bằng tay, một người khác có thể xếp khác đi vài mục.
- **Thời gian lấy từ commit.** Phiên làm việc thực tế dài hơn khoảng giữa hai commit, vì commit chỉ tạo khi người ra lệnh.
- **Điều không đo:** thời gian người dành để nhìn và gõ phản hồi, chất lượng bài viết theo người đọc, và chi phí dùng agent.

---

## 8. Hãy tự đo ở dự án của bạn

Một bảng ghi nhỏ đủ để có số của riêng bạn. Mỗi việc giao cho agent là một dòng:

| Cột | Ví dụ |
|---|---|
| Việc | "Thêm trang tìm kiếm" |
| Giờ giao, giờ xong | 10:05, 10:40 |
| Số vòng sửa | 3 |
| Loại lỗi | nhìn thấy, logic, chữ, ngôn ngữ, chẩn đoán sai, thẩm mỹ |
| Ai phát hiện | người, kiểm tra tự động, agent tự thấy |
| Đã thêm phép kiểm hay dòng sổ tay chưa | có, không |

Kèm hai lệnh:

```bash
git log --format='%h %ad %s' --date=format:%H:%M --shortstat
git diff --shortstat <commit-trước-buổi-làm-việc> HEAD
```

Sau một tuần, đọc ba con số: bao nhiêu việc qua nhiều hơn hai vòng sửa, loại lỗi nào lặp lại nhiều nhất, và ai phát hiện phần lớn lỗi. Ba con số đó cho biết nên đầu tư vào kiểm tra tự động, vào sổ tay, hay vào cách giao việc.

---

## 9. Kết luận

Trong ba tiếng, agent làm ra khối lượng lớn nhanh chóng, và người phải quay lại sửa nhiều lần trên những chi tiết nhỏ mà chỉ mắt người nhìn thấy. Cả hai điều cùng đúng. Giá trị của việc ngồi cạnh agent nằm ở chỗ **biến mỗi lần sửa thành một phép kiểm hoặc một dòng sổ tay**, để lần sau lỗi đó không cần người chỉ ra nữa.

Ký sự này chỉ là một mẫu, nhưng cách đo thì dùng lại được. Nếu bạn ghi lại một tuần của mình, những con số đó sẽ nói điều mà không báo cáo nào của người khác nói thay bạn được.

---

## Nguồn tham khảo

Số liệu lấy từ lịch sử git của kho mã dự án này (các commit từ `3791938` đến `ec1bc85`) và lịch sử trò chuyện của buổi làm việc. Bài viết liên quan trong kho:

- [Vì sao không nên tin AI tuyệt đối](https://www.thinnd.site/ky-thuat/khong-nen-tin-ai-tuyet-doi/) (có nguồn về nghiên cứu METR, Stack Overflow Developer Survey 2025 và các nghiên cứu về mã do AI viết)
- [Làm việc nhóm IT thời AI](https://www.thinnd.site/kinh-nghiem/lam-viec-nhom-thoi-ai/) (có nguồn về Faros AI và DORA 2025)
- [Duyệt code do AI viết](https://www.thinnd.site/ky-thuat/duyet-code-do-ai-viet/)
- [Sổ tay cho AI](https://www.thinnd.site/ky-thuat/so-tay-cho-ai-agents-md/)

Tài liệu bên ngoài:

- [git log](https://git-scm.com/docs/git-log) và [git diff](https://git-scm.com/docs/git-diff) (tài liệu chính thức, nguồn của các lệnh dùng để đo ở mục "Tự đo")
- [Faros AI: nghiên cứu năng suất AI trong phòng thí nghiệm và ngoài thực tế](https://www.faros.ai/blog/lab-vs-reality-ai-productivity-study-findings) và [DORA 2025](https://research.google/pubs/dora-2025-state-of-ai-assisted-software-development-report/) là hai nguồn quy mô lớn để đối chiếu. Bài này chỉ là một mẫu nhỏ, không thay thế được chúng.
