Agent Harness là gì

Khi nói đến AI, người ta thường chỉ tập trung vào một câu hỏi: model nào mạnh hơn? GPT hay Claude? Phiên bản mới nhất có gì khác?

Nhưng đó không phải câu hỏi quan trọng nhất.

Thứ thực sự quyết định một AI agent có làm được việc hay không là harness, toàn bộ hệ thống bao quanh model. Model chỉ là bộ não. Harness là mắt, tai, tay chân, trí nhớ, và bộ phận kiểm soát hành vi của nó.

Một cách hiểu đơn giản: nếu model là đầu bếp, thì harness là toàn bộ nhà bếp, dao, thớt, bếp, tủ lạnh, công thức, và cả quy định về vệ sinh an toàn thực phẩm. Một đầu bếp giỏi trong một nhà bếp tồi sẽ cho ra kết quả tệ hơn một đầu bếp trung bình trong một nhà bếp tốt.

Bằng chứng: Vercel từng xóa 80% tool khỏi AI agent của họ, không thay model, chỉ thay harness, và tỷ lệ thành công nhảy từ 80% lên 100%. LangChain cũng làm tương tự, giữ nguyên model nhưng thay harness, agent của họ nhảy từ Top 30 lên Top 5 trên benchmark quốc tế.

Điều này cũng lý giải tại sao hai công cụ coding dùng cùng một model nhưng lại cho ra kết quả khác nhau. GitHub Copilot và Claude Code đều có thể chạy trên cùng nền tảng AI, nhưng harness của chúng được thiết kế hoàn toàn khác: Copilot tối ưu cho gợi ý nhanh trong từng dòng code, còn Claude Code xây harness để đọc toàn bộ codebase, chạy lệnh, nhớ context xuyên session và tự kiểm tra output. Cùng một bộ não, nhưng môi trường làm việc khác nhau hoàn toàn, và đó là thứ tạo ra sự khác biệt trong kết quả.

Vậy một harness gồm những gì?


1. Reasoning: Cách agent suy nghĩ

Model ngôn ngữ về bản chất chỉ làm một việc: nhận text vào, xuất text ra. Để nó trở thành agent thực sự, harness phải tổ chức quá trình suy nghĩ của nó thành một vòng lặp có cấu trúc.

Vòng lặp phổ biến nhất gọi là ReAct, viết tắt của Reasoning + Acting. Thay vì trả lời ngay, agent đi qua một chu trình: suy nghĩ, hành động, quan sát kết quả, suy nghĩ lại, hành động tiếp. Cứ lặp như vậy cho đến khi task hoàn thành.

Khác với con người chỉ nghĩ một lần rồi làm, agent trong ReAct loop có thể điều chỉnh hướng đi sau mỗi bước khi nhận được thông tin mới. Nó gặp lỗi, đọc lỗi, suy nghĩ về nguyên nhân, rồi thử lại theo cách khác.

Ngoài ra còn có các kỹ thuật khác tùy mức độ phức tạp của task: suy nghĩ từng bước (Chain-of-Thought), khám phá nhiều hướng giải quyết song song (Tree of Thoughts), hay tự đánh giá và sửa lỗi output của chính mình (Self-Reflection).


2. Memory: Trí nhớ của agent

Model không có trí nhớ. Khi một cuộc trò chuyện kết thúc, mọi thứ biến mất. Đây là giới hạn cứng của bản thân model và harness là thứ giải quyết nó.

Memory trong harness chia thành bốn loại:

Working memory là những gì đang xử lý trong session hiện tại, các bước đã làm, kết quả trung gian, trạng thái task đang chạy.

Episodic memory là kinh nghiệm từ các lần chạy trước: lần trước task này thất bại vì thiếu permission, cách tiếp cận đó không hiệu quả với codebase này.

Semantic memory là kiến thức về domain như tài liệu, quy trình, policy của tổ chức.

Personalized memory là thông tin về project hoặc người dùng cụ thể: convention của team, preference của người dùng, lịch sử quyết định kiến trúc.

Thách thức thực sự của memory không phải là lưu trữ mà là chất lượng. Cái gì cần lưu? Cái gì nên bỏ đi? Khi nào lấy thông tin nào ra? Nếu memory tích lũy thông tin lỗi thời hoặc mâu thuẫn, agent sẽ bắt đầu mắc lỗi không phải vì model kém, mà vì nó đang làm việc với dữ liệu sai.


3. Context: Thông tin agent nhìn thấy tại mỗi bước

Model chỉ làm việc được với thứ nằm trong context window của nó. Nếu thông tin không được đưa vào context, với model đó thứ đó không tồn tại.

