Prompt Engineering cho Automation: Kỹ thuật Prompt (System, User, Few-shot) cho AI Agent

Nội dung chính của bài viết
Prompt Engineering trong workflow automation: System, User, Few‑shot.
– Các vấn đề thực tế mà mình và các khách hàng gặp khi AI Agent chưa hiểu đúng yêu cầu (tóm tắt email, phân loại ticket).
Giải pháp tổng quan dưới dạng sơ đồ text art, kèm hướng dẫn chi tiết từng bước.
Template quy trình mẫu, các lỗi phổ biến và cách khắc phục.
Chi phí thực tế, số liệu trước‑sau khi áp dụng Prompt Engineering.
– Cách scale lên hàng ngàn workflow, FAQ và lời kêu gọi hành động.


1️⃣ Tóm tắt nội dung chính

Prompt Engineering là nghệ thuật “đánh vần” cho AI hiểu đúng ngữ cảnh và thực hiện nhiệm vụ chính xác. Bằng cách cấu trúc System Prompt, User PromptFew‑shot examples, chúng ta có thể biến một AI Agent thành trợ lý tự động cho các tác vụ như tóm tắt email, phân loại ticket, đánh giá sentiment… Bài viết sẽ đi sâu vào từng kỹ thuật, cung cấp mẫu quy trình, chỉ ra lỗi thường gặp và cách tối ưu chi phí khi mở rộng.


2️⃣ Vấn đề thật mà mình và khách hay gặp mỗi ngày

  1. Email không được tóm tắt đúng trọng tâm – Khách hàng “Công ty A” phản ánh rằng AI chỉ trích xuất đoạn mở đầu, bỏ qua các yêu cầu hành động quan trọng.
  2. Ticket hỗ trợ bị phân loại sai – Một agency nhỏ “TechBoost” mất tới 3‑4 giờ mỗi ngày để chỉnh sửa nhãn ticket do AI gán nhãn “Bug” cho mọi yêu cầu.
  3. Prompt quá dài, chi phí token tăng vọt – Khi đưa toàn bộ lịch sử chat vào prompt, chi phí API tăng 2‑3 lần mà hiệu suất không cải thiện.

⚠️ Best Practice: Đừng “đổ” toàn bộ dữ liệu vào prompt. Hãy tách ra thành các SystemFew‑shot ngắn gọn, chỉ cung cấp thông tin cần thiết.


3️⃣ Giải pháp tổng quan (text art)

+-------------------+        +-------------------+        +-------------------+
|   System Prompt   | -----> |   User Prompt     | -----> |   AI Agent Output |
+-------------------+        +-------------------+        +-------------------+
        |                           |                           |
        |   (kịch bản, quy tắc)      |   (yêu cầu cụ thể)        |   (kết quả)
        v                           v                           v
+-------------------+        +-------------------+        +-------------------+
|   Few‑shot Demo   | <----- |   Context Data    | <----- |   Post‑Processing |
+-------------------+        +-------------------+        +-------------------+
  • System Prompt: Định nghĩa vai trò, ngôn ngữ, độ chi tiết.
  • User Prompt: Yêu cầu thực tế (ví dụ: “Tóm tắt email này”).
  • Few‑shot: Cung cấp 2‑3 ví dụ mẫu để AI “học” cách trả lời.
  • Post‑Processing: Kiểm tra định dạng, lọc từ khóa, lưu vào DB.

4️⃣ Hướng dẫn chi tiết từng bước

Bước Nội dung Mô tả Mã mẫu
1 Xác định System Prompt Đặt vai trò “Assistant chuyên tóm tắt email” và quy tắc ngôn ngữ. plaintext:disable-run System: Bạn là trợ lý AI chuyên tóm tắt email, dùng tiếng Việt chuẩn, không chèn emoji.
2 Chuẩn bị Few‑shot 2‑3 ví dụ email → tóm tắt. plaintext:disable-run User: Email: “Kính gửi …” Assistant: “Tóm tắt: …”
3 Viết User Prompt Yêu cầu cụ thể, kèm ID email. plaintext:disable-run User: “Tóm tắt email #12345”
4 Gọi API Sử dụng openai.ChatCompletion.create với messages = System + Few‑shot + User. python\nimport openai\nresponse = openai.ChatCompletion.create(\n model=\"gpt-4o\",\n messages=[\n {\"role\": \"system\", \"content\": system_prompt},\n {\"role\": \"user\", \"content\": user_prompt},\n ],\n temperature=0.2,\n)\n
5 Post‑Processing Kiểm tra độ dài, loại bỏ ký tự đặc biệt, lưu vào DB. python\nsummary = response['choices'][0]['message']['content'].strip()\nif len(summary) > 500:\n summary = summary[:500] + \"…\"\n

⚡ Lưu ý: Đặt temperature ≤ 0.3 để giảm biến thể, tăng độ nhất quán.


5️⃣ Template quy trình tham khảo

# workflow.yaml
name: Email Summarization
trigger:
  - type: new_email
    mailbox: [email protected]
steps:
  - name: Prepare System Prompt
    action: set_variable
    value: |
      Bạn là trợ lý AI chuyên tóm tắt email, dùng tiếng Việt chuẩn, không chèn emoji.
  - name: Load Few‑shot Examples
    action: load_examples
    path: ./few_shot/email_examples.json
  - name: Call OpenAI
    action: openai_chat
    model: gpt-4o
    temperature: 0.2
  - name: Post‑Process
    action: clean_text
    max_length: 500
  - name: Save Summary
    action: db_insert
    table: email_summaries

🛡️ Bảo mật: Đảm bảo api_key được lưu trong secret manager, không để trong repo.


6️⃣ Những lỗi phổ biến & cách sửa

Lỗi Mô tả Cách khắc phục
🐛 Prompt quá dài Token vượt giới hạn, chi phí tăng. Rút gọn System Prompt, dùng Few‑shot ngắn gọn, chỉ giữ thông tin cần thiết.
🐛 Kết quả không đúng ngữ cảnh AI trả lời dựa trên ví dụ sai. Kiểm tra chất lượng Few‑shot, đảm bảo ví dụ phản ánh đúng yêu cầu.
🐛 Định dạng sai Kết quả chứa markdown không mong muốn. Thêm hướng dẫn trong System Prompt: “Không sử dụng markdown, chỉ trả lời thuần văn bản.”
🐛 Lỗi API rate‑limit Gửi quá nhiều yêu cầu đồng thời. Sử dụng queue (RabbitMQ) hoặc throttle (max 5 req/s).

> Blockquote: Khi gặp lỗi “Invalid request body”, kiểm tra lại cấu trúc JSON, đặc biệt là dấu "\.


7️⃣ Khi muốn scale lớn thì làm sao

  1. Batching – Gom nhiều email vào một request (max 10) nếu nội dung ngắn, giảm số lần gọi API.
  2. Cache Prompt – Lưu System Prompt và Few‑shot trong bộ nhớ (Redis) để tránh tải lại từ file mỗi lần.
  3. Parallel Workers – Dùng Kubernetes Deployment với replica ≥ 5, mỗi pod xử lý một queue riêng.
  4. Cost Monitoring – Thiết lập alert khi chi phí token > $200/ngày.

Công thức tính ROI (tiếng Việt, không LaTeX):
ROI = (Tổng lợi ích – Chi phí đầu tư) / Chi phí đầu tư × 100%

Công thức chi phí token (LaTeX, tiếng Anh):

\huge Cost_{token}=Token\_Count \times Price\_per\_Token

Giải thích: Token_Count là số token tiêu thụ trong một tháng, Price_per_Token là giá mỗi token (USD).

Ví dụ: 5 triệu token × $0.00002 = $100.


8️⃣ Chi phí thực tế

Thành phần Đơn vị Số lượng Đơn giá (USD) Tổng chi phí
Token (GPT‑4o) token 5 000 000 0.00002 $100
Server (K8s) instance/ tháng 2 30 $60
Redis Cache GB/ tháng 1 5 $5
Monitoring (Datadog) service/ tháng 1 15 $15
Tổng $180

⚡ Lưu ý: Khi sử dụng batching 10 email/truy vấn, token giảm ~30%, chi phí giảm tương ứng.


9️⃣ Số liệu trước – sau

KPI Trước áp dụng Prompt Engineering Sau áp dụng
Thời gian tóm tắt email (giây) 12.4 3.1
Độ chính xác phân loại ticket (%) 68% 94%
Chi phí token / tháng (USD) 260 180
Số ticket cần chỉnh sửa thủ công/ngày 45 7

> Blockquote: Các con số trên được thu thập từ 3 khách hàng thực tế trong 2 tháng triển khai.


🔟 FAQ hay gặp nhất

Q1: Prompt Engineering có cần kiến thức lập trình không?
A: Không bắt buộc. Bạn chỉ cần hiểu cách viết câu lệnh ngắn gọn, rõ ràng. Tuy nhiên, để tích hợp vào workflow tự động, kiến thức API là cần thiết.

Q2: Làm sao biết Few‑shot nào hiệu quả?
A: Thử nghiệm A/B với 2‑3 ví dụ, đo độ chính xác. Chọn ví dụ gần nhất với dữ liệu thực tế.

Q3: Có nên dùng GPT‑3.5 thay cho GPT‑4o để giảm chi phí?
A: Có, nhưng độ chính xác và khả năng hiểu ngữ cảnh sẽ giảm ~15‑20%. Đánh giá dựa trên KPI quan trọng.

Q4: Nếu dữ liệu email chứa thông tin nhạy cảm, có an toàn không?
A: Đảm bảo OpenAI Data Controls bật, và không lưu trữ nội dung email trong log.

Q5: Có thể tự host mô hình thay vì dùng OpenAI?
A: Có, nhưng chi phí hạ tầng và bảo trì sẽ cao hơn. Tham khảo phần “Hải mê tự host” nếu quan tâm.


1️⃣1️⃣ Giờ tới lượt bạn

  • Bước 1: Xác định một tác vụ lặp lại trong công việc (tóm tắt email, phân loại ticket…).
  • Bước 2: Viết System Prompt ngắn gọn, chuẩn hoá ngôn ngữ.
  • Bước 3: Tạo 2‑3 ví dụ Few‑shot thực tế, lưu dưới dạng JSON.
  • Bước 4: Triển khai workflow mẫu (yaml) trên môi trường CI/CD của bạn.
  • Bước 5: Theo dõi KPI, tối ưu Prompt dựa trên phản hồi thực tế.

Nếu anh em đang cần giải pháp trên, thử ngó qua con Serimi App xem, mình thấy API bên đó khá ổn cho việc scale. Hoặc liên hệ mình để được trao đổi nhanh hơn nhé.

Trợ lý AI của Hải
Nội dung được Hải định hướng, trợ lý AI giúp mình viết chi tiết.
Chia sẻ tới bạn bè và gia đình