Skip to Content
✨ AI Engineering🧠 Context EngineeringContext Engineering

Context Engineering

Khái niệm cơ bản

Tưởng tượng bạn là trợ lý của một CEO bận rộn…

Sếp hỏi: “Cuộc họp với Jim ngày mai thế nào rồi?”

Trợ lý kém (chỉ biết nghe lệnh):

“Jim nào ạ? Họp lúc mấy giờ ạ?”

Trợ lý giỏi (biết chuẩn bị context):

“Sáng mai anh kín lịch rồi ạ. Em gợi ý họp với Jim lúc 2h chiều tại Starbucks - chỗ Jim hay ngồi. Email trước cho thấy Jim quan tâm đến vấn đề pricing, em đã chuẩn bị slide rồi.”

Sự khác biệt? Context Engineering - Nghệ thuật chuẩn bị thông tin CHO AI trước khi nó trả lời.

Context Engineering Lifecycle


Prompt Engineering vs Context Engineering

Prompt EngineeringContext Engineering
Viết câu hỏi hayThiết kế hệ thống dữ liệu
”Hãy trả lời lịch sự”Inject lịch sử chat, profile user
Tập trung vào instructionTập trung vào data pipeline
Kỹ năng cá nhânKiến trúc hệ thống

💡 Prompt Engineering là viết 1 email hay. Context Engineering là xây dựng cả hệ thống CRM.


Vòng đời Context (Lifecycle)

1. Construction (Thu thập)

Gom tất cả dữ liệu có thể liên quan:

  • System Prompt: Personality, rules, constraints
  • Conversation History: Các tin nhắn trước đó
  • RAG Results: Documents từ vector search
  • Tool Outputs: Kết quả từ API calls, database
  • User Metadata: Timezone, language, preferences

2. Optimization (Tối ưu)

Lọc và nén để vừa Context Window:

  • Selection: Chỉ lấy thông tin liên quan
  • Compression: Tóm tắt nội dung dài
  • Prioritization: Đặt thông tin quan trọng ở đầu/cuối

3. Formatting (Định dạng)

Cấu trúc dữ liệu để LLM dễ parse:

  • XML tags cho separation rõ ràng
  • JSON cho structured data
  • Markdown cho readability

Ví dụ thực tế: Customer Support Bot

<system> Bạn là AI hỗ trợ khách hàng của Shopee. Trả lời bằng tiếng Việt, thân thiện, ngắn gọn. </system> <user_profile> Tên: Nguyễn Văn A Hạng thành viên: Gold Đơn hàng gần nhất: #12345 (Đang vận chuyển) </user_profile> <recent_orders> - #12345: iPhone 15 Pro - Đang giao (Dự kiến: 3/1/2025) - #12340: Tai nghe Sony - Đã nhận </recent_orders> <conversation_history> User: Đơn hàng của tôi đâu rồi? </conversation_history>

AI có thể trả lời ngay: “Chào anh A! Đơn hàng #12345 (iPhone 15 Pro) đang trên đường giao, dự kiến đến ngày 3/1 ạ. Anh cần em hỗ trợ thêm gì không?”


Bài tập thực hành 🧪

Mục tiêu

Xây dựng prompt template cho chatbot FAQ của một công ty tech.

Yêu cầu

  1. System prompt định nghĩa persona
  2. Inject context từ knowledge base (giả lập)
  3. Format bằng XML tags

Template mẫu

def build_context(user_query: str, user_info: dict, kb_results: list) -> str: return f""" <system> Bạn là AI hỗ trợ của TechCorp. Chỉ trả lời dựa trên knowledge base. Nếu không biết, nói "Em không có thông tin này, vui lòng liên hệ hotline." </system> <user_info> Name: {user_info.get('name', 'Guest')} Plan: {user_info.get('plan', 'Free')} </user_info> <knowledge_base> {chr(10).join(kb_results)} </knowledge_base> <user_query> {user_query} </user_query> """

Thử thách

Mở rộng template để thêm:

  • Conversation history (5 tin nhắn gần nhất)
  • Sentiment analysis của user

Các bài viết chi tiết

Last updated on