Sự nghiệp
Roadmap: Từ Software Engineer đến AI Application Engineer
Lộ trình chi tiết cho dev muốn chuyển hướng AI. Từ Prompt Engineering, RAG, Agents đến Production — học gì, dùng gì, làm gì.
19/02/2026 · 12 phút đọc · Lê Huy Thái
Xin chào anh em — AI giờ hot quá, kéo theo nhu cầu xây dựng hệ thống tích hợp AI tăng mạnh, các vị trí và công nghệ mới xuất hiện liên tục. Hằng ngày nghe đủ thứ thuật ngữ như Agent, RAG, Tools, Flow, Context... mà chưa hiểu cụ thể chúng là gì. Bài viết này tổng hợp một lộ trình thực tế cho dev muốn chuyển hướng sang AI Application Engineer.
Nếu các chuyên gia thấy thiếu hay có lời khuyên thì cho chúng mình xin; còn nếu bạn thấy roadmap này hữu ích, hãy thoải mái tham khảo nhé.
Hãy tưởng tượng: Hiện tại bạn đang dùng LLM như một Chatbot đơn lẻ. Để trở thành AI Dev, bạn cần biến nó thành một Hệ điều hành biết suy nghĩ và hành động.
Bức tranh tổng thể
Trước khi đi vào lộ trình học, hãy nhìn vào kiến trúc. Một ứng dụng AI không chỉ là User → Prompt → LLM → Response. Nó phức tạp hơn nhiều:
| Thành phần | Vai trò | Công nghệ |
|---|---|---|
| Bộ não | Xử lý ngôn ngữ, suy luận | GPT-4, Claude, Llama... |
| Bộ nhớ dài hạn | Lưu trữ knowledge base | Vector Database (RAG) |
| Bộ nhớ ngắn hạn | Quản lý hội thoại | Context management |
| Tay chân | Gọi API, truy xuất DB, lướt web | Agents, Function Calling |
| Dây thần kinh | Kết nối tất cả | LangChain, LlamaIndex |
- 01Giai đoạn 1 — Kiểm soát Bộ não (LLM Control & Interface)
Đảm bảo Input chuẩn và Output dùng được trong code (không phải text rác).
- 02Giai đoạn 2 — Nạp dữ liệu ngoài (RAG)
AI trả lời dựa trên dữ liệu riêng của bạn: file PDF, database công ty.
- 03Giai đoạn 3 — Điều phối luồng (Orchestration & Memory)
Xây dựng ứng dụng chat phức tạp, nhớ được hội thoại.
- 04Giai đoạn 4 — Agents (AI tự hành động)
AI không chỉ "nói", mà còn "làm" — dùng Tool để thực thi hành động thật.
- 05Giai đoạn 5 — Production & LLMOps
Chạy ổn định, chi phí tối ưu, và biết nó sai ở đâu để sửa.
Giai đoạn 1: Kiểm soát "Bộ não" (LLM Control & Interface)
Mục tiêu: Đảm bảo Input chuẩn và Output dùng được trong code.
Prompt Engineering & In-Context Learning
Cái này là gì? Không phải là viết văn mẫu. Là kỹ thuật thiết kế input (prompt) sao cho AI hiểu ngữ cảnh, vai trò và format mà không cần train lại model.
Học để làm gì? Để giảm thiểu việc AI trả lời sai ("hallucination") và tăng độ chính xác cho các tác vụ suy luận logic.
- Zero-shot — hỏi thẳng, không ví dụ
- Few-shot — đưa kèm 2–3 ví dụ mẫu trước câu hỏi
- Chain-of-Thought — bảo AI "hãy suy nghĩ từng bước" trước khi trả lời
Một prompt phân loại email khách hàng chính xác: "Đây là email khiếu nại, độ khẩn cấp: Cao, hướng xử lý: Chuyển cho team Tech".
Structured Output (JSON Mode & Zod)
Cái này là gì? Ép AI trả về dữ liệu tuân thủ nghiêm ngặt theo một Schema JSON định sẵn, thay vì trả về text tự do.
Thư viện cần học: Zod (validate schema), Vercel AI SDK (generateObject), OpenAI Function Calling.
// Dùng Zod + Vercel AI SDK để extract thông tin có cấu trúc
import { generateObject } from "ai";
import { z } from "zod";
const schema = z.object({
name: z.string(),
skills: z.array(z.string()),
exp: z.number(),
});
const result = await generateObject({
model: openai("gpt-4o"),
schema,
prompt: "Extract info: Nam, 5 năm kinh nghiệm React và Node",
});
// -> { name: "Nam", skills: ["React", "Node"], exp: 5 }
Giai đoạn 2: Nạp dữ liệu ngoài (RAG - Retrieval Augmented Generation)
Mục tiêu: AI trả lời dựa trên dữ liệu riêng của bạn (File PDF, Database công ty).
Embeddings & Vector Space
Cái này là gì? Kỹ thuật biến văn bản thành danh sách các con số (Vector). Các câu có ý nghĩa giống nhau sẽ có vector gần nhau trong không gian toán học.
Học để làm gì? Để máy tính hiểu được "ngữ nghĩa". Tìm kiếm từ khóa "Con chó" sẽ không ra "Gâu gâu", nhưng tìm kiếm Vector sẽ thấy chúng liên quan nhau.
Cách bắt đầu: Tìm hiểu khái niệm Cosine Similarity, sau đó gọi API embeddings của OpenAI để xem output trực tiếp trông như thế nào.
// Ví dụ output của embedding
const vector = await getVector("Quả táo");
// -> [0.012, -0.231, 0.88, ...] (1536 dimensions)
Tài liệu: DeepLearning.AI — Course về Embeddings.
Vector Databases (Lưu trữ trí nhớ)
Cái này là gì? Loại Database chuyên dụng để lưu và query các vector cực nhanh, thực hiện Semantic Search (tìm kiếm theo ý nghĩa) thay cho LIKE '%keyword%' trong SQL.
| Vector DB | Loại | Phù hợp với |
|---|---|---|
| pgvector | Extension Postgres | Đã dùng Postgres, muốn tích hợp nhanh |
| Pinecone | SaaS (Cloud) | Muốn nhanh gọn, không quản lý infra |
| ChromaDB | Local / Self-hosted | Prototype, chạy local |
| Supabase Vector | SaaS + pgvector | Web Dev, thân thiện nhất |
Query: "Tìm các đoạn văn nói về chính sách nghỉ ốm". DB trả về 3 đoạn văn bản liên quan nhất từ file PDF Nhân sự — dù văn bản không chứa đúng từ khóa đó.
Chunking & Ingestion Strategy
Cái này là gì? Chiến thuật cắt nhỏ dữ liệu lớn (file PDF 100 trang) thành các miếng nhỏ (chunks) để nạp vào Vector DB.
Chunk size phổ biến: 500–1000 tokens. Overlap: 10–20%. Kỹ thuật cắt phổ biến nhất: RecursiveCharacterTextSplitter. Nếu cắt quá dài: tốn bộ nhớ, nhiễu thông tin. Nếu cắt quá ngắn: mất ngữ cảnh.
Thư viện: LangChain.js (document loaders), LlamaIndex.TS (chuyên về xử lý data)
Ví dụ pipeline hoàn chỉnh: Upload file PDF → Tự cắt nhỏ → Tạo embedding → Lưu vào Vector DB → Sẵn sàng để chat.
Giai đoạn 3: Điều phối luồng (Orchestration & Memory)
Mục tiêu: Xây dựng ứng dụng chat phức tạp, nhớ được hội thoại.
Conversation Memory Management
Cái này là gì? Cơ chế lưu và nạp lại lịch sử chat vào mỗi request mới gửi lên LLM.
Học để làm gì? LLM là Stateless — không có trạng thái. Bạn phải tự quản lý việc gửi kèm "User đã nói gì trước đó", đặc biệt khi lịch sử quá dài và tràn Context Window.
| Chiến lược | Cách hoạt động | Trade-off |
|---|---|---|
| Sliding Window | Chỉ giữ N tin nhắn mới nhất | Đơn giản, nhưng mất context cũ |
| Summarization | Dùng AI tóm tắt tin cũ | Giữ được ý chính, tốn thêm API call |
| Hybrid | Kết hợp cả hai | Tốt nhất nhưng phức tạp hơn |
Thư viện: LangGraph (Checkpointer để lưu state), Redis (lưu session chat).
Chatbot hỏi: "Bạn tên gì?", User: "Tên tôi là Huy". 10 câu sau User hỏi: "Tên tôi là gì?", Chatbot: "Bạn tên là Huy".
Chains & Routing
Cái này là gì? Kết nối các bước xử lý tuần tự hoặc rẽ nhánh dựa trên nội dung input.
Học để làm gì? Xử lý logic phức tạp — ví dụ: nếu User hỏi về Code → gọi Model rẻ, code giỏi; nếu hỏi về Văn học → gọi model văn hay hơn.
Ví dụ routing đơn giản:
- User gửi Input
- Router phân loại câu hỏi
- Nếu về Code → gọi Code Model
- Nếu về Văn học → gọi Writing Model
LangChain Expression Language (LCEL) hỗ trợ routing khai báo, nhưng native code thường dễ debug hơn khi logic phức tạp. Không nhất thiết phải dùng framework nếu logic đủ đơn giản.
Ví dụ đầu ra: Một API endpoint duy nhất xử lý đa nhiệm: vừa dịch thuật, vừa tóm tắt, vừa trích xuất dữ liệu tùy theo input.
Giai đoạn 4: Agents (AI tự hành động)
Mục tiêu: AI không chỉ "nói", mà còn "làm" (dùng Tool).
Tool Calling (Function Calling)
Cái này là gì? Bạn mô tả hàm sendEmail(to, body) cho AI. AI sẽ trả về JSON bảo bạn: "Hãy chạy hàm sendEmail với tham số này...". Code của bạn thực thi hàm đó và trả kết quả về.
Mẹo quan trọng: Viết description cho từng tool thật kỹ — AI đọc cái này để hiểu khi nào và cách dùng tool.
// Khai báo Tool cho AI
const tools = [{
type: "function",
function: {
name: "sendEmail",
description: "Gửi email cho một người dùng",
parameters: {
type: "object",
properties: {
to: { type: "string", description: "Địa chỉ email người nhận" },
body: { type: "string", description: "Nội dung email cần gửi" },
},
required: ["to", "body"],
},
},
}];
Tài liệu: OpenAI Function Calling guide.
User: "Gửi mail xin nghỉ cho sếp". AI tự gọi hàm gửi mail với nội dung xin nghỉ phép được soạn sẵn theo văn phong trang trọng.
ReAct Pattern (Reason + Act)
Cái này là gì? Một vòng lặp tư duy: Suy nghĩ → Quyết định dùng Tool → Chờ kết quả → Quan sát → Suy nghĩ tiếp. Lặp lại cho đến khi có câu trả lời cuối cùng.
Học để làm gì? Giải quyết các bài toán cần nhiều bước — ví dụ: "Tìm giá vé máy bay, sau đó so sánh với ngân sách của tôi". AI phải tìm vé trước, có giá rồi mới so sánh được.
- 01Suy nghĩ (Reason)
Phân tích vấn đề, xác định thông tin còn thiếu và cần làm gì tiếp theo.
- 02Hành động (Act)
Quyết định gọi tool nào (search, read_file, call_api...) và với tham số gì.
- 03Quan sát (Observe)
Đọc kết quả trả về từ tool. Kết quả này sẽ được đưa vào context của bước suy nghĩ tiếp theo.
- 04Kết luận (Answer)
Trả lời user nếu đã đủ thông tin — hoặc quay lại bước 1 nếu cần thêm dữ liệu.
Framework: LangGraph — framework mạnh nhất hiện nay cho Agent, đang dần thay thế LangChain Agent cũ.
Ví dụ đầu ra: Một Agent nghiên cứu thị trường: Tự search Google, đọc 5 trang web đầu, tổng hợp thông tin và viết báo cáo markdown — tất cả tự động.
Giai đoạn 5: Production & LLMOps (Đưa vào thực tế)
Mục tiêu: Chạy ổn định, rẻ, và biết nó sai ở đâu.
Evaluation (Evals)
Cái này là gì? Unit Test cho AI. Làm sao biết sau khi sửa prompt, AI có trả lời kém đi không so với trước?
Học để làm gì? Đảm bảo chất lượng sản phẩm trước khi release — giống CI/CD nhưng dành cho chất lượng ngôn ngữ.
Cách học:
- Tạo bộ "Golden Dataset" — tập câu hỏi cùng câu trả lời chuẩn do bạn kiểm duyệt thủ công.
- Dùng "LLM-as-a-Judge" — dùng GPT-4 chấm điểm câu trả lời của model nhỏ hơn theo tiêu chí định sẵn.
Thư viện: LangSmith, PromptFoo (rất phù hợp cho Developer).
Một báo cáo trong CI/CD pipeline: "PR này làm giảm độ chính xác của chatbot đi 5% — block merge".
Tracing & Observability
Cái này là gì? Log lại toàn bộ "Suy nghĩ" của AI — từng bước suy luận, từng tool call, từng tham số đã dùng.
Học để làm gì? Khi AI trả lời sai, bạn cần nhìn thấy nó đã nhận context gì, đã gọi tool gì, tham số ra sao. console.log là hoàn toàn không đủ.
| Tool | Loại | Điểm nổi bật |
|---|---|---|
| LangSmith | SaaS | Tích hợp tốt với LangChain/LangGraph |
| Arize Phoenix | Open-source | Self-hosted, UI trực quan |
| Helicone | SaaS | Proxy-based, dễ tích hợp mọi stack |
Ví dụ đầu ra: Dashboard hiển thị: User A gặp lỗi → click vào xem thấy AI đã search Google sai từ khóa → fix prompt là xong.
Tổng kết: Bức tranh 5 giai đoạn
Bạn không cần học hết tất cả mới bắt đầu. Chỉ cần xong Giai đoạn 1 là đã có thể build được ứng dụng AI cơ bản. Mỗi giai đoạn tiếp theo sẽ giúp bạn xử lý các bài toán phức tạp hơn — hãy học đến đâu, build đến đó.