Skip to content
  • Home
  • Code
  • iOS & Swift
  • Combine
  • RxSwift
  • SwiftUI
  • Flutter & Dart
  • Tutorials
  • Art
  • Blog
Fx Studio
  • Home
  • Code
  • iOS & Swift
  • Combine
  • RxSwift
  • SwiftUI
  • Flutter & Dart
  • Tutorials
  • Art
  • Blog
Tui Học AI
Written by chuotfx on July 29, 2026

Tui Học AI – Bài 7 – “Tôi điều phối AI” → “Tôi thiết kế hệ thống AI tự vận hành, kể cả khi hỏng”

Blog

Contents

  • 1. Mười bốn cái PR trong một cuối tuần
  • 2. Không phải làm cho AI giỏi hơn, là thiết kế cho lúc AI sai
  • 3. 3 dấu hiệu bạn chưa chuyển
    • 1. Hệ thống không có nút dừng
    • 2. Bạn không biết nó tốn bao nhiêu
    • 3. Chỉ mình bạn hiểu nó chạy ra sao
  • 4. 3 dấu hiệu bạn đã chuyển
    • 1. Có một con AI đứng gác trước cửa người
    • 2. Ba đường lui viết sẵn, không phải nghĩ lúc đang cháy
    • 3. Bạn nói được cái giá, và có người thứ hai chạy được nó
  • 5. Bài tập tuần này
  • Tạm kết

Sáng thứ Hai tui mở Slack và thấy mười bốn pull request, tất cả từ đúng một ticket. Pipeline của tui chạy suốt cuối tuần vì không có chỗ nào trong đó biết nói câu “thôi, dừng”. Bài thứ bảy, bậc cuối của cái thang.

Đọc lại bài viết trước đó tại: Tui Học AI – Bài 6 – “Tôi làm với 1 AI” → “Tôi điều phối nhiều AI song song”

1. Mười bốn cái PR trong một cuối tuần

Chiều thứ Sáu, 5 giờ, tui bấm bật cái pipeline đầu tiên của mình. Ticket vào, AI đọc, AI viết code, AI chạy test, AI mở PR. Hai tuần trước đó tui đem nó đi khoe nửa công ty. Bấm xong tui tắt máy đi về, đầu nhẹ tênh.

Sáng thứ Hai, 9 giờ 10. Mở Slack. Mười bốn pull request. Cùng một ticket.

Chuyện xảy ra thế này. Cái ticket đó có một chỗ mô tả mơ hồ. AI viết code, chạy test, test đỏ. Nó sửa, chạy lại, đỏ tiếp. Nó sửa tiếp. Vòng đó quay từ tối thứ Sáu tới sáng thứ Hai, gần bốn mươi tiếng, mỗi lượt đẻ ra một PR mới.

Cái làm tui lạnh người không phải mười bốn cái PR. Là một cái trong đó suýt được merge. Một bạn đồng nghiệp vào sớm, thấy PR có test xanh, mô tả gọn, tiêu đề đúng chuẩn team, tưởng của người thật viết. Bạn approve. Cũng may bạn nhắn hỏi tui một câu trước khi bấm nút.

Chiều đó tui đem nguyên cái pipeline qua cho một anh làm hạ tầng coi. Ảnh không chê dòng code nào. Ảnh hỏi đúng một câu:

“Nếu nó sai ba lần liên tiếp, ai là người biết đầu tiên?”

Tui ngồi im khá lâu. Câu trả lời thật là không ai. Kể cả tui.

Bậc trước, tui học cách cho nhiều AI chạy song song trong lúc tui ngồi giữa. Bậc này mở đầu bằng một câu hỏi khác hẳn: lúc tụi nó chạy sai mà tui đang ngủ, chuyện gì xảy ra?

Tui Học AI

2. Không phải làm cho AI giỏi hơn, là thiết kế cho lúc AI sai

“Tôi điều phối AI” → “Tôi thiết kế hệ thống AI tự vận hành, kể cả khi hỏng”

