Harness engineering qua ví dụ quán phở: 9 thành phần bên trong harness
Agent = model + harness: từ prompt, context đến harness engineering qua ví dụ quán phở, 9 thành phần của harness và 5 lưu ý khi dùng hoặc tự xây agent.
✓ Đã duyệt độc lập · cập nhật 26/10/2026 · 39 min
1. Agent = Model + Harness
Việt Nguyễn mở video bằng một nhận xét: trong mấy tháng gần đây, nếu bạn hay theo dõi tin tức về AI, chắc hẳn bạn đã nghe rất nhiều đến những cụm từ như agent harness hay harness engineering. Theo anh (video đăng ngày 26/10/2026), OpenAI nói về nó, Anthropic nói về nó, Google nói về nó, và tất cả các ông lớn đều nói về nó.
Thế nhưng, theo Việt Nguyễn (video đăng ngày 26/10/2026), đây đồng thời cũng là một thuật ngữ mà ngay cả những người đang trực tiếp xây dựng AI agent cũng không phải ai cũng giải thích được một cách rõ ràng, rạch ròi. Lời giải thích phổ biến mà bạn thường nghe là: harness là môi trường dành cho AI agent. Nhưng với lời giải thích này, vẫn có rất nhiều người không thực sự hiểu harness engineering là gì, và nó khác gì so với những thuật ngữ như prompt engineering hay context engineering. Vì vậy, trong video này anh muốn giải thích một cách đơn giản, dễ hiểu, để người xem có thể thực sự hiểu harness engineering là gì.
Trước hết, anh đưa ra một công thức đơn giản để ghi nhớ: agent bằng model cộng với harness. Điều đó có nghĩa là các LLM, ví dụ như các phiên bản GPT, Gemini, Haiku, Opus, Sonnet, chỉ là bộ não mà thôi. Còn harness là tất cả những gì bao quanh bộ não đó để khiến nó có thể thực sự làm việc được (theo video đăng ngày 26/10/2026).

Nội dung của video gồm ba phần chính. Phần đầu tiên kể lại chặng đường phát triển của AI engineering, từ prompt engineering đến context engineering và cho đến bây giờ là harness engineering, cùng với lý do vì sao ngành AI lại phát triển theo con đường này. Phần thứ hai mổ xẻ từng thành phần bên trong harness để bạn thấy được từng cái hoạt động như thế nào. Phần thứ ba, phần cuối cùng, bổ sung một vài điều quan trọng mà bạn cần biết nếu muốn sử dụng AI agent, hoặc thậm chí muốn tự xây dựng AI agent một cách hiệu quả (theo video đăng ngày 26/10/2026).
2. Quán phở và anh đầu bếp thiên tài nhưng đãng trí
Để dễ hình dung, suốt cả video Việt Nguyễn dùng một ví dụ xuyên suốt: việc mở một quán phở. Bạn vừa thuê được một anh đầu bếp rất giỏi. Anh ấy đã đọc hết mọi loại sách nấu ăn trên đời và biết nấu gần như mọi món. Anh đầu bếp này chính là model, tức là các LLM, ví dụ như các phiên bản GPT, Gemini, Opus hay Sonnet (theo video đăng ngày 26/10/2026).
Tuy nhiên, anh đầu bếp này có hai nhược điểm rất lớn. Thứ nhất, anh ấy chỉ biết làm đúng những gì được ghi trên phiếu gọi món đặt trước mặt. Phiếu gọi món đó chính là prompt. Thứ hai, anh ấy không có trí nhớ. Anh ấy chỉ biết những gì đang nằm trên mặt bàn bếp của mình; thứ gì bị dẹp ra khỏi bàn là anh ấy quên sạch. Mặt bàn bếp đó chính là context window, cửa sổ ngữ cảnh của model. Bàn càng to thì bày được càng nhiều thứ, nhưng cái bàn nào cũng có giới hạn của nó (theo video đăng ngày 26/10/2026).
Câu hỏi đặt ra là: làm sao để anh đầu bếp thiên tài nhưng đãng trí này có thể vận hành được cả một quán phở, phục vụ hàng trăm khách mỗi ngày mà không có sơ suất? Theo Việt Nguyễn (video đăng ngày 26/10/2026), ngành AI đã trả lời câu hỏi này qua ba giai đoạn phát triển: prompt engineering, context engineering và harness engineering.

3. Giai đoạn 1: Prompt engineering và kiểu trả lời một phát
Quay lại năm 2022, khi ChatGPT vừa mới ra mắt. Theo Việt Nguyễn (video đăng ngày 26/10/2026), thời đó context window của model chỉ rơi vào khoảng 4.000 token, tương đương với vài trang văn bản. Trong ví dụ của chúng ta, mặt bàn bếp của anh đầu bếp lúc này bé xíu, chỉ vừa để đặt vài tờ phiếu gọi món và vài thứ lặt vặt khác. Với một cái bàn bếp như vậy, việc duy nhất chúng ta có thể làm là viết tờ phiếu gọi món thật khéo. Đó chính là prompt engineering.
Ví dụ, nếu bạn chỉ ghi "một bát phở", anh đầu bếp sẽ nấu một bát phở chung chung, có thể không hợp ý khách. Còn nếu bạn ghi "phở bò tái, nhiều hành, ít bánh, nước dùng trong, khách không ăn cay", bát phở sẽ ra đúng ý hơn rất nhiều. Trong thế giới AI cũng vậy: đây là thời điểm người ta học cách giao vai trò cho model, đưa ví dụ mẫu và viết yêu cầu thật rõ ràng. Câu hỏi trung tâm của cả người dùng lẫn người phát triển trong giai đoạn này là: mình đang viết prompt như thế nào (theo video đăng ngày 26/10/2026)?
Tuy nhiên, theo anh (video đăng ngày 26/10/2026), prompt engineering có một giới hạn rất lớn: model chỉ trả lời một phát là xong. Người ta gọi đây là one-shot. Giống như anh đầu bếp đọc phiếu, nấu một lần, bưng ra, rồi dừng hẳn. Anh ta không tự biết đi lấy thêm nguyên liệu, không nếm thử, không sửa lại. Trên màn hình lúc này là sơ đồ "One-shot Prompting": một cặp Question và Answer làm ví dụ, một Question làm đầu vào, và một Answer duy nhất đi ra.
Với cái bàn bé xíu và kiểu làm việc một phát này, người ta nhận ra rằng chỉ biết viết prompt hay thôi là không đủ để làm những việc lớn, những việc phức tạp. Câu hỏi bắt đầu xuất hiện là: làm sao để tận dụng cái bàn bé xíu này một cách thông minh hơn, làm được nhiều việc hơn mà lại tốn ít chỗ hơn? Và thế là, sau đó, người ta bắt đầu chuyển dịch dần từ prompt engineering sang context engineering. Màn hình chiếu một slide tiếng Anh có tiêu đề "Context engineering is the new prompt engineering", đặt prompt engineering kiểu cũ (một câu prompt vào hộp LLM, ra một câu trả lời khéo) bên cạnh context engineering kiểu mới (LLM ở giữa, nhận vào kho kiến thức, dữ liệu thời gian thực, công cụ và API bên ngoài, lịch sử và sở thích người dùng) (theo video đăng ngày 26/10/2026).
4. Giai đoạn 2: Context engineering với tool calling, MCP và RAG
Nếu prompt engineering hỏi "nên viết phiếu gọi món như thế nào", thì context engineering hỏi "nên bày những gì lên bàn bếp". Vì sức chứa của bàn bếp là có hạn, nên mỗi thứ đặt lên đó phải thật đáng giá. Chúng ta không thể bê cả cái kho lên bàn; đưa đúng thứ cần, vào đúng lúc cần, mới là điều quan trọng nhất. Để làm được điều này, theo Việt Nguyễn (video đăng ngày 26/10/2026), người ta dùng ba kỹ thuật chính: tool calling, MCP và RAG.

