---
title: "Phân biệt Agent & Harness và tư duy giải cấu trúc"
description: "Agent chọn làm gì tiếp theo, Harness điều phối và kiểm soát. Tách được hai phần này là bước đầu của tư duy giải cấu trúc khi làm hệ thống."
canonical: "https://200lab.io/blog/phan-biet-agent-va-harness"
published: "2026-10-01T15:28:12Z"
updated: "2026-10-01T15:28:12Z"
authors: ["Việt Trần"]
tags: ["Agent", "Harness", "Kiến trúc ứng dụng", "Mindset"]
reading_minutes: 5
access: "public"
---

Mình thấy Agent và Harness mọi người có vẻ thường bị nhầm lẫn, vì khi dùng một công cụ AI, hai thứ này thường xuất hiện cùng nhau.

Ta gọi Codex App, Claude Code là Agent - đúng. Mà gọi là Harness cũng đúng luôn.

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

Thật ra chúng không giống nhau. Nếu bạn chỉ là người dùng, bạn có thể gọi nhầm Agent và Harness nhưng nếu bạn làm hệ thống thì việc nhầm lẫn là cực kỳ không nên.

Lấy ví dụ giao cho AI một việc: "Tìm và sửa lỗi đăng nhập".

- **Agent** chọn bước tiếp theo: đọc file nào, tìm lỗi ở đâu, sửa gì, rồi dựa vào kết quả test để quyết định có cần sửa tiếp không.
- **Harness** đảm bảo cho quá trình đó chạy được: thực thi lời gọi công cụ, kiểm tra quyền, giữ ngữ cảnh và đưa kết quả trở lại để Agent tiếp tục.

