---
title: "Vận hành AI agent ở production - trace, guardrail, prompt injection, chi phí, release và xử lý sự cố"
description: "Khóa thực hành vận hành AI agent có tool ghi dữ liệu ở production. Bạn học cách đọc trace, đặt guardrail và bước duyệt cho mỗi tool ghi, giảm thiệt hại do prompt injection, theo dõi chi phí model, đóng gói release và xử lý sự cố. Bạn dựng chốt chặn kiểm tra được bằng code thay vì sửa prompt rồi hy vọng model làm đúng."
canonical: "https://200lab.io/courses/operating-ai-agents-in-production"
type: "course"
course_type: "course"
learning_type: "free_form"
published: "2026-10-21T07:09:30Z"
students: 0
---

## Khóa học này mang lại gì cho bạn

Agent của bạn đã gọi được tool và chạy ổn trên máy, hoặc đang phục vụ vài người dùng. Khi tool bắt đầu ghi dữ liệu cho người dùng thật, một câu trả lời trôi chảy trong khung chat chưa cho bạn biết hệ thống có an toàn hay không. Trong khóa này, bạn dựng các chốt chặn vận hành quanh agent có quyền ghi dữ liệu, từ lúc người dùng gửi yêu cầu đến lúc bạn xử lý sự cố agent gây ra:

- **Đọc trace của lượt chạy** — Bạn chỉ ra lượt chạy tốn thời gian ở model, ở tool hay ở bước chờ duyệt, và lần từ một bút toán sai trong sổ chi về đúng lượt chạy đã ghi bút toán đó.
- **Đặt gate cho từng tool ghi** — Bạn chặn tham số sai trước khi tool ghi vào sổ và giới hạn số lần model được tự sửa tham số khi tool báo lỗi.
- **Gắn approval với đúng khoản chi** — Bạn giúp agent chọn đúng khoản người dùng muốn nói tới, rồi gắn mỗi approval với đúng tool, bộ tham số, khoản chi và thời hạn hiệu lực.
- **Đặt guardrail cho prompt injection** — Bạn giới hạn những gì nội dung agent đọc từ email, file PDF hay trang web có thể khiến tool ghi làm, và chặn những đường đã kiểm tra mà dữ liệu sổ chi có thể lọt ra ngoài.
- **Giữ lượt chạy trong ngân sách** — Bạn đặt trần số vòng, thời gian và tiền cho mỗi lượt chạy, dừng agent khi nó cứ gọi lặp lại một tool và chạy tiếp yêu cầu nhiều khoản mà không ghi trùng. Bạn cũng biết mỗi lượt chạy tốn bao nhiêu tiền gọi model, rồi giảm khoản đó bằng prompt caching, batch và model routing.
- **Tổ chức duyệt và bàn giao** — Bạn dựng hàng đợi duyệt để người duyệt không bấm đồng ý theo quán tính, và trang nhận lại việc lấy từ bảng thao tác (operation log), để người làm tiếp biết rõ khoản nào đã ghi, khoản nào đang chờ, khoản nào chưa làm và khoản nào chưa rõ kết quả.
- **Quản lý release và sự cố** — Bạn gom prompt, model, tool, policy và router thành một bản release có manifest, chỉ đưa bản đó lên khi qua eval gate, và khi có sự cố thì khoanh vùng, giữ bằng chứng, hoàn tác bằng code những gì hoàn tác được rồi biến sự cố thành eval case.

Đây là khóa thực hành về vận hành agent có tool ghi dữ liệu; agent của bạn viết bằng ngôn ngữ nào cũng được, vì bạn làm việc qua trace, output và yêu cầu gửi cho coding agent.

## Khóa học cung cấp những nền tảng nào

Cả khóa xây trên một ý: muốn vận hành agent có tool ghi dữ liệu, bạn đặt quanh mỗi lượt chạy những ranh giới mà code kiểm tra được, thay vì chỉ sửa prompt rồi hy vọng model làm đúng. Xuyên suốt các chương, bạn làm trên cùng một ứng dụng trợ lý sổ chi của nhân viên và kế toán. Trong app này, quyết định nào của agent cũng chạm tới bút toán, hoàn ứng hoặc người duyệt.

