Insights

Career

Roadmap: From Software Engineer to AI Application Engineer

Detailed roadmap for developers who want to move towards AI. From Prompt Engineering, RAG, Agents to Production — what to learn, what to use, what to do.

19/02/2026 · 12 min read · Lê Huy Thái

Main point
  • The roadmap includes 5 stages from LLM Control → RAG → Orchestration → Agents → Production
  • You don't need to finish studying to get started — after Phase 1, you'll be able to build a basic AI application
  • Each stage opens up a new possibility: output control → separate data loading → conversation memory → AI self-action → stable operation
  • Main stack: OpenAI/Anthropic API, Zod, LangGraph, pgvector/Pinecone, LangSmith

Hello everyone — AI is so hot now, leading to a sharp increase in the need to build AI integrated systems, new positions and technologies appear continuously. Every day I hear all kinds of terms like Agent, RAG, Tools, Flow, Context... but don't understand specifically what they are. This article summarizes a practical roadmap for developers who want to switch to AI Application Engineer.

If experts feel lacking or have advice, please let us know; If you find this roadmap useful, please feel free to refer to it.

The overall picture

Before going into the learning path, let's look at architecture. An AI application is more than just User → Prompt → LLM → Response. It's much more complicated:

IngredientRoleTechnology
The brainLanguage processing, reasoningGPT-4, Claude, Llama...
Long-term memoryStore knowledge baseVector Database (RAG)
Short-term memoryManage conversationsContext management
Hands and feetCall API, access DB, surf the webAgents, Function Calling
NervesConnect it allLangChain, LlamaIndex
  1. 01
    Stage 1 — Brain Control (LLM Control & Interface)

    Make sure the Input is standard and the Output can be used in the code (not junk text).

  2. 02
    Stage 2 — External Data Feed (RAG)

    AI answers based on your own data: PDF files, company database.

  3. 03
    Phase 3 — Stream Coordination (Orchestration & Memory)

    Build a complex chat application that remembers conversations.

  4. 04
    Phase 4 — Agents (self-acting AI)

    AI not only "talks", but also "does" — using Tools to perform real actions.

  5. 05
    Phase 5 — Production & LLMOps

    Runs stably, optimizes costs, and knows where it goes wrong to fix it.

Stage 1

Stage 1: Control "Brain" (LLM Control & Interface)

Goal: Ensure standard Input and Usable Output in code.

Prompt Engineering & In-Context Learning

What is this? Not a writing sample. A technique of designing input (prompt) so that the AI ​​understands the context, role and format without having to retrain the model.

Learning for what? To minimize AI incorrect answers ("hallucination") and increase accuracy for logical reasoning tasks.

  • Zero-shot — direct question, no examples
  • Few-shot — include 2–3 sample examples before the question
  • Chain-of-Thought — tells the AI ​​to "think about each step" before responding

Structured Output (JSON Mode & Zod)

What is this? Forces the AI ​​to return data strictly following a predetermined JSON Schema, instead of returning free text.

Quan trọng nhất Giai đoạn 1
Bridge to Web Dev

Your backend code needs JSON.parse() but cannot parse a paragraph. Structured Output is what turns AI output into data that can actually be used in the application.

Libraries to learn: 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 }
Stage 2

Phase 2: Load external data (RAG - Retrieval Augmented Generation)

Goal: AI answers based on your own data (PDF File, Company Database).

Embeddings & Vector Space

What is this? Technique to turn text into a list of numbers (Vector). Sentences with the same meaning will have vectors close to each other in mathematical space.

Learning for what? So that the computer can understand "semantics". Searching for the keyword "Dog" will not yield "Woof", but searching for Vector will see that they are related.

How ​​to get started: Learn the concept of Cosine Similarity, then call OpenAI's embeddings API to see what the live output looks like.

// Ví dụ output của embedding
const vector = await getVector("Quả táo");
// -> [0.012, -0.231, 0.88, ...] (1536 dimensions)

Materials: DeepLearning.AI — Course on Embeddings.


Vector Databases (Memory storage)

What is this? A specialized type of Database to store and query vectors extremely quickly, performing Semantic Search (search by meaning) instead of LIKE '%keyword%' in SQL.

Vector DBTypeFits
pgvectorExtension PostgresAlready using Postgres, want quick integration
PineconeSaaS (Cloud)If you want to be quick, don't manage infra
ChromaDBLocal / Self-hostedPrototype, running locally
Supabase VectorSaaS + pgvectorWeb Dev, the friendliest
Ưu điểm
  • Search by semantics instead of exact keywords
  • Scales well with millions of vectors
  • Many options from managed SaaS to self-hosted
  • Integrates well with Postgres if used
