AIDD Foundation · Module 06

Agentic Coding & Spec-Driven Development

Phong cách lập trình mới với AI Agent và phương pháp Spec-Driven Development — từ tư duy đến triển khai thực tế.

Lessons4 + Quiz
Mục tiêuAgentic Coding · SDD
AudiencePM · BrSE · QA · Dev
// MODULE.06 / OVERVIEW 01 / 18
Roadmap

Bạn sẽ đi qua những gì?

// MODULE.06 / OVERVIEW 02 / 18
Lesson 6.1 · Định nghĩa

Agentic Coding là gì?

Agentic Codingphong cách lập trình với sự hỗ trợ của AI Agent — nơi AI không còn chỉ là công cụ hỗ trợ mà trở thành nhân tố thực thi chính trong nhiều phần của quy trình phát triển.

Cách truyền thống

Con người làm chính

  • Con người đóng vai trò coding chính
  • AI chỉ hỗ trợ qua code completion
  • AI chỉ code được vài dòng, vài hàm
  • Mức độ tự chủ của AI: thấp
Agentic Coding

AI Agent làm chính

  • AI Agent hoạt động với mức độ tự chủ cao
  • Tự lên kế hoạch
  • Tự suy nghĩ và tự thực thi
  • Rất ít hoặc không cần can thiệp
// MODULE.06 / LESSON.1 03 / 18
Lesson 6.1 · Tóm lại

AI từ "support" sang "thực thi"

🗺️

Lên kế hoạch

Tự phân tích yêu cầu, chia nhỏ task, lập roadmap thực hiện

🧠

Suy nghĩ

Reasoning qua các lựa chọn, đánh giá trade-off, ra quyết định

Thực thi

Viết code, chạy test, sửa lỗi — với rất ít can thiệp từ con người

💡 Insight Đây là phong cách lập trình của tương lai gần — engineer chuyển từ "người viết code" sang "người thiết kế môi trường làm việc cho AI".
// MODULE.06 / LESSON.1 04 / 18
Lesson 6.2 · Tư duy mới

Tư duy quan trọng hơn công cụ

💡 Sự dịch chuyển Thay vì "làm hết mọi thứ", hãy nghĩ "dạy cho AI làm việc đó".
Câu hỏi 1

Chia việc thế nào?

Prompt template · Slash commands · Skills · Subagents — đóng gói quy trình SOP rõ ràng.

Câu hỏi 2

Cung cấp info ra sao?

Context Engineering — chọn lọc thông tin tối ưu cho context window.

Câu hỏi 3

Kiểm soát kết quả?

Guardrails · Permissions · Hooks · Sandbox — đảm bảo Agent làm đúng và an toàn.

// MODULE.06 / LESSON.2 05 / 18
Lesson 6.2 · Giải pháp

Harness Engineering — câu trả lời tổng hợp

Ba câu hỏi then chốt đều có chung một câu trả lời: Harness Engineering chính là giải pháp để triển khai Agentic Coding một cách hiệu quả.

Chia việc cho AI

Xây dựng SOP dưới dạng Skills, Subagents, Slash commands — AI biết cần làm gì và làm như thế nào.

Cung cấp thông tin

Context Engineering: CLAUDE.md, spec files, memory — cung cấp đúng thông tin vào đúng lúc.

Kiểm soát kết quả

Guardrails, Permissions, Hooks, Sandbox — Agent hoạt động trong giới hạn an toàn.

Kết luận

Agentic Coding hiệu quả = Engineer giỏi thiết kế Harness, không phải engineer code nhiều nhất.

// MODULE.06 / LESSON.2 06 / 18
Lesson 6.3 · Harness Engineering

Agent cần môi trường làm việc đầy đủ

Không chỉ là context — Agent cần toàn bộ Harness: 6 thành phần để hoạt động như lập trình viên thực thụ.

📋 Context Layer

Bối cảnh dự án đầy đủ

Yêu cầu, kiến trúc, conventions — Agent cần hiểu dự án như một dev thực thụ.

🧠 Memory Layer

Duy trì knowledge

Memory để giữ knowledge xuyên session — Agent không quên goal hay lặp lại sai lầm.

🔧 Tools Layer

Bộ tools phù hợp

Đọc/sửa file · chạy lệnh · MCP servers — Agent cần công cụ để thực thi được hành động.

⚡ Skills Layer

Skills sẵn sàng activate

Quy trình đóng gói sẵn — Agent biết cách tiếp cận các task chuyên biệt.

🛡️ Guardrails & Permissions

Đảm bảo an toàn

Sandbox · Permissions · Content filters — kiểm soát để Agent làm đúng và không vượt scope.

🪝 Hooks

Định hình hành vi runtime

Hooks kiểm soát lifecycle của Agent ở từng giai đoạn thực thi — đảm bảo hành vi nhất quán.

// MODULE.06 / LESSON.3 07 / 18
Lesson 6.3 · 5 Layers

5 layers cần đầu tư

Layer 1 · Context

Bối cảnh dự án

Source code lazy load qua Skills/MCP. UI design, API spec, DB schema với loading strategy phù hợp.

Layer 2 · Tools

Bộ công cụ

Tool registry: built-in vs MCP vs custom. Tool description chất lượng. Deferred loading giảm token cost.

Layer 3 · Guardrails

Kiểm soát an toàn

Permissions ask/allow/deny. Sandbox isolation. Content filters + approval gates cho high-risk actions.

Layer 4 · Memory

Bộ nhớ liên tục

Spec files · Plan files · MEMORY.md — Agent nhớ across sessions. Compaction khi context bloat.

Layer 5 · Observability

Khả năng quan sát

Session logs · traces · telemetry — debug và audit khi Agent fail. Cost attribution per task/team.

Hooks

Lifecycle Hooks

Định hình hành vi runtime — kiểm soát Agent ở từng giai đoạn thực thi.

// MODULE.06 / LESSON.3 08 / 18
Lesson 6.3 · Chẩn đoán

Tại sao Agent có vẻ "không hiệu quả"?

⚠ Nguyên nhân thực sự Không phải LLM quá yếu hay Agent core chưa tốt — mà là engineer chưa thiết kế được Harness đủ tốt.
Context yếu

Agent đoán mò, hallucinate

Thiếu thông tin dự án → Agent bịa đặt thay vì làm đúng yêu cầu.

Tools sai / thiếu

Không thực thi được

Thiếu tool → Agent không hành động được dù biết cần làm gì.

Skills missing

Không biết cách tiếp cận

Task chuyên biệt không có SOP → Agent làm sai hoặc không làm được.

Guardrails buông lỏng

Output vượt scope, nguy hiểm

Thiếu kiểm soát → Agent làm ngoài phạm vi, gây lỗi nghiêm trọng.

→ Thiếu Observability = engineer không biết Agent fail ở đâu để fix. Thiếu Memory = Agent quên goal, lặp lại sai lầm.

// MODULE.06 / LESSON.3 09 / 18
Lesson 6.4 · Định nghĩa

Spec-Driven Development là gì?

Spec-Driven Development (SDD) là phương pháp phát triển dựa trên đặc tả — tập trung làm specifications thật chi tiết và đầy đủ trước, sau đó code sẽ được AI sinh ra dựa trên spec.

🏗️ Phép so sánh Giống như vẽ bản thiết kế cho ngôi nhà trước khi đóng đinh xây dựng — định nghĩa rõ mình muốn gì trước, rồi mới bàn đến cách làm.
Bước 1

Định nghĩa rõ ràng

Mình muốn xây dựng cái gìvì sao cần nó — tập trung vào mục tiêu, không phải giải pháp kỹ thuật.

Bước 2

Lên kế hoạch kỹ thuật

Technical design dựa trên spec đã có — mô tả cách làm, sau đó AI sinh code đúng ý.

// MODULE.06 / LESSON.4 10 / 18
Lesson 6.4 · So sánh

SDD vs Vibe Coding

Vibe Coding

Lập trình theo cảm hứng

  • Không có kế hoạch rõ ràng
  • Sản phẩm chắp vá, thiếu nhất quán
  • AI phải "đoán mò" intent của dev
  • Khó bảo trì, khó mở rộng
Spec-Driven Development

Đặc tả trước, code sau

  • Cầu nối giữa ý định con ngườikết quả AI
  • Hạn chế việc AI đoán mò
  • Kết quả đúng ý hơn, ít bất ngờ
  • Code chất lượng cao, dễ bảo trì
⚡ Tại sao quan trọng Khi AI viết code dựa trên vague prompt, kết quả mang tính may rủi. SDD thay thế sự may rủi bằng spec rõ ràng — AI có đủ thông tin để làm đúng ngay từ đầu.
// MODULE.06 / LESSON.4 11 / 18
Lesson 6.4 · Lợi ích

3 lợi ích cốt lõi của SDD

Lợi ích 1

Spec là "Source of Truth"

Mô tả mục tiêu, yêu cầu, kết quả kỳ vọng — toàn bộ team (Dev · QA · PM · PO) và AI đều có cùng hiểu biết thống nhất.

Lợi ích 2

Tách biệt Ý tưởng & Công nghệ

Spec = cái gì cần làm. Technical design = cách làm. Đổi Next.js → Laravel không cần viết lại spec.

Lợi ích 3

Có tổ chức & dễ mở rộng

Mọi tính năng gắn với yêu cầu cụ thể. Quy trình có trật tự, lặp lại được, dễ mở rộng.

💡 Đặc biệt hữu ích Trong dự án lớn, nơi nhiều thành viên và nhiều AI cùng tham gia mà vẫn giữ được tính thống nhất — SDD là nền tảng không thể thiếu.
// MODULE.06 / LESSON.4 12 / 18
Lesson 6.4 · Quy trình

SDD Flow: Spec Design Code

Giai đoạn 1

Xây dựng Spec

Tập trung vào cái cần làm, không phải cách làm. Định nghĩa mục tiêu, yêu cầu, kết quả kỳ vọng chi tiết.

Giai đoạn 2

Technical Design

Dựa trên spec, lên kế hoạch kỹ thuật: kiến trúc, API contracts, data models, flow xử lý.

Giai đoạn 3

AI sinh Code

AI có đầy đủ spec + technical design → sinh code chất lượng cao, ít sai lệch, ít cần sửa.

🔄 Tái sử dụng spec Ví dụ: chuyển từ Next.js sang Laravelkhông cần viết lại spec, chỉ cần làm lại technical design. Ý tưởng cốt lõi giữ nguyên, chỉ có công cụ thay đổi.
// MODULE.06 / LESSON.4 13 / 18
Module 06 · Recap

4 ý chốt bạn cần mang sang thực tế

Agentic Coding

AI từ "support" sang "thực thi" — tự lên kế hoạch, suy nghĩ, thực thi với rất ít can thiệp của con người.

Tư duy mới

Thay vì làm hết mọi thứ, hãy nghĩ "dạy AI làm việc đó". Trả lời 3 câu hỏi: chia việc · cung cấp info · kiểm soát kết quả.

Harness Engineering

5 layers: Context · Tools · Guardrails · Memory · Observability. Agent yếu = Harness yếu, không phải LLM dở.

Spec-Driven Development

Spec trước, code sau. SDD = nguồn sự thật chung cho cả team + AI. Tách spec (cái gì) khỏi technical design (như thế nào).

▸ Sẵn sàng kiểm tra kiến thức? Tiếp tục → Quiz Module 6

// MODULE.06 / RECAP 14 / 18
Module 06 · Tổng kết

Module này bao gồm

Số bài học 4

Từ định nghĩa, tư duy, đến Harness Engineering và SDD.

Layers Harness 5

Context · Tools · Guardrails · Memory · Observability.

Quiz 5

Câu hỏi kiểm tra toàn module. Mục tiêu đậu: 4/5 đúng (80%).

🎯 Kết nối với module trước Module 5 đặt nền tảng Harness Engineering — Module 6 là ứng dụng thực tế: dùng harness để triển khai Agentic Coding và SDD trong dự án thực.
// MODULE.06 / OVERVIEW 15 / 18
Module 06 · Quiz

5 câu hỏi — bạn nhớ được bao nhiêu?

// MODULE.06 / QUIZ 16 / 18
Module 06 · Quiz · Tiêu chí

Tiêu chí đánh giá

Tổng số câu

5

Bao gồm Agentic Coding, tư duy lập trình viên, Harness Engineering và SDD.

Mục tiêu đậu

4/5

Đạt 80% là mức chứng tỏ hiểu đủ để áp dụng vào thực tế.

Phạm vi kiểm tra

Cả 4 bài học

Lesson 6.1 → 6.4 · Ôn lại các bài trước khi bắt đầu quiz.

📋 Các chủ đề trong quiz Agentic Coding vs AI truyền thống · Tư duy mới cho lập trình viên · Nguyên nhân Agent không hiệu quả · Định nghĩa SDD · Vibe Coding vs SDD
// MODULE.06 / QUIZ 17 / 18
Module 06 · Hoàn thành

Bạn đã hoàn thành Module 06

Từ Agentic Coding đến Spec-Driven Development — bạn đã nắm được tư duy và phương pháp để làm việc hiệu quả với AI Agent trong phát triển phần mềm.

Đã học

Agentic Coding · Tư duy mới · Harness Engineering · Spec-Driven Development

Tiếp theo

Khám phá các module còn lại của khóa học AIDD Foundation để hoàn thiện kỹ năng.

← Quay lại tổng quan khóa học
// MODULE.06 / CLOSING 18 / 18