### 1. Biết agent đã làm gì và đặt gate riêng cho từng tool ghi dữ liệu

Trước khi sửa hành vi nào của agent, bạn cần thấy agent đã làm gì trong một lượt chạy. Bạn đọc trace để tách thời gian gọi model, thời gian chờ tool và thời gian chờ duyệt, rồi gắn mã lượt chạy vào từng bút toán để lần ngược từ dòng sai trong sổ về lượt chạy đã ghi dòng đó. Sau đó, bạn tách gate của tool đọc sổ khỏi gate của tool hoàn tác bút toán, kiểm tra tham số bằng code trước khi tool ghi vào sổ, và đặt số vòng tối đa model được tự sửa tham số sai. Bạn cũng thấy vì sao không nên để riêng một model khác quyết định khoản chi có vượt định mức hay không.

### 2. Chọn đúng khoản chi, kiểm tra approval và không để nội dung đọc vào ra lệnh

Tool ghi dữ liệu dù có gate đúng vẫn gây lỗi nếu agent đảo nhầm khoản, hoặc dùng approval cũ cho số tiền khác. Khi người dùng nói mơ hồ như “hoàn tác khoản vừa rồi”, bạn thiết kế bước để agent xác định đúng khoản người dùng muốn nói tới. Bạn gắn mỗi approval với đúng tên tool, bộ tham số, mã khoản chi và thời điểm hết hạn, để approval cho khoản **2 triệu** không dùng được để ghi **20 triệu**. Bên cạnh đó, bạn tách nội dung agent đọc từ hóa đơn PDF, email hay trang web khỏi chỉ dẫn của hệ thống:

- Nội dung trong file khách gửi chỉ được coi là dữ liệu, không có quyền bảo agent gọi thêm tool; guardrail giảm thiệt hại khi model vẫn bị nội dung đó dẫn dắt, chứ không làm prompt injection biến mất.
- Các tool có thể đưa dữ liệu ra ngoài hoặc đổi trạng thái được kiểm soát riêng, để dữ liệu sổ chi không lọt ra theo đường vòng dù agent không có tool nào gửi dữ liệu ra ngoài. Lớp chặn này chỉ bảo vệ những đường bạn đã kiểm tra.

### 3. Đặt trần cho từng lượt chạy, chống ghi trùng và giảm chi phí model

Một lỗi nhỏ ở tool hoặc yêu cầu gộp nhiều khoản chi có thể đẩy chi phí và dữ liệu ra khỏi tầm kiểm soát. Bạn đặt trần số vòng, thời gian và tiền cho từng lượt chạy để agent bị dừng trước khi gọi cùng một tool mười lần liên tiếp, và biết cách hủy lời gọi tool đang chạy dở. Bạn lưu trạng thái từng khoản, để khi agent dừng ở khoản thứ ba của hóa đơn gộp thì lần chạy lại không ghi trùng các khoản trước. Về chi phí, bạn tách tiền gọi model theo lượt chạy, người dùng và tính năng, giữ danh sách tool ổn định để tỉ lệ dùng lại prompt cache không tụt, và chia yêu cầu giữa model lớn và model nhỏ qua bước routing. Khi provider trả về lỗi 429 giữa lượt chạy, bạn không vội chuyển sang model khác nếu lần chuyển đó có thể làm agent ghi sai dữ liệu.

### 4. Giữ cho bước duyệt còn chặn được lỗi và bàn giao việc không sót khoản nào

Chỉ đặt bước chờ duyệt trước tool ghi thì chưa đủ an toàn, nếu không ai được báo để vào duyệt hoặc người duyệt phải bấm đồng ý **200 lần** mỗi ngày. Bạn thiết kế thông báo và hàng đợi duyệt sao cho người duyệt thấy ngay những yêu cầu cần xem kỹ, thay vì bấm duyệt theo thói quen. Khi lượt chạy phải dừng hoặc chuyển cho kế toán làm tiếp, bạn dựng trang nhận lại việc từ bảng thao tác, ghi rõ khoản nào đã vào sổ, đang chờ duyệt, chưa chạy hay chưa rõ kết quả, để người nhận lại việc làm tiếp mà không ghi trùng bút toán.

