🎉 Giảm 20% cho đơn hàng đầu tiên!✦🚚 Miễn phí vận chuyển cho đơn trên 500.000₫✦⚡ Flash Sale — Số lượng có hạn!✦🎁 Quà tặng kèm cho đơn từ 1.000.000₫✦🎉 Giảm 20% cho đơn hàng đầu tiên!✦🚚 Miễn phí vận chuyển cho đơn trên 500.000₫✦⚡ Flash Sale — Số lượng có hạn!✦🎁 Quà tặng kèm cho đơn từ 1.000.000₫✦
Harness Engineering là gì? Khi bài toán AI Agent dịch chuyển từ viết Prompt sang kiến trúc vận hành
Quay lại Blog

Harness Engineering là gì? Khi bài toán AI Agent dịch chuyển từ viết Prompt sang kiến trúc vận hành

8 tháng 11, 202612 phút đọcVũ Khôi
Tin tức
#Wotech
Vũ Khôi

Vũ Khôi

Tác giả tại Wotech Electronics Blog

Harness Engineering là gì? Khi bài toán AI Agent dịch chuyển từ viết Prompt sang kiến trúc vận hành

Trả lời nhanh

  • Công thức cốt lõi: Agent = Model + Harness. Nếu mô hình ngôn ngữ (GPT, Claude, Gemini) là "bộ não", thì Harness là toàn bộ môi trường, công cụ và quy trình bao quanh, biến bộ não đó thành một thực thể thực sự làm được việc.
  • Quá trình làm việc với AI đã qua 3 giai đoạn tiến hóa: Prompt Engineering (viết yêu cầu sao cho khéo) → Context Engineering (đưa đúng thông tin vào đúng lúc) → Harness Engineering (tổ chức quy trình làm việc, tự kiểm thử và kiểm soát an toàn cho Agent).
  • Một Harness hiện đại như Claude Code gồm 9 thành phần: vòng lặp chính, quản lý ngữ cảnh, công cụ và kỹ năng, Agent con, kỹ năng tích hợp sẵn, bộ nhớ phiên, lắp ráp System Prompt kèm Prefix Caching, Hooks và phân quyền an toàn.
  • Khi Agent làm việc kém, đừng vội đổi Model mạnh hơn — hãy tối ưu Harness trước: cấp đủ thông tin và công cụ, chặn lỗi bằng cơ chế thay vì chỉ dặn bằng lời, tạo vòng lặp phản hồi (Feedback Loop) và dùng môi trường cô lập (Sandbox) khi cần mức tự chủ cao.
  • Framework và Harness không giống nhau: Framework (LangChain, AutoGen) là bộ đồ nghề rời để tự lắp ráp; Harness (Claude Code, Cursor, Codex) là môi trường đã xây sẵn quy trình, Agent chỉ việc bước vào vận hành.

Harness Engineering là gì?

Harness Engineering là ngành/thực hành thiết kế và tối ưu "lớp vận hành" bao quanh một mô hình AI: các công cụ mà Agent được phép dùng, cách ngữ cảnh được cấp và dọn dẹp, cách công việc được bóc tách thành từng bước, cách kết quả được tự kiểm tra, và các cơ chế phân quyền, an toàn. Nếu Prompt Engineering quan tâm đến câu lệnh, Context Engineering quan tâm đến thông tin, thì Harness Engineering quan tâm đến cả hệ thống làm việc — yếu tố quyết định một AI Agent có làm được những việc dài hơi, phức tạp và đáng tin cậy hay không.

Vì sao nói Agent = Model + Harness? Bài học từ quán phở

Để hình dung, hãy dùng phép ẩn dụ quán phở trong video của anh Việt Nguyễn AI mà bài gốc dẫn lại. Giả sử bạn thuê được một đầu bếp thiên tài (chính là Model): món gì cũng biết nấu, nhưng có hai nhược điểm — anh ta chỉ làm đúng những gì ghi trên phiếu gọi món (Prompt), và chỉ nhớ được những thứ đang bày trên mặt bàn bếp trước mặt (Context Window). Cái gì dẹp khỏi bàn là quên sạch.

