TROISINH
Context EngineeringContext Engineering thực chiến

Context Engineering cho Coding Agent

Cách thiết kế context để AI code hiệu quả hơn - từ repository structure đến multi-file editing và debug workflow

Định nghĩa

Context Engineering cho Coding Agent là kỹ thuật chọn lọc, tổ chức và ưu tiên thông tin codebase (cấu trúc thư mục, dependencies, lịch sử chỉnh sửa) để AI hiểu đúng phạm vi vấn đề, đưa ra gợi ý chính xác mà không bị "ngộp" bởi những dòng code không liên quan trong Context Window hạn chế.

Giải thích chi tiết

Vấn đề đặc thù của code trong Context Window

Code khác văn bản ở chỗ: nó có cấu trúc nghiêm ngặt, dependency rắc rối, và syntax nhạy cảm. Khi bạn nhét toàn bộ thư mục node_modules vào prompt, AI không chỉ bị "ngộp" — nó bị nhiễu bởi noise. Ngược lại, nếu chỉ đưa file đang edit, AI lại thiếu context để biết hàm utils.validate() đến từ đâu.

Bản chất của vấn đề: Context Window là bộ nhớ tạm (RAM), không phải ổ cứng. Coding Agent cần chiến lược để quyết định "nạp gì vào RAM" trong mỗi lượt inference.

Ba tầng context trong hệ thống code

Repository Context (Bối cảnh dự án)

  • README.md, package.json, pyproject.toml: metadata về tech stack, dependencies
  • Cấu trúc thư mục (tree view): giúp AI hiểu architecture mà không cần đọc từng file
  • .gitignore patterns: biết đâu là generated code, đâu là source quan trọng

File Context (Bối cảnh file hiện tại)

  • Abstract Syntax Tree (AST) thay vì raw text: dùng Tree-sitter để trích xuất function signatures, imports, class definitions
  • "Neighbor files": các file cùng directory thường liên quan semantically
  • Recently opened files: giả lập "working memory" của developer

Execution Context (Bối cảnh runtime)

  • Stack trace khi debug: dòng lỗi + call chain
  • Output của terminal (test failures, lint errors)
  • Git diff của những thay đổi gần đây: biết bạn vừa sửa gì trước khi AI can thiệp

Kỹ thuật nén và ưu tiên hóa

1. Semantic Code Search (RAG cho code) Thay vì gửi toàn bộ codebase, dùng embedding model (như CodeBERT) để truy xuất những hàm/class liên quan đến truy vấn. Khi bạn yêu cầu "sửa API authentication", AI chỉ nhận các file chứa từ khóa "auth", "token", "middleware" — không nhận file CSS.

2. Import Graph Analysis Phân tích dependency graph: nếu file A import từ file B, khi sửa A phải xem B. Kỹ thuật này giúp AI thực hiện refactoring nhiều file an toàn, không phá vỡ giao diện (interface).

3. Hierarchical Summarization Với file quá dài (trên 500 dòng), tạo summary 3 cấp:

  • Level 1: Public API (exported functions)
  • Level 2: Function signatures + docstrings
  • Level 3: Implementation chi tiết (chỉ khi cần)

Tích hợp với Tool Use

Coding Agent hiện đại (Claude Code, Cursor, Devin) không chỉ dựa vào context tĩnh. Chúng dùng LSP (Language Server Protocol) để truy vấn real-time:

  • "Go to definition": lấy body của hàm được gọi
  • "Find references": biết chỗ nào dùng biến này
  • "Type checking": kiểm tra signature trước khi suggest

Đây là sự kết hợp giữa Context ManagementTool Use — AI chủ động "hỏi thêm" thông tin thay vì bị động nhận context.

Ví dụ thực tế

Refactoring nhiều file an toàn

Tình huống: Bạn muốn đổi tên hàm processPayment() thành processTransaction() trong dự án React. Hàm này được dùng ở 5 file khác nhau.

Context tệ: Chỉ đưa file chứa định nghĩa hàm.
→ AI sửa tên hàm trong file hiện tại, nhưng các file import vẫn gọi processPayment() → code bị lỗi.

Context Engineering đúng:

  • Đưa import graph: danh sách file nào import hàm này
  • Đưa file test: biết expected behavior để không đổi logic
  • Đưa Git diff gần nhất: tránh conflict với thay đổi đang có của đồng nghiệp

Kết quả: AI tạo 1 commit với 5 file thay đổi, cập nhật cả call sites và imports.