Sáu bậc trước, đi xa tới đâu thì bạn vẫn nằm trong vòng lặp. Bậc sáu bạn làm nhạc trưởng, nhưng nhạc trưởng vẫn phải đứng đó vẫy đũa. Buông đũa là dàn nhạc im. Mọi thứ chạy được vì có bạn ngồi giữa.

Bậc bảy lấy bạn ra khỏi vòng lặp hằng ngày. Hệ thống nhận việc, làm, tự kiểm, tự dừng khi thấy sai, tự gọi người khi vượt quá sức nó. Bạn không mất quyền gì cả. Bạn đổi chỗ đứng, từ người bấm từng nút thành người viết luật cho lúc không có ai bấm nút.

Đây là chỗ tui từng hiểu sai, và tui thấy nhiều bạn cũng hiểu sai y vậy. Tui tưởng bậc cuối là chỗ AI giỏi tới mức không cần mình nữa. Không phải. AI ở bậc bảy không giỏi hơn AI ở bậc sáu chút nào. Cùng model đó, cùng prompt đó. Cái khác nằm ở phần hệ thống bao quanh nó, phần được thiết kế cho tình huống xấu chứ không chỉ tình huống đẹp.

Nói gọn lại: bậc bảy không đo bằng đường chạy đúng. Đo bằng đường chạy sai.

Vẽ ra thì nó như vầy. Cái đường thẳng nằm ngang là thứ ai cũng vẽ được. Mấy nhánh rẽ xuống mới là bậc bảy:

Tui Học AI

Bạn thử tự vẽ cái automation đang chạy của mình ra giấy. Nếu nó chỉ có đường ngang mà không có nhánh nào rẽ xuống, bài này viết cho bạn. Ba dấu hiệu chưa chuyển trước.

3. 3 dấu hiệu bạn chưa chuyển

1. Hệ thống không có nút dừng

Soi câu này: automation của bạn sai bao nhiêu lượt liên tiếp thì nó tự ngắt? Nếu phải ngồi nghĩ mới trả lời được, câu trả lời thật là không bao giờ.

Cái vòng lặp bốn mươi tiếng của tui không phải do AI dở. Từng lượt một, nó làm đúng thứ tui bảo: thấy test đỏ thì sửa. Không lượt nào sai. Chỉ có điều không lượt nào được phép nói “cái này quá sức tui rồi”.

Tự động mà không có nút dừng thì không phải tự động. Đó là thả rông. Khác biệt nằm ở chỗ thả rông thì tốc độ hỏng cũng được nhân lên theo.

2. Bạn không biết nó tốn bao nhiêu

Tuần rồi automation của bạn tốn bao nhiêu tiền token? Trả lời được trong mười giây không?

Tui từng để con phân loại ticket chạy bằng model mạnh nhất có trong tay. Việc của nó là đọc một dòng tiêu đề rồi trả về một trong bốn nhãn. Vậy thôi. Tui để nguyên như vậy gần ba tháng, vì nó chạy đúng nên tui không có lý do gì mở ra coi lại.

Hôm đổi qua model nhẹ nhất, nhãn trả về y hệt, phần hóa đơn của nó rớt xuống còn chưa tới một phần mười. Ba tháng đó tui trả tiền cho một thói quen, không phải cho chất lượng.

Một hệ thống bạn không biết giá là một hệ thống bạn chưa thật sự sở hữu. Bạn mới đang vận hành giùm nó.

3. Chỉ mình bạn hiểu nó chạy ra sao

Dấu hiệu này soi bằng một câu: kể tên một người khác trong team có thể tắt hệ thống của bạn lúc nửa đêm. Kể tên thật, không phải “chắc mấy bạn kia cũng biết”.

Không kể được thì hệ thống của bạn có một điểm hỏng chưa từng được vẽ vào sơ đồ nào, và điểm đó là bạn. Bạn nghỉ phép năm ngày, nó nghẹt ngày thứ hai, coi như nó nghẹt hết năm ngày.

Tui từng thấy đây là chuyện quản lý con người, để dành cho ai làm sếp. Sai. Ở bậc này nó là chuyện kỹ thuật thuần túy. Con người là một điểm hỏng, và là điểm hỏng hay bị quên nhất, vì nó không nằm trong code nên không ai đi review nó.

Tui Học AI

4. 3 dấu hiệu bạn đã chuyển

1. Có một con AI đứng gác trước cửa người

Trước khi bất kỳ kết quả nào tới tay người thật, nó phải đi qua một session khác chỉ làm đúng một việc: chấm và phán. Không viết code, không sửa, chỉ cho qua hoặc chặn. Đây là prompt tui đang xài, bạn lấy sửa lại theo repo của mình:

Prompt (session gác cổng):
Bạn gác cổng chất lượng cho pipeline auth-webhook.
Đầu vào: diff, kết quả chạy test, và file handoff của lượt này.
Chấm ba mục, mỗi mục từ 0 tới 5: đúng yêu cầu trong handoff,
an toàn, hợp convention của repo.

Trả về JSON đúng dạng:
{"diem": {...}, "ket_luan": "pass" | "fail" | "can_nguoi",
 "ly_do": [...]}

Luật: bất kỳ mục nào dưới 3 thì kết luận là fail.
Luật: đụng tới xác thực, phân quyền, hoặc dữ liệu người dùng
thì luôn trả "can_nguoi", kể cả khi cả ba mục đều 5 điểm.

Hai dòng cuối là hai dòng đắt nhất. Không phải cái gì điểm cao cũng nên đi thẳng ra PR. Có loại việc mà năm điểm tròn trịa vẫn phải có người ngó qua, và bạn quyết định đó là loại nào, không phải con supervisor quyết.

2. Ba đường lui viết sẵn, không phải nghĩ lúc đang cháy

Ba đường thôi, dễ nhớ: dừng lại, giao lại cho người, quay đầu. Ở chỗ tui, ba đường đó nằm trong một file cấu hình, không nằm trong đầu ai hết:

# .pipeline/guard.yml
dung_khi:
  sai_lien_tiep: 3        # 3 lượt fail liên tiếp thì ngắt
  qua_gio: 45m            # 1 lượt chạy quá 45 phút thì ngắt
  qua_tien: 5usd          # 1 ticket đốt quá 5 đô token thì ngắt
khi_dung:
  bao_ve_kenh: "#ai-pipeline-alert"
  gan_nhan_ticket: "can-nguoi-xem"
quay_dau:
  dong_pr_neu: "supervisor = fail"

Ba con số ở trên không phải con số đúng. Là con số của tui, đoán lần đầu rồi chỉnh dần theo thực tế. Cái đáng giá không nằm ở chỗ chọn trúng số. Nằm ở chỗ bạn chịu ngồi xuống chọn một con số, thay vì để trống rồi hy vọng.

3. Bạn nói được cái giá, và có người thứ hai chạy được nó

Người ở bậc bảy trả lời được hai câu mà không cần mở dashboard. Tuần rồi nó chạy bao nhiêu việc, tốn chừng bao nhiêu. Và ai là người thứ hai biết tắt nó.

Câu thứ hai tui làm được sau cùng, và làm theo cách rất tầm thường. Tui ngồi viết một trang giấy, đúng một trang: hệ thống này làm gì, ba chỗ nó hay nghẹt nhất, cách tắt, cách bật lại, và một dòng “gặp trường hợp không có trong đây thì cứ tắt, tắt không hỏng gì”. Rồi tui nhờ một bạn junior trong team trực nó tuần tui đi nghỉ.

Ngày thứ ba bạn nhắn: “Anh ơi pipeline nó dừng, em coi dòng số 4, làm theo, chạy lại ổn rồi nha.” Tui đang ngồi ngoài biển, không mở laptop. Đọc xong tin nhắn tui ngồi im một lúc, kiểu vừa nhẹ người vừa hơi hụt hẫng. Đó là lần đầu cái hệ thống tui xây đứng được mà không có tui. Và cái làm nó đứng được không phải model xịn hơn. Là một trang giấy và một người chịu đọc nó.

5. Bài tập tuần này

Ba mươi phút, không cần viết dòng code nào.

