Context Engineering: Kỹ Năng Mới Giúp AI Coding Agent Hiểu Project Của Bạn

Karify98 & Amy 🌸·
Cover Image for Context Engineering: Kỹ Năng Mới Giúp AI Coding Agent Hiểu Project Của Bạn

Từ Prompt Engineering Đến Context Engineering

Hai năm trước, mọi người đều nói về prompt engineering. Cách bạn đặt câu hỏi cho AI quyết định chất lượng output. Điều đó vẫn đúng — nhưng trong năm 2026, khi AI coding agent chạy tự động trên toàn bộ codebase, prompt đơn lẻ không còn đủ.

Điều thực sự quan trọng bây giờ là context engineering: cách bạn cấu trúc, tổ chức, và cung cấp thông tin cho AI agent trước khi nó bắt đầu làm việc.

Sự khác biệt cơ bản:

  • Prompt engineering = bạn viết một câu lệnh tốt → AI trả lời tốt
  • Context engineering = bạn xây dựng một "môi trường thông tin" tốt → AI tự đưa ra quyết định tốt

Khi AI agent đọc toàn bộ codebase, chạy test, tạo PR tự động — nó cần hiểu project của bạn. Không phải từ một prompt, mà từ cả một hệ thống tài liệu, quy tắc, và cấu trúc bạn đã chuẩn bị.

Tại Sao Context Engineering Trở Nên Quan Trọng?

AI Agent Đã Thay Đổi Cách Chúng Ta Làm Việc

Theo Dev.to, năm 2026 đánh dấu sự chuyển đổi từ "AI assistant" sang "AI teammate". Các công cụ như Claude Code, GitHub Copilot agent mode, và Cursor không chỉ gợi ý code — chúng đọc codebase, hiểu architecture, và tự đưa ra quyết định.

Nhưng AI agent chỉ giỏi bằng thông tin bạn cung cấp. Nếu context nghèo nàn, agent sẽ:

  • Suggest code không phù hợp với convention của project
  • Tạo ra architecture mâu thuẫn với pattern hiện có
  • Viết test không cover đúng edge case quan trọng
  • Refactor code theo hướng ngược với ý đồ ban đầu

Một Ví Dụ Thực Tế

Giả dụ bạn có một project Node.js/TypeScript. AI agent không biết:

  • Project dùng vi hay jest cho testing?
  • Code style: interface hay type cho TypeScript?
  • Error handling: throw exception hay return Result type?
  • Database: dùng ORM hay raw query?
  • Naming convention: camelCase hay snake_case cho DB columns?

Không có context, agent sẽ đoán. Đoán đúng thì tốt. Đoán sai thì bạn mất thời gian review và sửa.

Các Layer Của Context Engineering

Layer 1: Project Rules (Quy Tắc Toàn Dự Án)

Đây là layer quan trọng nhất. Hầu hết AI coding tools hiện nay đều hỗ trợ file cấu hình quy tắc:

Claude Code / Cursor — .cursor/rules hoặc CLAUDE.md:

# Project Rules

## Tech Stack
- Runtime: Node.js 22 + TypeScript 5.5
- Framework: Fastify
- Database: PostgreSQL + Drizzle ORM
- Testing: Vitest
- Package manager: pnpm

## Code Style
- Dùng `interface` cho object shapes, `type` cho unions/intersections
- Error handling: throw custom Error classes, không return null
- Naming: camelCase cho code, snake_case cho DB columns
- Luôn export type definitions kèm function

## Architecture
- Project structure: src/modules/<feature>/
- Mỗi module có: controller, service, repository, types
- Dependency injection qua constructor, không dùng singleton

GitHub Copilot — .github/copilot-instructions.md:

Tương tự, nhưng format khác một chút. Nội dung vẫn là: tech stack, code style, architecture decisions.

Gemini.gemini/rules:

Google cũng hỗ trợ file rules riêng cho Gemini Code Assist.

Layer 2: File-Level Context

Mỗi file source code nên có đủ context để AI hiểu nó đang làm gì. Không phải viết comment dài — mà là cấu trúc code rõ ràng:

// ❌ Không rõ ràng
export async function handle(data: any) {
  // AI không biết data là gì, handle làm gì
}

// ✅ Rõ ràng context
export async function handlePaymentWebhook(
  event: StripeWebhookEvent
): Promise<WebhookResult> {
  // AI biết: đây là webhook handler cho Stripe
  // Input: StripeWebhookEvent (đã define ở types)
  // Output: WebhookResult
}

TypeScript type annotations là context miễn phí. AI agent đọc type để hiểu data flow.

Layer 3: Documentation-as-Context

README.md, ARCHITECTURE.md, và các tài liệu khác không chỉ cho người đọc — chúng là context cho AI.

Một ARCHITECTURE.md tốt bao gồm:

# Architecture Overview

## System Components
- API Gateway (Fastify) → Service Layer → Repository Layer → PostgreSQL
- Background Jobs (BullMQ) → Worker processes
- Real-time: WebSocket via Socket.io

## Key Decisions
- Chọn Drizzle ORM vì type-safe và lightweight
- Dùng BullMQ thay vì cron vì cần retry logic và job persistence
- Monorepo với pnpm workspace