Kỹ thuật thứ nhất là tool calling, tiếng Việt có thể tạm dịch là gọi công cụ. Thay vì bê cả kho nguyên liệu lên bàn, anh đầu bếp được phép tự đi vào kho, lấy đúng mấy lạng thịt bò và bó hành cần cho món đang nấu. Với AI cũng vậy: model tự đi tìm trong dự án và chỉ đọc đúng những file có liên quan đến công việc nó đang làm. Tool calling cũng cho phép model thực hiện hành động, chứ không chỉ suy luận hay nói suông (cách Việt Nguyễn mô tả trong video đăng ngày 26/10/2026).
Kỹ thuật thứ hai là MCP, viết tắt của Model Context Protocol. Hãy tưởng tượng MCP giống như cái ổ cắm điện chuẩn trong bếp. Các hãng làm ra thiết bị nhà bếp, ví dụ máy xay thịt hay nồi hầm, chỉ cần làm đúng chuẩn ổ cắm là có thể cắm vào ổ điện rồi dùng ngay. Theo Việt Nguyễn (video đăng ngày 26/10/2026), MCP giúp các công ty gắn thêm tính năng cũng như kết nối dịch vụ của họ với các LLM. Slide đi kèm đặt "Model Context Protocol (Open standard)" ở giữa, bên trái là Models/LLMs (Anthropic Claude, OpenAI), bên phải là Tools & Services (REST, Apps, Storage).
Kỹ thuật thứ ba là RAG, giúp tra cứu tài liệu bên ngoài khi cần. Nó giống như trong quán phở có một quyển sổ tổng hợp tất cả công thức nấu ăn. Khi khách gọi một món lạ, anh đầu bếp lật đúng trang cần đọc chứ không cần học thuộc cả cuốn sách. Theo Việt Nguyễn (video đăng ngày 26/10/2026), RAG kết nối model với cơ sở dữ liệu riêng để dữ liệu luôn sẵn sàng bất cứ khi nào cần đến.
Nhờ những kỹ thuật này, theo anh, một thế hệ agent mới ra đời, đặc biệt là các agent viết code như Cursor, Windsurf, Cline, Roo Code, Claude Code hay Aider (logo của sáu công cụ này hiện trên màn hình). Cùng lúc đó, bản thân các model cũng ngày càng tốt lên, và context window cũng lớn dần: từ vài nghìn token lên hàng trăm nghìn, rồi tính đến video đăng ngày 26/10/2026 là hàng triệu token. Điều đó có nghĩa là bàn bếp của anh đầu bếp đã to ra rất nhiều. Người dùng bắt đầu giao những việc lớn hơn cho agent, như làm cả một tính năng mới hay sửa cả một loạt lỗi. Context engineering giúp agent tự nạp đúng ngữ cảnh, tự hành động, nên làm được những việc ngày càng phức tạp hơn. Slide lúc này có tiêu đề "Agent viết code tốt hơn, nhận việc phức tạp hơn", với ba nhãn: tự tìm ngữ cảnh, dùng công cụ, xử lý việc lớn hơn.
5. Khi việc quá lớn: tóm tắt ngữ cảnh, sub-agent và swarm
Nhưng rồi, theo Việt Nguyễn (video đăng ngày 26/10/2026), cách làm này cũng chạm trần, cũng có giới hạn của nó. Hãy tưởng tượng bạn giao cho anh đầu bếp một đơn hàng khổng lồ: nấu cỗ cho một đám cưới 500 khách. Trong thế giới lập trình, việc này giống như bảo agent "hãy clone lại toàn bộ một trang web". Nếu chỉ dùng prompt engineering, bạn sẽ nhận được một trang web rất sơ sài, vì model chỉ trả lời một phát. Còn nếu dùng context engineering, kết quả sẽ khá hơn nhưng vẫn chưa ổn: trang web làm dở dang, có nút bấm không hoạt động, nhiều tính năng chưa được kiểm tra. Giống như mâm cỗ cưới thiếu món, có món chưa ai nếm thử đã bưng ra.
Vấn đề ở đây, theo anh (video đăng ngày 26/10/2026), không phải do context engineering tệ, mà do công việc quá lớn, quá phức tạp. Có một vấn đề rất lớn gọi là tóm tắt ngữ cảnh. Giả sử việc nấu cỗ kéo dài 12 tiếng. Bàn bếp dù to đến đâu rồi cũng sẽ đầy. Khi bàn bếp đầy, anh đầu bếp phải dọn bàn: anh ghi tóm tắt những gì đã làm vào một mẩu giấy nhỏ, dọn hết phần còn lại, rồi làm tiếp. Hãy nhớ rằng anh đầu bếp này không có trí nhớ, nên sau khi dọn bàn, anh ấy chỉ biết những gì ghi trên mẩu giấy đó mà thôi.
Nói cách khác, agent bị giới hạn bởi chính khả năng tự tóm tắt công việc của nó. Nếu tóm tắt sai, hậu quả sẽ khôn lường. Theo Việt Nguyễn (video đăng ngày 26/10/2026), có lúc agent tóm tắt xong rồi tưởng là công việc đã hoàn thành; có lúc nó đơn giản hóa quá mức và cho rằng một số tính năng đã làm xong, đã kiểm tra xong, trong khi thực tế thì chưa. Đó là lý do vì sao nhiều khi dùng AI, bạn sẽ thấy có những việc nó làm dở dang, thậm chí có những việc nó còn chưa đọc tới, nhưng agent vẫn báo là mọi thứ đã xong. Cách tự dọn bàn bếp này khiến agent trông như làm được việc dài hơi hơn, nhưng thật ra hiệu quả không cao.
Các slide minh họa đoạn này (video đăng ngày 26/10/2026) đi theo đúng câu chuyện: "Nấu cỗ 12 tiếng, bàn bếp cũng sẽ đầy" (công việc kéo dài, ngữ cảnh tích lũy, bàn bếp đầy), "Dọn bàn xong, chỉ còn mẩu giấy tóm tắt" (ghi tóm tắt, dọn phần còn lại, làm tiếp từ mẩu giấy), "Tóm tắt có thể mất chi tiết" (kết quả sai yêu cầu) và "Tưởng đã xong, nhưng vẫn còn lỗi".
Lúc này người ta mới thử nhiều cách để vượt qua giới hạn đó. Cách thứ nhất là dùng sub-agent. Nó giống như đầu bếp chính bây giờ thuê thêm nhiều phụ bếp; mỗi phụ bếp có một bàn bếp riêng, và context được quản lý theo kiểu phân tầng. Cách thứ hai là dùng cả một bầy agent, người ta gọi là swarm. Với cách này, người ta dùng nhiều agent cùng một lúc, mỗi agent có một context window riêng. Nó cũng giống như trong phòng bếp bây giờ có nhiều đầu bếp, nhưng khác biệt giữa cách thứ hai và cách thứ nhất là trong swarm, vai trò của những người đầu bếp này ngang hàng nhau. Và theo Việt Nguyễn (video đăng ngày 26/10/2026), chính những thử nghiệm này đã dẫn cả ngành AI đến giai đoạn thứ ba.