![Agent chọn bước tiếp theo, Harness đảm bảo quá trình đó chạy được.](https://assets.200lab.io/sha256/70/70c11121939c394d03632bcff0e371c9983ce1a36970dcbae8c072cb8c4829f8/generations/6b61f2a811e7cc157704f76fcb2815237e9bfcdc3151265755f22d371097cd15)

> 💡 Có thể nhớ đơn giản:
>
> - **Agent**: chọn làm gì tiếp theo để đạt mục tiêu.
> - **Harness**: điều phối, kiểm soát, đảm bảo các việc được diễn ra đúng và hiệu quả.

Mặc dù ở thời điểm hiện tại, các app/cli/system Agent hiển nhiên phải có Harness. Nên dễ tạo sự khó phân biệt này.

## Nếu chúng vốn đi cùng nhau thì tại sao phải phân biệt?

Như mình từng chia sẻ khá nhiều lần. Để làm được hệ thống (dù nhỏ hay lớn), chúng ta phải biết giải cấu trúc và phân biệt được từng cấu trúc nhỏ hơn, thậm chí là tới thành phần cụ thể. Mỗi cái có nhiệm vụ riêng không nên nhầm lẫn.

Bạn có thể lựa chọn nhập vào hoặc tách ra tùy bài toán cụ thể. Nhưng ít ra bạn luôn biết với mỗi problem thì đâu là nơi cần quan tâm, đâu là nơi chả liên quan.

## Tách Agent khỏi Harness ngay trong workflow

Thậm chí trong một workflow, bạn có thể tách phần đề xuất của Agent khỏi phần kiểm soát và thực thi của Harness.

Ví dụ Agent Node chỉ chạy một loop vài turn, được cấp các công cụ read-only để research, scout, đọc file, search, fetch web...

Đầu ra là một đề xuất có cấu trúc: muốn update/edit gì, ở đâu, với tham số nào. Các hành động thay đổi hệ thống chưa được thực thi tại đây.

Đề xuất đi qua các node kiểm tra quyền, kiểm tra điều kiện nghiệp vụ hoặc xin con người phê duyệt. Hành động được duyệt mới chuyển sang node thực thi. Nếu bị từ chối hoặc thực thi thất bại, phản hồi có thể quay lại Agent để điều chỉnh.

![Agent Node đọc và đề xuất, Harness điều phối toàn bộ luồng kiểm tra, duyệt và thực thi.](https://assets.200lab.io/sha256/89/89ff63f3e78cc17ed462c0282910f6369a07d4f42fab2e88a0689c18e85e7dab/generations/c8ae4b70dec0b1df608235eacec65c80218233751c076debd471b57c658b5081)

Các node kiểm soát và thực thi này là những phần của Harness được tách ra trong workflow. Bản thân loop read-only của Agent vẫn cần một lớp điều phối tối thiểu.

Nhờ vậy, mình có thể kiểm tra và thay đổi phần Agent tương đối độc lập, còn quyền tác động lên hệ thống được quản lý tại một nơi rõ ràng.

## Giải cấu trúc: chia để trị hiệu quả

Tới đây nếu bạn vẫn chưa nhìn ra được mức độ hiệu quả của việc phân tách này thì mình nói luôn:

Vì tách ra như vậy, nhiệm vụ của Agent Node bây giờ rất gọn, rất dễ kiểm tra và lựa chọn stack.

Bạn không cần phải cố gắng lắp 1 con all-in-one có cả Agent và Harness vào rồi sau đó đau đầu vì nó chạy không đúng, không hiểu hệ thống của bạn, không inject các quyền của hệ thống,...

Cái gì của hệ thống bạn khác biệt, thì vẫn phải làm. Nhưng cái Agent cơ bản thì rất nhìu. Thậm chí bạn tự build để nó ít tools, tối ưu context, focus đúng việc hơn.

Và đó là sức mạnh của "giải cấu trúc". Đây là một mindset, một skill cực kỳ quan trọng mà ít ai để ý.

## Học cơ chế, đừng chỉ học chiêu thức

![Giải cấu trúc: tách từng phần rồi ráp lại theo bài toán.](https://assets.200lab.io/sha256/a5/a54f1ce3592f442df50f1e69595882a8bbf657b787e6a36eb4b9399f43d41583/generations/3e7a6023cb51d37dc9f1cd47ba3a35cd9dd6560f9953d95e7b2ed61fe0286040)

Người mới học kiến trúc sẽ thường lao vào phối ghép, lắp này lắp nọ để xây hệ thống. Họ sợ hệ thống xây không đủ lớn.

Nhưng người làm lâu năm với mindset chuẩn sẽ lo lắng rằng liệu tôi có giải cấu trúc đủ chi tiết và hiểu cơ chế của chúng chưa. Giải được càng nhỏ, hiểu được càng chi tiết thì tôi có thể tự do tái tạo lại bất kỳ cấu trúc mong muốn nào cho từng bài toán cụ thể.

Và đó mới được gọi là Solution Architecture (kiến trúc giải pháp) cho bài toán cụ thể.

Do nhiều người thấy các kiến trúc sư hệ thống thi triển "chiêu thức" nên họ đi học "chiêu thức". Cái đó thiên biến vạn hóa, học hoài không hết.

## Đọc thêm

- [Biệt đội models nhà Anthropic](https://200lab.io/blog/chon-model-claude-haiku-sonnet-opus-fable.md): Haiku, Sonnet, Opus và Fable khác nhau ở đâu, việc nào nên giao cho model nào? Góc nhìn từ trải nghiệm dùng nhà A của mình từ thời Claude 3.
- [Claude Managed Agents là gì? Hướng dẫn cho người dùng Claude Code](https://200lab.io/blog/claude-managed-agents-la-gi.md): Muốn thêm ô hỏi đáp để agent đọc tài liệu và email trong ứng dụng bạn tự làm bằng Claude Code? Bài viết giải thích Claude Managed Agents là gì, khác Routines ở đâu, cách tạo agent đầu tiên, chi phí và dữ liệu đi đâu.
- [Agent harness là gì? Hướng dẫn cho người mới](https://200lab.io/blog/agent-harness-la-gi.md): Agent vẫn làm sai dù đã có file hướng dẫn? Tìm hiểu harness trong Codex và Claude Code, cách kiểm thông tin agent đọc, đặt lời dặn cụ thể, dùng quyền chặn và xác định lúc cần nhờ lập trình viên.
- [Tìm hiểu về Jev - Hệ thống AI Agent sẽ thay đổi ra sao?](https://200lab.io/blog/tim-hieu-ve-jev-he-thong-ai-agent-se-thay-doi-ra-sao.md): Bài này đi từ cơ chế của Jev đến cách chia việc trong agent. Khi có thêm một model chuyên cho những quyết định nhỏ, người xây hệ thống sẽ tổ chức công việc khác đi thế nào?
- [Cách phối hợp Claude, Codex và Grok CLI](https://200lab.io/blog/cach-phoi-hop-claude-codex-va-grok-cli.md): Cách phối hợp Codex, Claude Code và Grok Build để phát triển hệ thống. Các agents mạnh nhất sẽ debate, advise giải pháp trên nền thông tin chung được kiểm chứng.
- [Mọi bài viết chủ đề Agent](https://200lab.io/blog/tags/agent.md)

Toàn bộ nội dung: https://200lab.io/llms.txt