## Data Flow
Client → API → Service → Repository → DB
                ↓
         Event Bus → Workers → External APIs

Layer 4: AGENTS.md — File Đặc Trị Cho AI Agent

Năm 2026, một số project bắt đầu dùng AGENTS.md — file dành riêng cho AI agent, không phải cho người đọc. Nội dung bao gồm:

# AGENTS.md — Instructions for AI Agents

## Before Making Changes
1. Đọc ARCHITECTURE.md để hiểu system design
2. Kiểm test hiện có: `pnpm test`
3. Chạy lint: `pnpm lint`

## Code Generation Rules
- Không tạo file mới nếu có thể edit file hiện có
- Luôn viết test cho function mới
- Không thay đổi public API mà không có discussion

## Common Patterns
- Repository pattern: xem src/modules/user/repository.ts
- Error handling: xem src/common/errors.ts
- Validation: xem src/common/validators.ts

## Things to Avoid
- Không dùng `any` type
- Không hardcode config values
- Không bypass error handling

Context Engineering Trong Thực Hành

Bước 1: Audit Context Hiện Tại

Trước tiên, hãy kiểm tra project của bạn đang cung cấp bao nhiêu context cho AI:

  • Có file rules cho AI tool bạn đang dùng không?
  • README có mô tả tech stack và setup instructions không?
  • Code có type annotations đầy đủ không?
  • Có ARCHITECTURE.md hoặc tương tự không?
  • Test files có mô tả behavior rõ ràng không?

Bước 2: Viết Rules File

Bắt đầu từ điều đơn giản nhất: tạo file rules cho AI tool của bạn. Chỉ cần 10-15 dòng mô tả tech stack, code style, và conventions là đủ để cải thiện đáng kể chất lượng AI output.

Bước 3: Cải Thiện Type Safety

TypeScript type annotations là context tốt nhất bạn có thể cung cấp. AI agent hiểu type tốt hơn hiểu comment. Hãy đảm bảo:

  • Function signatures có type rõ ràng
  • Export types cho public API
  • Dùng Zod hoặc tương tự cho runtime validation

Bước 4: Viết Test Như Documentation

Test files là context gold mine. Một test file tốt không chỉ kiểm tra code — nó mô tả behavior:

describe('handlePaymentWebhook', () => {
  it('should reject webhook with invalid signature', async () => {
    // AI đọc test này để hiểu: webhook phải verify signature
  });

  it('should process refund event and update order status', async () => {
    // AI hiểu: refund flow cần update order
  });
});

Bước 5: Maintain Context

Context không phải viết một lần. Khi project thay đổi, context cũng phải cập nhật. Quy tắc đơn giản: mỗi khi bạn review code của AI và sửa lại, hãy tự hỏi "liệu context nào sẽ giúp AI làm đúng ngay từ đầu?"

Những Lỗi Thường Gặp

1. Quá Nhiều Context

Nhồi nhét mọi thứ vào rules file sẽ làm AI bị overload. Chỉ giữ thông tin thực sự quan trọng và khác biệt so với default behavior.

2. Context Lỗi Thời

Rules file nói "dùng Jest" nhưng project đã chuyển sang Vitest. Context sai còn tệ hơn không có context.

3. Chỉ Dựa Vào AI Tool

Context engineering không thay thế code review. AI agent có context tốt hơn sẽ viết code tốt hơn — nhưng bạn vẫn cần review. Giống như một junior developer đã đọc kỹ tài liệu: họ hiểu project, nhưng vẫn cần người kiểm tra.

4. Bỏ Qua Implicit Context

Nhiều thứ bạn "biết" về project nhưng không viết ra. Ví dụ: "hàm này deprecated, dùng hàm kia thay thế" — nếu không ghi ở đâu đó, AI sẽ không biết.

Xu Hướng Context Engineering Trong Tương Lai

AGENTS.md Trở Thành Standard

Tương tự như README.md hay LICENSE, AGENTS.md có thể trở thành file tiêu chuẩn trong mỗi repository. Một số dự án open source lớn đã bắt đầu thêm file này.

Tool-Specific Rules Consolidation

Hiện tại mỗi AI tool có format rules riêng (.cursor/rules, CLAUDE.md, .github/copilot-instructions.md). Xu hướng tương lai sẽ là standardize format — có thể dựa trên MCP (Model Context Protocol).

Context-as-Code

Các tool mới đang xuất hiện để quản lý context như code: version control, review process, automated testing cho context quality.

Lời Kết

Context engineering không phải buzzword mới. Nó là hệ quả tự nhiên khi AI coding agent trở thành teammate thực sự. Bạn không cần phải giỏi prompt engineering — bạn cần giỏi truyền đạt kiến thức project cho AI.

Bắt đầu đơn giản: tạo rules file, cải thiện type annotations, viết test rõ ràng. Ba bước này sẽ tạo ra khác biệt lớn hơn bất kỳ prompt trick nào.

Câu hỏi không phải "prompt nào tốt nhất cho AI" — mà là "project của tôi đã sẵn sàng cho AI chưa?"


Tham khảo: