// MODULE.05 / HARNESS-ENGINEERING 1 / 21
AIDD Foundation · Module 05

Harness Engineering

Từ Context Engineering đến thiết kế toàn bộ runtime environment cho Agent — năng lực cạnh tranh thực sự trong kỷ nguyên Agentic Coding.

Lessons5 + Quiz
Mục tiêuRuntime Design
AudienceDev · BrSE · QA
// MODULE.05 / OVERVIEW 2 / 21
Roadmap

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

// MODULE.05 / LESSON.1 3 / 21
Lesson 5.1 · Câu hỏi mở đầu

Tại sao cùng một model, kết quả lại khác nhau?

Bài toán thực tế Hai team dùng cùng model, cùng task — nhưng kết quả agent hoàn toàn khác nhau. Câu trả lời không nằm ở model — mà nằm ở những gì bao quanh model.
// MODULE.05 / LESSON.1 4 / 21
Lesson 5.1 · Định nghĩa

Harness — toàn bộ runtime bao quanh LLM

Định nghĩa chính thức Harness (hay "Agent Harness") là toàn bộ runtime environment bao quanh một LLM khi nó vận hành như một agent — bao gồm tất cả các thành phần mà agent tương tác, không chỉ những gì nằm trong context window.
Lưu ý quan trọng Khái niệm được phổ biến rộng rãi từ đầu 2026 (sau bài viết của Mitchell Hashimoto 2/2026). Vì còn mới, chưa có framework thống nhất toàn ngành. Khóa học dùng cách chia 7 components như một lens học tập — khi đọc tài liệu khác có thể gặp cách chia 4–5 hoặc 8–10 nhóm.
// MODULE.05 / LESSON.1 5 / 21
Lesson 5.1 · Tổng quan

7 Components của Harness

01

Context Loading

System prompt, instruction files, conversation history, tool outputs

02

Tool Registry

Built-in tools, MCP servers, custom tools, sub-agent spawn

03

Guardrails

Permissions, Sandbox, Content Filters, Approval Gates, Validators

04

Hooks

PreToolUse, PostToolUse, SessionStart, UserPromptSubmit, Stop

05

Skills System

Lazy-loaded capabilities — nạp đúng khi cần

06

Memory

Short-term (in-context) + Long-term (persistent file/DB)

07

Observability

Session logs, traces, telemetry, cost attribution, evals & quality loops

// MODULE.05 / LESSON.2 6 / 21
Lesson 5.2 · So sánh

Context Engineering vs Harness Engineering

Phạm vi hẹp hơn

Context Engineering

  • Nghệ thuật chọn lọc thông tin đưa vào context window
  • Câu hỏi: "Thông tin nào cần cho bước suy luận này?"
  • Phạm vi: bên trong context window
  • Kỹ thuật: prompt design, compaction, RAG, memory retrieval, chunking
Phạm vi rộng hơn

Harness Engineering

  • Thiết kế toàn bộ runtime mà agent vận hành trong đó
  • Câu hỏi: "Hệ thống xung quanh agent cấu hình như thế nào?"
  • Phạm vi: toàn bộ execution environment
  • Kỹ thuật: harness config, tool registry, skill design, hook engineering, permissions
Mối quan hệ Context Engineering ⊂ Harness Engineering — Context Engineering là một component của Harness Engineering. Kỹ sư giỏi Context Engineering nhưng bỏ qua phần còn lại của Harness sẽ chỉ tối ưu được một phần nhỏ hệ thống.
// MODULE.05 / LESSON.2 7 / 21
Lesson 5.2 · Ví dụ

Khi Harness không đồng bộ — agent thất bại

Trường hợp 1

Context tốt, Tool kém

Agent có context tuyệt vời nhưng tool registry kém sẽ fail ngay bước đầu — không có công cụ phù hợp để thực thi action.

Trường hợp 2

Context & Tool tốt, Hooks thiếu

Agent có context và tool tốt nhưng thiếu hooks sẽ không thể ngăn các hành động nguy hiểm — production có thể bị ảnh hưởng.

Kết luận Để đạt performance tốt nhất: ✅ Master Context Engineering (nền tảng) → ✅ Mở rộng tư duy ra Harness Engineering (toàn diện) → ✅ Tối ưu cả 7 components.
// MODULE.05 / LESSON.3 8 / 21
Lesson 5.3 · Component 1

Prompt & Context Loading — tầng đầu tiên

System Prompt

Lớp cơ bản nhất

Định nghĩa vai trò, constraints và behaviors mặc định. Nạp ở đầu mỗi conversation.

Instruction Files

Phân cấp theo thư mục

  • CLAUDE.md (root) — toàn project
  • src/CLAUDE.md — module src
  • frontend/CLAUDE.md — frontend
Best Practices

Nguyên tắc thiết kế

  • System prompt ngắn gọn và rõ ràng
  • Dùng instruction files phân cấp
  • Dùng Skills cho knowledge on-demand
Pattern mạnh mẽ Instruction files phân cấp cho phép context tự động thay đổi theo phần codebase agent đang làm việc — một pattern Context Engineering rất hiệu quả.
// MODULE.05 / LESSON.3 9 / 21
Lesson 5.3 · Component 2

Tool Registry — danh sách tools của Agent

4 loại tools

Phân loại Tool

  • Built-in tools: Read, Write, Bash, Search...
  • MCP servers: kết nối qua Model Context Protocol
  • Custom tools: tự xây cho use case cụ thể
  • Sub-Agent tools: spawn subagent qua tool Task
Nguyên tắc thiết kế

Tool Registry hiệu quả

  • Description chất lượng cao — mơ hồ → agent chọn sai tool
  • Deferred loading — không nạp tất cả ngay từ đầu
  • Naming nhất quán — không overlap chức năng
  • Giới hạn số tools — quá nhiều → agent rối, chọn nhầm
// MODULE.05 / LESSON.3 10 / 21
Lesson 5.3 · Component 3

Guardrails — layered safety system

Permissions — WHAT

Quyền truy cập

Agent được dùng tool nào, access resource nào. Áp dụng least-privilege model.

Sandbox — WHERE

Môi trường isolated

Agent thực thi trong Docker, VMs, file system jails — không leak ra ngoài.

Content Filters — WHAT OUTPUT

Lọc nội dung

Kiểm tra content vào/ra: lọc PII, jailbreak, hallucination, off-topic.

Approval Gates — WHO DECIDES

Xác nhận human

Yêu cầu confirm trước action quan trọng: deploy production, delete file, payment.

Behavior Boundaries — WHAT INTENT

Giới hạn phạm vi

Giới hạn topics, không cho Agent đi ra ngoài scope dự án.

Validators & Linters — WHAT QUALITY

Kiểm tra chất lượng

Automated check: linters, type checkers, schema validators, code review, unit tests.

Lưu ý quan trọng Guardrails KHÔNG phải 1 mechanism đơn lẻ — đó là một layered system gồm nhiều cơ chế phối hợp. Thiết kế Guardrails tốt là tiền đề để chạy các flow Agent phức tạp và kéo dài an toàn.
// MODULE.05 / LESSON.3 11 / 21
Lesson 5.3 · Component 4

Hooks — can thiệp vào lifecycle Agent

PreToolUse

Trước khi gọi tool

Security checkpoint chính: validate input, ghi audit log, hỏi xác nhận user, chặn hành động nguy hiểm.

PostToolUse

Sau khi tool hoàn thành

Validate output, inject thêm context, trigger side effects (linter, formatter, test runner).

SessionStart

Bắt đầu session

Load memory từ previous session, inject context động, khởi tạo state.

UserPromptSubmit

Trước khi xử lý prompt

Enrich prompt với context, privacy filtering, log requests.

Stop / SessionEnd