6. Giai đoạn 3: Harness engineering, chia việc thành nhiều ca
Thật ra, theo Việt Nguyễn (video đăng ngày 26/10/2026), harness engineering đã tồn tại từ trước khi có cái tên "harness". Khi thử nghiệm với sub-agent và swarm, người ta dần nhận ra rằng chúng ta cần làm chủ ba thứ cùng một lúc:
- Lớp điều phối tốt hơn: ai làm gì, làm theo thứ tự nào. Trong quán phở, đó là quy trình vận hành và người quản lý bếp.
- Môi trường làm việc tốt hơn: một căn bếp cần có đầy đủ dụng cụ, và các dụng cụ đó cần được sắp xếp hợp lý.
- Quản lý ngữ cảnh tốt hơn: chúng ta cần quyết định bày cái gì lên bàn và dọn những cái gì đi.
Ghép cả ba thứ này lại, chúng ta có harness. Trong tiếng Anh, harness nghĩa gốc là bộ yên cương đóng cho ngựa, để sức mạnh của con ngựa được dẫn vào đúng việc, ví dụ như kéo xe. Màn hình lúc này chiếu ảnh một chú ngựa đang đeo bộ yên cương (theo video đăng ngày 26/10/2026).
Theo Việt Nguyễn (video đăng ngày 26/10/2026), thuật ngữ này được dùng phổ biến bắt đầu từ đầu năm 2026. Có nhiều người bảo đây chỉ là một từ theo trend, nhưng theo anh, nó thực sự đang khái quát hóa một sự thay đổi rất lớn đang diễn ra trong ngành AI. Và một trong những thay đổi quan trọng nhất của harness engineering là ý tưởng về vòng lặp.
Thay vì để một anh đầu bếp làm liền 12 tiếng với cái bàn ngày càng bừa bộn, chúng ta chia việc thành nhiều ca. Đầu mỗi ca, bàn bếp được dọn sạch hoàn toàn, tức là agent có một context mới tinh. Nhưng mọi ca đều phải tuân thủ nghiêm ngặt các quy định về cách bắt đầu cũng như cách kết thúc. Cụ thể, quy trình thường như sau (cách Việt Nguyễn mô tả trong video đăng ngày 26/10/2026):
- Đầu tiên, người ta viết một bản yêu cầu thật đầy đủ, gọi là Product Requirements Document, viết tắt là PRD. Nó giống như bản thực đơn chi tiết của tiệc cưới.
- Từ đó, người ta chia thành một danh sách việc cụ thể trong một file JSON, giống như tờ checklist dán trên tường bếp: món 1 là nộm hoa chuối, món 2 là gà luộc, món 3 là xôi gấc.
- Rồi vòng lặp bắt đầu. Mỗi ca làm việc, anh đầu bếp bắt đầu với một cái bàn sạch. Anh ấy đọc checklist, chọn đúng một món chưa làm, nấu món đó, rồi nếm thử, giống như chạy test.
- Sau đó anh ghi sổ lại là đã làm gì và đánh dấu món đó là đã xong. Như vậy là hết một ca.
- Ca làm việc sau lặp lại đúng như vậy, cho đến khi mọi món trong checklist đều được đánh dấu.
Vì mỗi ca chỉ làm một món duy nhất với một cái bàn sạch, nên anh đầu bếp sẽ không bao giờ bị ngộp vì có quá nhiều việc nữa. Và vì mọi thứ đều được ghi lại cẩn thận trên checklist và sổ sách, nên theo Việt Nguyễn (video đăng ngày 26/10/2026), sẽ không có chuyện agent tưởng đã làm xong một task chỉ vì bước tóm tắt ngữ cảnh bị sai.

Theo Việt Nguyễn (video đăng ngày 26/10/2026), ví dụ nổi tiếng nhất của cách làm này là Ralph, một kỹ thuật từng gây sốt trong giới làm AI vì hiệu quả cao. Nhưng điều anh thấy đáng nói hơn cả là cơ chế bên dưới của nó cực kỳ đơn giản: bắt đầu bằng PRD, chuyển thành JSON, rồi lặp đi lặp lại từng tính năng cho đến khi xong. Mã nguồn của nó rất nhỏ. Bản demo harness của Anthropic cũng như vậy, theo anh, rất nhẹ và đơn giản.
7. Ba vòng tròn lồng nhau: prompt, context, harness
Một điều Việt Nguyễn muốn làm rõ ở đây: harness engineering không khai tử context engineering, và càng không khai tử prompt engineering. Nếu bạn mở mã nguồn của một AI coding agent, ví dụ như Cline, bạn sẽ thấy system prompt của nó vẫn là một đoạn prompt được viết rất công phu. Màn hình chiếu phần đầu system prompt đó (theo video đăng ngày 26/10/2026):
You are Cline, a highly skilled software engineer with extensive knowledge in many programm languages, frameworks, design patterns, and best practices. ==== TOOL USE You have access to a set of tools that are executed upon the user's approval. You can use c message, and will receive the result of that tool use in the user's response. You use tools to accomplish a given task, with each tool use informed by the result of the previous tool # Tool Use Formatting Tool use is formatted using XML-style tags. The tool name is enclosed in opening and closin each parameter is similarly enclosed within its own set of tags. Here's the structure: <tool*name> <parameter1_name>value1</parameter1_name> <parameter2_name>value2</parameter2_name> ... </tool_name> For example:
(Các dòng bị cắt ở mép phải như trên màn hình.) Theo Việt Nguyễn (video đăng ngày 26/10/2026), prompt engineering vẫn được dùng, chỉ là giờ đây nó trở thành một nhánh nhỏ trong cả hệ thống. Bạn hãy hình dung ba vòng tròn lồng nhau:
- Vòng trong cùng là prompt: nó nhắc agent biết mình là ai, ví dụ "bạn là đầu bếp chính của quán phở" (theo video đăng ngày 26/10/2026).
- Vòng ở giữa là context: nó quyết định ta sẽ bày cái gì lên bàn bếp.
- Vòng ngoài cùng là harness: nó điều khiển hoạt động của cả quán phở, với quy trình đưa anh đầu bếp đi qua từng bước công việc (theo video đăng ngày 26/10/2026).

Điều đó có nghĩa là: prompt hỏi "viết phiếu gọi món như thế nào"; context hỏi "nên bày gì lên bàn bếp"; còn harness hỏi "cả quán ăn nên vận hành như thế nào". Theo Việt Nguyễn (video đăng ngày 26/10/2026), hầu hết các AI coding agent lúc đó đều đã tích hợp sẵn một lớp harness bên trong, nhưng mỗi bên thiết kế theo một kiểu khác nhau. Đó là lý do mà, theo anh, công ty nào cũng nói về harness.
8. Harness khác framework ở đâu
Bây giờ đến phần thứ hai: bên trong một harness có những gì. Nói một cách đơn giản nhất, theo Việt Nguyễn (video đăng ngày 26/10/2026), harness là một kiến trúc giúp biến một model thành một agent. Model, hay LLM, về bản chất chỉ là một cỗ máy sinh văn bản: bạn hỏi, nó trả lời, rồi dừng lại. Giống như anh đầu bếp rất giỏi nhưng chỉ đứng một chỗ và đọc công thức bằng miệng. Harness là thứ cho anh ấy khả năng hành động, nhìn thấy kết quả việc mình làm, và tiếp tục làm cho đến khi món ăn thực sự hoàn thành. Hai slide minh họa: "Model trả lời một lần, rồi dừng" (bạn hỏi, model trả lời, rồi dừng) và "Harness giúp hành động đến khi hoàn thành" (hành động, xem kết quả, điều chỉnh, hoàn thành).
Theo Việt Nguyễn (video đăng ngày 26/10/2026), ví dụ rõ nhất về harness là các công cụ AI lập trình như Claude Code, Codex, Cursor hay Windsurf. Mỗi công cụ đều bắt đầu từ cùng một bài toán: làm sao để model viết và sửa code trên một dự án thật. Và điều anh thấy thú vị là dù do các công ty khác nhau làm, chúng đều đã dần hội tụ về những kiến trúc rất giống nhau. Slide "Cùng bài toán, kiến trúc dần hội tụ" vẽ các công cụ khác nhau, cùng làm việc trên dự án thật, rồi đi tới một kiến trúc tương tự.
Trước khi đi vào chi tiết, anh phân biệt harness với một thứ rất hay bị nhầm lẫn: framework. Nếu bạn quan tâm đến AI, chắc hẳn bạn đã từng ít nhất một lần nghe đến những cái tên như LangChain, LangGraph, CrewAI hay AutoGen (slide còn có thêm LlamaIndex và Microsoft Semantic Kernel). Theo Việt Nguyễn (video đăng ngày 26/10/2026), chúng đều là framework chứ không phải harness.
Framework giống như một bộ đồ để chúng ta tự lắp ráp căn bếp. Nó đưa cho chúng ta từng món rời rạc: chỗ này là bếp, chỗ kia là tủ lạnh, cái này là kệ công thức. Bạn, người kiến trúc sư, phải tự lắp chúng lại với nhau. Theo anh (video đăng ngày 26/10/2026), framework được làm ra để con người tự lắp ráp nên một AI agent.
Còn harness đi theo hướng ngược lại: không có bước lắp ráp nào cả. Về bản chất, harness giống như một nhà hàng mà chìa khóa được trao tận tay cho chúng ta. Bếp, dụng cụ, quy trình hay nội quy đều đã được thiết lập sẵn. Về mặt kỹ thuật, theo Việt Nguyễn (video đăng ngày 26/10/2026), nó giống như một vòng lặp while cộng với một danh mục các công cụ và một lớp phân quyền, tất cả đều được kết nối sẵn. Harness được làm ra để chính agent làm việc: bạn chỉ cần đưa ra mục tiêu, harness sẽ lo phần còn lại (slide "Bạn đưa mục tiêu, harness lo phần còn lại": mục tiêu, vòng lặp while, công cụ và phân quyền, kết quả).
Tóm lại, framework giống như bạn phải tự xây bếp, còn harness giống như bếp đã được xây sẵn rồi, bạn chỉ việc vào vận hành thôi (theo video đăng ngày 26/10/2026).