Debug với stack trace đầy đủ

Tình huống: Ứng dụng Python báo lỗi AttributeError: 'NoneType' object has no attribute 'strip' ở dòng 142 file parser.py.

Context tệ: Chỉ copy-paste error message vào chat.
→ AI đoán mò: "Có thể biến name chưa được khởi tạo". Nhưng thực tế lỗi từ 3 stack frames trước.

Context Engineering đúng:

  • Stack trace đầy đủ: từ entry point → middleware → parser.py
  • Git blame: ai sửa dòng này gần nhất? (context về intent)
  • File test liên quan: expected input/output của parser.py

AI nhận ra: Hàm clean_data() ở frame thứ 2 trả về None khi input chứa null, nhưng parser.py không kiểm tra. Fix ở đúng chỗ gốc rễ, không chỉ chữa cháy ở dòng 142.

Code review với coding guidelines

Tình huống: AI agent review Pull Request trong dự án có quy tắc nghiêm ngặt: "Không dùng any type trong TypeScript", "Mọi API call phải có retry logic".

Context Engineering:

  • RAG từ CONTRIBUTING.mdeslint-config: truy xuất đúng rules liên quan đến file thay đổi
  • Diff của PR: chỉ xem những dòng thay đổi, không review lại cả file
  • Context về PR description: biết intent của developer để đánh giá "thay đổi này có đạt mục tiêu không"

Kết quả: AI bắt được lỗi "thiếu retry" ở dòng mới thêm, suggest thêm axios-retry đúng pattern của dự án, thay vì suggest thư viện ngẫu nhiên.

Ứng dụng

Developer cá nhân (Dùng Cursor, Copilot, Claude Code)

  • Tự động hoàn thành thông minh: Không chỉ dựa trên prefix, mà dựa trên cả file đang mở và file liên quan
  • Generate test: AI đọc implementation + existing test patterns (RAG từ /tests) để viết test nhất quán với codebase
  • Giải thích legacy code: Đưa file 5 năm tuổi + commit history để AI giải thích "tại sao code này viết thế này" (context về intent lịch sử)

Team Engineering

  • Onboarding bot: Dev mới hỏi "Module payment hoạt động thế nào?" → AI trả lời dựa trên docs/architecture.md + code thực tế + recent commits
  • Migration assistant: Chuyển từ REST sang GraphQL. AI cần context về cả schema cũ và schema mới để suggest refactoring từng endpoint

Doanh nghiệp & DevOps

  • Incident response: Khi production lỗi, AI agent tổng hợp logs (context thời gian), recent deployments (Git context), và dependency changes để suggest root cause
  • Documentation generation: Tự động cập nhật wiki dựa trên code changes, dùng diff làm context để mô tả "tính năng này vừa thêm gì"

So sánh

Tiêu chíPrompt đơn thuầnContext Engineering cho Coding
Hiểu architectureChỉ file đang editToàn bộ dependency graph + structure
Sửa lỗiDựa trên pattern chungDựa trên stack trace và runtime state cụ thể
RefactorThay đổi local, rủi ro bể codeThay đổi đa file an toàn qua import analysis
Nhất quánTuỳ vào "tâm trạng" của modelTheo style guide và conventions của dự án (RAG)
DebugĐoán nguyên nhânTruy root cause qua execution context

Prompt Engineering giúp AI viết code đúng cú pháp. Context Engineering giúp AI viết code đúng architecture, đúng conventions, và giải quyết đúng vấn đề thực tế của dự án bạn — không phải vấn đề chung chung trên Stack Overflow.

Bài viết liên quan

Cùng cụm

Context Engineering cho Chatbot sản phẩm

Áp dụng context management vào chatbot customer support, với product knowledge base và conversation history

Context Engineering cho phân tích dữ liệu

Thiết kế context cho AI xử lý dataset lớn: schema, statistics, và sampling strategies

Debug context: Khi AI trả lời sai, lỗi ở đâu?

Cách diagnose và fix context issues: thiếu info, nhiễu noise, hay retrieval failure

Context Engineering Checklist

15 điểm kiểm tra trước khi deploy AI system: từ context coverage đến privacy và performance

Đọc tiếp

Nền tảng Harness Engineering

Từ Context Engineering sang Harness Engineering: thiết kế hệ thống cho AI Agent với ACI, feedback loops và security

Tool Use & Structured Output

Hiểu sâu về cách AI tương tác với tools như LSP, file system, và APIs qua MCP protocol

On this page