Chọn một automation bạn đang chạy thật. Tạo một file tên failure-modes.md. Viết ra năm kịch bản hỏng, mỗi kịch bản đúng ba dòng: chuyện gì xảy ra, hệ thống sẽ làm gì, ai biết đầu tiên.

Mẫu một kịch bản cho dễ hình dung:

## Kịch bản 2: AI sửa hoài mà test vẫn đỏ
- Hệ thống sẽ: dừng sau lượt thứ 3, đóng PR nháp, gắn nhãn ticket
- Biết đầu tiên: bot bắn vào #ai-pipeline-alert, tui đọc sáng hôm sau

Viết xong thì đếm. Từ ba kịch bản trở lên mà dòng hai hoặc dòng ba của bạn là “không biết”, bạn chưa ở bậc bảy. Không sao hết. Lần đầu tui viết bảng này, ba trên năm dòng là không biết, và tui là người vừa đi khoe cái pipeline đó với nửa công ty.

Cái cần có sau ba mươi phút: một file failure-modes.md với năm kịch bản, và ít nhất một dòng “không biết” được bạn chọn để biến thành luật thật trong tuần này. Chọn dòng nào rẻ nhất mà làm.

Tạm kết

Nếu bài này chỉ giữ lại một câu: bậc cuối không hỏi hệ thống của bạn chạy đúng không, nó hỏi lúc chạy sai thì ai biết đầu tiên.

Cái pipeline đẻ ra mười bốn PR đó giờ vẫn chạy. Cuối tuần rồi nó dừng một lần, khoảng một giờ sáng thứ Bảy, sau ba lượt test đỏ liên tiếp. Nó không mở PR nào hết. Nó đóng nhánh nháp, gắn nhãn cái ticket, nhắn một dòng vào kênh Slack rồi thôi. Sáng ra tui đọc dòng đó chừng ba mươi giây là biết nó chết ở đâu và vì sao.

Hệ thống bây giờ không mạnh hơn hệ thống hồi tháng đó. Nó chỉ biết cách hỏng cho tử tế.

Vậy là hết bảy câu. Bảy bước chuyển, từ chỗ nhận gì xài nấy cho tới chỗ ngủ ngon trong lúc hệ thống chạy. Nhưng series còn một bài nữa, và thú thật đó là bài tui thấy khó viết nhất. Ba cái bẫy làm bạn tưởng mình đã lên bậc mà thật ra chưa. Tui dính đủ ba cái, có cái dính hơn một lần.

Cảm ơn bạn đã đọc bài viết này!

FacebookTweetPinYummlyLinkedInPrintEmailShares0

Related Posts:

  • Tui Học AI
    Tui Học AI – Bài 5 – "Tôi xài AI lẻ tẻ" → "Tôi đóng…
  • Tui Học AI
    Tui Học AI – Bài 3 – "Tôi hỏi AI" → "Tôi quản lý mọi…
  • Tui Học AI
    Tui Học AI – Bài 2 – "Tôi ra lệnh cho AI" → "Tôi…
  • TuiHocAI
    Tui Học AI - Bài 0 - Bạn đang dùng AI ở level nào?…
Tags: AI, blog, TuiHocAI
Written by chuotfx

Hãy ngồi xuống, uống miếng bánh và ăn miếng trà. Chúng ta cùng nhau đàm đạo về đời, về code nhóe!

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Donate – Buy me a coffee!

Fan page

Fx Studio

Tags

Actor Advanced Swift Agentic Coding for iOS AI AntiGravity api AppDistribution Apple Intelligence basic ios tutorial blog Charles Proxy ci/cd closure collectionview combine concurrency Context Engineering crashlytics dart dart basic dart tour Declarative design pattern firebase flavor flutter Google Stitch iOS MVVM optional Prompt engineering Prompt for Coding protocol Python rxswift Swift Swift 5.5 SwiftData SwiftUI SwiftUI Notes tableview testing TuiHocAI UI/UX unittest

