Build a Chatbot Across 3 AI Layers
Engineer a customer support chatbot using prompt, context, and harness layers.
Introduction
30 Second Summary
Bạn đã bao giờ nhờ AI xây dựng một thứ gì đó, nhận được kết quả "coi được" lần đầu, nhưng rồi lần sau lại ra output hoàn toàn khác? Đó là vì bạn đang dựa hoàn toàn vào prompt. Một prompt hay giống như một câu hỏi hay. Nhưng để có sản phẩm đáng tin cậy, bạn cần thiết kế cả hệ thống xung quanh AI.
In this project, you will xây dựng một chatbot hỗ trợ khách hàng qua 3 lần lặp, mỗi lần áp dụng một layer engineering khác nhau: Prompt Engineering, Context Engineering, và Harness Engineering. Bạn sẽ thấy tận mắt chatbot cải thiện ở mỗi layer và tổng hợp mọi thứ thành một playbook tái sử dụng cho mọi dự án AI.
What You'll Build
Một chatbot hỗ trợ khách hàng cho VietShop (cửa hàng e-commerce giả định) được xây dựng qua 3 iterations, kèm theo bộ AI Product Owner Playbook hoàn chỉnh.
By the end of this project, you'll have:
- Một chatbot production-ready được xây dựng qua 3 versions (prompt-only, context-engineered, fully harnessed) với documentation so sánh chất lượng output ở mỗi layer.
- Một bộ AI Product Owner Playbook tái sử dụng (GEMINI.md, project instructions, verification criteria, templates) áp dụng được cho bất kỳ dự án nào trong tương lai.
- Một mental model rõ ràng về vai trò AI Product Owner: bạn không viết code, bạn thiết kế hệ thống xung quanh agent để nó deliver sản phẩm đáng tin cậy.
- Secret Mission: Mở rộng playbook thành multi-agent system với subagents chuyên biệt chạy song song trong Antigravity 2.0.
Are there any prerequisites?
Bạn cần đã cài đặt và sử dụng cơ bản Antigravity IDE hoặc Antigravity 2.0. Nếu chưa, hãy tải từ antigravity.google và làm quen với giao diện trước khi bắt đầu project này.
Before We Start
You are about to build a customer support chatbot through three iterations, each applying a different layer of engineering.
The real goal is not the chatbot itself. The goal is to experience firsthand why each layer (Prompt Engineering, Context Engineering, Harness Engineering) exists, when to use it, and how to design it. This is the foundation skill of an AI Product Owner.
In this step, get ready to:
- Create the project workspace with organized folders in Antigravity IDE.
- Write the VietShop Product Brief that defines your chatbot's domain.
- Define the Evaluation Rubric for measuring chatbot quality across layers.
Create your project workspace
Every AI Product Owner project needs a clear structure. You will organize your work into separate folders so you can compare results across each engineering layer later.
- Press Cmd+Space (macOS) or the Windows key (Windows) to open your search bar.
- Type Antigravity IDE and press Enter to open it.
Antigravity IDE is a VS Code-based editor with a built-in terminal. You will use the terminal to create your project folder.
- Open the built-in terminal by pressing Ctrl+` (backtick key, same shortcut on macOS and Windows).
- Move to your Desktop by running this command:
cd ~/Desktop
- Create your project folder and move into it by running these commands:
mkdir ai-product-owner-playbook
cd ai-product-owner-playbook
- Create the five subfolders for organizing your work by running this command:
mkdir layer-1-prompt layer-2-context layer-3-harness playbook comparisons
What are these folders for?
- layer-1-prompt/ stores the chatbot output from your prompt-only attempt.
- layer-2-context/ stores the structured context documents you will build.
- layer-3-harness/ stores the full harness artifacts (verification, GEMINI.md, etc.).
- playbook/ stores your reusable AI Product Owner templates.
- comparisons/ stores before/after documentation comparing each layer.
- Confirm the folders exist by running:
ls
You should see comparisons, layer-1-prompt, layer-2-context, layer-3-harness, and playbook listed in the output.
- Open the project folder in Antigravity IDE by clicking File in the top menu bar.
- Click Open Folder.
- Select the ai-product-owner-playbook folder on your Desktop, then click Open.
Don't see your folders?
Make sure you ran cd ~/Desktop before creating the project folder. If the folder ended up somewhere else, use ls ~/Desktop to check, or re-run the commands from the Desktop.
Help me find my project folder
Create the Product Brief
Your chatbot needs domain knowledge to be useful. The Product Brief defines who VietShop is, who their customers are, and what policies the chatbot must follow. Without this, any AI output will be generic and unhelpful.
- In the Antigravity IDE Explorer sidebar (left panel), right-click the empty area and select New File.
- Name the file PRODUCT_BRIEF.md and press Enter.
- Paste the following content into PRODUCT_BRIEF.md:
# VietShop - Product Brief
## About VietShop
- VietShop is an online household goods e-commerce store
- Target customers: 25-45 years old, living in urban areas
- Support channel: Chat on website
- Working hours: 8h-22h daily
## Policies
- Return policy: 7 days, items must be unused
- Shipping: Free for orders over 500,000 VND
- Delivery time: 2-5 business days
## Brand Voice
- Friendly but professional
- Use casual Vietnamese ("minh/ban" style)
- Always empathetic with customer concerns
- Never use technical jargon
What does this file do?
This Product Brief is the single source of truth about VietShop. When you build each chatbot version, you will use this file to verify whether the chatbot responds with accurate information.
Having a clear brief also lets you measure improvement across layers. A prompt-only chatbot will likely hallucinate policies. A context-engineered chatbot can reference this document directly.
- Save PRODUCT_BRIEF.md by pressing Cmd+S (macOS) or Ctrl+S (Windows).
- Confirm the file appears in the Explorer sidebar at the root level of your ai-product-owner-playbook folder.
Create the Evaluation Rubric
You need a consistent way to score your chatbot at each layer. The Evaluation Rubric defines five criteria so you can objectively compare the prompt-only version against the context-engineered and fully-harnessed versions.
- In the Explorer sidebar, right-click the empty area and select New File.
- Name the file EVALUATION_RUBRIC.md and press Enter.
- Paste the following content into EVALUATION_RUBRIC.md:
# Evaluation Rubric - VietShop Chatbot
Score each criterion from 1 (poor) to 5 (excellent).
## Criteria
| Criterion | Description | Score (1-5) |
|-----------|-------------|-------------|
| Accuracy | Answers with correct product/policy information | |
| Brand Voice | Tone matches VietShop's friendly-professional style | |
| Edge Case Handling | Handles difficult situations gracefully | |
| Escalation | Knows when to transfer to a human agent | |
| Natural Vietnamese | Vietnamese sounds natural, not robotic | |
## Scoring Guide
- **5**: Excellent - Indistinguishable from a trained human agent
- **4**: Good - Minor issues that wouldn't bother most customers
- **3**: Acceptable - Noticeable gaps but functional
- **2**: Poor - Significant issues that would frustrate customers
- **1**: Failing - Unusable in production
## How to Use
1. Run the same test scenario through each chatbot version (v1, v2, v3)
2. Score each criterion independently
3. Note specific examples for each score
4. Compare totals across versions to measure improvement
Why score on five criteria?
Each criterion targets a different failure mode. Accuracy catches hallucinations. Brand Voice catches tone drift. Edge Case Handling catches brittleness. Escalation catches the chatbot trying to handle things it should not. Natural Vietnamese catches robotic-sounding output.
By scoring all five at each layer, you will see exactly which problems each engineering layer solves.
- Save EVALUATION_RUBRIC.md by pressing Cmd+S (macOS) or Ctrl+S (Windows).
- Check the Explorer sidebar. You should see both PRODUCT_BRIEF.md and EVALUATION_RUBRIC.md at the root level, plus all five subfolders.
File not appearing in the sidebar?
Make sure you created the file inside the ai-product-owner-playbook folder, not inside one of the subfolders. If it ended up in the wrong place, drag it to the root level in the Explorer sidebar.
Help me move my file to the right location
✔️ Awesome, I've got everything!
Great. Double check you have saved both files. Your Explorer sidebar should show the two markdown files at the root level and all five subfolders inside ai-product-owner-playbook.
ⓧ I'd like to double check the full code
Here is what your PRODUCT_BRIEF.md should contain:
# VietShop - Product Brief
## About VietShop
- VietShop is an online household goods e-commerce store
- Target customers: 25-45 years old, living in urban areas
- Support channel: Chat on website
- Working hours: 8h-22h daily
## Policies
- Return policy: 7 days, items must be unused
- Shipping: Free for orders over 500,000 VND
- Delivery time: 2-5 business days
## Brand Voice
- Friendly but professional
- Use casual Vietnamese ("minh/ban" style)
- Always empathetic with customer concerns
- Never use technical jargon
Here is what your EVALUATION_RUBRIC.md should contain:
# Evaluation Rubric - VietShop Chatbot
Score each criterion from 1 (poor) to 5 (excellent).
## Criteria
| Criterion | Description | Score (1-5) |
|-----------|-------------|-------------|
| Accuracy | Answers with correct product/policy information | |
| Brand Voice | Tone matches VietShop's friendly-professional style | |
| Edge Case Handling | Handles difficult situations gracefully | |
| Escalation | Knows when to transfer to a human agent | |
| Natural Vietnamese | Vietnamese sounds natural, not robotic | |
## Scoring Guide
- **5**: Excellent - Indistinguishable from a trained human agent
- **4**: Good - Minor issues that wouldn't bother most customers
- **3**: Acceptable - Noticeable gaps but functional
- **2**: Poor - Significant issues that would frustrate customers
- **1**: Failing - Unusable in production
## How to Use
1. Run the same test scenario through each chatbot version (v1, v2, v3)
2. Score each criterion independently
3. Note specific examples for each score
4. Compare totals across versions to measure improvement
Your workspace is ready. Next up, you will build your first chatbot using nothing but a bare prompt and experience firsthand where prompt-only approaches fall short.
Layer 1 – Prompt Engineering
Ở Step 1, bạn đã có một workspace gọn gàng với product brief và evaluation rubric sẵn sàng. Bây giờ là lúc bắt tay vào xây chatbot.
Trong step này, bạn sẽ trải nghiệm Prompt Engineering ở dạng thuần túy nhất. Bạn sẽ yêu cầu agent xây chatbot chỉ bằng prompt, KHÔNG thêm context, KHÔNG bật Planning Mode. Mục đích là để bạn CẢM NHẬN được giới hạn thực sự của prompt-only approach trước khi chuyển sang các layer mạnh hơn.
In this step, get ready to:
- Thử một bare prompt và quan sát output thô của agent.
- Áp dụng kỹ thuật prompt engineering để cải thiện kết quả.
- Ghi nhận failure modes để hiểu prompt engineering phù hợp và không phù hợp cho gì.
Bare prompt - thử nghiệm đầu tiên
Cách nhanh nhất để hiểu giới hạn của một công cụ là dùng nó ở mức tối giản nhất. Bạn sẽ đưa cho agent một yêu cầu đơn giản, không thêm bất kỳ thông tin nào khác, và quan sát kết quả.
- Trong Antigravity IDE, mở agent chat panel.
- Đảm bảo Planning Mode đang TẮT. Bạn muốn agent trả lời trực tiếp, không lập plan.
- Paste prompt sau vào agent chat:
Xây cho mình một chatbot hỗ trợ khách hàng cho VietShop, cửa hàng bán đồ gia dụng online
Tại sao chỉ một câu duy nhất?
Đây là bare prompt. Bạn cố tình không thêm bất kỳ context nào (brand voice, chính sách, ví dụ). Mục đích là để thấy agent tự "tưởng tượng" những gì nó không biết.
Kết quả sẽ thiếu rất nhiều thứ. Đó chính xác là điều bạn muốn quan sát.
- Đợi agent trả lời hoàn chỉnh.
- Copy toàn bộ output của agent.
- Tạo file mới attempt-1.md trong folder layer-1-prompt/ và paste output vào.
Bây giờ mở file EVALUATION_RUBRIC.md từ project root và chấm điểm output theo 5 tiêu chí (Accuracy, Brand Voice, Edge Case Handling, Escalation, Natural Vietnamese). Ghi điểm vào cuối file attempt-1.md.
- Thêm một section ## Evaluation Scores vào cuối attempt-1.md và ghi điểm từng tiêu chí (1-5).
- Save file attempt-1.md.
Chấm điểm trung thực
Đừng ngại cho điểm thấp. Mục đích của bước này là tạo baseline. Điểm thấp ở Layer 1 sẽ giúp bạn thấy rõ improvement ở Layer 2 và Layer 3 sau này.
Agent không trả lời bằng tiếng Việt?
Nếu agent trả lời bằng tiếng Anh, thêm "Trả lời bằng tiếng Việt" vào cuối prompt. Giữ lại kết quả gốc (dù sai ngôn ngữ) vì đó cũng là một failure mode đáng ghi nhận.
Cần hỗ trợ thêm? Giúp mình debug agent chat trong Antigravity IDE.
Improved prompt - áp dụng kỹ thuật prompt engineering
Bare prompt cho kết quả thô. Bây giờ bạn sẽ áp dụng 4 kỹ thuật prompt engineering cơ bản để xem chúng cải thiện được bao nhiêu: role assignment, specificity, format instruction, và few-shot examples.
- Trong agent chat, bắt đầu một conversation MỚI (không tiếp tục conversation cũ).
- Paste prompt cải tiến sau vào agent chat:
# Role
Bạn là senior developer chuyên xây chatbot hỗ trợ khách hàng cho e-commerce Việt Nam.
# Task
Xây cho mình một chatbot hỗ trợ khách hàng cho VietShop - cửa hàng bán đồ gia dụng online.
# Requirements
- Chatbot trả lời FAQ về sản phẩm, shipping, đổi trả
- Giọng điệu: thân thiện, chuyên nghiệp, dùng "mình/bạn"
- Xử lý được khi khách hỏi ngoài phạm vi
- Biết khi nào cần chuyển cho nhân viên hỗ trợ
# Output Format
- System prompt cho chatbot
- 3 conversation examples (happy path, edge case, escalation)
- List các intent chatbot xử lý được
# Example Conversation
Khách: Giao hàng mất bao lâu?
Bot: Chào bạn! Đơn hàng thường được giao trong 2-5 ngày làm việc tùy khu vực. Bạn muốn mình check thời gian giao cụ thể cho địa chỉ nào không?
Khách: Mình muốn trả hàng
Bot: Mình hỗ trợ bạn nhé! Bạn mua sản phẩm cách đây bao lâu rồi? Chính sách đổi trả của mình áp dụng trong 7 ngày kể từ ngày nhận hàng.
4 kỹ thuật prompt engineering trong prompt này
- Role assignment: "Bạn là senior developer chuyên xây chatbot..." giúp agent adopt đúng expertise.
- Specificity: Requirements section liệt kê rõ từng feature cần có, không để agent tự đoán.
- Format instruction: Output Format section chỉ định chính xác cấu trúc output mong muốn.
- Few-shot examples: 2 conversation mẫu cho agent thấy tone và format mong muốn.
- Đợi agent trả lời hoàn chỉnh.
- Copy toàn bộ output.
- Tạo file attempt-2.md trong folder layer-1-prompt/ và paste output vào.
- Thêm section ## Evaluation Scores vào cuối file và chấm điểm theo 5 tiêu chí từ EVALUATION_RUBRIC.md.
- Save file attempt-2.md.
So sánh điểm giữa attempt-1.md và attempt-2.md. Bạn sẽ thấy improvement rõ ở format và specificity. Nhưng hãy chú ý những gì vẫn chưa tốt.
Output của attempt-2 không khác biệt nhiều so với attempt-1?
Đảm bảo bạn đã mở conversation MỚI, không tiếp tục conversation cũ. Agent trong conversation cũ đã có context từ lần trước, làm mất tính so sánh.
Nếu vẫn giống nhau, hãy kiểm tra prompt đã bao gồm đủ cả 4 phần (Role, Task, Requirements, Output Format, Example). Giúp mình so sánh hai outputs từ bare prompt và improved prompt.
Ghi nhận failure modes
Đây là bước quan trọng nhất của Layer 1. Bạn sẽ phân tích một cách có hệ thống: prompt engineering fix được gì và KHÔNG fix được gì. Kết luận này sẽ là lý do tồn tại của Layer 2 (Context Engineering).
- Tạo file FAILURES.md trong folder layer-1-prompt/.
- Dùng cấu trúc sau để phân tích failure modes:
# Layer 1 - Prompt Engineering: Failure Modes
## Chatbot thiếu gì?
<!-- Liệt kê những gì output vẫn thiếu dù đã dùng improved prompt -->
<!-- Ví dụ: thông tin sản phẩm cụ thể, chính sách chi tiết, giọng điệu nhất quán -->
-
-
-
## Prompt engineering CÓ THỂ fix
<!-- Những gì improved prompt đã giải quyết được -->
- Format và cấu trúc output
- Clarity của instructions
- Specificity của requirements
- Tone cơ bản qua role assignment
## Prompt engineering KHÔNG THỂ fix
<!-- Những giới hạn cơ bản mà dù prompt có tốt đến đâu cũng không vượt qua -->
- Domain knowledge chính xác (giá sản phẩm, stock, chính sách cụ thể)
- Consistency across conversations (mỗi lần hỏi lại có thể ra khác)
- Verification (không có cách kiểm tra output đúng hay sai)
- Brand voice nhất quán qua nhiều interactions
- Edge case handling có hệ thống (escalation rules rõ ràng)
## Kết luận
Prompt engineering phù hợp cho:
- Single-turn tasks (hỏi một lần, nhận kết quả)
- Exploration và prototyping nhanh
- Tasks không cần domain-specific accuracy
Prompt engineering KHÔNG ĐỦ cho:
- Production systems cần reliability
- Tasks cần domain knowledge chính xác
- Systems cần consistent behavior across sessions
- Products cần verification trước khi deliver
## Evaluation Scores
### Attempt 1 (Bare Prompt)
- Accuracy: /5
- Brand Voice: /5
- Edge Case Handling: /5
- Escalation: /5
- Natural Vietnamese: /5
### Attempt 2 (Improved Prompt)
- Accuracy: /5
- Brand Voice: /5
- Edge Case Handling: /5
- Escalation: /5
- Natural Vietnamese: /5
Template này là điểm khởi đầu
Phần "Chatbot thiếu gì?" cần bạn tự điền dựa trên quan sát thực tế từ 2 attempts. Đọc lại output trong attempt-1.md và attempt-2.md, so sánh với PRODUCT_BRIEF.md để thấy agent đã bỏ qua hoặc "bịa" những thông tin nào.
- Điền phần "Chatbot thiếu gì?" dựa trên quan sát thực tế của bạn.
- Điền điểm Evaluation Rubric cho cả 2 attempts vào cuối file.
- Save file FAILURES.md.
Kiểm tra folder layer-1-prompt/ trong Explorer sidebar. Bạn sẽ thấy 3 files: attempt-1.md, attempt-2.md, và FAILURES.md.
Tại sao failure analysis lại quan trọng hơn chatbot output?
Chatbot output là sản phẩm phụ. Failure analysis mới là sản phẩm chính. Là một AI Product Owner, kỹ năng cốt lõi của bạn là nhìn ra KHI NÀO cần upgrade lên layer tiếp theo.
File FAILURES.md chính là decision framework cho mọi dự án tương lai: nếu task chỉ cần format và clarity, prompt engineering là đủ. Nếu cần domain knowledge và consistency, bạn biết mình cần Context Engineering.
Không biết chatbot thiếu gì?
Thử hỏi chatbot output (trong attempt-2) những câu cụ thể từ PRODUCT_BRIEF.md: "Shipping bao nhiêu cho đơn 300k?", "Chính sách đổi trả thế nào?". So sánh câu trả lời với thông tin thực trong product brief. Chỗ nào sai hoặc thiếu, đó là failure mode.
Giúp mình phân tích failure modes của chatbot prompt-only approach.
Layer 1 hoàn tất. Bạn đã có baseline rõ ràng: prompt engineering tốt cho prototype nhanh nhưng không đủ cho production system. Tiếp theo, bạn sẽ xây dựng toàn bộ information environment cho agent bằng Context Engineering, và thấy chatbot cải thiện đáng kể chỉ nhờ cung cấp đúng context.
Layer 2 – Context Engineering
Ở Layer 1, bạn đã chứng kiến giới hạn của prompt engineering: chatbot thiếu domain knowledge, giọng điệu không consistent, và không xử lý được edge cases. File FAILURES.md của bạn đã ghi lại rõ ràng những gì prompt KHÔNG THỂ fix.
Bây giờ bạn sẽ thiết kế toàn bộ information environment cho agent. Context Engineering không phải là "hỏi hay hơn". Nó là việc cung cấp cho agent tất cả kiến thức và quy tắc mà nó cần để trả lời đúng, mọi lúc.
In this step, get ready to:
- Xây dựng bộ 5 context documents (brand voice, knowledge base, examples, policies, escalation rules).
- Re-build chatbot v2 với full context attached và đánh giá chất lượng.
- Chạy 10 test scenarios qua cả v1 và v2, ghi nhận sự khác biệt.
Xây dựng context documents
Context documents là "bộ não" bên ngoài của agent. Thay vì nhét mọi thứ vào prompt, bạn tách kiến thức thành các file riêng biệt mà agent có thể tham chiếu.
- Trong Antigravity IDE, tạo file BRAND_VOICE.md bên trong folder /layer-2-context/ với nội dung sau:
# Brand Voice Guidelines - VietShop
## Giọng điệu chung
- Thân thiện nhưng chuyên nghiệp
- Dùng "mình" (cho VietShop) và "bạn" (cho khách hàng)
- Tránh jargon kỹ thuật, dùng ngôn ngữ đời thường
- Luôn empathetic, đặc biệt khi khách gặp vấn đề
## Quy tắc ngôn ngữ
- Không dùng ngôn ngữ quá formal ("Quý khách", "Kính gửi")
- Không dùng ngôn ngữ quá casual ("oke", "bro", "xinh xẻo")
- Câu ngắn gọn, dễ hiểu, tối đa 2 dòng mỗi message
- Luôn kết thúc bằng câu hỏi mở hoặc lời mời giúp đỡ thêm
## Ví dụ giọng điệu
- Đúng: "Chào bạn! Mình có thể giúp gì cho bạn hôm nay?"
- Sai: "Kính chào quý khách hàng, xin hãy cho chúng tôi biết yêu cầu của quý khách."
- Đúng: "Mình hiểu bạn đang lo lắng. Để mình kiểm tra ngay nhé!"
- Sai: "Vui lòng chờ trong giây lát, hệ thống đang xử lý."
## Khi khách hàng tức giận
- Acknowledge cảm xúc trước: "Mình hiểu bạn đang rất bực mình..."
- Không defensive, không đổ lỗi
- Đưa ra giải pháp cụ thể ngay lập tức
- Nếu lỗi từ VietShop: xin lỗi chân thành, không vòng vo
Tại sao tách Brand Voice thành file riêng?
Khi brand voice nằm riêng, bạn có thể thay đổi giọng điệu mà không cần rewrite toàn bộ prompt. Agent sẽ tham chiếu file này như một "style guide" sống.
Đây chính là điểm khác biệt với prompt engineering: thay vì mô tả mọi thứ trong 1 prompt dài, bạn thiết kế một hệ thống documents có cấu trúc.
- Tạo file KNOWLEDGE_BASE.md trong cùng folder /layer-2-context/ với nội dung sau:
# Knowledge Base - VietShop FAQ
## Shipping & Delivery
### Q: Shipping mất bao lâu?
A: Giao hàng trong 2-5 ngày làm việc. Nội thành HCM/HN thường nhận trong 2-3 ngày.
### Q: Phí ship bao nhiêu?
A: Miễn phí shipping cho đơn hàng trên 500.000đ. Đơn dưới 500k phí ship 30.000đ.
### Q: Có giao cuối tuần không?
A: Có, mình giao hàng 7 ngày/tuần, từ 8h-22h.
### Q: Mình có thể theo dõi đơn hàng không?
A: Có! Sau khi đặt hàng, bạn sẽ nhận mã tracking qua SMS/email trong vòng 24h.
## Đổi trả & Hoàn tiền
### Q: Chính sách đổi trả như thế nào?
A: Bạn có 7 ngày kể từ ngày nhận hàng để đổi/trả. Sản phẩm phải chưa sử dụng và còn nguyên tem/hộp.
### Q: Hoàn tiền mất bao lâu?
A: Sau khi mình nhận lại sản phẩm và kiểm tra, hoàn tiền trong 3-5 ngày làm việc.
### Q: Sản phẩm bị lỗi thì sao?
A: Sản phẩm lỗi từ nhà sản xuất được đổi miễn phí trong 30 ngày, không cần giữ hộp.
### Q: Mình mua hơn 7 ngày rồi, có đổi được không?
A: Rất tiếc, chính sách đổi trả áp dụng trong 7 ngày. Tuy nhiên, nếu sản phẩm lỗi từ nhà sản xuất, bạn vẫn được bảo hành.
## Sản phẩm & Thanh toán
### Q: Thanh toán bằng gì?
A: Mình nhận: chuyển khoản, thẻ Visa/Mastercard, ví MoMo/ZaloPay, và COD (thanh toán khi nhận hàng).
### Q: Sản phẩm có bảo hành không?
A: Tất cả sản phẩm điện tử được bảo hành 12 tháng. Đồ gia dụng khác bảo hành 6 tháng.
### Q: Mình muốn mua số lượng lớn (B2B) thì liên hệ ai?
A: Bạn vui lòng email wholesale@vietshop.vn hoặc mình sẽ chuyển bạn cho bộ phận B2B nhé!
## Tài khoản & Ưu đãi
### Q: Làm sao tạo tài khoản?
A: Vào vietshop.vn > Đăng ký > Điền email và mật khẩu. Xong!
### Q: Có chương trình khách hàng thân thiết không?
A: Có! Mỗi đơn hàng tích điểm 1% giá trị. Tích đủ 100.000 điểm đổi voucher 100k.
### Q: Mình quên mật khẩu thì sao?
A: Bấm "Quên mật khẩu" ở trang đăng nhập, mình sẽ gửi link reset qua email bạn đăng ký.
Tại sao cần 20-30 FAQ entries?
Agent cần đủ data để "hiểu" pattern trả lời. 5-10 entries quá ít, agent sẽ phải đoán. 20-30 entries phủ hầu hết scenarios thực tế, giúp agent trả lời chính xác thay vì hallucinate.
Template trên có 14 entries. Bạn nên bổ sung thêm 6-16 entries nữa về các chủ đề: khiếu nại, sản phẩm cụ thể, chương trình khuyến mãi, giờ làm việc support.
- Tạo file CONVERSATION_EXAMPLES.md trong /layer-2-context/ với nội dung sau:
# Conversation Examples - VietShop Chatbot
## Example 1: Happy Path - Hỏi shipping (Easy)
Khách: Chào shop, mình muốn hỏi shipping mất bao lâu ạ?
Bot: Chào bạn! Thường giao hàng trong 2-5 ngày làm việc nhé. Nếu bạn ở nội thành HCM hoặc Hà Nội thì thường nhận trong 2-3 ngày thôi. Bạn đang muốn đặt sản phẩm gì, mình check chính xác hơn cho?
## Example 2: Happy Path - Hỏi đổi trả (Easy)
Khách: Mình mua cái nồi mà không vừa bếp, đổi được không?
Bot: Được chứ bạn! Mình có chính sách đổi trả trong 7 ngày kể từ ngày bạn nhận hàng. Điều kiện là sản phẩm chưa sử dụng và còn nguyên hộp nhé. Bạn mua được mấy ngày rồi?
## Example 3: Medium - Hỏi ngoài chính sách (Edge Case)
Khách: Mình mua 10 ngày rồi nhưng chưa mở hộp, đổi được không?
Bot: Mình hiểu bạn muốn đổi, nhưng rất tiếc chính sách đổi trả của mình áp dụng trong 7 ngày kể từ ngày nhận hàng. Vì đã quá thời hạn nên mình không thể xử lý đổi trả thông thường được. Tuy nhiên, nếu bạn gặp vấn đề đặc biệt, mình có thể chuyển cho bộ phận chăm sóc khách hàng để hỗ trợ thêm. Bạn muốn mình kết nối không?
## Example 4: Hard - Khách tức giận
Khách: Shop giao sai hàng mà giờ bảo tự gửi lại? Phục vụ kiểu gì vậy??
Bot: Mình thật sự xin lỗi bạn! Giao sai hàng hoàn toàn là lỗi của mình, bạn không cần phải tự gửi lại. Mình sẽ sắp xếp shipper đến lấy sản phẩm sai và giao đúng sản phẩm cho bạn, hoàn toàn miễn phí. Bạn cho mình biết khung giờ nào tiện để shipper đến nhé?
## Example 5: Hard - Câu hỏi ngoài phạm vi
Khách: Mình muốn hỏi cách nấu phở bằng nồi mình mua ở shop
Bot: Cảm ơn bạn đã hỏi! Mình chuyên về hỗ trợ mua hàng và dịch vụ sau bán hàng, nên không có hướng dẫn nấu ăn chi tiết. Tuy nhiên, nếu nồi bạn mua có sách hướng dẫn đi kèm thì bạn check thử nhé! Mình có thể giúp bạn gì khác về đơn hàng hoặc sản phẩm không?
## Example 6: Hard - Yêu cầu escalation
Khách: Mình đặt hàng 3 triệu mà hàng lỗi, mình muốn hoàn tiền ngay lập tức, không thì mình sẽ report lên Bộ Công Thương
Bot: Mình hiểu bạn đang rất bực mình và mình xin lỗi về trải nghiệm này. Vì đơn hàng giá trị cao và bạn cần hỗ trợ đặc biệt, mình sẽ chuyển ngay cho quản lý chăm sóc khách hàng để xử lý nhanh nhất cho bạn. Bạn sẽ được liên hệ trong vòng 30 phút. Mình có thể giữ thông tin liên hệ của bạn không?
## Example 7: Edge Case - Khách hỏi đi hỏi lại
Khách: Nhưng mà shipping miễn phí đúng không?
Khách: Là miễn phí luôn hả?
Khách: Chắc chắn không tính phí gì thêm chứ?
Bot: Mình xác nhận lại cho bạn yên tâm nhé: đơn hàng trên 500.000đ được miễn phí shipping hoàn toàn, không phát sinh thêm bất kỳ chi phí nào. Nếu đơn dưới 500k thì phí ship cố định 30.000đ. Bạn cần mình hỗ trợ gì thêm không?
Conversation examples dạy agent điều gì?
Mỗi example cho agent thấy CÁCH ứng xử trong tình huống cụ thể. Agent không chỉ biết "thông tin gì đúng" (từ knowledge base) mà còn biết "nói như thế nào" trong từng context.
Lưu ý cách mỗi example đi từ Easy đến Hard. Gradient này giúp agent hiểu mức độ phức tạp tăng dần và điều chỉnh response tương ứng.
- Tạo file POLICIES.md trong /layer-2-context/ với nội dung sau:
# Policies - VietShop
## Chính sách đổi trả
- Thời hạn: 7 ngày kể từ ngày nhận hàng
- Điều kiện: sản phẩm chưa sử dụng, còn nguyên tem/nhãn/hộp
- Sản phẩm lỗi từ nhà sản xuất: đổi miễn phí trong 30 ngày, không cần giữ hộp
- Không áp dụng: đồ lót, khẩu trang, sản phẩm đã sử dụng
- Chi phí trả hàng: VietShop chịu nếu lỗi từ shop, khách chịu nếu đổi ý
## Chính sách shipping
- Miễn phí: đơn hàng trên 500.000đ
- Phí cố định: 30.000đ cho đơn dưới 500.000đ
- Thời gian giao: 2-5 ngày làm việc
- Nội thành HCM/HN: 2-3 ngày
- Vùng sâu/vùng xa: có thể 5-7 ngày
- Giao hàng 7 ngày/tuần, 8h-22h
## Chính sách bảo hành
- Sản phẩm điện tử: 12 tháng
- Đồ gia dụng khác: 6 tháng
- Bảo hành không áp dụng: hư hỏng do sử dụng sai cách, thiên tai, tự sửa chữa
- Quy trình: liên hệ support > gửi ảnh/video > xác nhận > gửi sản phẩm về > sửa/đổi
## Chính sách hoàn tiền
- Thời gian xử lý: 3-5 ngày làm việc sau khi nhận lại sản phẩm
- Phương thức: hoàn về phương thức thanh toán ban đầu
- COD: chuyển khoản vào tài khoản khách cung cấp
- Hoàn tiền một phần: áp dụng khi sản phẩm bị hư hỏng nhẹ và khách đồng ý giữ
## Khiếu nại
- Kênh: chat, email support@vietshop.vn, hotline 1900-xxxx
- Thời gian phản hồi: trong 24h làm việc
- Quy trình: tiếp nhận > xác minh > đề xuất giải pháp > thực hiện > follow up
- Nếu khách không hài lòng với giải pháp: escalate cho quản lý
- Tạo file cuối cùng ESCALATION_RULES.md trong /layer-2-context/ với nội dung sau:
# Escalation Rules - VietShop Chatbot
## Khi nào PHẢI escalate cho human agent
Chatbot PHẢI chuyển cho nhân viên hỗ trợ khi:
### 1. Giá trị cao
- Yêu cầu hoàn tiền trên 2.000.000đ
- Đơn hàng B2B (mua sỉ)
- Khiếu nại liên quan đến nhiều đơn hàng cùng lúc
### 2. Pháp lý
- Khách đề cập đến kiện/report cơ quan chức năng
- Khách yêu cầu thông tin pháp lý (hợp đồng, điều khoản chi tiết)
- Vấn đề liên quan đến bảo mật dữ liệu cá nhân
### 3. Kỹ thuật phức tạp
- Lỗi thanh toán (trừ tiền nhưng không nhận đơn)
- Lỗi hệ thống mà chatbot không có thông tin
- Khách báo bị hack tài khoản
### 4. Cảm xúc
- Khách tức giận SAU KHI chatbot đã cố xử lý (2 lần thất bại)
- Khách yêu cầu nói chuyện với người thật
- Khách sử dụng ngôn ngữ threatening
## Cách escalate
1. Acknowledge: "Mình hiểu tình huống của bạn cần hỗ trợ đặc biệt."
2. Thông báo: "Mình sẽ chuyển bạn cho [quản lý/chuyên viên] để hỗ trợ tốt nhất."
3. Context: Tóm tắt vấn đề cho human agent (không bắt khách kể lại)
4. Timeline: "Bạn sẽ được liên hệ trong vòng [30 phút/1 giờ]."
5. Follow up: Hỏi thông tin liên hệ nếu chưa có
## Khi nào KHÔNG escalate
- Câu hỏi có trong Knowledge Base
- Yêu cầu đổi trả trong chính sách
- Hỏi thông tin sản phẩm, giá, shipping
- Khách hơi bực nhưng vấn đề có thể xử lý được
5 context documents này đại diện cho điều gì?
Mỗi document giải quyết một failure mode từ Layer 1. BRAND_VOICE.md fix giọng điệu không consistent. KNOWLEDGE_BASE.md fix việc thiếu domain knowledge. CONVERSATION_EXAMPLES.md fix cách response không tự nhiên.
POLICIES.md fix việc hallucinate chính sách. ESCALATION_RULES.md fix việc không biết khi nào dừng và chuyển cho người thật.
- Lưu tất cả 5 file trong folder /layer-2-context/.
- Kiểm tra lại folder. Bạn sẽ thấy 5 file: BRAND_VOICE.md, KNOWLEDGE_BASE.md, CONVERSATION_EXAMPLES.md, POLICIES.md, ESCALATION_RULES.md.
Folder trống hoặc thiếu file?
Kiểm tra bạn đang tạo file đúng trong folder /layer-2-context/ chứ không phải root project. Tên file phải chính xác (ALL CAPS, có underscore).
Nếu bạn muốn mở rộng Knowledge Base thêm nhiều entries, hãy thêm vào cuối file theo đúng format Q/A đã có.
Help me check my context documents structure
Re-build chatbot với full context
Bây giờ bạn sẽ thấy sức mạnh của context engineering. Cùng một agent, cùng một yêu cầu, nhưng lần này agent có toàn bộ kiến thức cần thiết.
- Trong Antigravity IDE, mở agent chat panel.
- Attach tất cả 5 context documents vào conversation (kéo thả file hoặc dùng nút attach).
- Gửi prompt mới cho agent với nội dung sau:
Xây cho mình một chatbot hỗ trợ khách hàng cho VietShop dựa trên các documents đính kèm.
Yêu cầu:
1. Tuân theo BRAND_VOICE.md cho mọi response
2. Sử dụng KNOWLEDGE_BASE.md làm nguồn thông tin DUY NHẤT (không hallucinate)
3. Tham khảo CONVERSATION_EXAMPLES.md cho cách response trong từng tình huống
4. Áp dụng POLICIES.md cho mọi câu hỏi về chính sách
5. Tuân thủ ESCALATION_RULES.md khi gặp tình huống cần escalate
Output mong muốn:
- System prompt hoàn chỉnh cho chatbot
- 5 sample responses cho các scenarios: hỏi shipping, đổi trả trong hạn, đổi trả quá hạn, khách tức giận, câu hỏi ngoài scope
- Quy trình xử lý escalation
Prompt này khác gì so với Layer 1?
Prompt của Layer 1 chỉ mô tả "muốn gì". Prompt này mô tả "lấy thông tin từ đâu" và "tuân theo quy tắc nào". Agent không cần đoán, vì mọi câu trả lời đều có source of truth.
Đây là sự khác biệt cốt lõi: prompt engineering shapes MỘT interaction. Context engineering shapes REASONING của agent.
- Đợi agent generate output hoàn chỉnh.
- Copy toàn bộ output và lưu vào file /layer-2-context/chatbot-v2.md.
- Mở EVALUATION_RUBRIC.md và chấm điểm chatbot v2 theo 5 tiêu chí (1-5 cho mỗi tiêu chí).
- Ghi điểm vào cuối file chatbot-v2.md.
So sánh ngay với Layer 1
Mở attempt-2.md (kết quả tốt nhất của Layer 1) cạnh chatbot-v2.md. Chú ý sự khác biệt ở: accuracy (trả lời đúng chính sách), consistency (giọng điệu đồng nhất), và depth (xử lý edge cases).
Agent không dùng context documents?
Nếu agent trả lời chung chung mà không tham chiếu documents đã attach, hãy kiểm tra rằng files đã được attach thành công (bạn sẽ thấy tên file hiện trong conversation). Thử gửi lại prompt với instruction rõ hơn: "Dựa HOÀN TOÀN vào các file đính kèm, KHÔNG sử dụng kiến thức bên ngoài."
Help me get my agent to use attached context documents
Test và so sánh v1 vs v2
Để chứng minh context engineering tạo ra khác biệt thực sự, bạn cần data. 10 test scenarios với mức độ khó tăng dần sẽ cho thấy rõ chatbot v2 xử lý tốt hơn ở đâu.
- Chạy lần lượt 10 test scenarios sau qua cả chatbot v1 (prompt-only, dùng output từ attempt-2.md) và chatbot v2:
# 10 Test Scenarios
## Easy (1-3)
1. "Shipping bao lâu?"
2. "Phí ship bao nhiêu?"
3. "Thanh toán bằng gì?"
## Medium (4-7)
4. "Mình mua hàng 5 ngày rồi, muốn đổi được không?"
5. "Đơn hàng mình 3 ngày rồi mà chưa nhận, sao vậy?"
6. "Mình muốn mua 50 cái nồi cho công ty, có giảm giá không?"
7. "Bảo hành có áp dụng cho trường hợp mình làm rơi không?"
## Hard (8-10)
8. "Sản phẩm bị lỗi mà quá 7 ngày rồi, mình muốn hoàn tiền ngay!"
9. "Shop lừa đảo! Giao hàng fake, mình sẽ kiện lên Bộ Công Thương!"
10. "Mình muốn hoàn 5 triệu tiền hàng mà nhân viên tư vấn sai."
Tại sao chia 3 mức độ?
Easy scenarios test accuracy (thông tin có đúng không). Medium test consistency (xử lý có đúng chính sách không). Hard test cả edge case handling lẫn escalation. Nếu v2 chỉ tốt hơn ở Easy, context chưa đủ sâu.
- Với chatbot v1: copy từng scenario, paste vào agent chat KHÔNG có context documents. Ghi lại response.
- Với chatbot v2: paste từng scenario vào agent chat CÓ context documents attached. Ghi lại response.
- Tạo file /comparisons/layer1-vs-layer2.md và ghi kết quả theo format sau:
# So sánh Layer 1 vs Layer 2
## Bảng điểm tổng hợp
| Tiêu chí | V1 (Prompt-only) | V2 (Context-engineered) |
|----------|-------------------|-------------------------|
| Accuracy | /5 | /5 |
| Brand Voice | /5 | /5 |
| Edge Case Handling | /5 | /5 |
| Escalation | /5 | /5 |
| Natural Vietnamese | /5 | /5 |
| **Tổng** | /25 | /25 |
## Chi tiết từng scenario
### Scenario 1: "Shipping bao lâu?" (Easy)
- V1 response: [ghi lại]
- V2 response: [ghi lại]
- Nhận xét: [V2 tốt hơn/tương đương ở điểm nào?]
### Scenario 2: ... (tiếp tục cho 10 scenarios)
## Kết luận
### Context engineering đã fix được:
- [Liệt kê những gì cải thiện rõ rệt]
### Context engineering CHƯA fix được:
- [Liệt kê những gì vẫn còn thiếu]
- [Ví dụ: không có verification loop, không tự check consistency, không có feedback mechanism]
### Insight cho Layer 3:
- [Ghi nhận những gì cần Harness Engineering để giải quyết]
Bạn nên thấy pattern gì?
V2 thường outperform V1 rõ ở: accuracy (đúng chính sách), brand voice (consistent), và escalation (biết khi nào chuyển). Nhưng V2 vẫn thiếu: verification (không tự kiểm tra output), feedback loop (không học từ lỗi), và reliability guarantee (đôi khi vẫn drift).
Đó chính là lý do Layer 3 (Harness Engineering) tồn tại. Context cho agent "biết gì", nhưng harness đảm bảo agent "làm đúng mọi lúc".
- Lưu file layer1-vs-layer2.md trong folder /comparisons/.
- Review lại phần "Kết luận" và đảm bảo bạn đã ghi rõ: context engineering fix được gì, CHƯA fix được gì.
V1 và V2 cho kết quả gần giống nhau?
Nếu điểm V2 không cao hơn V1 đáng kể, kiểm tra: (1) Context documents đã được attach đúng chưa? (2) Prompt có instruction rõ ràng yêu cầu agent tham chiếu documents không? (3) Thử hard scenarios (8-10), sự khác biệt thường rõ nhất ở edge cases.
Help me understand why my v2 chatbot isn't much better than v1
Bạn vừa trải nghiệm sức mạnh của Context Engineering. Chatbot v2 tốt hơn đáng kể vì agent có "bộ não" bên ngoài để tham chiếu. Nhưng bạn cũng thấy context engineering vẫn chưa đủ cho production. Tiếp theo, bạn sẽ xây Layer 3: Harness Engineering, biến chatbot từ "demo hay" thành "hệ thống đáng tin cậy".
Layer 3 – Harness Engineering
Trong Layer 2, bạn đã thấy context engineering cải thiện chatbot rõ rệt. Nhưng nếu bạn mở lại layer1-vs-layer2.md, bạn sẽ thấy vẫn còn gap: agent vẫn có thể hallucinate, không tự verify output, và bạn không có cách nào đảm bảo consistency qua nhiều sessions.
Đây là lúc Harness Engineering phát huy tác dụng. Harness là toàn bộ operational environment bao quanh agent: các guide (constraints trước khi agent hành động), sensors (verification sau khi agent hành động), và orchestration (cách bạn điều phối workflow). Trong step này, bạn sẽ xây dựng harness hoàn chỉnh để biến chatbot từ "demo hay" thành "production-ready system."
In this step, get ready to:
- Tạo GEMINI.md để thiết lập project instructions mà agent đọc tự động.
- Xây dựng hệ thống verification với 20+ test scenarios và checklist.
- Build chatbot v3 sử dụng Planning Mode với full feedback loop.
Thiết kế GEMINI.md và project instructions
Trong Antigravity IDE, file GEMINI.md đặt ở root project hoạt động như một "bản hiến pháp" cho agent. Agent đọc file này tự động mỗi khi bắt đầu session và tuân theo các rules bên trong suốt quá trình làm việc.
Đây chính là thành phần GUIDES trong harness: constraints được thiết lập TRƯỚC KHI agent hành động.
- Tạo file mới tên GEMINI.md trong root của project ai-product-owner-playbook (cùng cấp với PRODUCT_BRIEF.md và EVALUATION_RUBRIC.md).
- Copy nội dung sau vào file:
# VietShop Chatbot Project
## Project Overview
Xây dựng chatbot hỗ trợ khách hàng cho VietShop (cửa hàng đồ gia dụng online).
Mục tiêu: chatbot production-ready, đáng tin cậy, giữ đúng brand voice.
## File Structure
- /layer-1-prompt/ — Kết quả Layer 1 (prompt-only)
- /layer-2-context/ — Context documents (brand voice, knowledge base, examples, policies, escalation rules)
- /layer-3-harness/ — Harness artifacts (test scenarios, verification checklist, chatbot v3)
- /playbook/ — AI Product Owner Playbook (deliverable cuối cùng)
- /comparisons/ — So sánh before/after giữa các versions
## Coding Standards & Conventions
- Mọi output chatbot phải được viết bằng tiếng Việt tự nhiên.
- Dùng Markdown cho tất cả documentation files.
- File names dùng kebab-case hoặc SCREAMING_SNAKE_CASE.
## Workflow Rules
- LUÔN dùng Planning Mode cho mọi feature mới hoặc thay đổi lớn.
- Trình bày plan TRƯỚC khi implement. Chờ approval.
- Sau khi implement, tự chạy verification trước khi deliver.
## Verification Criteria
- Mọi câu trả lời chatbot PHẢI tham chiếu từ KNOWLEDGE_BASE.md.
- Brand voice PHẢI consistent theo BRAND_VOICE.md (thân thiện, mình/bạn, không jargon).
- Edge cases PHẢI có fallback rõ ràng (không hallucinate thông tin).
- Escalation triggers PHẢI đúng theo ESCALATION_RULES.md.
- KHÔNG BAO GIỜ hallucinate thông tin sản phẩm. Nếu không biết, trả lời "Mình sẽ chuyển câu hỏi này cho đội ngũ hỗ trợ."
## Constraints
- Không bịa thông tin ngoài knowledge base.
- Luôn fallback về knowledge base khi không chắc chắn.
- Không trả lời các câu hỏi ngoài phạm vi VietShop.
- Tuân thủ chính sách đổi trả và shipping trong POLICIES.md.
What does this file do?
GEMINI.md là persistent instructions. Agent đọc nó ở đầu mỗi session và mang theo các rules này suốt quá trình làm việc. Bạn không cần nhắc lại mỗi lần chat.
Khác với prompt (mất sau một session) hay context documents (thông tin cho agent tham chiếu), GEMINI.md định nghĩa HÀNH VI của agent: nó phải làm gì, không được làm gì, và quy trình làm việc là gì.
- Lưu file GEMINI.md.
- Xác nhận file nằm đúng vị trí: nó phải ở cùng cấp với folder /layer-1-prompt/ và /layer-2-context/ trong project root.
Kiểm tra agent đã đọc GEMINI.md chưa
Mở agent chat trong Antigravity IDE và hỏi: "Bạn đang tuân theo rules nào?" Agent sẽ liệt kê các constraints từ GEMINI.md nếu file được đọc thành công.
Xây dựng verification và feedback loop
Verification là thành phần SENSORS trong harness. Đây là cách bạn kiểm tra agent SAU KHI nó hành động, đảm bảo output đạt chất lượng trước khi deliver.
- Tạo file test-scenarios.md trong folder /layer-3-harness/ với nội dung sau:
# Test Scenarios cho VietShop Chatbot
## Easy (Câu hỏi đơn giản, thông tin có sẵn trong FAQ)
1. "Shipping bao lâu?"
2. "Miễn phí shipping không?"
3. "Giờ làm việc của shop?"
4. "Có bán nồi cơm điện không?"
5. "Liên hệ shop bằng cách nào?"
6. "Đơn trên 500k có miễn phí ship không?"
7. "Shop giao hàng khu vực nào?"
## Medium (Cần áp dụng chính sách, có điều kiện)
8. "Mình mua hàng 5 ngày rồi, muốn đổi được không?"
9. "Sản phẩm bị thiếu phụ kiện khi nhận hàng."
10. "Mình muốn hủy đơn hàng đang giao."
11. "Đổi size được không nếu đã mở hộp?"
12. "Mình muốn đổi sang sản phẩm khác giá cao hơn."
13. "Giao hàng 5 ngày rồi mà chưa nhận được."
14. "Mình quên mã đơn hàng, check giúp mình."
## Hard (Edge cases, khách khó tính, ngoài phạm vi)
15. "Sản phẩm bị lỗi mà quá 7 ngày rồi, mình muốn hoàn tiền ngay!"
16. "Mình sẽ report shop lên Bộ Công Thương nếu không giải quyết!"
17. "Cho mình số điện thoại cá nhân của quản lý."
18. "Tư vấn giúp mình cách sửa máy giặt đi."
19. "Mình mua 10 triệu tiền hàng mà bị lỗi hết, hoàn tiền ngay!"
20. "Bên shop có bán iPhone không?"
21. "Mình muốn kiện shop ra tòa."
22. "Giải thích cho mình tại sao giá đắt hơn Shopee?"
Tại sao phân loại theo difficulty?
Easy scenarios test kiến thức cơ bản (agent có tham chiếu FAQ đúng không). Medium test khả năng áp dụng policy (có logic không). Hard test edge case handling và escalation (biết giới hạn không).
Nếu chatbot pass Easy nhưng fail Hard, bạn biết chính xác cần cải thiện phần nào của harness.
- Lưu file test-scenarios.md.
- Tiếp theo, tạo file verification-checklist.md trong cùng folder /layer-3-harness/:
# Verification Checklist - VietShop Chatbot v3
## Trước khi deliver, chatbot PHẢI pass TẤT CẢ các tiêu chí sau:
- [ ] Mọi câu trả lời tham chiếu thông tin từ KNOWLEDGE_BASE.md
- [ ] Brand voice consistent qua tất cả responses (thân thiện, mình/bạn, không jargon)
- [ ] Edge cases có fallback rõ ràng (không bịa thông tin)
- [ ] Escalation triggers hoạt động đúng (khách đòi hoàn tiền > 2 triệu, dọa kiện, vấn đề kỹ thuật phức tạp)
- [ ] Không có hallucination (không bịa sản phẩm, giá, chính sách)
- [ ] Câu hỏi ngoài phạm vi được từ chối lịch sự
- [ ] Tiếng Việt tự nhiên, không robotic
- [ ] Thông tin shipping và đổi trả chính xác theo POLICIES.md
## Feedback Loop Process:
1. Agent build chatbot response
2. Human test với scenarios từ test-scenarios.md
3. Ghi lỗi cụ thể (scenario nào, fail tiêu chí nào)
4. Agent fix dựa trên feedback
5. Re-test các scenarios bị fail
6. Repeat cho đến khi pass tất cả
What does the feedback loop do?
Feedback loop biến quá trình build chatbot từ "bắn một lần rồi hy vọng" thành iterative process có kiểm soát. Mỗi vòng lặp thu hẹp gap giữa output hiện tại và tiêu chuẩn bạn đã định nghĩa.
- Lưu file verification-checklist.md.
- Kiểm tra folder /layer-3-harness/ bây giờ chứa hai file: test-scenarios.md và verification-checklist.md.
Build chatbot v3 với Planning Mode và full harness
Bây giờ bạn có đủ mọi thứ: GEMINI.md (guides), context documents (data context), test scenarios và checklist (sensors). Đã đến lúc tổ hợp tất cả lại và sử dụng Planning Mode để build chatbot v3.
Planning Mode yêu cầu agent tạo implementation plan trước khi code. Bạn review plan đó, comment nếu cần, rồi mới approve để agent thực thi.
- Trong agent panel của Antigravity IDE, chuyển sang Planning mode (thay vì Fast mode).
- Đưa prompt sau cho agent, kèm attach toàn bộ context documents từ /layer-2-context/:
Xây dựng chatbot hỗ trợ khách hàng cho VietShop.
Yêu cầu:
- Đọc và tuân theo GEMINI.md trong project root.
- Sử dụng toàn bộ context documents trong /layer-2-context/ (BRAND_VOICE.md, KNOWLEDGE_BASE.md, CONVERSATION_EXAMPLES.md, POLICIES.md, ESCALATION_RULES.md).
- Chatbot phải xử lý được TẤT CẢ 22 test scenarios trong /layer-3-harness/test-scenarios.md.
- Trước khi deliver, tự verify output theo /layer-3-harness/verification-checklist.md.
- Trình bày plan trước. Chờ mình approve rồi mới implement.
Output mong muốn: Chatbot responses cho tất cả 22 scenarios, kèm self-verification report.
Why does the prompt reference GEMINI.md explicitly?
Agent đã đọc GEMINI.md tự động, nhưng việc nhắc lại trong prompt tạo "double reinforcement." Nó đảm bảo agent ưu tiên các constraints của bạn ngay cả khi context window bị đầy.
Agent sẽ trình bày implementation plan trước. Đây là lúc bạn đóng vai AI Product Owner.
- Đọc kỹ plan mà agent trình bày.
- Kiểm tra plan có đề cập đến việc tham chiếu knowledge base, tuân theo brand voice, và xử lý escalation không.
- Nếu plan thiếu bất kỳ điều gì trong verification checklist, comment trực tiếp lên plan (Antigravity hỗ trợ commenting kiểu Google Docs).
- Khi plan đã đầy đủ, approve để agent bắt đầu implement.
Cách comment hiệu quả trên plan
Thay vì nói "thiếu escalation", hãy cụ thể: "Thêm logic xử lý khi khách đòi hoàn tiền trên 2 triệu VND. Theo ESCALATION_RULES.md, case này phải chuyển cho human agent." Càng cụ thể, agent càng ít phải đoán.
Sau khi agent implement xong, nó sẽ tự chạy verification theo checklist (vì bạn đã yêu cầu trong prompt và GEMINI.md cũng quy định điều này).
- Review kết quả self-verification của agent.
- Nếu có scenarios bị fail, yêu cầu agent fix và re-verify.
- Khi agent pass tất cả verification criteria, lưu toàn bộ output vào /layer-3-harness/chatbot-v3.md.
- Đánh giá chatbot v3 theo EVALUATION_RUBRIC.md và ghi điểm vào cuối file chatbot-v3.md.
What makes this different from Layer 2?
Ở Layer 2, bạn chỉ cung cấp context và hy vọng agent dùng đúng. Ở Layer 3, bạn kiểm soát toàn bộ operational environment: agent PHẢI plan trước (Planning Mode), PHẢI tuân theo constraints (GEMINI.md), và PHẢI self-verify trước khi deliver (verification checklist).
Đây là sự khác biệt giữa "cung cấp thông tin" và "thiết kế hệ thống." Bạn đã chuyển từ Context Engineer sang Harness Engineer.
Agent không tạo plan mà code ngay?
Kiểm tra mode hiện tại trong agent panel. Nếu đang ở Fast mode, chuyển sang Planning mode. Mode hiện tại thường hiển thị ở phần dưới của chat interface.
Nếu không tìm thấy toggle, thêm dòng "Trình bày implementation plan TRƯỚC. KHÔNG code cho đến khi mình approve." vào đầu prompt.
help me get the Antigravity agent to use Planning Mode and show implementation plan before coding
Chatbot v3 của bạn bây giờ là production-ready: được xây dựng với constraints rõ ràng, verified trước khi deliver, và có quy trình lặp lại được. Trong step tiếp theo, bạn sẽ tổng hợp toàn bộ quá trình này thành AI Product Owner Playbook mà bạn có thể áp dụng cho bất kỳ dự án nào.
Synthesize Your AI Product Owner Playbook
Bạn vừa trải nghiệm 3 layers engineering từ prompt thô đến production-ready harness. Điểm Evaluation Rubric đã cho thấy rõ sự khác biệt giữa mỗi version.
Bây giờ là lúc biến những bài học thực tế đó thành một playbook có hệ thống. Đây là deliverable chính của bạn với tư cách AI Product Owner. Một bộ templates và quy trình bạn có thể áp dụng cho BẤT KỲ dự án nào trong tương lai.
In this step, get ready to:
- So sánh final cả 3 versions chatbot qua 10 test scenarios.
- Tạo AI Product Owner Playbook với templates tái sử dụng.
- Document mental model và progression table.
So sánh final cả 3 layers
Bạn đã có file comparisons/layer1-vs-layer2.md so sánh v1 và v2. Bây giờ bạn cần một bảng so sánh toàn diện bao gồm cả v3 để thấy progression hoàn chỉnh.
- Chạy cùng 10 test scenarios (từ layer-3-harness/test-scenarios.md) qua cả 3 versions: chatbot v1, v2, và v3.
- Chấm điểm theo EVALUATION_RUBRIC.md cho mỗi version (5 tiêu chí, mỗi tiêu chí 1-5 điểm).
- Ghi nhận thời gian setup cho mỗi layer (ước tính bạn đã dùng bao nhiêu thời gian cho prompt-only vs context vs full harness).
- Tạo file final-comparison.md trong folder comparisons/ với cấu trúc sau:
# Final Comparison: 3 Layers
## Test Scenarios Used
| # | Scenario | Difficulty |
|---|----------|------------|
| 1 | "Shipping bao lâu?" | Easy |
| 2 | "Mình mua hàng 5 ngày rồi, muốn đổi được không?" | Medium |
| 3 | "Sản phẩm bị lỗi mà quá 7 ngày rồi, mình muốn hoàn tiền ngay!" | Hard |
| 4-10 | (thêm scenarios từ test-scenarios.md) | Mix |
## Evaluation Rubric Scores
| Criteria | V1 (Prompt) | V2 (Context) | V3 (Harness) |
|----------|-------------|--------------|---------------|
| Accuracy | /5 | /5 | /5 |
| Brand Voice | /5 | /5 | /5 |
| Edge Case Handling | /5 | /5 | /5 |
| Escalation | /5 | /5 | /5 |
| Natural Vietnamese | /5 | /5 | /5 |
| **TOTAL** | /25 | /25 | /25 |
## Setup Time per Layer
| Layer | Time Spent | What Was Created |
|-------|-----------|------------------|
| Prompt Engineering | ~X minutes | Prompt iterations |
| Context Engineering | ~X hours | Brand voice, knowledge base, examples, policies, rules |
| Harness Engineering | ~X hours | GEMINI.md, verification system, Planning Mode workflow |
## ROI Analysis
| Layer | Effort | Quality Gain | Best For |
|-------|--------|-------------|----------|
| Prompt | Low | Moderate | Quick tasks, exploration, prototype |
| Context | Medium | Significant | Defined product, consistency needed |
| Harness | High | Production-grade | Reliability, team collaboration |
## Conclusion: When to Use Each Layer
- **Prompt Engineering:** (your conclusion)
- **Context Engineering:** (your conclusion)
- **Harness Engineering:** (your conclusion)
What does this comparison reveal?
Bảng so sánh giúp bạn THẤY ROI thực tế của mỗi layer. Prompt engineering tốn ít effort nhưng chất lượng có giới hạn. Context engineering cần nhiều thời gian setup nhưng output cải thiện đáng kể. Harness engineering đòi hỏi investment lớn nhất nhưng deliver production-grade results.
Không phải lúc nào cũng cần full harness. Kết luận của BẠN ở phần cuối mới là phần quan trọng nhất.
- Điền điểm thực tế từ các lần test trước vào bảng Evaluation Rubric Scores.
- Ước tính thời gian bạn đã dùng cho mỗi layer và điền vào bảng Setup Time.
- Viết kết luận của riêng bạn ở phần Conclusion dựa trên trải nghiệm thực tế.
- Save file comparisons/final-comparison.md.
Không nhớ điểm từ các lần test trước?
Mở lại layer-1-prompt/attempt-1.md, layer-2-context/chatbot-v2.md, và layer-3-harness/chatbot-v3.md để xem lại scores đã ghi.
Nếu chưa ghi điểm ở các bước trước, hãy chạy lại 10 scenarios qua mỗi version ngay bây giờ và chấm điểm.
Help me re-run my 10 test scenarios through all 3 chatbot versions and score them
Tạo AI Product Owner Playbook
Playbook này là bộ templates tái sử dụng cho MỌI project AI trong tương lai. Thay vì phải thiết kế lại từ đầu, bạn sẽ có sẵn decision guide và templates để apply ngay.
- Tạo file AI_PRODUCT_OWNER_PLAYBOOK.md trong folder playbook/ với nội dung sau:
# AI Product Owner Playbook
## Decision Guide: When to Use Each Layer
### Prompt Engineering
- **Use when:** Quick tasks, exploration, prototyping, one-off requests
- **Time investment:** Minutes
- **Expected quality:** Good enough for drafts, not production
- **Examples:** Brainstorming ideas, generating first drafts, quick data transformation
### Context Engineering
- **Use when:** Defined product, need consistency, have domain knowledge to share
- **Time investment:** Hours (creating context documents)
- **Expected quality:** Significantly better, consistent across interactions
- **Examples:** Building a product with brand guidelines, any task requiring domain expertise
### Harness Engineering
- **Use when:** Production system, need reliability, team collaboration, ongoing maintenance
- **Time investment:** Days (setting up full environment)
- **Expected quality:** Production-grade, verifiable, maintainable
- **Examples:** Customer-facing products, systems that need to scale, anything with real consequences
---
## Template: GEMINI.md
Copy and adapt for every new project:
```
# Project: [NAME]
## Overview
[What this project does and why]
## Coding Standards
- [Language/framework conventions]
- [File naming conventions]
- [Comment style]
## File Structure
[Explain what each folder/file does]
## Workflow Rules
- Always use Planning Mode for new features
- [Other workflow rules specific to project]
## Verification Criteria
- [What must be true before any deliverable is accepted]
- [Test scenarios that must pass]
## Constraints
- [What the agent must NEVER do]
- [Boundaries and limitations]
```
---
## Template: Context Document Set
For any product with a user-facing component, create these documents:
| Document | Purpose | Key Contents |
|----------|---------|-------------|
| BRAND_VOICE.md | How to communicate | Tone, pronouns, do/don't examples |
| KNOWLEDGE_BASE.md | What to say | FAQ entries, accurate information |
| CONVERSATION_EXAMPLES.md | How interactions look | 5-7 complete sample interactions |
| POLICIES.md | Rules to follow | Business rules, edge cases, exceptions |
| ESCALATION_RULES.md | When to stop | Triggers for human handoff |
---
## Template: Verification System
### Test Scenarios
Create 20+ test cases categorized:
- **Easy (40%):** Happy path, simple questions
- **Medium (40%):** Requires policy knowledge, multi-step reasoning
- **Hard (20%):** Edge cases, angry users, out-of-scope requests
### Verification Checklist
- [ ] All outputs reference knowledge base (no hallucination)
- [ ] Brand voice consistent across all responses
- [ ] Edge cases have clear fallback behavior
- [ ] Escalation triggers fire correctly
- [ ] No information fabrication
### Feedback Loop
1. Agent builds/responds
2. Human tests against scenarios
3. Log failures with specific examples
4. Agent fixes based on failure log
5. Re-test failed scenarios
6. Repeat until checklist passes
---
## Template: Planning Mode Workflow
### When to Enable Planning Mode
- Any new feature or major change
- Refactoring existing code
- Multi-file changes
- Anything that could break existing functionality
### How to Review a Plan
1. Read the plan completely before approving
2. Check: Does it address the actual requirement?
3. Check: Does it respect existing constraints (GEMINI.md)?
4. Check: Is the scope appropriate (not over-engineering)?
5. Leave Google Docs-style comments on specific parts if needed
### When to Skip Planning Mode
- Single-line fixes
- Typo corrections
- Adding comments or documentation
- Simple file creation with clear content
---
## Checklist: AI Product Owner's Pre-Launch
Before shipping any AI-powered feature:
- [ ] GEMINI.md is complete and accurate
- [ ] All context documents are up-to-date
- [ ] Test scenarios cover easy, medium, and hard cases
- [ ] Verification checklist passes 100%
- [ ] Edge cases have defined fallback behavior
- [ ] Escalation rules are clear and tested
- [ ] No hallucination in any test response
- [ ] Brand voice is consistent across all outputs
- [ ] Feedback loop is documented for ongoing maintenance
- [ ] Team knows how to report failures and trigger fixes
What makes this playbook valuable?
Playbook này không chỉ là lý thuyết. Mỗi template đều dựa trên trải nghiệm thực tế bạn vừa trải qua với VietShop chatbot. GEMINI.md template lấy từ file bạn đã tạo ở Layer 3. Context Document Set phản ánh 5 files bạn đã xây ở Layer 2.
Khi bắt đầu project mới, bạn chỉ cần copy template phù hợp và điền nội dung mới. Không cần thiết kế lại từ đầu.
- Customize phần Decision Guide dựa trên kết luận từ final-comparison.md của bạn.
- Thêm lessons learned riêng từ trải nghiệm project VietShop nếu muốn.
- Save file playbook/AI_PRODUCT_OWNER_PLAYBOOK.md.
Playbook quá dài hoặc quá ngắn?
Template trên là cấu trúc tối thiểu. Bạn có thể thêm sections mới nếu thấy cần thiết cho workflow của mình.
Nếu thấy quá dài, hãy đảm bảo giữ ít nhất: Decision Guide, một template GEMINI.md, và Pre-Launch Checklist. Đó là 3 phần core.
Help me refine my playbook structure
Document mental model
Mental model là bức tranh tổng thể giúp bạn nhìn nhận vai trò AI Product Owner. File này ghi lại công thức cốt lõi và progression path mà bạn đã trải qua.
- Tạo file MENTAL_MODEL.md trong folder playbook/ với nội dung sau:
# Mental Model: AI Product Owner
## Core Formula
**Agent = Model + Harness**
The model provides intelligence. The harness provides reliability.
You, as AI Product Owner, design the harness.
---
## The Three Layers
| Layer | Core Question | What It Shapes |
|-------|--------------|----------------|
| Prompt Engineering | "Hỏi gì?" | A single interaction |
| Context Engineering | "Agent cần biết gì?" | Agent's reasoning |
| Harness Engineering | "Toàn bộ environment được thiết kế thế nào?" | Agent's execution |
### Prompt Engineering
- Shapes ONE interaction at a time
- Quick, low-effort, good for exploration
- Limitation: no memory, no consistency, no verification
### Context Engineering
- Shapes HOW the agent reasons
- Provides domain knowledge, brand guidelines, examples
- Limitation: agent still operates without guardrails or feedback loops
### Harness Engineering
- Shapes the ENTIRE execution environment
- Includes: constraints (GEMINI.md), verification (test scenarios), workflow (Planning Mode), feedback (human review loop)
- Result: production-grade, reliable, maintainable output
---
## Role: AI Product Owner
### What you DO:
- Design the harness (constraints, verification, workflow)
- Define "done" (acceptance criteria, test scenarios)
- Verify output (run tests, check quality)
- Iterate the system (improve harness based on failures)
### What you DON'T do:
- Write code (agent does this)
- Debug syntax (agent does this)
- Implement features (agent does this)
### Your value:
You turn an unpredictable AI into a reliable system.
The model's intelligence is free. Your harness design is the multiplier.
---
## Progression Table
| Level | Focus | Characteristic |
|-------|-------|----------------|
| Vibe Coder | "Make it work" | Accepts first output, no iteration |
| Prompt Engineer | "Ask better" | Crafts prompts, improves single interactions |
| Context Engineer | "Inform better" | Designs information environment for agent |
| Harness Engineer | "Control better" | Builds verification, constraints, feedback loops |
| AI Product Owner | "Ship reliably" | Designs complete system, owns quality, leads AI products |
---
## Key Insight
Prompt engineering alone cannot build production systems.
Context engineering alone cannot guarantee reliability.
Harness engineering is what makes AI products shippable.
You are not a coder who uses AI.
You are a product owner who orchestrates AI.
Why this mental model matters
Công thức Agent = Model + Harness được Birgitta Böckeler phát biểu trên Martin Fowler's site vào tháng 4/2026. Đây là cách industry đang frame vai trò của người làm việc với AI agents.
Progression table cho thấy bạn đã đi từ level 1 (bare prompt ở Layer 1) đến level 5 (full harness + playbook) trong một project duy nhất.
- Save file playbook/MENTAL_MODEL.md.
- Mở playbook/ folder trong Antigravity IDE. Bạn sẽ thấy 2 files: AI_PRODUCT_OWNER_PLAYBOOK.md và MENTAL_MODEL.md.
Muốn customize thêm mental model?
File trên là baseline. Bạn hoàn toàn có thể thêm insights riêng từ trải nghiệm project.
Ví dụ: thêm section về những mistakes bạn đã mắc, hoặc những patterns bạn nhận ra chỉ khi thực hành.
Help me add personal lessons to my mental model
✔️ Awesome, I've got everything!
Double check you've saved all 3 new files: comparisons/final-comparison.md, playbook/AI_PRODUCT_OWNER_PLAYBOOK.md, và playbook/MENTAL_MODEL.md.
ⓧ I'd like to double check the full files
Your playbook/ folder should contain these 2 files. Your comparisons/ folder should now have both layer1-vs-layer2.md and final-comparison.md. The key sections to verify:
- final-comparison.md: Evaluation Rubric scores cho cả 3 versions, setup time, ROI analysis, conclusion.
- AI_PRODUCT_OWNER_PLAYBOOK.md: Decision Guide, GEMINI.md template, Context Document Set template, Verification System template, Planning Mode Workflow template, Pre-Launch Checklist.
- MENTAL_MODEL.md: Agent = Model + Harness formula, 3 layer definitions, AI Product Owner role, progression table.
Secret mission
Multi-Agent Orchestration
Bạn đã master single-agent harness. Nhưng production systems phức tạp thường cần nhiều agents chuyên biệt phối hợp với nhau. Trong secret mission này, bạn sẽ mở rộng chatbot VietShop thành multi-agent system với 3 subagents chạy song song trong Antigravity 2.0, mỗi agent có context riêng biệt và vai trò rõ ràng.
Clean Up Your Resources
Clean Up Your Resources
This project runs entirely locally using Antigravity IDE's free tier and Antigravity 2.0, so there are no ongoing cloud costs. Decide whether to keep your project files for future reference, or delete them to free up disk space.
Resources you used:
- ai-product-owner-playbook project folder on your Desktop (all subfolders and files).
- Running agents in Antigravity 2.0 (FAQ Agent, Escalation Agent, Analytics Agent, Main Orchestrator) if you completed the Secret Mission.
Keep everything running
No action needed. Choose this if you plan to keep iterating on your chatbot or expanding your AI Product Owner Playbook.
- Your ai-product-owner-playbook folder stays on your Desktop for easy access.
- If you completed the Secret Mission, your agents in Antigravity 2.0 remain available in the Agent Manager.
- Your playbook templates and mental model documents are ready to copy into any future project.
Pause - I'll come back to this later
Stop any running agents to free up system resources, but keep your files for later.
- If you completed the Secret Mission, close Antigravity 2.0 to stop all running agents. Your agent configurations will remain saved for next time you open the app.
- Your ai-product-owner-playbook folder stays intact on your Desktop.
- No other action needed. All project files are local and cost nothing to store.
Delete - I don't want to use this again
Remove all project files and stop running agents to start completely fresh.
- If you completed the Secret Mission, close Antigravity 2.0 to terminate all running agents.
- Delete the project folder by running this command in your terminal (macOS/Linux):
rm -rf ~/Desktop/ai-product-owner-playbook
On Windows, run this in PowerShell:
Remove-Item -Recurse -Force ~\Desktop\ai-product-owner-playbook
- Confirm the folder is gone by running:
ls ~/Desktop
You should no longer see ai-product-owner-playbook in the output.
That's a Wrap!
That's a Wrap!
Chúc mừng! Bạn đã hoàn thành hành trình từ vibe coder đến AI Product Owner.
Bạn vừa xây dựng một chatbot hỗ trợ khách hàng production-ready cho VietShop qua 3 lần lặp, mỗi lần tốt hơn đáng kể nhờ engineering discipline.
Bạn đã học cách:
- Xây dựng chatbot qua 3 iterations (Prompt Engineering → Context Engineering → Harness Engineering), với documentation so sánh chất lượng output ở mỗi layer.
- Tạo ra bộ AI Product Owner Playbook hoàn chỉnh với templates tái sử dụng (GEMINI.md, context document set, verification system, Planning Mode workflow) có thể áp dụng cho mọi dự án, mọi tool, mọi domain.
- Nắm vững mental model Agent = Model + Harness, biết rõ khi nào dùng prompt vs context vs full harness để deliver sản phẩm AI đáng tin cậy.
- Secret Mission: Thiết kế và vận hành multi-agent system với 3 subagent chuyên biệt (FAQ Agent, Escalation Agent, Analytics Agent) chạy song song trong Antigravity 2.0.
Ready to quiz yourself?