### 5. Đóng gói bản release, xử lý sự cố và đưa agent của bạn lên production

Chỉ sửa một câu trong prompt hay đổi model cũng có thể làm agent gọi tool sai thứ tự, dù điểm eval tổng thể tăng. Bạn gom prompt, model, danh sách tool, policy và cấu hình router thành một bản release có manifest, và chỉ đưa bản đó lên production khi qua eval gate có kiểm tra cách agent gọi tool. Bạn cũng thấy rollback về bản cũ chỉ dừng các lượt chạy sai tiếp theo, chứ không xóa những bút toán sai đã nằm trong sổ. Khi sự cố xảy ra, bạn chặn agent ghi tiếp và giữ bằng chứng trước, rồi mới dùng code hoàn tác phần hoàn tác được, chuyển phần còn lại cho người xử lý và biến sự cố thành eval case kèm một thay đổi có người phụ trách. Cuối khóa, bạn áp dụng cả quy trình này cho agent của chính bạn với ít nhất một tool ghi, hoặc thêm một tool ghi mới vào ứng dụng sổ chi của khóa học.

## Vì sao 200Lab tạo ra khóa học này

Ngày càng nhiều người dựng được agent biết gọi tool chỉ sau vài buổi làm cùng coding agent hoặc framework có sẵn. Trong buổi demo, agent đọc hóa đơn, tra sổ chi và tạo bút toán mới rất trơn tru. Vấn đề chỉ lộ ra khi bạn giao agent đó cho vài người dùng thật trong team. Dữ liệu đầu vào không còn sạch như lúc thử, người dùng nói tắt, provider thỉnh thoảng phản hồi chậm hoặc trả về 429, còn mỗi lần tool chạy lại thay đổi một dòng trong sổ.

Gặp lỗi ở giai đoạn này, nhiều người quay lại sửa System Prompt, dặn model “hãy cẩn thận hơn”, hoặc thêm bước nhờ model khác chấm điểm trước khi chạy tool. Cũng có người đặt bước chờ duyệt trước mọi tool cho yên tâm. Những cách này sớm hết tác dụng khi hóa đơn PDF của khách chứa một dòng chữ làm model đi chệch hướng, khi người duyệt quá tải bấm đồng ý hàng loạt, hoặc khi chi phí gọi model tăng gấp ba sau một tuần mà không ai biết tiền tốn vào những lượt chạy nào.

Nguyên nhân của những sự cố này thường nằm ở phần bao quanh model, chứ không ở trí thông minh của model: trace không tách được thời gian, bút toán không mang mã lượt chạy, approval không gắn với khoản chi cụ thể. Đây là bài toán vận hành hệ thống. Muốn xử lý, bạn cần mã lượt chạy, gate kiểm tra tham số bằng code, trạng thái chống ghi trùng, manifest cho mỗi lần release và quy trình xử lý sự cố giữ được dấu vết dữ liệu.

200Lab tạo ra khóa học này để bạn dựng lớp vận hành đó cho agent mà không phải trả giá bằng dữ liệu thật hay hóa đơn API tăng vọt rồi mới rút kinh nghiệm. Bạn không phải học lại cách viết agent từ đầu hay đọc từng dòng code TypeScript. Bạn học cách đọc trace, bảng thao tác, hàng đợi duyệt và kết quả eval, rồi nhờ coding agent của mình gia cố từng chốt chặn cho tới khi agent đủ vững để giao cho người dùng thật.

## Những vấn đề thường gặp khi vận hành AI agent ở production