Recent Posts

  • Tui Học AI – Bài 7 – “Tôi điều phối AI” → “Tôi thiết kế hệ thống AI tự vận hành, kể cả khi hỏng”
  • Tui Học AI – Bài 6 – “Tôi làm với 1 AI” → “Tôi điều phối nhiều AI song song”
  • Tui Học AI – Bài 5 – “Tôi xài AI lẻ tẻ” → “Tôi đóng gói AI thành sản phẩm dùng chung”
  • Prompt Engineering đang được Context Engineering hấp thụ
  • Bắt đầu với Loop Engineering
  • Tui Học AI – Bài 4 – “Tôi dùng AI thủ công” → “Tôi xây hạ tầng để AI tự chạy”
  • Guided Generation – Khi Swift type trở thành hợp đồng với model
  • Foundation Models và “Hello World” trong 10 phút
  • Skill Boundary (P/L/R): dạy kỹ năng biết khi nào nên dừng
  • Context – Cung cấp ít hơn để đạt kết quả tốt hơn

You may also like:

  • Tui Học AI – Bài 6 – "Tôi làm với 1 AI" → "Tôi điều…
    Tui Học AI
  • Tui Học AI – Bài 2 – "Tôi ra lệnh cho AI" → "Tôi…
    Tui Học AI
  • Tui Học AI – Bài 1 – "AI trả lời tôi" → "Tôi kiểm…
    Tui Học AI
  • Tui Học AI – Bài 4 – "Tôi dùng AI thủ công" → "Tôi…
    Tui Học AI
  • Tui Học AI – Bài 5 – "Tôi xài AI lẻ tẻ" → "Tôi đóng…
    Tui Học AI

Archives

  • July 2026 (6)
  • June 2026 (13)
  • May 2026 (2)
  • April 2026 (5)
  • March 2026 (5)
  • February 2026 (1)
  • January 2026 (10)
  • December 2025 (1)
  • October 2025 (1)
  • September 2025 (4)
  • August 2025 (5)
  • July 2025 (10)
  • June 2025 (1)
  • May 2025 (2)
  • April 2025 (1)
  • March 2025 (8)
  • January 2025 (7)
  • December 2024 (4)
  • September 2024 (1)
  • July 2024 (1)
  • June 2024 (1)
  • May 2024 (4)
  • April 2024 (2)
  • March 2024 (5)
  • January 2024 (4)
  • February 2023 (1)
  • January 2023 (2)
  • November 2022 (2)
  • October 2022 (1)
  • September 2022 (5)
  • August 2022 (6)
  • July 2022 (7)
  • June 2022 (8)
  • May 2022 (5)
  • April 2022 (1)
  • March 2022 (3)
  • February 2022 (5)
  • January 2022 (4)
  • December 2021 (6)
  • November 2021 (8)
  • October 2021 (8)
  • September 2021 (8)
  • August 2021 (8)
  • July 2021 (9)
  • June 2021 (8)
  • May 2021 (7)
  • April 2021 (11)
  • March 2021 (12)
  • February 2021 (3)
  • January 2021 (3)
  • December 2020 (3)
  • November 2020 (9)
  • October 2020 (7)
  • September 2020 (17)
  • August 2020 (1)
  • July 2020 (3)
  • June 2020 (1)
  • May 2020 (2)
  • April 2020 (3)
  • March 2020 (20)
  • February 2020 (5)
  • January 2020 (2)
  • December 2019 (12)
  • November 2019 (12)
  • October 2019 (19)
  • September 2019 (17)
  • August 2019 (10)

About me

Education, Mini Game, Digital Art & Life of coders
Contacts:
[email protected]

Fx Studio

  • Home
  • About me
  • Contact us
  • Mail
  • Privacy Policy
  • Donate
  • Sitemap

Categories

  • Art (1)
  • Blog (100)
  • Code (11)
  • Combine (22)
  • Flutter & Dart (24)
  • iOS & Swift (106)
  • No Category (1)
  • RxSwift (37)
  • SwiftUI (80)
  • Tutorials (111)

Newsletter

Stay up to date with our latest news and posts.
Loading

    Copyright © 2026 Fx Studio - All rights reserved.