Nhiệm vụ của harness là kiểm soát thông tin nào đi vào context tại mỗi bước, gọi là context governance. Đây không đơn thuần là “đưa thêm thông tin vào” vì context window lớn hơn không có nghĩa là hiệu suất tốt hơn. Khi context quá dài, model có xu hướng bỏ qua thông tin ở giữa và chỉ chú ý đến đầu và cuối.

Harness phải trả lời các câu hỏi: Thông tin nào cần được truy xuất lúc này? Thứ nào đã lỗi thời và cần bỏ? Nên sắp xếp thông tin theo thứ tự nào? Khi nào cần nén bớt để tiết kiệm token?

Khi context không được quản lý tốt, agent mắc lỗi không phải vì nó kém mà vì nó đang nhìn vào sai thứ.


4. Skills: Những gì agent có thể làm với thế giới bên ngoài

Reasoning giúp agent suy nghĩ. Skills giúp nó hành động.

Skills là tập hợp các khả năng agent có thể gọi để tương tác với thế giới bên ngoài: chạy lệnh terminal, đọc và ghi file, tìm kiếm web, gọi API, điều khiển browser, query database. Đây là nơi agent thực sự chạm vào thực tế thay vì chỉ nói về nó.

Nhưng skills không chỉ đơn giản là danh sách tool. Harness phải quản lý cả ba lớp: quy trình thực thi (làm thế nào), nguyên tắc phán đoán (khi nào dùng cái gì), và các ràng buộc (những gì không được phép làm).

Một điểm phản trực giác từ thực tế: ít tool thường cho kết quả tốt hơn nhiều tool. Khi agent có quá nhiều lựa chọn, xác suất nó gọi nhầm tool tăng lên. Đây chính xác là bài học Vercel rút ra khi xóa 80% tool và kết quả tốt hơn hẳn.


5. Orchestration: Nhạc trưởng điều phối toàn bộ

Orchestration là lớp đảm bảo mọi thành phần hoạt động cùng nhau, và trong môi trường nhiều agent, đảm bảo các agent phối hợp thay vì cản trở nhau.

Ở cấp độ một agent: orchestration quản lý vòng lặp thực thi, quyết định khi nào dừng, khi nào cần leo thang lên con người, khi nào khởi động lại từ checkpoint.

Ở cấp độ nhiều agent: orchestration xử lý việc chuyển giao task giữa các agent, duy trì trạng thái chung, giải quyết xung đột khi hai agent đưa ra kết quả mâu thuẫn.

Một harness thông minh còn có thể route task theo độ phức tạp — task đơn giản đến model nhỏ hơn (nhanh hơn, rẻ hơn), task phức tạp đến model mạnh hơn, mà không ảnh hưởng đến chất lượng output.


6. Governance: Ranh giới và trách nhiệm

Đây là thành phần bị bỏ qua nhiều nhất trong giai đoạn prototype, nhưng lại là thứ quyết định agent có thể đưa vào production hay không.

Governance kiểm soát bốn thứ:

  • Quyền hạn: agent được làm gì, trên dữ liệu nào, với quyền của ai. Một agent tự ý truy cập tài nguyên ngoài phạm vi cho phép là một agent nguy hiểm.
  • Audit trail: mọi hành động đều có log đầy đủ về ai yêu cầu, agent làm gì, kết quả là gì. Trong môi trường enterprise hoặc các ngành regulated như tài chính, y tế, pháp lý, đây là yêu cầu bắt buộc.
  • Policy enforcement: harness phải có cơ chế ngăn agent làm những việc không được phép, ngay cả khi model “nghĩ” đó là điều đúng đắn.
  • Human-in-the-loop: khi nào agent cần dừng lại và hỏi con người? Governance định nghĩa các ngưỡng đó dựa trên mức độ rủi ro của action, giá trị tài nguyên bị ảnh hưởng, và mức độ không chắc chắn của agent.

Không có Governance, một agent có thể chạy hoàn hảo trong môi trường test nhưng gây hại nghiêm trọng trong production không phải vì model tệ, mà vì không có ranh giới.


Tại sao điều này quan trọng

Sáu thành phần trên không hoạt động độc lập. Reasoning cần Context để có thông tin đúng. Memory cung cấp nền tảng cho Context. Skills thực thi những gì Reasoning quyết định. Orchestration đảm bảo tất cả chạy theo đúng thứ tự. Governance đảm bảo không ai làm gì ngoài phạm vi.

Khi một trong sáu thành phần này kém, agent thất bại. Không phải vì model kém. Vì harness kém.

Đó là lý do khi chọn hay xây dựng một AI agent, câu hỏi quan trọng không phải là “model nào?” mà là “harness được thiết kế như thế nào?”


Nguồn: LangChain Blog (2/2026), Vercel Engineering Blog (12/2025), arXiv 2605.26112 – UC Berkeley, MongoDB Engineering Blog (4/2026)

Add a Comment