Khi agent bắt đầu gây lỗi trên dữ liệu thật hoặc làm team vận hành mệt mỏi, nhiều người đổ lỗi ngay cho model chưa đủ thông minh, hoặc viết thêm vài dòng dặn dò vào prompt. Các triệu chứng dưới đây lại bắt nguồn từ chỗ còn thiếu ở trace, guardrail, trạng thái và quy trình release quanh agent:

- Lượt chạy mất **9 giây** và cả team đoán mò xem model hay database đang chậm — trace của lượt chạy chưa tách riêng thời gian gọi model, thời gian chờ tool phản hồi và thời gian chờ người duyệt.
- Bút toán hoàn tác sai đã nằm trong sổ chi nhưng không ai biết nó đến từ cuộc hội thoại nào — lúc tool ghi vào sổ, hệ thống không gắn mã lượt chạy vào bút toán để lần ngược lại.
- Agent gọi cùng một tool mười lần liên tiếp, hoặc sửa tham số sai hết vòng này sang vòng khác — lượt chạy thiếu trần số vòng, thời gian và tiền, cũng như giới hạn số lần model được thử lại khi tool báo lỗi tham số.
- Kế toán chỉ duyệt khoản **2 triệu** nhưng agent lại ghi vào sổ **20 triệu** — bước kiểm tra chỉ hỏi “đã có approval chưa”, chứ không gắn approval với đúng tool, bộ tham số, khoản chi và thời hạn hiệu lực.
- Một dòng chữ trong hóa đơn PDF khách gửi khiến agent gọi tool không ai yêu cầu — agent coi nội dung đọc từ tài liệu bên ngoài ngang với chỉ dẫn của hệ thống, và tool ghi chưa có guardrail giới hạn những gì nội dung đó kích hoạt được.
- Chi phí gọi model tăng gấp ba sau một tuần, tỉ lệ dùng lại prompt cache tụt mạnh — hệ thống chưa theo dõi chi phí theo từng lượt chạy và tính năng, còn danh sách tool đổi theo vai trò người dùng làm phần đầu của prompt thay đổi liên tục.
- Người duyệt bấm đồng ý **200 lần** mỗi ngày mà khoản chi sai vẫn lọt qua — mọi thao tác bị dồn vào cùng một hàng đợi duyệt, không phân loại và không có phần tóm tắt cho người duyệt, nên bước duyệt thành thao tác bấm máy móc.
- Team đã rollback về bản release cũ nhưng **14** bút toán sai vẫn còn nguyên trong sổ — rollback chỉ đưa code, prompt và cấu hình về bản trước, còn dữ liệu tool đã ghi vào sổ trong lúc sự cố cần được khoanh vùng và hoàn tác riêng.

Mỗi triệu chứng trên mở đầu một bài trong khóa: bạn tìm nguyên nhân trong trace hoặc output trước, rồi mới nhờ coding agent sửa đúng chỗ.

## Bạn sẽ học theo cách nào

- **Mở đầu bằng sự cố** — Các bài viết riêng cho khóa này đều mở đầu bằng một sự cố trên ứng dụng trợ lý sổ chi, và bạn xem trace, trạng thái sổ hoặc thông báo lỗi để biết chính xác bước nào vừa chạy sai. Các bài dùng chung với khóa khác của 200Lab có thể dùng ví dụ riêng của khóa đó.
- **Hình vẽ và mô phỏng** — Các bài có hình vẽ luồng chạy và màn hình bảng thao tác, một số bài có thêm mô phỏng tương tác, để bạn thấy lượt chạy đi qua gate, hàng đợi duyệt rồi vào sổ ra sao trước khi bắt tay vào sửa.
- **Lab cho coding agent** — Mỗi bài đi kèm lab trong kit viết bằng tiếng Anh để coding agent của bạn đọc, còn bài học viết bằng tiếng Việt. Ở mỗi chương, bạn nhận code đầu chương và output tham chiếu; agent của bạn làm thay đổi của chương rồi so kết quả với output đó ngay trên máy, nên bạn không phải tự đọc code TypeScript.
- **Lab không tốn tiền API** — Mọi lab bắt buộc đều chạy trên fixture, tức bộ dữ liệu mẫu cố định với phản hồi model ghi sẵn, nên lần chạy nào cũng ra cùng kết quả và bạn không cần API key của OpenAI hoặc Anthropic. Phần lớn bài có thêm câu hỏi ngắn, còn cuối khóa có đồ án trên agent của bạn hoặc trên ứng dụng sổ chi.