9. Thành phần 1: vòng lặp chính
Vậy cụ thể bên trong harness có những gì? Theo Việt Nguyễn, có 9 thành phần chính bạn cần biết. Như anh đã nói, mỗi công ty, mỗi bên sẽ có cách thiết kế harness khác nhau. Trong phần còn lại của video, anh lấy ví dụ về harness của Anthropic, công ty đứng sau Claude Code, vì theo anh (video đăng ngày 26/10/2026), Claude Code là một trong số những AI coding agent tốt nhất và harness của họ cũng được đánh giá là một trong số những harness tốt nhất thế giới vào thời điểm đó.
Chín thành phần chính gồm: vòng lặp chính, quản lý ngữ cảnh, công cụ và kỹ năng, agent con, kỹ năng có sẵn, bộ nhớ phiên làm việc, lắp ráp system prompt, điểm móc mở rộng (hook), và phân quyền cùng an toàn. Slide "Chín thành phần chính của harness" ghi: Loop · Context · Tools & Skills · Sub-agent · Skill có sẵn · Memory · System prompt · Hooks · Phân quyền (theo video đăng ngày 26/10/2026).
Thành phần đầu tiên, và cũng là nền móng cho mọi harness, là vòng lặp. Nghe thì cao siêu, nhưng theo Việt Nguyễn (video đăng ngày 26/10/2026), bản chất nó chỉ là một vòng lặp while trong code mà thôi. Hãy xem cách anh đầu bếp làm một bát phở trong quán:
- Anh ấy đọc phiếu gọi món và nội quy bếp, rồi quyết định cần làm gì, ví dụ thái thịt mỏng.
- Anh ấy bắt đầu thái thịt, rồi nhìn lại kết quả xem thịt đã thái đủ mỏng chưa. Kết quả đó được đặt lại lên bàn.
- Rồi anh quay lại bước đầu tiên, kiểm tra xem giờ cần làm gì tiếp, ví dụ trụng bánh phở. Anh làm bước đó, rồi lại nhìn kết quả.
- Bước tiếp theo là chan nước dùng, rồi nếm thử, xem có thiếu gì không; thiếu muối thì nêm thêm.
Với AI agent cũng y hệt như vậy (theo video đăng ngày 26/10/2026): model đọc system prompt, quyết định gọi công cụ nào; harness chạy công cụ đó, lấy kết quả đưa ngược lại vào context; rồi lặp đi lặp lại như vậy.

Theo Việt Nguyễn (video đăng ngày 26/10/2026), vòng lặp dừng lại ở một trong hai trường hợp. Một là khi model trả về một câu trả lời bằng chữ mà không gọi thêm công cụ nào, tức là anh đầu bếp hô "món xong rồi". Hai là khi chạm mức giới hạn số vòng, giống như nội quy của quán: nấu lại quá 20 lần mà vẫn chưa được thì dừng, báo cho quản lý. Giới hạn này nhằm đảm bảo agent sẽ không bao giờ chạy mãi mà không kết thúc. Bạn cứ hình dung vòng lặp này chính là động cơ chính vận hành cả quán ăn; 8 thành phần còn lại đều xoay quanh và phục vụ cho nó.
Vừa rồi là ví dụ với model đọc văn bản. Nhưng theo anh (video đăng ngày 26/10/2026), với những model đa phương thức, có thể đọc cả văn bản và ảnh, thì vòng lặp cũng y như vậy.
10. Thành phần 2: quản lý ngữ cảnh và compaction
Thành phần thứ hai là quản lý ngữ cảnh. Ở mỗi vòng lặp, mặt bàn bếp ngày càng đầy: thêm phiếu gọi món mới, thêm kết quả dùng dụng cụ, thêm ghi chú. Sớm muộn gì cái bàn cũng sẽ đầy, tức là chạm tới giới hạn context của model. Lúc này, theo Việt Nguyễn (video đăng ngày 26/10/2026), harness phải quyết định ba việc: cái gì cần giữ nguyên, cái gì có thể tóm tắt lại, và cái gì có thể vứt đi.
Anh lấy Claude Code làm ví dụ. Theo Việt Nguyễn (video đăng ngày 26/10/2026), trước đây bàn bếp của Claude Code rộng khoảng 200.000 token; sau đó, với model Opus, con số này đã tăng lên thành 1 triệu token. Khi bàn đầy tới một ngưỡng nào đó, ví dụ 80 hoặc 90%, harness sẽ kích hoạt một bước gọi là compaction, tức là nén ngữ cảnh. Những tin nhắn quan trọng nhất hay gần nhất được giữ nguyên, còn những thứ còn lại sẽ bị nén lại.

Trong quán phở, điều này giống như dọn bàn giữa giờ cao điểm. Ba phiếu gọi món mới nhất vẫn được để nguyên trên bàn. Mười phiếu cũ đã xong được gộp lại thành một dòng ghi chú: "đã xong 10 bát, bàn số 5 dặn không hành". Còn vỏ hành, giấy nháp thì bỏ thẳng vào thùng rác. Slide "Compaction" minh họa ba bước: đạt ngưỡng compaction, giữ mới tóm tắt cũ, tiếp tục với context gọn; slide sau đó, "Dọn bàn bếp có chọn lọc", chia thành giữ nguyên, tóm tắt, loại bỏ (theo video đăng ngày 26/10/2026).
Theo Việt Nguyễn (video đăng ngày 26/10/2026), đây là một bước vô cùng quan trọng, và có thể gây hậu quả rất tệ nếu làm không tốt. Ví dụ, ở bước gộp 10 phiếu cũ lại, chẳng may chúng ta quên dòng "bàn số 5 dặn không hành", thì khách sẽ nhận được một bát phở đầy hành. Slide "Mất ghi chú, làm sai bát phở" vẽ đúng cảnh đó: dòng "Bàn số 5: không hành" bị bỏ vào thùng rác, bản tóm tắt thiếu lời dặn, và bàn số 5 nhận phở đầy hành. Do đó, theo anh, quản lý ngữ cảnh phải được thiết kế một cách vô cùng cẩn thận.
11. Thành phần 3: tools, skills và registry
Thành phần thứ ba gồm hai lớp: công cụ và kỹ năng. Tools, hay công cụ, là những thao tác cơ bản nhất: đọc một file, ghi một file, chạy một lệnh, tìm kiếm trong code. Trong bếp, đó là con dao, cái thớt, cái nồi. Quán phở nào cũng phải có những công cụ này, quán cơm hay quán bún cũng vậy. Theo Việt Nguyễn (video đăng ngày 26/10/2026), công cụ mang tính chất phổ quát.
Skills, hay kỹ năng, là một lớp nằm phía trên công cụ. Theo anh (video đăng ngày 26/10/2026), đây là nơi kiến thức riêng của tổ chức được đóng gói lại, thường dưới dạng các file Markdown. Trong quán phở, skills chính là ngăn kéo công thức gia truyền: cách ninh nước dùng 12 tiếng, tỷ lệ quế hồi riêng của quán, cách bày bát phở theo chuẩn của quán. Dùng cùng một con dao, cùng một cái nồi, nhưng mỗi quán có một bí quyết khác nhau. Bạn có thể nhớ đơn giản: tools thì quán nào cũng giống nhau, còn skills thì mỗi quán một khác.
Để quản lý tất cả, theo Việt Nguyễn (video đăng ngày 26/10/2026), cần có một bảng danh mục, người ta gọi đó là registry. Bạn cứ tưởng tượng nó giống như tấm bảng treo trên tường bếp, ghi rõ quán có những công cụ gì, mỗi công cụ cần quyền gì mới được dùng (ví dụ con dao này thì chỉ bếp trưởng được dùng, còn các con dao khác thì ai cũng dùng được), và muốn dùng những công cụ này thì phải lấy ở đâu.
Về mặt kỹ thuật, theo Việt Nguyễn (video đăng ngày 26/10/2026), mỗi công cụ chỉ cần được mô tả bằng bốn thứ: tên, quyền cần có, hàm xử lý và một dòng mô tả. Bản danh sách rút gọn, gồm tên, quyền và mô tả, sẽ được gửi cho model để nó biết trong bếp có những gì.

Theo Việt Nguyễn, có một điểm khá thú vị: cách skill được đăng ký cũng khá tương đồng với tool. Theo anh (video đăng ngày 26/10/2026), skill thực chất chỉ là một công cụ mà khi được gọi thì nó mở một file Markdown ra đọc. Nó giống như anh đầu bếp chỉ mở quyển sổ tay công thức ra khi cần nấu món đó, chứ không bày tất cả mọi công thức lên bàn từ đầu. Nhờ vậy, bàn bếp không bị chiếm chỗ một cách quá đáng. Slide "Chỉ nạp skill khi cần dùng" vẽ ba bước: xem danh mục, chọn skill phù hợp, đọc file Markdown.
12. Thành phần 4 và 5: sub-agent và các skill có sẵn
Thành phần thứ tư là sub-agent, hay các agent con. Đến một lúc nào đó, khi quán ăn phải làm những món quá phức tạp, hoặc cần nấu nhiều món song song, thì một anh đầu bếp với một cái bàn bếp là không đủ. Lúc đó, theo Việt Nguyễn (video đăng ngày 26/10/2026), harness sẽ tạo ra các sub-agent để làm các việc tách biệt, giống như đầu bếp chính gọi thêm các phụ bếp. Mỗi phụ bếp có ba thứ của riêng mình:
- Một phiên làm việc riêng, tức là một cái bàn bếp riêng, không dùng chung với bàn của đầu bếp chính.
- Một bộ dụng cụ bị giới hạn. Ví dụ, người phụ bếp chỉ đi kiểm kho thì sẽ không được cầm dao.
- Một lời dặn tập trung, kiểu "em chỉ cần làm đúng công việc này thôi".
Thông thường, theo anh (video đăng ngày 26/10/2026), một harness có ba kiểu phụ bếp. Kiểu đầu tiên là phụ bếp khám phá: trực nhiệm đi kiểm tra xem kho còn gì, tìm hiểu tình hình, và chỉ được phép xem chứ không được đụng vào thứ gì trong kho. Kiểu thứ hai là phụ bếp làm chung, làm các công việc thông thường. Cuối cùng là phụ bếp kiểm tra, chuyên nếm thử xem các món ăn đã đạt yêu cầu chưa. Mỗi kiểu phụ bếp có quyền riêng, danh sách dụng cụ riêng và lời dặn riêng.
Quá trình agent chính phân chia công việc cho các agent con gồm ba bước: giao việc, giới hạn, và thu kết quả. Đầu bếp chính giao việc, giới hạn phạm vi của phụ bếp, rồi chỉ nhận lại kết quả cuối cùng. Phụ bếp có bày bừa thế nào trên bàn của mình cũng được, không ảnh hưởng gì đến bàn của đầu bếp chính. Nhờ vậy, theo anh (video đăng ngày 26/10/2026), đầu bếp chính vừa làm được nhiều việc cùng lúc, vừa giữ được cái bàn của mình gọn gàng (slide "Giao việc, giới hạn, thu kết quả": bàn phụ bếp tách biệt, chỉ gửi kết quả cần thiết, bàn chính vẫn gọn).
Thành phần thứ năm là các skill có sẵn. Khi nói về thành phần thứ ba, chúng ta đã nói về skill. Theo Việt Nguyễn (video đăng ngày 26/10/2026), có rất nhiều skill do người dùng tự thêm vào trong quá trình sử dụng. Thường họ tìm các skill trên mạng từ những nguồn uy tín, ví dụ của các ông lớn như OpenAI hay Anthropic: các skill về thiết kế front end, thiết kế back end, hoặc xây dựng model. Họ thêm skill này vào AI coding agent để từ đó trở đi agent dùng được các skill đó.
Tuy nhiên, ngoài các skill người dùng bổ sung, theo anh, harness nào cũng có một bộ skill có sẵn: ngay từ đầu đã có, người dùng không cần cài cắm gì thêm. Ví dụ với Claude Code, theo Việt Nguyễn (video đăng ngày 26/10/2026), kiểu gì cũng có những skill rất cơ bản để đọc file, ghi file, sửa file, tìm kiếm, chạy lệnh trên máy hay di chuyển trong code. Với một harness hiện đại, những skill này là bắt buộc, không có thì không được: một agent không đọc hay không sửa được file thì không thể nào gọi là coding agent. Cũng giống như một người không làm được những việc cơ bản như cầm dao hay bật bếp thì không thể gọi là đầu bếp. Tất nhiên, theo anh, những skill mặc định này khá cơ bản, và thật ra chúng cũng không khác quá nhiều so với công cụ.
Bên cạnh các skill cơ bản, theo Việt Nguyễn (video đăng ngày 26/10/2026), các harness hiện đại còn có sẵn một bộ skill cấp cao hơn, ví dụ skill tạo git commit, skill mở một pull request, hoặc skill chạy test và đọc kết quả (ba nhãn này hiện trên slide "Các skill cao cấp"). Trong bếp, đó là những kỹ năng như bày món ăn cho đẹp, đóng gói món ăn mang về, hay giao ca cho chuẩn. Theo anh, một vài kỹ năng trong số này sẽ khác nhau tùy vào hãng nào xây dựng harness.
13. Thành phần 6: bộ nhớ phiên làm việc
Thành phần thứ sáu là memory, hay bộ nhớ cho phiên làm việc. Một phiên làm việc dài của agent luôn có những trạng thái như đã làm gì, đang làm gì, còn gì chưa làm. Nếu chương trình bị sập giữa chừng mà harness không có cơ chế nào để ghi xuống ổ đĩa, thì mọi thứ sẽ mất hết. Giống như quán đang đông khách thì tự nhiên mất điện: anh đầu bếp vốn đã có trí nhớ không tốt, sau khi mất điện sẽ quên sạch bàn nào đã lên món rồi, bàn nào vẫn đang chờ (theo video đăng ngày 26/10/2026).
Theo Việt Nguyễn (video đăng ngày 26/10/2026), các harness hiện đại giải quyết chuyện này rất đơn giản. Thường chúng dùng một file chỉ được ghi thêm, không bao giờ được xóa hay sửa, thường là file JSON hoặc Markdown. Mỗi tin nhắn, mỗi kết quả dùng công cụ, mỗi lần nén ngữ cảnh đều được ghi thành một dòng trong file này.
Trong quán phở, đó chính là cuốn sổ nhật ký bếp. Làm xong việc gì, anh đầu bếp cũng ghi ngay một dòng, ví dụ "10 giờ 05 sáng, bàn 3 lên 2 bát tái". Quy tắc là chỉ được ghi thêm, không được tẩy xóa; ghi xong là lưu ngay xuống đĩa. Nếu bị mất điện ngay sau đó, dòng vừa ghi vẫn an toàn.
Có quyển sổ này, kể cả khi có sự cố, ví dụ anh đầu bếp chính bận việc gia đình, phải về quê vài hôm và có người khác vào thay, thì người mới chỉ cần đọc lại quyển sổ từ đầu đến cuối, gọi là replay, là biết chính xác mọi chuyện trong quán đang diễn ra thế nào và cần làm tiếp chỗ đang dang dở ra sao. Và vì cuốn sổ chỉ cho phép ghi thêm chứ không cho xóa, nên theo Việt Nguyễn (video đăng ngày 26/10/2026), hai ca làm việc có thể cùng ghi vào một cuốn sổ mà không sợ dẫm chân lên nhau. Tóm lại, chương trình hay phiên làm việc có thể gặp trục trặc, gặp sự cố, nhưng cuốn sổ thì không. Các slide minh họa đoạn này: "Nhật ký chỉ được ghi thêm, không được xóa", "Đầu bếp vắng mặt, nhật ký vẫn còn", "Replay: đọc lại từ đầu đến cuối" và "Bộ nhớ độc lập với harness".
14. Thành phần 7: lắp ráp system prompt và prefix caching
Thành phần thứ bảy liên quan đến việc kết nối, lắp ráp các phần của system prompt lại với nhau. Theo Việt Nguyễn (video đăng ngày 26/10/2026), về bản chất, system prompt trong các AI agent phức tạp lúc đó không phải là một đoạn text viết duy nhất một lần và cố định ngay từ đầu, mà là kết quả của một dây chuyền lắp ráp gồm nhiều thành phần. Khi AI agent khởi động, harness đi ngược lên các thư mục cha của project hiện tại để tìm những file hướng dẫn có tên đặc biệt, ví dụ AGENTS.md hay CLAUDE.md, rồi chèn nội dung của chúng vào system prompt. Nó cũng có thể nạp các file ghi nhớ khác mà chúng ta đã lưu, chỉ bằng cách đọc thư mục và đọc file trên ổ đĩa. Slide "Lắp ráp tờ hướng dẫn ở đầu ca" ghi: "System prompt + AGENTS.md / CLAUDE.md + các file ghi nhớ khác".
Hãy tưởng tượng quán phở của chúng ta giờ đã trở thành một chuỗi nhiều chi nhánh. Đầu mỗi ca làm việc, đầu bếp nhận một tờ hướng dẫn gồm hai phần. Phần đầu là nội quy chung của cả chuỗi: dùng đúng công thức nước dùng, đúng định lượng thịt, đảm bảo vệ sinh; chi nhánh nào cũng phải làm theo. Phần sau thì khác, vì mỗi chi nhánh có cách vận hành riêng.
- Chi nhánh A chủ yếu phục vụ khách ăn tại chỗ. Ghi chú riêng ở đây: mỗi phiếu gọi món phải có số bàn; các bát trong cùng một bàn cần được chuẩn bị để lên món cùng nhau; làm xong thì đặt lên quầy phục vụ để nhân viên mang ra đúng bàn.
- Chi nhánh B chuyên bán mang đi. Ghi chú lại là: mỗi phiếu gọi món phải có mã đơn hàng; đóng riêng bánh phở, nước dùng và rau; trước khi giao, đối chiếu đủ số suất rồi dán mã đơn lên túi.
Cùng nhận yêu cầu "2 suất phở bò", ở chi nhánh A đầu bếp sẽ chuẩn bị 2 bát để phục vụ tại bàn, còn ở chi nhánh B anh ấy chuẩn bị 2 bộ mang đi và gắn đúng mã đơn. Tay nghề và công thức chung thì vẫn vậy, nhưng cách hoàn thành công việc phải theo hướng dẫn của từng nơi (theo video đăng ngày 26/10/2026).
Với AI agent cũng tương tự (theo video đăng ngày 26/10/2026): mỗi project có thể có file CLAUDE.md hoặc AGENTS.md riêng. Dự án này hướng dẫn chạy kiểm thử bằng lệnh nào, dự án kia quy định đặt mã nguồn ở thư mục nào. Harness nạp những hướng dẫn phù hợp để cùng một model biết cách làm việc trong các dự án khác nhau, giống như đầu bếp đến chi nhánh nào thì được phát đúng tờ hướng dẫn của chi nhánh đó. Slide "Nạp hướng dẫn đúng dự án" ghi: "Harness tìm và nạp CLAUDE.md hoặc AGENTS.md phù hợp".
Tuy nhiên, có một điểm cần chú ý. Theo Việt Nguyễn (video đăng ngày 26/10/2026), hầu hết các harness lúc đó đều dùng một kỹ thuật tối ưu gọi là prompt caching, cụ thể là prefix caching: nếu phần đầu của prompt giống hệt lần trước, model không cần xử lý lại phần đó, nên quá trình xử lý nhanh hơn và rẻ hơn rất nhiều. Phần nội quy chung ở đầu thì đầu bếp đã thuộc lòng, liếc qua là xong; anh chỉ cần đọc kỹ phần ghi chú ở cuối tờ. Nhưng nếu ai đó chèn một dòng mới lên đầu tờ nội quy, mọi thứ phía sau sẽ bị xê dịch, và đầu bếp phải đọc lại từ đầu đến cuối. Tất nhiên điều này tốn thời gian hơn.

Vì vậy, theo anh, thứ tự trong tờ hướng dẫn là rất quan trọng: phần tĩnh nên đặt trước, phần động nên đặt sau. Nếu đảo ngược lại, chúng ta sẽ phá hỏng prefix caching. Theo Việt Nguyễn (video đăng ngày 26/10/2026), đây là một trong những lý do giúp agent có thể chạy hàng trăm vòng lặp mà chi phí vẫn ở mức chấp nhận được.
15. Thành phần 8 và 9: hook, phân quyền và an toàn
Thành phần thứ tám là hook, tạm dịch sang tiếng Việt là điểm móc. Đây là cách để chúng ta mở rộng harness. Theo Việt Nguyễn (video đăng ngày 26/10/2026), hook cho phép chèn logic của riêng mình vào trước hoặc sau khi một công cụ chạy, mà không cần đụng vào phần lõi của harness. Có hai loại hook.
Loại thứ nhất là pre-tool hook, chạy trước khi công cụ thực thi. Nó nhận được tên công cụ và dữ liệu đầu vào, rồi có thể cho phép, từ chối, hoặc sửa lại lệnh gọi đó. Trong quán phở, đó là người kiểm hàng đứng ngay cạnh bếp: trước khi cho thịt bò vào nồi, người này kiểm tra xem thịt còn hạn hay không. Còn hạn thì cho phép, hết hạn thì chặn lại. Khách dặn ít muối thì sửa lại lượng muối cho phù hợp. Slide "Pre-tool hook: kiểm tra trước khi chạy" có ba nhãn: cho phép, chặn, điều chỉnh đầu vào (theo video đăng ngày 26/10/2026).
Loại thứ hai là post-tool hook, chạy sau khi công cụ thực thi xong và nhìn thấy kết quả. Nó không chặn được gì nữa vì việc đã làm xong rồi; nhiệm vụ của nó là kiểm toán, ghi log, theo dõi, quan sát. Giống như camera trong bếp, ghi lại mọi món đã ra lò để cuối ngày chủ quán có thể xem lại (theo video đăng ngày 26/10/2026).
Về mặt kỹ thuật, theo Việt Nguyễn (video đăng ngày 26/10/2026), việc giao tiếp với hook rất đơn giản: harness gửi dữ liệu dưới dạng JSON, và hook trả lại một exit code, tức là một mã kết thúc, để báo cho harness là cho phép hay từ chối. Slide "Cách giao tiếp với hook" ghi dòng chú thích "JSON vào, exit code ra; gắn kiểm tra mà không sửa phần lõi". Theo anh, hook chính là cách các doanh nghiệp đang đưa harness vào dùng trong thực tế, giúp gắn thêm quy định bảo mật, kiểm toán, tuân thủ của công ty mình vào đúng điểm móc. Slide tiếp theo, "Hooks: kết nối và gắn quy định công ty", có ba nhãn: bảo mật, giao tiếp qua các hook, kiểm toán và tuân thủ.
Thành phần cuối cùng, thứ chín, là phân quyền và an toàn. Theo Việt Nguyễn, đây là thành phần quyết định một agent là một công cụ hữu ích hay một mối nguy hiểm. Theo anh (video đăng ngày 26/10/2026), các harness hiện đại định nghĩa một hệ thống phân quyền theo bậc: bậc 1 là chỉ được xem, bậc 2 là được ghi trong không gian làm việc của mình, bậc 3 là toàn quyền. Mỗi công cụ tự khai báo nó cần tối thiểu quyền gì, và nhiệm vụ của harness là kiểm tra điều đó ngay tại thời điểm phân phát, trước khi công cụ kịp chạy.
Trong quán phở, hãy hình dung chúng ta có ba loại thẻ ra vào. Thẻ xanh là chỉ được vào xem kho, kiểm đếm, không được động vào gì. Thẻ vàng là được nấu nướng trong khu bếp của mình. Còn thẻ đỏ là toàn quyền, từ khóa văn phòng cho đến đổ bỏ cả nồi nước dùng.
Có một điểm Việt Nguyễn lưu ý (video đăng ngày 26/10/2026): cùng một công cụ, nhưng nó có thể an toàn hoặc nguy hiểm tùy vào cách dùng. Cùng một cái vòi nước, dùng để rửa rau thì vô hại, xối vào ổ điện thì rất nguy hiểm (slide "Cùng công cụ, khác cách dùng"). Trong máy tính cũng vậy. Theo anh, các lệnh an toàn như liệt kê file, xem nội dung, tìm kiếm thì chỉ cần quyền xem. Các lệnh nguy hiểm như xóa file, chạy với quyền quản trị hay tắt máy thì cần quyền cao hơn, ví dụ toàn quyền. Những lệnh còn lại thông thường ở mức giữa.
Vì vậy, theo Việt Nguyễn (video đăng ngày 26/10/2026), harness cần xem xét thao tác cụ thể: agent định làm gì, tác động đến đâu, và có nằm trong phạm vi được cho phép hay không. Với những việc đã được cho phép, agent có thể tiếp tục. Với những việc vượt quá phạm vi đó, hệ thống có thể chặn lại hoặc yêu cầu bạn xác nhận trước khi thực hiện. Giống như anh đầu bếp được tự lấy nguyên liệu và nấu món theo đơn; nhưng nếu anh muốn đổ bỏ cả nồi nước dùng đã ninh 12 tiếng, anh phải báo cho chủ quán, giải thích lý do và chờ đồng ý.
Mục đích của lớp phân quyền, theo anh (video đăng ngày 26/10/2026), là xác định rõ việc nào agent được tự làm, việc nào cần con người quyết định. Khi ranh giới đó rõ ràng, bạn sẽ yên tâm hơn khi giao việc cho agent, và cũng biết mình cần nắm quyền ở những bước nào. Slide "Rõ việc tự làm, rõ việc cần con người" có hai nhãn: agent tự làm trong quyền hạn, con người quyết định khi cần.
16. Ghép lại: một yêu cầu sửa nút đăng nhập đi qua harness
Sau khi xem từng thành phần riêng lẻ, Việt Nguyễn ghép chúng lại để xem một yêu cầu của người dùng được xử lý như thế nào. Giả sử bạn yêu cầu một AI coding agent, ví dụ Claude Code: "hãy sửa giúp tôi lỗi nút đăng nhập không bấm được". Trong ví dụ quán phở, đó là lúc khách gọi "cho một bát phở bò tái, không hành". Theo cách anh mô tả (video đăng ngày 26/10/2026), các bước diễn ra như sau:
- Đầu tiên, harness tập hợp các hướng dẫn cần thiết cho agent: quy tắc chung, hướng dẫn riêng của dự án và thông tin về môi trường làm việc. Giống như đầu bếp nhận tờ hướng dẫn đầu ca rồi đọc phiếu gọi món của khách (theo video đăng ngày 26/10/2026).
- Tiếp theo, vòng lặp bắt đầu. Agent dùng công cụ để tìm đoạn code liên quan đến nút đăng nhập, đọc những file cần thiết và tìm nguyên nhân gây ra lỗi. Nếu cần, nó có thể giao cho một agent con tìm hiểu một phần của dự án rồi nhận lại kết quả (theo video đăng ngày 26/10/2026).
- Trước khi một công cụ được chạy, harness kiểm tra xem thao tác đó có được phép hay không. Những hook từ cấu hình cũng có thể tham gia kiểm tra ở bước này. Giống như đầu bếp được dùng dụng cụ nào, làm trong khu vực nào, đều phải theo quy định của bếp (theo video đăng ngày 26/10/2026).
- Khi đã xác định được nguyên nhân, agent sửa code rồi chạy kiểm thử. Nếu kiểm thử báo lỗi, kết quả đó được đưa trở lại cho agent để nó sửa tiếp. Trong quán phở, đây là lúc đầu bếp nếm thử, chưa vừa thì điều chỉnh rồi nếm lại (theo video đăng ngày 26/10/2026).
- Trong suốt quá trình, harness ghi lại diễn biến công việc. Nếu ngữ cảnh quá dài, nó giữ lại những thông tin cần thiết để agent tiếp tục; giống như vừa ghi sổ nhật ký bếp, vừa dọn bàn để còn chỗ làm việc tiếp (theo video đăng ngày 26/10/2026).
- Cuối cùng, khi đã sửa và kiểm tra xong, agent báo lại kết quả cho bạn. Bát phở được bưng ra, đúng món và đúng yêu cầu không hành (theo video đăng ngày 26/10/2026).
Như vậy, theo anh (video đăng ngày 26/10/2026), bạn chỉ đưa ra một yêu cầu, nhưng phía sau là cả một quá trình: đọc hướng dẫn, tìm thông tin, dùng công cụ, kiểm tra quyền, thử lại và ghi nhận kết quả. Harness tổ chức quá trình đó để model có thể từng bước hoàn thành công việc. Slide tổng kết đoạn này, "Một yêu cầu, cả quá trình phía sau", ghi: "Harness tổ chức từng bước để model hoàn thành công việc".
17. Năm điều cần lưu ý khi dùng hoặc tự xây harness
Qua ví dụ vừa rồi, chúng ta đã thấy các thành phần trong harness phối hợp với nhau như thế nào. Tuy nhiên, để sử dụng hoặc thậm chí tự xây dựng được các hệ thống như vậy, Việt Nguyễn nêu một vài điểm cần lưu ý (theo video đăng ngày 26/10/2026).
Thứ nhất: cùng một model, cách tổ chức khác nhau cho kết quả khác nhau
Hãy đặt cùng một đầu bếp vào hai căn bếp khác nhau. Ở căn bếp thứ nhất, dụng cụ thiếu trước hụt sau, nguyên liệu để lộn xộn, phiếu gọi món ghi không rõ. Ở căn bếp thứ hai, mọi thứ được xếp hợp lý, yêu cầu của khách rõ ràng, nấu xong còn có bước kiểm tra trước khi lên món. Tay nghề của đầu bếp ở hai căn bếp là không đổi, nhưng khả năng làm ra món ăn đúng yêu cầu sẽ khác nhau. Theo Việt Nguyễn (video đăng ngày 26/10/2026), với AI cũng vậy: cùng một model, nhưng nếu được cung cấp công cụ phù hợp, hướng dẫn rõ ràng và cách kiểm tra kết quả, nó có thể làm việc hiệu quả hơn nhiều.
Vì vậy, theo anh (video đăng ngày 26/10/2026), khi agent làm chưa tốt, đừng chỉ nghĩ đến việc đổi sang một model mạnh hơn. Hãy xem thử nó đã có đủ thông tin chưa, có công cụ cần thiết chưa, và đã có cách nhận ra lỗi để tự sửa chưa. Slide "Tìm phần đang thiếu trước khi đổi model" minh họa đúng ý này.
Thứ hai: cải thiện harness mà không cần xây lại từ đầu
Theo Việt Nguyễn, có một cách hình dung khá dễ hiểu: harness gồm phần nhà sản xuất đã làm sẵn và phần bạn có thể bổ sung cho công việc của mình (slide "Harness: lõi có sẵn + phần bạn bổ sung", với nhãn "Lõi có sẵn: model, công cụ, context, vòng lặp"). Theo anh (video đăng ngày 26/10/2026), với những công cụ như Claude Code hay Codex, phần cốt lõi đã được xây sẵn, gồm cách gọi model, cách chạy công cụ, quản lý ngữ cảnh và tổ chức vòng lặp làm việc. Giống như bạn vừa tiếp quản một căn bếp đã có bếp, tủ lạnh, hệ thống điện nước; bạn không cần tự xây lại mọi thứ.
Tuy nhiên, bạn vẫn cần bổ sung những thứ riêng của quán mình: công thức, cách sắp xếp nguyên liệu, hướng dẫn giao ca và quy trình kiểm tra món ăn. Trong công việc với AI, theo Việt Nguyễn (video đăng ngày 26/10/2026), đó có thể là file AGENTS.md hoặc CLAUDE.md chứa hướng dẫn của dự án, các skill cho những việc thường làm, những hook để kiểm tra tự động, hoặc kết nối tới các công cụ cần thiết (slide "CLAUDE.md/AGENTS.md" có bốn nhãn: hướng dẫn dự án, skills cho việc thường làm, hooks kiểm tra tự động, kết nối công cụ). Nói cách khác, bạn không cần tự viết nên một AI coding agent rồi mới bắt đầu làm harness engineering. Việc điều chỉnh một công cụ có sẵn để nó làm đúng quy trình của bạn cũng là một phần của công việc này.
Thứ ba: có những lỗi cần chặn bằng cơ chế, không chỉ bằng lời
Giả sử anh đầu bếp thường xuyên quên tắt bếp. Bạn có thể dán một tờ giấy "nhớ tắt bếp". Nếu anh vẫn quên, bạn lại dán thêm một tờ nữa. Nhưng đến một lúc nào đó, bạn sẽ nhận ra cần một cơ chế đáng tin cậy hơn, chẳng hạn bộ hẹn giờ tự tắt. Theo Việt Nguyễn (video đăng ngày 26/10/2026), với agent cũng vậy: nếu nó liên tục mắc cùng một lỗi, việc viết thêm câu dặn dò có thể giúp, nhưng chưa chắc đã đủ.
Tương tự, nếu agent hay làm hỏng một chức năng cũ khi sửa code, bạn có thể bổ sung bài kiểm thử để phát hiện lỗi đó. Hoặc nếu có một thư mục không được phép sửa, bạn có thể giới hạn quyền ghi vào thư mục ấy (slide "Test và giới hạn ghi bảo vệ công việc"). Điều cần nhớ, theo anh: hướng dẫn giúp agent biết nên làm gì, còn cơ chế kiểm tra và phân quyền giúp phát hiện hoặc ngăn những việc không được phép. Một harness tốt cần kết hợp cả hai (theo video đăng ngày 26/10/2026).
Thứ tư: muốn agent tự sửa được thì phải cho nó biết đúng hay sai
Ở những phần trước, Việt Nguyễn đã nhắc rất nhiều lần đến việc kiểm tra, và đến đây anh nhấn mạnh lại: đây là điều rất quan trọng nếu chúng ta muốn agent tự làm việc qua nhiều bước. Một đầu bếp không được nếm thử thì rất khó biết món ăn đã vừa hay chưa. Theo anh (video đăng ngày 26/10/2026), agent cũng cần một cách tương tự để đánh giá việc mình vừa làm:
- Với code, đó có thể là kết quả kiểm thử hoặc thông báo lỗi.
- Với giao diện, đó có thể là ảnh chụp màn hình để đối chiếu với yêu cầu.
- Với một phép tính, đó có thể là bước kiểm tra lại bằng công cụ.
Nếu chỉ giao việc rồi để agent tự đoán rằng mình đã làm đúng, theo Việt Nguyễn (video đăng ngày 26/10/2026), bạn sẽ rất khó tin tưởng vào kết quả agent trả về. Nhưng khi có phản hồi rõ ràng, agent có thể dựa vào đó để tiếp tục: thấy lỗi ở đâu thì sửa ở đó, kiểm tra lại, rồi mới chuyển sang bước tiếp theo (slide "Làm, kiểm tra, nhận kết quả, điều chỉnh"). Vì vậy, khi thiết kế một công việc cho agent, hãy luôn nghĩ: nó sẽ dựa vào đâu để biết mình đã làm đúng hay chưa?
Cuối cùng: muốn agent tự chủ hơn, hãy cho nó một môi trường có giới hạn rõ ràng
Ở phần phân quyền, Việt Nguyễn đã nói đến việc yêu cầu agent xin phép trước một số thao tác. Nhưng nếu bạn muốn nó tự làm qua nhiều bước mà không phải liên tục dừng lại chờ xác nhận thì sao? Theo anh (video đăng ngày 26/10/2026), có một cách là chuẩn bị cho nó một môi trường làm việc riêng, thường gọi là sandbox. Tùy nhu cầu, đó có thể là một container hoặc một máy ảo được cấu hình với những giới hạn phù hợp.