Một mình đầu bếp giỏi chưa thành được quán ăn. Quán chạy tốt hay không còn phụ thuộc vào quy trình chia ca, sổ sách, cách kiểm tra món trước khi bưng ra, kho nguyên liệu và quy tắc an toàn — đó chính là Harness. Cùng một Model, đặt vào một "căn bếp" lộn xộn sẽ cho kết quả tệ hơn hẳn khi đặt vào một căn bếp được tổ chức ngăn nắp.

Ba giai đoạn phát triển của AI Agent: Prompt Engineering, Context Engineering, Harness Engineering

Phiếu gọi món rõ ràng cho kết quả đúng ý hơn

Ba giai đoạn Prompt Engineering, Context Engineering và Harness Engineering khác nhau thế nào?

Giai đoạn 1 — Prompt Engineering (viết phiếu gọi món sao cho rõ). Thời kỳ đầu, "mặt bàn bếp" rất bé: cửa sổ ngữ cảnh chỉ khoảng vài nghìn token (theo slide của tác giả, context window đã tăng từ khoảng 2K token lên hơn 1 triệu token chỉ trong 5 năm). Cách duy nhất để làm việc là viết phiếu yêu cầu thật chi tiết. Điểm yếu là kiểu làm việc one-shot: nấu một lần bưng ra là xong, không tự đi lấy thêm nguyên liệu, không nếm thử, sai cũng không biết tự sửa.

Giai đoạn 2 — Context Engineering (bày đúng thứ cần lên bàn bếp). Khi mặt bàn rộng hơn, người ta dùng ba kỹ thuật chính để cấp "nguyên liệu" thông minh: Tool Calling — đầu bếp tự vào kho lấy nguyên liệu và thao tác; MCP (Model Context Protocol) — chuẩn kết nối chung, như chuẩn hóa ổ cắm để cắm thiết bị ngoài; và RAG — sổ tay công thức, cần món nào thì tìm và mở đúng trang đó. Nhưng khi việc quá lớn (như "nấu cỗ 500 mâm trong 12 tiếng"), bàn bếp vẫn bị đầy. Lúc Agent tự dọn bàn và tóm tắt ngữ cảnh (Context Summarization), nó rất dễ nhớ nhầm hoặc bỏ sót việc — dẫn đến tình trạng code còn lỗi, tính năng chưa chạy nhưng Agent đã báo cáo "hoàn thành".

Giai đoạn 3 — Harness Engineering (quy trình vận hành cả căn bếp). Thay vì để đầu bếp làm thông 12 tiếng trên một cái bàn ngày càng bừa bộn, công việc được bóc tách từ tài liệu yêu cầu (PRD) thành một danh sách việc (Checklist dạng JSON). Mỗi "ca làm việc", Agent bắt đầu với một Context mới tinh — bàn bếp sạch — nhặt đúng một việc trong danh sách, làm xong, chạy test kiểm tra (tương đương "nếm thử"), ghi sổ rồi mới chuyển ca. Cách chia ca này giúp Agent làm việc dài hơi mà không bị loạn trí nhớ.

Context Engineering: đúng thông tin, đúng thời điểm, trong giới hạn ngữ cảnh

Ba kỹ thuật chính của Context Engineering: Tool Calling, MCP và RAG

Chỉ đọc những file liên quan thay vì đọc tất cả

MCP: chuẩn kết nối chung cho các công cụ bên ngoài

RAG: tìm và mở đúng trang công thức khi cần

Một đơn hàng quá lớn khiến ngữ cảnh quá tải

Giai đoạn Ẩn dụ quán phở Trọng tâm Điểm yếu còn lại
Prompt Engineering Viết phiếu gọi món rõ ràng Câu lệnh/yêu cầu đầu vào Làm one-shot, không tự kiểm tra, sai không tự sửa
Context Engineering Bày đúng nguyên liệu lên bàn bếp Đưa đúng thông tin, đúng lúc, trong giới hạn ngữ cảnh (Tool Calling, MCP, RAG) Việc quá lớn làm đầy ngữ cảnh; tóm tắt dễ nhớ nhầm, bỏ sót
Harness Engineering Vận hành cả căn bếp theo quy trình Chia việc, chia ca, tự kiểm thử, phân quyền và an toàn Đòi hỏi thiết kế hệ thống, không chỉ kỹ năng viết prompt