Khi agent dừng

Lưu session state, generate summary, cleanup resources.

Tool support

Claude ~21 · Copilot 8 · Codex ~6

Core set 5 events đã convergence thành de facto standard — chưa có open spec chung.

// MODULE.05 / LESSON.3 12 / 21
Lesson 5.3 · Hooks in action

Hooks kết nối toàn bộ Harness

SessionStart hook

Load memory tự động

Đọc file memory từ previous session → inject vào context → agent có context đầy đủ ngay từ đầu.

PreToolUse hook

Kiểm tra permissions

Intercept mọi tool call → check permission policy → chặn nếu vi phạm → ghi audit log.

PostToolUse hook

Cập nhật memory

Sau mỗi tool call → cập nhật memory với kết quả mới → trigger linter/test runner nếu cần.

Hooks nâng cao — chỉ một số tool hỗ trợ

Advanced Hooks

  • SubagentStop (Claude, Copilot) — khi subagent xong, trước khi return về main agent
  • PermissionRequest (Claude, Codex) — khi agent xin permission cho action
  • StopFailure / errorOccurred (Claude, Copilot) — khi turn end do lỗi (rate limit, exception)
  • FileChanged (Claude only) — khi file được watch thay đổi trên disk
  • Elicitation / ElicitationResult (Claude only) — intercept MCP elicitation requests
Sức mạnh thực sự Hooks thiết kế tốt có thể tự động kết nối tất cả các thành phần Harness lại với nhau — biến general-purpose agent thành tool được tùy chỉnh hoàn toàn cho workflow của team, mà không cần fork hay patch source code.
// MODULE.05 / LESSON.4 13 / 21
Lesson 5.4 · Component 5

Skills System — lazy capability loading

Context Loading

Xử lý Thông tin

Facts, history, instructions — những gì agent biết.

Tool Registry

Xử lý Actions

Những gì agent có thể làm — gọi tool, gọi API.

Skills System

Xử lý Capabilities

Cách agent xử lý tác vụ — lazy loading, nạp đúng khi cần.

Skills là packaging đặc biệt Skills kết hợp cả instructions (markdown body) lẫn allowed-tools (config), được load on-demand thay vì always-on. Giải quyết vấn đề context bloat cho capabilities — không nhét tất cả knowledge vào instruction files.
// MODULE.05 / LESSON.4 14 / 21
Lesson 5.4 · Component 6

Memory — học hỏi qua nhiều session

Trong phiên hiện tại

Short-term (In-context)

  • Conversation history
  • Tool outputs
  • Intermediate results

→ Nằm trong context window, tự xóa khi session kết thúc.

Giữa các session

Long-term (Persistent)

  • Tồn tại độc lập với conversations
  • File-based: MEMORY.md, JSON files
  • Database: vector DB, graph DB

→ Agent "nhớ" qua nhiều session — tích lũy domain knowledge.

Pattern phổ biến SessionStart hook → load MEMORY.md → inject vào context. PostToolUse / SessionEnd hook → cập nhật MEMORY.md với insights mới.
// MODULE.05 / LESSON.4 15 / 21
Lesson 5.4 · Component 7

Observability — forensic + improvement

Session Logs

Append-only log

Toàn bộ messages, tool calls, kết quả. Claude Code transcript, Codex session log.

Traces

Span-based tracking

Mỗi step Agent là 1 span — latency, token, cost. Tools: LangSmith, Langfuse, OpenTelemetry.

Telemetry

Metrics tổng hợp

Token usage per session, tool call frequency, error rate, success rate.

Cost Attribution

Tracking chi phí

Cost per task / team / workflow — alerting khi vượt budget.

Evals & Quality Loops

Đo chất lượng Agent

Benchmark replay sessions, regression test giữa các model versions, dùng 1 model khác để chấm output.

// MODULE.05 / LESSON.5 16 / 21
Lesson 5.5 · Ý nghĩa