Trong ví dụ quán phở, hãy hình dung bạn dành riêng một căn bếp để thử món mới. Đầu bếp có thể thử công thức, đổi cách chế biến, làm hỏng rồi làm lại, trong khi bếp chính vẫn phục vụ khách. Tất nhiên căn bếp thử nghiệm đó cần được ngăn cách hợp lý: được dùng nguyên liệu nào, được chạm vào thiết bị nào, có được lấy đồ từ kho chính hay không.
Với agent cũng vậy, theo Việt Nguyễn (video đăng ngày 26/10/2026): điều quan trọng không chỉ là có một chỗ làm việc riêng, mà còn là giới hạn rõ ràng những dữ liệu và tài nguyên được tiếp cận (slide "Giới hạn cả dữ liệu và tài nguyên"). Nếu phạm vi ảnh hưởng được kiểm soát tốt hơn, bạn sẽ có cơ sở để cho agent chủ động hơn trong phạm vi đó.
18. Ba ý cần nhớ
Vậy là, theo lời Việt Nguyễn, chúng ta đã cùng nhau đi hết một vòng quán phở, từ phiếu gọi món cho đến cách tổ chức cả căn bếp. Nếu chỉ cần nhớ ba ý sau video này, anh đề nghị bạn nhớ:
- Prompt engineering là viết yêu cầu sao cho rõ ràng.
- Context engineering là cung cấp đúng thông tin vào đúng thời điểm.
- Harness engineering là tổ chức cả quá trình để model có thể dùng thông tin, thực hiện hành động, kiểm tra kết quả và tiếp tục làm việc (theo video đăng ngày 26/10/2026).
Slide "Ba điều cần nhớ" tóm lại bằng ba câu hỏi: viết yêu cầu thế nào, cung cấp ngữ cảnh gì, tổ chức toàn bộ quá trình ra sao.
Harness gồm 9 thành phần chính, nhưng theo Việt Nguyễn (video đăng ngày 26/10/2026), bạn không cần tự mình xây dựng đủ cả 9 thành phần ngay từ đầu. Nếu đang dùng một AI coding agent, hãy bắt đầu từ những việc gần nhất với nhu cầu của mình, ví dụ viết rõ hướng dẫn cho dự án, bổ sung quy trình cho những việc lặp lại, và chuẩn bị cách để kiểm tra kết quả. Sau đó, tiếp tục quan sát xem agent đang vướng mắc ở đâu để tiếp tục cải thiện ở đó (slide "Bắt đầu từ nhu cầu gần nhất").
Một đầu bếp giỏi cần một căn bếp được tổ chức tốt để phát huy được tay nghề của mình. Theo Việt Nguyễn (video đăng ngày 26/10/2026), với AI agent cũng vậy: model rất quan trọng, và cách bạn tổ chức công việc xung quanh nó cũng quan trọng không kém. Đó chính là ý nghĩa của công thức anh giới thiệu ở đầu video, hiện lại trên màn hình ở cuối: agent bằng model cộng với harness.
Anh khép lại video bằng lời hy vọng những chia sẻ này hữu ích với người xem, và cảm ơn mọi người đã dành thời gian theo dõi.
Nguồn và liên kết 10 nguồn
- Tên gốc: Tất cả những gì bạn cần biết về Harness Engineering
- Sự kiện: YouTube
- Video gốc: https://www.youtube.com/watch?v=e-bwG7iz6Rs youtube.com
- Kênh YouTube Việt Nguyễn AI (Việt Nguyễn): youtube.com/channel/UC66_4puPl1OFS3YAeZ7tRdw youtube.com
- Anthropic Engineering, "Effective harnesses for long-running agents" (đăng 26/11/2025, đọc ngày 26/10/2026): bài về harness cho agent chạy qua nhiều context window, có agent khởi tạo và agent code làm từng phần mỗi phiên, kèm quickstart: anthropic.com/engineering/effective-harnesses-for-long-running-agents anthropic.com
- Geoffrey Huntley, "Ralph Wiggum as a software engineer" (đọc ngày 26/10/2026): bài gốc mô tả Ralph như một vòng lặp Bash chạy đi chạy lại cùng một prompt: ghuntley.com/ralph ghuntley.com
- Model Context Protocol, trang chính thức (đọc ngày 26/10/2026): modelcontextprotocol.io modelcontextprotocol.io
- Repo mã nguồn mở của Cline trên GitHub (đọc ngày 26/10/2026): github.com/cline/cline github.com
- Claude Code Docs, "Hooks reference" (PreToolUse, PostToolUse, đầu vào JSON và exit code; đọc ngày 26/10/2026): code.claude.com/docs/en/hooks code.claude.com
- Claude Code Docs, "How Claude remembers your project" (CLAUDE.md, AGENTS.md; đọc ngày 26/10/2026): code.claude.com/docs/en/memory code.claude.com