## Khóa học dành cho ai

1. **Người dựng AI agent** — Bạn đã có agent gọi tool qua API của provider, chạy trên máy hoặc phục vụ vài người dùng, và cần thêm trace, guardrail, approval, giới hạn chi phí cùng quy trình xử lý sự cố trước khi giao cho agent quyền ghi dữ liệu thật.
2. **Lập trình viên mới đi làm** — Bạn đã tự viết agent có tool hoặc dựng agent bằng framework, và muốn biết cách giữ agent chạy ổn trước khi gặp những sự cố như agent đảo nhầm bút toán hay chi phí model tăng gấp ba trong một tuần.
3. **Vibe coder dựng agent** — Bạn dựng agent cùng coding agent mà không tự đọc hay viết code, và muốn biết cách đọc trace, kiểm tra output và yêu cầu coding agent lắp đủ các lớp vận hành cho agent của mình.

## Những điều cần lưu ý

- **Khóa tập trung vào vận hành** — Khóa không hướng dẫn viết agent từ đầu: bạn cần hiểu agent loop và đã có agent gọi tool qua API, tự viết hay do coding agent dựng đều được. Đổi lại, bạn không cần biết trước về OpenTelemetry, eval hay rate limit, vì mỗi bài nền tảng nằm ngay trước bài đầu tiên cần đến nó.
- **Kết quả lab đến từ fixture** — Phản hồi của model trong kit được ghi sẵn để bạn không tốn tiền API, còn số liệu token và độ trễ đều gắn nhãn `synthetic`, nên kết quả trong bài không cho biết model thật sẽ phản hồi thế nào. Bù lại, bạn nắm được cách kiểm tra, cách đọc trace và cách đặt ngưỡng để dùng khi nối agent vào API thật.
- **Guardrail chỉ giảm thiệt hại** — Lớp chắn prompt injection chỉ bảo vệ những đường đã được kiểm tra và giảm thiệt hại khi model bị nội dung đọc vào dẫn dắt, còn rollback chỉ có tác dụng khi bản release cũ vẫn chạy được trên dữ liệu hiện tại. Khóa không bảo đảm an toàn tuyệt đối; thay vào đó, bạn có cách giới hạn phạm vi ảnh hưởng của sự cố, giữ bằng chứng và sửa dữ liệu có kiểm soát.

## Bắt đầu từ đâu

Bài đầu tiên trả lời câu hỏi mà ai vừa dựng xong bản demo chạy trơn tru cũng sẽ gặp: khi giao chính agent đó cho người dùng thật với quyền ghi vào sổ, agent còn thiếu những gì, và chỗ thiếu nào lộ ra trước tiên? Bài này đứng đầu khóa để bạn thấy hết những chỗ có thể gây lỗi trên ứng dụng trợ lý sổ chi, trước khi đi vào từng lớp trace, gate và quy trình vận hành.

## Chương trình

### Biết agent đã làm gì trong một lượt chạy

- Agent chạy tốt trong demo, giao cho người dùng thật thì cần thêm gì? (miễn phí) · kit cho agent
- Muốn sửa Agent, hãy dựng lại đường đi của run · quiz · kit cho agent
- Một lượt chạy mất 9 giây, chậm ở model hay ở tool? (miễn phí) · quiz · kit cho agent
- Bút toán sai đã nằm trong sổ, nhưng trace không chỉ ra lượt chạy nào đã ghi bút toán đó (miễn phí) · quiz

### Đặt guardrail riêng cho từng tool ghi dữ liệu