Nhược điểm
  • Add a new infrastructure to manage
  • Cost increases with the amount of vector storage
  • Need to understand embedding model to optimize search quality

Chunking & Ingestion Strategy

What is this? Strategy to cut large data (100 page PDF file) into small pieces (chunks) to load into Vector DB.

Libraries: LangChain.js (document loaders), LlamaIndex.TS (specializes in data processing)

Completed pipeline example: Upload PDF file → Auto-shred → Create embedding → Save to Vector DB → Ready to chat.

Stage 3

Phase 3: Stream Coordination (Orchestration & Memory)

Goal: Build a complex chat application that can remember conversations.

Conversation Memory Management

What is this? Mechanism to save and reload chat history with each new request sent to LLM.

Study for what? LLM is Stateless — there is no state. You have to manage yourself when including "What the user said before", especially when the history is too long and overflows the Context Window.

StrategyHow it worksTrade-off
Sliding WindowKeep only the N newest messagesSimple, but loses old context
SummaryUse AI to summarize old newsKeep the main idea, spend more API calls
HybridCombine bothBest but more complicated

Libraries: LangGraph (Checkpointer to save state), Redis (save chat session).


Chains & Routing

What is this? Connect sequential or branch processing steps based on input content.

Learning for what? Handling complex logic — for example, if User asks about Code → call Cheap Model, good code; If asking about Literature → call a better literary model.

Simple routing example:

  1. User sends Input
  2. Router categorizes questions
  3. If about Code → call Code Model
  4. If about Literature → call Writing Model

Example output: A single API endpoint multitasks: translating, summarizing, and extracting data depending on the input.

Stage 4

Phase 4: Agents (AI that acts on its own)

Goal: AI not only "talks", but also "does" (using Tools).

Tool Calling (Function Calling)

What is this? You describe the function sendEmail(to, body) to AI. The AI ​​will return JSON telling you: "Run the function sendEmail with this parameter...". Your code executes that function and returns the result.

Chuyển hoá vai trò
From consulting to implementation

Tool Calling transforms AI from a consultant that only talks to an executive assistant that can send emails, read databases, call external APIs — all in an automated flow.

Important tip: Write the description for each tool carefully — AI reads this to understand when and how to use the 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"],
    },
  },
}];

Documents: OpenAI Function Calling guide.


ReAct Pattern (Reason + Act)

What is this? A thinking loop: Thinking → Deciding to use Tool → Waiting for results → Observing → Thinking again. Repeat until you get the final answer.

Learning for what? Solving math problems requires multiple steps — for example, "Find the price of a plane ticket, then compare it to my budget." AI must first find tickets, have prices, and then compare.

  1. 01
    Reason

    Analyze the problem, determine the missing information and what to do next.

  2. 02
    Act

    Decide which tool to call (search, read_file, call_api...) and with what parameters.

  3. 03
    Observe (Observe)

    Read the results returned from the tool. This result will be put into context in the next thinking step.

  4. 04
    Conclusion (Answer)

    Reply to the user if you have enough information — or go back to step 1 if more data is needed.

Framework: LangGraph — the most powerful framework for Agents today, gradually replacing the old LangChain Agent.

Example output: A market research agent: Search Google, read the top 5 websites, synthesize information and write a markdown report — all automatically.

Stage 5

Phase 5: Production & LLMOps (Put into practice)

Goal: Run stably, cheaply, and know where it goes wrong.

Evaluation (Evals)

What is this? Unit Test for AI. How do you know if after editing the prompt, the AI ​​will answer less than before?

Learning for what? Ensuring product quality before release — like CI/CD but for language quality.

How ​​to learn:

  • Create a "Golden Dataset" — a set of questions and standard answers that you moderate manually.
  • Use "LLM-as-a-Judge" — use GPT-4 to score the smaller model's answer according to predetermined criteria.

Libraries: LangSmith, PromptFoo (very suitable for Developers).


Tracing & Observability

What is this? Logs all of the AI's "Thinking" — every inference step, every tool call, every parameter used.

Learning for what? When the AI ​​answers incorrectly, you need to see what context it received, what tool it called, and what the parameters were. console.log is completely inadequate.

ToolsTypeHighlights
LangSmithSaaSIntegrates well with LangChain/LangGraph
Arize PhoenixOpen-sourceSelf-hosted, intuitive UI
HeliconeSaaSProxy-based, easy to integrate with any stack

Example output: Dashboard displays: User A encountered an error → click to see that AI searched Google for the wrong keyword → fix prompt and you're done.

Summary

Summary: 5-stage picture

Want to build AI products for businesses?

TensorLab helps engineering teams design and deploy AI systems — from RAG pipelines, AI Agents to LLMOps. If you are in need of a team with real-world experience to accelerate the roadmap, please connect with us.