Harness Engineering có ý nghĩa gì với bạn?

Hiện tại — Điểm xuất phát

Hầu hết mọi người đang ở đây

  • Biết dùng Claude Code / Copilot / Codex để code nhanh hơn
  • Biết viết prompt tốt
  • Biết dùng MCP
Đích đến — Năng lực cạnh tranh thực sự

Harness Engineer

  • Biết thiết kế toàn bộ runtime xung quanh agent
  • Có thể build custom flow tối ưu cho team
  • Hiểu khi nào dùng hook, skill, subagent
Lời khuyên Đầu tư thời gian học Harness Engineering ngay từ bây giờ. Đây sẽ là kỹ năng phân biệt engineer trung bình với engineer xuất sắc trong 1–2 năm tới.
// MODULE.05 / LESSON.5 17 / 21
Lesson 5.5 · Roadmap

4 hành động cần làm ngay

01 · Học sâu

Hands-on từng component

Không chỉ biết mà phải thực hành: viết hooks, design skills, configure permissions, setup observability.

02 · Build skill library

Đóng gói SOP của team

Chuyển các Standard Operating Procedure thành Skills, share giữa members, chuẩn hóa quy trình làm việc.

03 · Implement observability

Setup monitoring

Logging, tracing, cost attribution để liên tục cải tiến flow Agent dựa trên dữ liệu thực tế.

04 · Iterate liên tục

Vừa làm vừa học

Harness Engineering là kỹ năng accumulate qua practice. Thử nghiệm → đo lường → cải tiến → lặp lại.

// MODULE.05 / RECAP 18 / 21
Module 05 · Recap

5 ý chốt bạn cần mang theo

Harness = Runtime Environment

Toàn bộ thứ bao quanh LLM khi vận hành — tools, hooks, permissions, skills, memory, observability, không chỉ context window.

Context ⊂ Harness

Context Engineering là một component của Harness Engineering. Giỏi context nhưng bỏ qua phần còn lại = tối ưu một phần nhỏ hệ thống.

7 Components

Context Loading · Tool Registry · Guardrails · Hooks · Skills · Memory · Observability. Đây là một lens học tập — không phải con số "thiêng".

Hooks là kết nối

Hooks thiết kế tốt tự động kết nối tất cả components — biến general-purpose agent thành tool tùy chỉnh cho workflow team.

Năng lực cạnh tranh

Harness Engineering = kỹ năng phân biệt engineer trung bình với xuất sắc trong kỷ nguyên Agentic Coding. Hands-on ngay từ bây giờ.

// MODULE.05 / QUIZ 19 / 21
Module 05 · Quiz

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

// MODULE.05 / QUIZ-INFO 20 / 21
Module 05 · Quiz thông tin

Quiz Module 5 — Harness Engineering

Số câu hỏi 7

Kiểm tra định nghĩa, mối quan hệ và các components của Harness.

Chủ đề kiểm tra 5 chủ đề

Harness định nghĩa · Context vs Harness · Components · Hooks · Guardrails · Skills · Observability

Đạt yêu cầu 5/7

Trả lời đúng ít nhất 5/7 câu để hoàn thành Quiz Module 5.

Tip Quiz có thể làm lại không giới hạn. Xem giải thích sau mỗi câu để hiểu sâu hơn trước khi chuyển Module.
// MODULE.05 / CLOSING 21 / 21
Module 05 · Hoàn thành

Bạn đã nắm Harness Engineering

Từ định nghĩa Harness, phân biệt Context vs Harness Engineering, đến 7 components chi tiết và lộ trình phát triển năng lực — nền tảng để bạn thiết kế runtime Agent hiệu quả.

Lesson 5.1 + 5.2

Harness = runtime environment. Context Engineering ⊂ Harness Engineering.

Lesson 5.3 + 5.4

7 components: Context Loading · Tool Registry · Guardrails · Hooks · Skills · Memory · Observability.

← Quay lại tổng quan khóa học