# Thôi viết prompt cho Claude, hãy làm harness engineering

[Austin Marchese](https://homus.dev/speakers/austin-marchese) · [Austin Marchese](https://homus.dev/orgs/austin-marchese)

> Bốn layer của harness engineering, tám thành phần của một harness, và cách dựng internal knowledge harness đầu tiên trên Claude Code với giao diện web local.

Topics: Agents, Context Engineering, Skills, Workflow

Canonical: https://homus.dev/talks/stop-prompting-claude-start-harness-engineering

## 1. Bốn tháng quan sát: người thắng nhìn vào harness, không nhìn vào model

Video được Anthropic tài trợ.

Austin Marchese kể anh đã dành bốn tháng vừa qua để nghiên cứu xem những người build bằng AI nhanh nhất thực sự làm việc thế nào, và anh tìm ra một điều mà chính anh không ngờ tới. Những người đang thật sự thắng với AI không ngồi nghĩ về model. Thay vào đó, họ tập trung vào cái harness, tức lớp bao quanh và tương tác với AI.

![Austin Marchese đội mũ lưỡi trai xanh, nói trước micro trong phòng làm việc](https://homus.dev/photos/bIYWxYm5cOY-0043.jpg)

Austin Marchese nói trước camera trong phòng làm việc của anh; trên bàn là tờ giấy trắng mà anh sẽ vẽ dần sơ đồ bốn layer suốt video.

Vì vậy, trong video này anh sẽ phân tích và phác ra harness engineering là gì, và làm sao để bạn dựng được harness đầu tiên của mình ngay hôm nay. Toàn bộ chuyện đó được chia thành bốn layer. Ở cuối video, anh sẽ giải thích Karpathy curve là gì: một khái niệm được mô tả bởi Andrej Karpathy, cựu trưởng bộ phận AI của Tesla, và là thứ đã làm anh nhìn lại cách mình nghĩ về tương lai.

## 2. Layer 1, nền móng: Muse, Grok Bot và một batch Y Combinator toàn harness

Layer đầu tiên là nền móng (the foundation): vì sao chuyện này lại quan trọng đến vậy. Austin đưa ra hai ví dụ gần đây. Meta và Mark Zuckerberg vừa ra mắt Muse, còn phía SpaceX và Elon Musk thì ra mắt Grok Bot. Cả hai công cụ này đều là harness: chúng đơn giản hoá cách bạn tương tác với AI. Theo Austin, chúng có được nhiều sức kéo (traction) như vậy chính là vì các harness này làm cho việc dùng AI cho công việc hằng ngày trở nên dễ dàng.

Anh dẫn thêm lời của Pieter Levels, một doanh nhân nổi tiếng, nói về tầm quan trọng của harness, lấy Y Combinator làm ví dụ, một trong những nhà đầu tư startup lớn nhất hành tinh. Levels viết rằng anh vừa thấy batch hiện tại của Y Combinator theo đúng nghĩa đen chỉ toàn startup làm harness và startup làm hardware. Austin chốt: "the proof is in the pudding", bằng chứng đã nằm sẵn ở đó.

![Một bài đăng trên X của Pieter Levels về batch Y Combinator](https://homus.dev/photos/bIYWxYm5cOY-0103.jpg)

Bài đăng của Pieter Levels trên X, hai câu đầu được tô đậm: batch Y Combinator chỉ toàn startup harness hoặc hardware, "so the proof is in the pudding". Phần sau bài nói startup mới ở Silicon Valley thậm chí không còn build software nữa, và còn phải bàn xem có ai thực sự cần một custom harness hay các công ty AI frontier sẽ cung cấp sẵn ở dạng chung chung.

Vậy vì sao harness lại quan trọng như thế? Austin giải thích: trong thế giới hiện nay, vấn đề không còn là ai được dùng model tốt nhất. Vấn đề là ai có thể shape (nắn) model để tạo ra nhiều giá trị nhất cho một use case cụ thể. Rõ ràng những người thông minh nhất đang dồn sức vào chuyện này. Nhưng bạn có nên làm vậy không? Anh nói câu trả lời hiển nhiên là có, và đó chính là lý do anh làm video này.

## 3. Phương trình AI output: model cộng prompt, nhân base harness

Để thấy rõ, Austin đề nghị phân tích cách bạn đang thực sự dùng AI hôm nay. Hãy nghĩ về output của AI như một phương trình: **AI output = (model + prompt) × base harness**. Anh vừa nói vừa viết phương trình này lên tờ giấy, ngay trên vòng cung ghi "Layer 1: Foundation".

Trong thực tế hằng ngày, khi bạn dùng Claude Code, vốn là một base harness, thì output bạn tạo ra là sự kết hợp của ba thứ: model (ví dụ Opus), prompt (những gì bạn nói với nó), và base harness mà bạn đã chọn là Claude Code.

![Phương trình OUTPUT = (MODEL + PROMPT) * BASE HARNESS nối tới ba biểu tượng ứng dụng](https://homus.dev/photos/bIYWxYm5cOY-0143.jpg)

Phương trình "OUTPUT = (MODEL + PROMPT) * BASE HARNESS", với base harness rẽ ra ba biểu tượng ứng dụng tương ứng ba ví dụ Austin vừa nhắc: Claude Code, Muse và Grok Bot.

Nói bằng tiếng Anh đơn giản (in plain English), harness là bất cứ thứ gì bao quanh model và bao quanh input bạn đưa vào, nhằm cải thiện output thực tế bạn nhận được. Những tool như Claude Code, Muse, Grok Bot đều bọc lấy AI model để việc tương tác với nó trở nên dễ hơn.

## 4. Wrapper chính là harness, và domain harness là phần bạn sở hữu

Austin cố ý dùng chữ "wrap" (bọc), vì nhiều người đã nghe tới khái niệm "AI wrapper". Theo anh, AI wrapper thực ra chẳng khác gì một AI harness.

Đến đây có thể bạn sẽ hỏi: "Tôi thích dùng Claude Code, tôi không muốn tạo lại nó." Austin nói điều đó hoàn toàn ổn, vì ở đây có một điểm tinh tế hơn. Quay lại phương trình: 99% mọi người dùng AI theo kiểu model cộng prompt, nhân với base harness. Rất thẳng.

Nhưng những người dẫn đầu trong lĩnh vực này lại nghĩ theo cách khác: **output = (model + prompt) × (base harness + domain harness)**. Domain harness là thứ bạn có thể build bên trên những tool như Claude và Claude Code. Trên tờ giấy, Austin thêm "+ DOMAIN HARNESS" bằng mực đỏ và mở ngoặc bao cả hai harness.

![Tờ giấy viết AI Output = (MODEL + PROMPT) x (BASE HARNESS + DOMAIN HARNESS) trên vòng cung Layer 1: Foundation](https://homus.dev/photos/bIYWxYm5cOY-0223.jpg)

Phương trình mở rộng trên tờ giấy: phần "+ DOMAIN HARNESS" viết bằng mực đỏ. Dòng chú thích bên dưới ghi: domain harness là thứ bạn có thể build bên trên những tool như Claude và Claude Code.

Và bất cứ ai xem video này cũng có thể build harness của riêng mình, vì lợi thế thật sự nằm ở kiến thức sâu và cụ thể về đúng workflow của một người: workflow của bạn. Austin nói những người làm việc hiệu quả nhất mà anh biết, trên thực tế, đều đã tự dựng harness riêng, cực kỳ sát với công việc và nhịp làm việc hằng ngày của họ, mà thậm chí không hề nghĩ tới hay gọi nó bằng cái tên đó.

Vậy nếu domain harness là thứ duy nhất ở đây bạn thực sự sở hữu, câu hỏi tiếp theo là hiển nhiên: bắt đầu từ đâu, và nên dồn năng lượng vào chỗ nào?

## 5. Layer 2, chọn domain: makers, takers và shapers

Câu hỏi đó dẫn tới layer hai: chọn domain (select the domain). Ở mức nền tảng, harness là một cách để thay đổi output của AI sao cho nó hợp với hoàn cảnh cụ thể của bạn. Vì thế, tất nhiên bạn phải chọn domain nào để harness giúp.

Austin nói chuyện chọn domain thường dẫn tới hai kiểu người. Kiểu thứ nhất muốn một harness làm được mọi thứ. Kiểu thứ hai thì không thể quyết định nổi mình muốn tập trung vào cái gì. Với cả hai kiểu, câu trả lời thực ra giống nhau.

Câu trả lời ấy dựa trên một khái niệm được phổ biến qua một báo cáo của McKinsey ("The takers, shapers, and makers of gen AI"), chia người dùng AI thành ba loại: makers, takers và shapers.

![Slide liệt kê Makers, Takers, Shapers với định nghĩa từng loại](https://homus.dev/photos/bIYWxYm5cOY-0343.jpg)

Ba loại theo McKinsey: Makers là người build chính model (OpenAI, Anthropic, Google...), Takers dùng AI đúng như vendor đã build, Shapers build một layer riêng bên trên.

**Maker** là người build chính model: OpenAI, Anthropic, Google, và gần như không ai khác nên thử làm chuyện đó. Austin nói thẳng: đó không phải là bạn.

**Takers** là những người dùng AI đúng theo cách vendor đã build nó: họ lấy các sản phẩm có sẵn ngoài kia và kéo giá trị vào hệ thống của mình. Cách này nhanh, dễ và tương đối rẻ. Nhưng như vậy thì bạn chẳng khác gì bất kỳ ai khác cũng đang dùng các tool đó.

Loại thứ ba là **shapers**: những người build layer của riêng họ bên trên thứ của người khác. Theo Austin, về bản chất đây chính là quá trình harness engineering. Và chữ then chốt ở đây là "shaper".

## 6. Shape thứ bạn đang làm, và vì sao bạn build tốt hơn Zuckerberg hay Musk

Bạn phải shape được một thứ mà bạn thực sự làm. Muốn shape, bạn cần sự tự tin và chuyên môn về domain để có độ chính xác trong đúng domain đó. Austin giải thích tư duy shaper giúp cả hai kiểu người ở trên:

- Với người muốn harness "làm mọi thứ", tư duy này giúp họ chính xác hơn, vì họ buộc phải shape những thứ cụ thể.

- Với người hay nghĩ quá nhiều, chỉ cần nghĩ tới việc shape những gì mình vốn đang làm. Đừng nghĩ quá lên. Cứ tập trung vào chỗ bạn đang tiêu năng lượng ngay lúc này.

Nếu bạn làm marketing, hãy tập trung shape AI để nó giỏi marketing hơn. Nếu bạn làm sales, hãy shape AI để nó giỏi sales hơn. Và đừng "đun sôi cả đại dương" (don't boil the ocean): tập trung vào những thứ cụ thể mà bạn vốn đã là chuyên gia, để bạn có thể tinh chỉnh và shape AI cho ra output tốt hơn.

Hai kiểu người khi chọn domain và câu trả lời chung Austin đưa ra: làm shaper cho đúng việc mình đang làm giỏi.

Khi bạn đang nghĩ về domain muốn làm, có thể bạn mang một niềm tin tự giới hạn (limiting belief): tại sao mình lại build harness giỏi hơn ông Zuckerberg hay ông Elon Musk? Austin nói có nhiều lý do, nhưng chủ yếu là vì bạn được thiết kế cho đúng một người dùng, không phải hàng nghìn người, không phải cả một phòng ban, mà chỉ bạn. Đó là giá trị mà không công ty nào build sản phẩm cho hàng nghìn khách hàng có thể mang lại. Vậy hãy vứt niềm tin tự giới hạn đó ra ngoài cửa sổ: bạn hoàn toàn có thể build một thứ có giá trị với chính mình hơn những gì các công ty enterprise đó làm ra.

Còn nếu bạn vẫn chưa chắc nên tập trung vào đâu, nên build harness trong domain nào, Austin đưa một prompt bạn có thể chạy để xác định rõ hơn niche hay domain nên chọn. Trên màn hình, prompt này có tiêu đề "Better focus your Harness":

```
I want to build a harness that shapes AI around one domain. Interview me about my job, one question at a time: what I do every week, what I'm an expert at, and what eats my time

Then recommend the ONE domain my harness should focus on and why.

Don't boil the ocean.
```

## 7. Claude Code, rồi đoạn của nhà tài trợ

Sau khi đã chọn được domain, video chuyển sang layer ba là build harness. Nhưng trước đó, Austin nhắc lại một harness mà anh tin ai cũng từng dùng: Claude Code. Tiếp theo là đoạn quảng cáo của nhà tài trợ video (Anthropic) về các tính năng mới của Claude.

## 8. Layer 3, rule 1: đừng làm lại cái đã có

Quay lại layer ba: build harness của bạn. Rule đầu tiên của layer này là đừng phát minh lại (don't reinvent things). Hiếm khi bạn thực sự muốn build lại một thứ từ con số không. Phần lớn thời gian, cách dùng thời gian tốt nhất là mở rộng những gì đã có sẵn.

Austin nói anh không muốn bạn bỏ ra cả cuối tuần để tự tay dựng một harness từ số không, rồi mới nhận ra Claude đã làm sẵn 90 đến 95% những gì bạn cần. Quay về phương trình lúc nãy: chúng ta không build base harness, chúng ta chỉ build domain harness.

Rule 1 của layer ba: không build lại base harness, chỉ build domain harness đặt lên trên nó.

"Thôi, đủ rồi", Austin nói, và chuyển sang câu hỏi chính: thực sự thì cái gì làm nên một harness? Có một nhóm biến số, và anh đi qua từng cái một.

## 9. Tám thành phần làm nên một harness

![Slide What's make up your HARNESS với tám ô: Rules, Skills, MCP Servers, Context, Hooks, Subagents, The Interface, Feedback Mechanism](https://homus.dev/photos/bIYWxYm5cOY-0946.jpg)

Slide tổng hợp tám thành phần của một harness, mỗi ô có một dòng định nghĩa ngắn đúng như Austin giải thích.

- **Rules**: những chỉ dẫn trực tiếp về cách AI nên hành xử.

- **Skills**: những khả năng tái sử dụng (reusable capabilities) bạn build một lần, rồi gọi ra bất cứ khi nào cần.

- **MCP servers**: đi dây (lay the wiring) để nói chuyện với các tool khác, về cơ bản là các kết nối ra bên ngoài.

- **Context**: phần kiến thức thực sự bạn đưa cho nó, đặc thù cho riêng bạn. Nếu bạn muốn mở rộng quy mô phần này, một knowledge graph giúp được rất nhiều.

- **Hooks**: các script chạy khi có sự kiện cụ thể, chẳng hạn chặn một lệnh (blocking a command) hay chạy test sau mỗi lần sửa.

- **Subagents**: cách bạn giao việc. Đây là cách bạn chia nhỏ task để output cuối gọn gàng hơn.

- **The interface**: cách bạn thực sự tương tác với toàn bộ hệ thống. Austin sẽ đi sâu phần này ở layer sau, nhưng ở mức tổng quan, bạn có thể chạy một harness qua cửa sổ chat, qua tài liệu, hoặc cách anh thích nhất là một dashboard đơn giản chạy trên máy.

- **Feedback mechanism**: bước cuối của mọi harness tốt. Nó cho phép bạn shape harness theo thời gian, và Austin nhấn mạnh điều này cực kỳ quan trọng.

Nhắc lại ý từ đầu: harness bọc lấy chức năng sẵn có của AI để ép nó làm một việc khác. Và nếu phần lớn những gì anh vừa kể nghe giống những gì bạn đang làm, thì đó chính là điểm anh muốn nói. Khái niệm này thực ra khá đơn giản, và nhiều khả năng bạn đã làm phần lớn những việc đó rồi.

## 10. Rule 2: giữ cho đơn giản, và ý tưởng internal knowledge harness

Bạn đã có bộ kỹ năng nền, theo Austin; thứ đang được xây ở đây là tư duy harness engineering. Rule đầu tiên là đừng phát minh lại bánh xe. Rule thứ hai là giữ cho mọi thứ đơn giản (keep it simple).

Một harness phức tạp, ví dụ, là khi bạn đi thẳng vào API của model và build mọi thứ từ đầu. Một harness đơn giản nghĩa là mượn những gì Claude Code đã cho sẵn và build lên trên đó. Giải pháp đơn giản nhất mà thực sự giải quyết được vấn đề tốt hơn bất kỳ giải pháp phức tạp nào, nhất là khi bạn mới bắt đầu. Và 99% người xem video nên bắt đầu với một phiên bản đơn giản, build nó trọn từ đầu đến cuối (end to end), rồi đi tiếp từ đó.

Rule 2 của layer ba: giải pháp đơn giản nhất giải quyết được vấn đề thắng mọi giải pháp phức tạp, nhất là lúc mới bắt đầu.

Cho video này, Austin chọn build một harness vừa rất hữu ích vừa cho thấy sức mạnh của harness: một **internal knowledge harness**, chỉ trả lời câu hỏi dựa trên context bạn cung cấp. Anh cố ý chọn loại này vì nó có giá trị với tất cả người xem.

Ví dụ, giả sử bạn đang ở chỗ làm và muốn hỏi Claude cách onboard một khách hàng. Bình thường, nó sẽ kéo từ mọi thứ trong training data của nó; nó có thể cho bạn câu trả lời, cũng có thể không. Nhưng với harness này, nó sẽ giới hạn thông tin theo đúng kiến thức bạn đã đưa vào. Bạn hỏi gì, nó chỉ lấy từ các tài liệu bạn cung cấp để trả lời. Austin chỉ ra rằng bạn có thể thấy rõ cách này đang thay đổi cách AI phản hồi bạn: bạn đang build một harness, hay một wrapper, quanh nó.

## 11. Ráp tám thành phần vào knowledge harness, gói trong một prompt

Austin đi lại toàn bộ các thành phần đã nêu, lần này áp vào internal knowledge harness:

- **Rules**: chỉ lấy context từ chính project đang làm.

- **Skills**: tạo hai skill tái sử dụng. Một là `/kb-answer`, chỉ lấy câu trả lời từ context có sẵn trên máy. Hai là `/kb-sync`, dùng các nguồn bên ngoài để kéo context về hệ thống, giúp trả lời các câu hỏi đó.

- **MCP servers**: kết nối tới Google Drive, Notion, hay bất cứ nơi nào đang chứa knowledge base hiện tại của bạn, để đồng bộ dữ liệu.

- **Context**: toàn bộ là kiến thức cụ thể bạn muốn AI kéo từ đó. Đây là phần của harness đặc thù cho riêng bạn.

- **Hooks và subagents**: để Claude Code tự quyết khi nào cần tới.

- **Interface**: một giao diện chat đơn giản, là một trang web một trang; khi bạn bấm Enter trong ô nhập, nó sẽ trả lời bằng đúng skill kb-answer.

- **Feedback mechanism**: ngay trên interface có một cách dễ để gửi feedback, để nếu thiếu context thì bạn dễ nhận ra và bổ sung vào hệ thống.

Cách các thành phần ráp lại trong internal knowledge harness: nút Sync chạy kb-sync qua MCP để đổ dữ liệu vào context, nút Send chạy kb-answer chỉ đọc từ context đó.

Để build tất cả, Austin gói mọi tính năng trên vào một prompt duy nhất, tạo ra đủ những gì vừa liệt kê, với interface là một trang web một trang đơn giản. Prompt trên màn hình có tiêu đề "Build an Internal Knowledge Harness":

```
Build me an Internal Knowledge Harness in this folder. Walk me through it one step at a time.

Rules: only answer from the context in this project. If it's not there, say so.

Skills:
- kb-answer: answers using only my local context.
- kb-sync: pulls my knowledge from [WHERE IT LIVES]
into context/. Walk me through the MCP connection and store run history so nothing re-ingests.

Interface: a simple single page website I run locally that uses Claude Code on my machine. Sync button runs kb-sync. Send runs kb-answer.

Feedback: thumbs up/down under every answer. On a thumbs down, let me add the missing context.

Use hooks and subagents only when needed.
```

Nếu bạn bắt đầu từ con số không, Austin hướng dẫn: mở app Claude desktop, bấm "Code" ở góc trên bên phải, chọn "Open folder", chọn tạo thư mục mới và đặt tên là "harness demo". Xong bước đó là hệ thống đã sẵn sàng; chạy prompt này, nó sẽ dẫn bạn qua việc tạo harness. Trên màn hình là phiên bản cho trường hợp bắt đầu từ thư mục trống, tiêu đề "Creating the Harness from scratch":

```
I'm starting from scratch in an empty folder called harness. Walk me through creating my Internal Knowledge Harness, one step at a time.

First, interview me: what should it answer questions about, and where does that knowledge live?

Then set up the rules, a context/ folder, the connection to my knowledge, the kb-answer and kb-sync skills, and a simple single page website.

Explain each step in plain English and wait for my OK before moving to the next one.

Use hooks and subagents only when needed.
```

## 12. Harness chạy lên: nút Sync, nút Send và vòng feedback

Austin nói nếu bạn muốn đi qua prompt này kỹ hơn, từng bước một, anh có hướng dẫn chi tiết từng bước trong plugin BuildPartner miễn phí của anh. Nhưng prompt vừa chia sẻ đã đủ để bạn bắt đầu. Chạy xong, bạn chỉ việc để AI tự làm phần của nó.

Interface của harness sẽ trông đại loại như thế này, với hai nút. Nút **Sync** chạy skill kb-sync để lấy thêm context, còn nút **Send** kích hoạt skill kb-answer ngay trên máy bạn.

![Trang Knowledge Harness chạy ở 127.0.0.1:4321 với nút Sync và ô nhập câu hỏi](https://homus.dev/photos/bIYWxYm5cOY-1123.jpg)

Interface của knowledge harness chạy local trong trình duyệt: góc trên ghi "6 files · 0 added by you · synced 2m ago" cạnh nút Sync, giữa trang là dòng "Ask anything. Answers come only from your synced context.", ô nhập đang gõ "what's data i should add" và nút Send.

Sau khi nhận câu trả lời, có một cơ chế feedback để bạn cho biết câu trả lời đó có tốt không; nếu không tốt, bạn có thể dùng chính tool này để nạp thêm dữ liệu. Theo thời gian, bạn có thể hình dung mình đang huấn luyện và mài sắc harness này.

![Một câu trả lời trong Knowledge Harness kèm danh sách Sources và hai nút thumbs up, thumbs down](https://homus.dev/photos/bIYWxYm5cOY-1143.jpg)

Một câu trả lời của harness: nó ghi chú rằng các file about.md, preferences.md và voice.md trong context hiện mới chỉ là template rỗng, liệt kê Sources là các file trong thư mục context/knowledge/, kèm thời gian trả lời 38s và hai nút thumbs up, thumbs down để gửi feedback.

Austin nói cấu trúc chung này chính là thứ rất nhiều người giỏi nhất đang làm: họ tạo ra những workspace giúp họ build nhanh gấp 10 lần. Đến đây, phần kiến trúc đã được dựng xong.

## 13. Anti-slop agreement, giveaway và Layer 4: the interface

Trước khi vào layer cuối và Karpathy curve, thứ đã thay đổi cách anh nghĩ về mọi chuyện, Austin nhắc tới "anti-slop agreement" quen thuộc của kênh: mọi thứ ở đây được làm bởi con người, cho con người (by humans, for humans). Anh mời người xem đăng ký kênh, bật thông báo, và nói những hình vẽ cùng nét chữ "tệ hại" của anh trên tờ giấy là làm cho khán giả. Để cảm ơn, mỗi video anh tặng một gói Claude Max cho một người xem; lần này người thắng là một bạn đang làm nhiều side project. Muốn tham gia lượt tặng của video này, bạn để lại bình luận kể mình đang build gì; anh sẵn lòng trò chuyện về những vấn đề bạn đang gặp.

Giờ tới layer bốn: interface. Austin nói đây là layer mà hầu hết mọi người hoàn toàn bỏ qua, trong khi theo anh, thật lòng mà nói, nó là layer quan trọng nhất trong bốn layer. Đây là cách bạn thực sự nhìn thấy, trực quan hoá những tool bạn đang build.

![Tờ giấy vẽ bốn layer, trên cùng là Layer 4: The Interface chia ra Web, CLI, Plugin](https://homus.dev/photos/bIYWxYm5cOY-1443.jpg)

Layer 4 "The Interface" rẽ ra ba lựa chọn Web, CLI và Plugin; bên dưới là Layer 3 "Building" với Rule 1 "Don't re-invent things" và Rule 2 "Keep it simple", rồi Layer 2 "Domain" với Maker, Taker và Shaper được khoanh tròn.

Vì vậy, harness không chỉ là những tool nằm bên dưới. Nó là toàn bộ trải nghiệm, và trải nghiệm đó bao gồm cả cách một con người thực sự dùng nó.

## 14. Interface quyết định tool nào hơn, và ba lý do chọn web chạy local

Austin nhắc video gần đây anh làm, so sánh Claude với Grok Bot (anh để link ở cuối video). Thực tế là Claude và Grok Bot về cơ bản làm được tất cả những việc giống nhau. Nhưng interface làm cho cái này tốt hơn cái kia ở từng use case cụ thể. Chuyện đó không liên quan gì tới model, cũng không liên quan tới guardrail hay skill bên dưới, mà hoàn toàn nằm ở cách người dùng thực sự tương tác với nó.

Đây là chìa khoá của harness engineering. Rốt cuộc thì ai quan tâm bạn có một bộ tool tuyệt vời, nếu dùng nó vừa khó vừa phức tạp? Vì thế, có nhiều kiểu interface để bạn cân nhắc. Trong video này là một trang web, có lẽ là kiểu quen thuộc nhất với bạn. Đó là một cách; một cách khác là qua terminal hay command line interface; một cách nữa là qua custom plugin.

![Slide Why I love the web based local interface với ba lý do đánh số](https://homus.dev/photos/bIYWxYm5cOY-1423.jpg)

Slide "Why I love the web based local interface": chạy app local thì dùng được gói Claude thay vì trả API credits như một app cloud thông thường; iterate cực nhanh; và mở rộng ra cho cả team dễ dàng.

Austin thích interface web chạy local vì ba lý do.

**Một**, nhiều khả năng bạn đã trả tiền cho các gói như Claude. Nếu chạy app trên máy, nó có thể dùng luôn gói thành viên Claude của bạn, thay vì phải trả API credits như một app chạy trên cloud thông thường.

**Hai**, bạn có thể iterate cực kỳ nhanh. Trên tool nội bộ của mình, Austin có một biểu tượng cây bút chì cho phép anh rê chuột lên những chỗ muốn đổi. Anh chỉ việc bấm vào, gõ điều mình muốn, rồi Enter. Ví dụ trên màn hình, anh chọn một nguồn dữ liệu và nói rằng anh muốn thêm Outlook, thế là nó tự lao vào làm. Anh làm kiểu iterate nhanh này suốt. Có khi đang trong một cuộc gọi, anh và một thành viên trong team kiểu "ước gì phản hồi chỗ này trông thế này", và anh đổi ngay lập tức, rút ngắn vòng lặp để harness tốt lên nhanh hơn.

![Dashboard Internal OS với bảng Data Sources, ô What should change và khung UI feedback](https://homus.dev/photos/bIYWxYm5cOY-1355.jpg)

Tool nội bộ "Internal OS" của Austin: anh chọn dòng "Emails (Gmail)" trong bảng Data Sources, một ô "What should change?" bật ra kèm nút "Add to queue", còn khung "UI feedback" bên phải đang ở chế độ "Selecting... (Esc to stop)". Bên dưới là các thẻ YouTube và Newsletter của kênh.

**Ba**, có một lộ trình rõ ràng để mở rộng cho team. Phần này có thể phức tạp hơn một chút, nhưng khi bạn sẵn sàng, bạn có thể build một tool mở rộng ra cho những người khác trong team. Trong khuôn khổ video này, Austin không đi vào cách mở rộng harness cho cả team; anh nói ai quan tâm thì có link trong phần mô tả để trao đổi cách thiết lập.

## 15. Tóm lại bốn layer, Karpathy curve và lời kết

Trước khi nói về Karpathy curve, thứ đã thay đổi tận gốc cách anh nghĩ về AI, Austin tóm lại bốn layer của harness engineering vừa đi qua:

- Layer 1: hiểu nền móng (foundation).

- Layer 2: xác định domain.

- Layer 3: build harness thực sự.

- Layer 4: tập trung vào interface để khai thác tối đa các tool này.

Giờ bạn đã có ý tưởng chính xác để build một harness có giá trị với mình ngay hôm nay, cùng với các prompt anh chia sẻ để tự tạo harness riêng.

Còn lại là Karpathy curve, mà theo Austin càng cần nói tới trong một thế giới mà chủ nghĩa bi quan về AI (AI doomerism) đang lan tràn như hiện nay. Nói đơn giản, Karpathy curve là gì? Nó gợi ra một tương lai khác: một tương lai mà model là phần kém thú vị nhất của cả stack; nơi công việc thật nằm ở việc chọn lọc dữ liệu (data curation), chia nhỏ task (task decomposition) và sự thích nghi của tổ chức (organizational adaptation); và nơi người thắng không phải là người build ra bộ não lớn nhất, mà là người tìm ra thứ đáng nghĩ tới nhất.

Austin nói cách giải thích tương lai này khác với câu chuyện chúng ta đã quen nghe. Tầm nhìn của AI doomer là một tương lai mà AI thống trị thế giới, đủ thông minh để giải bất kỳ vấn đề nào ta đưa cho nó, và bạn thực sự chẳng còn gì để đóng góp giá trị. Còn Karpathy curve thì gợi ý rằng người thắng sẽ là những người tạo ra một harness và một hệ thống để tương tác tốt nhất với các model, dựa trên hoàn cảnh cụ thể của họ.

![Slide The Future of AI so sánh AI Doomer Vision và Karpathy's Curve Vision](https://homus.dev/photos/bIYWxYm5cOY-1543.jpg)

Slide "The Future of AI" đặt hai tầm nhìn cạnh nhau: AI Doomer Vision (AI thống trị, giải được mọi vấn đề, bạn không còn giá trị gì để đóng góp) và Karpathy's Curve Vision (người thắng là người tạo harness và hệ thống để tương tác tốt nhất với model theo hoàn cảnh riêng).

Với harness engineering, giờ bạn đã có hiểu biết nền tảng về khi nào cần nó, build nó ra sao, và nó áp dụng vào bạn thế nào. Nền móng đã vững. Nhưng thực tế là bạn không nên tự build harness riêng cho mọi thứ. Vấn đề tự nhiên bạn sẽ gặp là use case nào thì dùng harness nào.

Vì lý do đó, Austin giới thiệu video anh đã làm: đào sâu vào 12 use case hằng ngày, phân tích harness nào, Grok Bot hay Claude, tốt hơn cho từng việc cụ thể. Video này nói về chuyện tự làm harness của riêng mình, nhưng đôi khi bạn sẽ muốn dùng các sản phẩm có sẵn ngoài kia. Anh nói nếu bạn thích video này thì sẽ thích video đó, hẹn gặp ở bên kia, và chào tạm biệt.

## Nguồn và liên kết

- Tên gốc: Stop Prompting Claude. Start Harness Engineering.
- Sự kiện: [YouTube](https://homus.dev/events/youtube)
- Video gốc: [https://www.youtube.com/watch?v=bIYWxYm5cOY](https://www.youtube.com/watch?v=bIYWxYm5cOY)

- Kênh YouTube Austin Marchese (Austin Marchese): [youtube.com/channel/UCFeFVytEkT8kaqPCJZGFswg](https://www.youtube.com/channel/UCFeFVytEkT8kaqPCJZGFswg)

- Claude Code, base harness được dùng trong video: [tài liệu tổng quan Claude Code](https://code.claude.com/docs/en/overview)

- Skills trong Claude Code (thành phần "Skills" của harness): [Extend Claude with skills](https://code.claude.com/docs/en/skills)

- Kết nối Claude Code tới tool khác qua MCP (thành phần "MCP servers"): [Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp)

- Hooks trong Claude Code (thành phần "Hooks"): [Hooks reference](https://code.claude.com/docs/en/hooks)

- Subagents trong Claude Code (thành phần "Subagents"): [Create custom subagents](https://code.claude.com/docs/en/sub-agents)

Nguồn: https://homus.dev/talks/stop-prompting-claude-start-harness-engineering · cập nhật 2026-10-17
