---
title: "Xây copilot hỗ trợ người trực chat - từ câu chuyện thật đến sản phẩm chạy được"
description: "Khóa học thực hành, trong đó bạn dựng một copilot AI soạn sẵn gợi ý để người trực chat đọc, sửa rồi tự bấm gửi cho khách. Bạn giao từng step kit cho coding agent của bạn, duyệt kế hoạch, chạy checkpoint, và cuối khóa học có trên máy một copilot chạy được ở hai chế độ: một lời gọi model và agent tự tra cứu."
canonical: "https://200lab.io/courses/xay-copilot-ho-tro-nguoi-truc-chat-tu-cau-chuyen-that-den-san-pham-chay-duoc"
type: "course"
course_type: "course"
learning_type: "free_form"
published: "2026-10-08T06:08:19Z"
students: 1
---

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

Muốn xem copilot trong khóa học chạy thật ra sao, bạn vào [trang Support Copilot của 200Lab](https://200lab.io/mini-solutions/support-copilot-sidebar): trang có bản demo phát lại một lần chạy thật và giải thích cách copilot tra cứu từng bước. Nếu muốn có sẵn code chạy được, bộ test, prompt nguyên văn và index dựng sẵn, bạn có thể mua thêm gói source code ở cùng trang.

Một khách đang bực nhắn tới shop: máy xay giao trễ **4 ngày**, cối thủy tinh đã nứt. Người trực chat phải tra xem khách là ai, đã mua gì, shop từng xử lý chuyện này ra sao, trong lúc khách vẫn chờ. Trong khóa học, bạn cùng coding agent của bạn dựng một copilot làm sẵn phần tra cứu đó và soạn gợi ý để người trực đọc, sửa rồi tự bấm gửi.

Học xong, bạn làm được những việc sau.

- **Giao từng bước cho coding agent** — Với mỗi step kit (file mô tả một bước, viết cho coding agent), bạn đọc kế hoạch agent đưa ra và yêu cầu bổ sung chỗ còn thiếu trước khi agent viết code.
- **Tự kiểm tra bằng checkpoint** — Bạn biết phép kiểm tra nào đã đạt, mục nào phải tự xem bằng mắt, mục nào chưa chạy vì thiếu key OpenRouter.
- **Dựng giao diện trước khi code** — Bạn cho coding agent dựng mockup HTML cho màn hình của khách và của người trực, rồi mới dựng tính năng theo giao diện đó.
- **Giữ gợi ý khớp với dữ liệu** — Bạn biết vì sao số liệu do code tính sẵn, vì sao server bỏ id không có trong dữ liệu đã gửi cho model, và vì sao người trực vẫn phải đọc lại câu chữ.
- **Chọn chế độ cho copilot** — Bạn so sánh chế độ một lời gọi với chế độ agent theo thời gian chờ, số lời gọi model và chi phí thật.
- **Dùng copilot cho ngành khác** — Bạn biết cần sửa gì trong dữ liệu, tool, luật trong prompt và nhãn trên màn hình.
- **Chỉ ra copilot còn thiếu gì** — Bạn kể được những việc phải làm thêm trước khi dùng copilot với khách thật, và vì sao đổi sang model mạnh hơn không thay được những việc đó.

Đây là khóa học thực hành dựng trọn một sản phẩm, không yêu cầu bạn biết lập trình. Code trích trong bài viết bằng Go và React; bạn chọn công nghệ khác cũng được, chỉ là code trích sẽ không khớp từng dòng.

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

Cả khóa học dựa trên một khái niệm: **copilot**, tức AI làm sẵn phần tra cứu và soạn gợi ý, còn người trực chat đọc, sửa và tự bấm gửi. Copilot không thay người trực, nó cho người trực thêm một cơ hội nhìn ra câu sai trước khi câu đó tới khách. Bài [Building Effective AI Agents của Anthropic](https://www.anthropic.com/engineering/building-effective-agents) khuyên bắt đầu từ giải pháp đơn giản nhất và chỉ thêm agent khi thật sự cần; copilot trong khóa học cũng lớn dần như vậy, từ một lời gọi model tới chế độ agent. Muốn có kiến thức nền rộng hơn, bạn có thể học thêm hai khóa học “Xây dựng tính năng LLM có phạm vi rõ ràng — task contract, prompt, structured output, eval và failure handling” và “Nền tảng Agent Harness”.

### 1. Intent → design → plan → code → test → deploy, giao diện dựng trước

Khóa học đi theo đúng **6** bước đã dùng khi dựng sản phẩm, và tên mỗi bài dựng mở đầu bằng tên bước, như “Plan: Khách hỏi mã hoàn tiền mà người trực phải mở ba màn hình mới trả lời được”. Intent nói sản phẩm cần làm gì và AI không được làm gì. Trước khi có tính năng nào, coding agent của bạn dựng mockup HTML cho điện thoại của khách và màn hình của người trực, theo bộ hướng dẫn giao diện đi kèm khóa học. Bộ này gồm bảng màu, cỡ chữ, bố cục và cách dựng từng thành phần, rút từ sản phẩm thật, nên giao diện đã đẹp ngay từ mockup. Nhìn mockup là thấy câu trả lời gợi ý phải đứng đầu cột copilot, và ở các bước code sau, agent của bạn dựng tính năng theo giao diện đó.

### 2. Một bài dựng đi từ tình huống CSKH tới checkpoint

Mỗi bài dựng mở bằng một tình huống ở shop Nhà Gọn, như khách bị ví điện tử trừ tiền hai lần, rồi mới tới cách hệ thống nên xử lý tình huống đó và vì sao cách dễ nghĩ ra nhất lại không ổn. Bạn giao step kit của bước đó cho coding agent của bạn; step kit là file tiếng Anh ghi những gì phải có và những gì không được xảy ra, không kèm code lời giải. Agent viết kế hoạch rồi dừng lại chờ bạn duyệt, và bài chỉ ra những điều bạn phải thấy trong kế hoạch trước khi cho agent viết code. Dựng xong, checkpoint runner tự chạy các check mà máy kiểm tra được; những mục phải xem bằng mắt, như màn hình trên trình duyệt, runner liệt kê kèm hướng dẫn để bạn tự kiểm tra. Chưa có key OpenRouter, bạn vẫn đi hết các bước nhờ fake model, một server giả do agent của bạn viết theo bản mô tả đi kèm khóa học.

### 3. Vì sao có copilot này, và bạn cần chuẩn bị những gì

Khóa học mở bằng một câu trả lời rất lễ phép mà vẫn sai ba chỗ so với dữ liệu của shop. Từ đó có quyết định đầu tiên: copilot tra sẵn những điều người trực vẫn phải tra tay rồi soạn gợi ý, tự chạy **1,2 giây** sau tin nhắn mới nhất của khách. Ở bài Setup, bạn chuẩn bị đồ nghề: coding agent, Go, data pack gồm bốn file JSON và runner để chạy checkpoint. Bài này cũng giải thích vì sao server chỉ nhận request gửi từ chính máy của bạn và vì sao không nên ghi key vào file cấu hình.

### 4. Bản đầu: model soạn gợi ý cho người trực trong một lần gọi

Shop Nhà Gọn có **12 khách**, **30 sản phẩm**, **45 đơn** và **20** case, tức các tình huống khiếu nại shop đã xử lý và ghi lại làm mẫu. Phần tìm kiếm dùng BM25, một cách chấm điểm theo từ khóa, kèm bước bỏ dấu để khách nhắn “giao hang tre” vẫn ra đúng các case giao trễ. Tỷ lệ giao đúng hẹn (**33%** của một khách, **92%** của cả shop) do code tính sẵn; model được gọi một lần ở JSON mode, sửa lại tối đa một lần khi kết quả không dùng được. Ở các trường trỏ tới khách, đơn, sản phẩm hay case, server bỏ mọi id không có trong dữ liệu đã gửi cho model, và nút “Sử dụng” trên màn hình của người trực chỉ đưa câu trả lời gợi ý vào ô soạn tin. Lần chạy thật đầu tiên bị timeout ở giây thứ **30**, và bài Test giải thích vì sao phải đo trước khi chỉnh cấu hình.

### 5. Bản agent: copilot tự tra cứu, và những việc còn thiếu trước khi dùng với khách thật

Khách nhắn là hàng bị “bể”, còn case trong playbook (sổ tay cách xử lý của shop) ghi “nứt”, nên tìm theo từ khóa đưa case tai nghe lên đầu. Bản agent thêm embedding để so sánh hai câu gần nghĩa tới đâu, và hybrid search trộn **30%** điểm BM25 với **70%** phần điểm embedding để đưa case cối máy xay nứt lên đầu. Ở chế độ agent, model tự gọi **6** tool chỉ đọc để tra khách, đơn, sản phẩm và case, tối đa **6** vòng, và trace hiện từng bước tra cứu trên màn hình của người trực. Thiết kế đầu tiên bị timeout ở giây thứ **60**; tách bước tra cứu khỏi bước trả lời làm copilot vừa nhanh hơn vừa đơn giản hơn. Hai bài Deploy cuối trả lời câu hỏi chạy copilot cả tháng tốn bao nhiêu, rồi gom các việc còn thiếu thành một danh sách.

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

Coding agent giờ dựng được một app chỉ sau vài câu yêu cầu. Nhưng giao cả sản phẩm trong một lần thì bạn nhận về app trông ổn mà không biết nó sai ở đâu, vì agent tự đoán giao diện và dữ liệu gửi cho model. Với một sản phẩm AI trả lời khách, chỉ một câu sai tới tay khách đang bực là đủ để shop mất khách.

Copilot trong khóa học bắt nguồn từ một dự án thử nghiệm (PoC/MVP) mà 200Lab làm cho một công ty bán lẻ thiết bị lớn tại Việt Nam. Bên đó muốn một agent chat thẳng với khách, còn 200Lab chọn để AI soạn và người trực bấm gửi, vì AI trả lời đúng nhiều lần vẫn chưa đủ, khi chỉ một lần sai đã thành chuyện lớn. Sản phẩm trong khóa học là bản dựng lại từ đầu, không chứa code hay dữ liệu nào của công ty đó.

Khóa học giúp bạn nắm cách làm ra sản phẩm cùng coding agent: bắt đầu từ intent, dựng giao diện trước, chia việc thành từng bước có checkpoint, đo rồi mới chỉnh. Khi chủ shop hỏi copilot tốn bao nhiêu hay còn thiếu gì, bạn trả lời được bằng số đo từ chính copilot bạn dựng.

## Những vấn đề thường gặp khi dựng copilot AI cho người trực chat

Khi copilot gợi ý sai, phản xạ đầu tiên thường là đổi sang model mạnh hơn hoặc viết prompt dài hơn. Nhưng phần lớn lỗi lại nằm ở thứ tự làm sản phẩm, dữ liệu gửi cho model, cách tìm kiếm và cách server kiểm tra kết quả.

- Giao cả sản phẩm cho coding agent trong một yêu cầu dài, nhận về app chạy được mà không biết phần nào đúng — việc chưa được chia thành từng bước có checkpoint.
- Câu trả lời gợi ý nằm tận cuối cột copilot, người trực phải cuộn mới thấy — coding agent dựng màn hình theo thứ tự server gom dữ liệu, vì trước đó chưa có mockup nào.
- Gợi ý ghi khách bị giao trễ lần thứ ba trong khi data chỉ có hai lần — model tự suy ra số lần thay vì đọc con số do code tính sẵn, vì luật trong prompt chưa nói rõ.
- Gợi ý cho một khách lại nhắc tới đơn của một khách khác — JSON đúng khuôn chưa đủ: server phải bỏ id lạ ở các trường trỏ tới khách hay đơn, còn câu chữ thì người trực vẫn phải đọc lại.
- Khách nhắn là hàng bị “bể” mà kết quả tìm kiếm lại đưa case tai nghe lên đầu — tìm theo từ khóa chỉ so sánh những chữ trùng nhau, nên cần thêm embedding để so sánh theo nghĩa.

Mỗi lỗi đều có bài giải thích cách sửa để bạn giao cho coding agent và kiểm tra bằng checkpoint.

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

- **Bắt đầu từ chuyện của khách** — Cơ chế nào cũng xuất hiện sau một tình huống CSKH.
- **Ảnh chụp và sơ đồ** — Có ảnh chụp màn hình thật, ảnh cơ chế và sơ đồ tô sáng phần vừa thêm.
- **Giao step kit, duyệt kế hoạch** — Có **18** step kit cho coding agent đọc; bạn duyệt kế hoạch thay vì tự gõ code.
- **Checkpoint khép lại mỗi bước** — Runner chấm phần máy kiểm tra được và liệt kê mục bạn tự kiểm tra.

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

1. **Vibe coder đã dùng coding agent** — Bạn muốn làm trọn một sản phẩm AI theo từng bước có kiểm tra, thay vì giao một yêu cầu dài.
2. **Người nontech sẵn sàng thử** — Bạn đọc được một đoạn JSON khi được giải thích và muốn cùng coding agent dựng một sản phẩm thật.
3. **Chủ shop hoặc người quản lý** — Bạn cần biết copilot làm được gì, tốn bao nhiêu và còn thiếu gì trước khi dùng với khách thật.

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

- **Dữ liệu giả, sản phẩm là PoC** — Dữ liệu của shop Nhà Gọn là dữ liệu giả. Copilot là PoC hay MVP, tức bản thử nghiệm để chứng minh ý tưởng, chưa phục vụ được khách thật: còn thiếu connector tới kênh chat, đăng nhập, tài khoản cho nhiều người trực, lưu hội thoại, rate limit, monitoring và bảo vệ quyền riêng tư.
- **Khóa học không kèm source** — Không kèm code, test, prompt nguyên văn, file thiết kế của repo, index dựng sẵn và lần chạy ghi sẵn để phát lại; chúng ở gói source. Bạn nhận data pack, step kit, checkpoint runner, bản mô tả fake model, bảng thuật ngữ và bộ hướng dẫn giao diện cho coding agent rút từ sản phẩm (biến màu, cỡ chữ, style guide).
- **Key riêng, chi phí nhỏ** — Chạy model thật cần key OpenRouter riêng, chi phí do bạn trả. Khi gọi thẳng API DeepSeek (đo ngày 7/10/2026), một lượt chat tốn khoảng **$0,0016** tới **$0,0025** ở chế độ một lời gọi và **$0,0031** tới **$0,0036** ở chế độ agent, tức khoảng **$1,6** tới **$3,6** cho **1.000** lượt chat. Qua OpenRouter có thể tốn hơn một chút; màn hình hiện chi phí từng lượt chat nếu OpenRouter báo giá mọi lời gọi, thiếu giá thì để trống.

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

Bài đầu tiên trả lời vì sao copilot chỉ soạn gợi ý cho người trực, dù yêu cầu ban đầu là agent chat thẳng với khách. Mọi quyết định về sau đều dựa trên lựa chọn đó.

## Chương trình

### Vì sao có copilot này, và bạn cần chuẩn bị những gì

- Intent: Một câu trả lời sai gửi thẳng tới khách đang bực là đủ để shop mất khách (miễn phí)
- Setup: Máy của bạn cần có những gì trước khi bắt đầu dựng copilot (miễn phí) · kit cho agent

### Phase 01: model soạn gợi ý cho người trực trong một lần gọi

- Design: Ba khách đang chờ, người trực chỉ kịp liếc qua cột copilot một lần · kit cho agent
- Design: Khách bị trừ tiền hai lần, số tiền trên gợi ý không được lệch một đồng · kit cho agent
- Plan: Khách hỏi mã hoàn tiền mà người trực phải mở ba màn hình mới trả lời được · kit cho agent
- Vì sao đoạn văn lặp từ khóa nhiều nhất chưa chắc là kết quả cần tìm
- Code: Khách nhắn không dấu mà copilot vẫn phải tìm ra đúng case giao trễ · kit cho agent
- Code: Khách bảo lần trước cũng giao trễ, gợi ý không được nói sai số lần trễ · kit cho agent
- Một lời gọi LLM gồm những gì? · quiz · kit cho agent
- Code: Khách vừa than phiền, người trực đang gõ dở, copilot nên tìm theo lời ai · kit cho agent
- Code: Khách dọa đánh giá 1 sao mà thẻ gợi ý vẫn trống vì model trả hỏng · kit cho agent
- JSON đúng khuôn chưa phải quyết định đúng · quiz · kit cho agent
- Code: Khách than cối máy xay bị nứt mà model lại nhắc tới đơn robot hút bụi của người khác · kit cho agent
- Code: Chú Năm nhận nhầm mẫu nồi cơm, người trực cần thấy gợi ý ngay cạnh khung chat · kit cho agent
- Test: Khách đang chờ mà tới giây thứ 30 copilot vẫn chưa soạn xong gợi ý · kit cho agent

### Phase 02: agent tự tra cứu, và những gì PoC này còn thiếu

- Khách viết bể còn playbook viết nứt, máy nhận ra hai câu cùng nghĩa bằng cách nào
- Code: Khách nói hàng bể mà tìm chữ bể trong playbook không ra case nào · kit cho agent
- Code: Khách nhắn đồ xay trái cây tới tay đã bể mà copilot đưa case tai nghe lên đầu · kit cho agent
- Khi model cần tra dữ liệu thật, app và model gửi cho nhau những gì
- Người dùng nhìn biểu tượng chờ mà không biết server đang làm tới bước nào
- Code: Khách hỏi tiền hoàn chưa về mà người trực phải mở bốn màn hình mới trả lời được · kit cho agent
- Code: Copilot tra cứu xong rồi mà người trực vẫn không nhận được gợi ý nào · kit cho agent
- Code: Người trực chỉ thấy biểu tượng chờ, không biết copilot đang tra tới đâu · kit cho agent
- Test: Khách bị giao trễ hai lần mà copilot lại ghi là lần thứ ba · kit cho agent
- Deploy: Chủ shop hỏi chạy copilot cả tháng thì tốn bao nhiêu tiền · kit cho agent
- Deploy: Copilot chạy tốt trên máy bạn nhưng chưa dùng được với khách thật