Chín thành phần trong một Harness hiện đại gồm những gì?

Lấy Claude Code làm ví dụ, bài gốc chỉ ra 9 thành phần cấu thành một Harness hiện đại:

  1. Vòng lặp chính (Main Loop): bản chất là vòng lặp "while" — đọc hướng dẫn, gọi công cụ, nhận kết quả, kiểm tra lại, lặp cho đến khi xong việc hoặc chạm giới hạn số vòng lặp (Max Turns).
  2. Quản lý ngữ cảnh (Context Compaction): khi Context đầy khoảng 80–90%, hệ thống tự động giữ lại thông tin quan trọng gần nhất, nén các bước cũ và xóa dữ liệu rác.
  3. Công cụ (Tools) và Kỹ năng (Skills): Tools là thao tác cơ bản (đọc/ghi file, chạy lệnh) như dao, thớt; Skills là bí quyết riêng của từng dự án, đóng gói trong file Markdown — khi làm đến đâu Agent mới mở file Skill tương ứng ra đọc để tiết kiệm bộ nhớ.
  4. Agent con (Sub-agents): như các phụ bếp có bàn làm việc riêng và quyền hạn giới hạn (phụ bếp chuyên tìm kiếm, phụ bếp code, phụ bếp chạy test). Làm xong chỉ gửi kết quả cuối về cho "bếp trưởng", không làm rác Context chính.
  5. Kỹ năng có sẵn (Built-in Skills): các nghiệp vụ tích hợp sẵn như đọc và sửa code, tạo Git Commit, mở Pull Request, chạy Test.
  6. Bộ nhớ phiên (Session Memory): cuốn sổ nhật ký chỉ cho phép ghi nối tiếp xuống ổ đĩa (append-only log). Nếu hệ thống sập giữa chừng, chỉ cần đọc lại (replay) từ đầu sổ là khôi phục được trạng thái đang làm dở.
  7. Lắp ráp System Prompt và Prefix Caching: hệ thống tự động gom quy tắc chung và quy tắc riêng của dự án (file CLAUDE.md, AGENTS.md). Phần hướng dẫn tĩnh luôn đặt lên đầu, phần động đặt ở dưới để tận dụng Prefix Caching, giảm mạnh chi phí và độ trễ qua hàng trăm vòng lặp.
  8. Điểm móc mở rộng (Hooks): Pre-tool Hook kiểm duyệt, chặn hoặc sửa lệnh trước khi chạy; Post-tool Hook ghi log, kiểm toán sau khi chạy. Nhờ Hooks, doanh nghiệp gắn được quy tắc bảo mật mà không cần sửa lõi Harness.
  9. Phân quyền và An toàn (Permissions): chia cấp độ từ Chỉ xem (Read-only), Ghi trong dự án (Workspace Write) đến Toàn quyền (Full Access). Những lệnh nhạy cảm như xóa dữ liệu hay can thiệp hệ thống bị chặn lại chờ con người xác nhận.

Agent có Harness tốt viết code tốt hơn và nhận việc phức tạp hơn

Framework và Harness khác nhau ở đâu?

Hiểu ngắn gọn: Framework như LangChain hay AutoGen là bộ đồ nghề rời — các thư viện để lập trình viên tự lắp ráp "căn bếp" của riêng mình. Còn Harness như Claude Code, Cursor hay Codex là căn bếp đã xây sẵn quy trình: công cụ, vòng lặp, quản lý ngữ cảnh và phân quyền đã được tích hợp, Agent (và người dùng) chỉ việc bước vào vận hành. Trong thực tế, nhiều đội ngũ không tự xây Harness từ đầu mà tùy biến một Harness có sẵn cho đúng quy trình của dự án.