- Có Guardrails rồi, action đã thật sự bị chặn chưa? · quiz · 2 kit cho agent
- Tool đọc sổ và tool hoàn tác bút toán đang dùng chung một gate · quiz · kit cho agent
- Kiểm tra payload theo schema để dữ liệu sai kiểu không lọt vào database · quiz
- Tool trả lỗi tham số, model sửa ba vòng vẫn sai thì agent nên dừng ở vòng nào? · quiz
- Đã nhờ model chấm từng khoản chi, sao khoản vượt mức vẫn lọt qua? · quiz

### Chọn đúng khoản chi và kiểm tra approval trước khi ghi sổ

- Hợp lệ chưa phải là giấy phép · quiz · kit cho agent
- Người dùng bảo “hoàn tác khoản vừa rồi”, agent có đảo đúng khoản không? · quiz · kit cho agent
- Lệnh chỉ chạy một lần vẫn sai khi dữ liệu đã khác so với lúc duyệt · quiz
- Kế toán duyệt 2 triệu, agent dùng chính approval đó để ghi 20 triệu · quiz

### Nội dung agent đọc vào không có quyền ra lệnh

- Được phép chạy chưa có nghĩa là được chạm vào mọi thứ · quiz · kit cho agent
- Vì sao một dòng chữ trong hóa đơn PDF khiến agent gọi tool không ai yêu cầu? · quiz · kit cho agent
- Agent không gửi gì ra ngoài, vậy dữ liệu sổ chi lọt ra bằng đường nào? · quiz

### Dừng agent đúng lúc và gọi lại tool mà không ghi trùng

- Dừng, hủy và hoàn thành là ba chuyện khác nhau · quiz · kit cho agent
- Agent gọi cùng một tool mười lần mà không có gì dừng lại · quiz · kit cho agent
- Agent gọi lại tool hoàn tiền sau timeout và khách được hoàn tiền hai lần · kit cho agent
- Agent dừng ở khoản thứ ba của hóa đơn gộp, không biết khoản đó đã vào sổ hay chưa · quiz

### Trả ít tiền gọi model hơn mà agent vẫn trả lời nhanh

- Vì sao cuộc chat dài gấp đôi mà hóa đơn token tăng hơn gấp đôi? (miễn phí) · quiz
- Chi phí model tăng gấp ba sau một tuần, tiền tốn vào những lượt chạy nào? · quiz · kit cho agent
- Prompt dài bắt bạn chờ lâu mới thấy chữ đầu tiên, còn prefix giữ nguyên thì được giảm giá (miễn phí) · quiz
- Đổi danh sách tool theo vai trò làm prompt cache tụt mạnh · quiz
- Yêu cầu nào cần model lớn, yêu cầu nào model nhỏ xử lý được? · quiz
- Khi lời gọi model không trả về điều ứng dụng chờ đợi · quiz · kit cho agent
- Provider trả về 429 giữa lượt chạy, đổi sang model khác có an toàn không? · quiz

### Người duyệt, hàng đợi và người nhận lại việc

- Agent dừng lại chờ duyệt, nhưng không ai được báo để vào xử lý · quiz · kit cho agent
- Người duyệt bấm đồng ý 200 lần một ngày thì bước duyệt còn chặn được gì? · quiz
- Kế toán nhận lại việc agent đang làm dở mà không ghi trùng khoản nào · quiz

### Đổi prompt hay model cũng là một lần release

- Chỉ sửa một câu trong prompt, sao phải coi đó là bản release mới? · quiz · kit cho agent
- Điểm tổng tăng rồi, đã đủ để nhận thay đổi chưa? · quiz · kit cho agent
- Điểm eval tăng mà agent lại gọi tool sai thứ tự · quiz
- Rollback về bản cũ xong, 14 bút toán sai vẫn còn nguyên trong sổ · quiz

### Xử lý sự cố của agent và không để sự cố lặp lại

- Agent đang ghi sai vào sổ, bạn làm gì đầu tiên? · quiz · kit cho agent
- Sửa sổ sau sự cố của agent, làm sao để lỗi cũ không lặp lại? · quiz

### Giao agent của chính bạn cho người dùng thật

- Agent của bạn đã sẵn sàng cho người dùng thật chưa? · kit cho agent