Năm nguyên tắc thực chiến khi làm việc với AI Agent là gì?

  1. Đừng vội đổi Model khi kết quả kém. Cùng một đầu bếp, căn bếp lộn xộn sẽ cho món tệ hơn căn bếp ngăn nắp. Trước khi đổ lỗi cho Model, hãy xem đã cấp đủ thông tin và công cụ cho Agent chưa.
  2. Tối ưu từ những thứ có sẵn. Không cần tự code lại một AI Agent từ đầu. Viết file CLAUDE.md, AGENTS.md rõ ràng, tạo Skills chuẩn chỉnh và gắn Hooks cho dự án — đó chính là đang làm Harness Engineering.
  3. Chặn lỗi bằng cơ chế, đừng chỉ dặn bằng lời. Dặn đi dặn lại trong Prompt vẫn có lúc AI quên. Hãy dùng cơ chế cứng như phân quyền thư mục, Pre-tool Hook hoặc bộ Unit Test bắt buộc để khóa lỗi.
  4. Luôn tạo vòng lặp phản hồi (Feedback Loop). Đầu bếp phải nếm thử mới biết mặn nhạt. Hãy cho Agent công cụ chạy Test, đọc log lỗi hoặc chụp màn hình giao diện để nó tự biết đúng sai và tự sửa.
  5. Dùng môi trường cô lập (Sandbox) khi cần tự chủ cao. Nếu muốn Agent tự chạy hàng chục bước mà không phải xin phép liên tục, hãy đặt nó trong Docker Container hoặc máy ảo giới hạn sẵn tài nguyên, để bảo đảm an toàn tuyệt đối cho hệ thống chính.

Câu hỏi thường gặp

Harness Engineering khác Prompt Engineering như thế nào? Prompt Engineering tối ưu câu lệnh đầu vào cho một lần gọi; Harness Engineering thiết kế toàn bộ môi trường vận hành — công cụ, ngữ cảnh, quy trình chia việc, kiểm thử, bộ nhớ và phân quyền — để Agent làm được những việc dài và phức tạp một cách đáng tin cậy.

Context Engineering gồm những kỹ thuật nào? Ba kỹ thuật chính: Tool Calling (Agent tự gọi công cụ để lấy thêm thông tin và thao tác), MCP (chuẩn kết nối chung với hệ thống bên ngoài) và RAG (tra cứu tài liệu, chỉ đưa đúng phần liên quan vào ngữ cảnh).

Người mới bắt đầu làm Harness Engineering thì nên bắt đầu từ đâu? Từ những thứ có sẵn: viết file hướng dẫn dự án (CLAUDE.md, AGENTS.md) thật rõ ràng, đóng gói các quy trình lặp lại thành Skills, gắn Hooks kiểm soát lệnh nhạy cảm, và thiết lập để Agent luôn chạy được test sau mỗi việc. Không cần tự xây Agent từ đầu.

Sub-agent là gì và có lợi ích gì? Sub-agent là các Agent con có ngữ cảnh và quyền hạn riêng, chuyên một việc (tìm kiếm, viết code, chạy test). Chúng chỉ trả kết quả cuối cùng về cho Agent chính, giúp Context chính không bị "rác" và mỗi việc được làm trong một không gian tập trung.

Vì sao không nên vội đổi sang Model mạnh hơn khi Agent làm việc kém? Vì phần lớn kết quả kém đến từ Harness chứ không phải Model: thiếu thông tin, thiếu công cụ, không có test để tự kiểm tra, hoặc ngữ cảnh bị quá tải. Tối ưu các yếu tố này thường cải thiện kết quả rõ rệt hơn việc đổi Model, lại ít tốn kém hơn.


Nguồn tham khảo: bài viết "Giải mã Harness Engineering: khi bài toán AI dịch chuyển từ viết Prompt sang kiến trúc vận hành" của tác giả Lữ Minh Khương trong nhóm VGU Tech Alumni trên Facebook, đăng ngày 05/11/2026. Nội dung gốc dựa trên video phân tích của Việt Nguyễn AI. Các số liệu về tăng trưởng cửa sổ ngữ cảnh được dẫn theo slide của tác giả.