Cách đưa mô hình Frontend mã nguồn mở số 1 vào hoạt động: Hướng dẫn Kimi K3 Harness

@polydao
TIẾNG ANH17 thg 9, 2026
197K
97
12
14
142

TL;DR

Hướng dẫn này giới thiệu 'kỹ thuật harness', một phương pháp cấu trúc các tác nhân AI bằng cách tách biệt việc lựa chọn mô hình khỏi logic, công cụ và xác minh. Nó minh họa việc sử dụng Kimi K3 trong một khung cấu hình cho phép dễ dàng hoán đổi mô hình và tự động hóa mạnh mẽ.

Prompt, context, loop và graph engineering hóa ra đều là những mảnh ghép của cùng một cỗ máy. Harness chính là nơi chúng cuối cùng cũng được kết hợp lại với nhau.

Mỗi giai đoạn phát triển trong lĩnh vực xây dựng ứng dụng AI đều có một chức danh riêng. Prompt engineering xuất hiện đầu tiên, khi toàn bộ nghệ thuật này chỉ xoay quanh việc tìm ra câu lệnh phù hợp.

Context engineering theo sau đó, khi mọi người nhận ra rằng câu lệnh không quan trọng bằng tất cả những gì được nạp xung quanh nó. Mùa hè năm nay là thời của loops, và chỉ vài tuần sau, graphs bắt đầu nổi lên.

Cái tên đang lan rộng bây giờ là harness engineering, và đây là khái niệm đầu tiên giải thích được tất cả các khái niệm trước đó.

Mr. Buzzoni - inline image

Harness bao gồm mọi thứ xung quanh mô hình: các công cụ mà nó có thể gọi, các tệp tin nó đọc trước bất kỳ điều gì khác, các thư mục nó được phép ghi vào, các bước kiểm tra mà đầu ra phải vượt qua, lịch trình đánh thức nó và quy tắc kết thúc quá trình chạy.

Mỗi kỷ luật kỹ thuật trước đó hóa ra chỉ là một thành phần đơn lẻ của khung hệ thống này, được xây dựng riêng biệt và đặt tên riêng.

Tôi bắt đầu chú ý đến vấn đề này vì một lý do thực tế. Mô hình nền tảng liên tục thay đổi, đôi khi nhảy tới 17 bậc trên bảng xếp hạng chỉ trong một bản cập nhật, và harness là phần duy nhất của hệ thống thuộc về bạn.

1/ Bảy Kỹ Thuật, Một Cỗ Máy

Kỷ luật

Câu hỏi nó giải quyết

Vị trí trong harness

Prompt engineering

Chính xác thì tôi đang yêu cầu điều gì?

SKILL.md, đặc tả tác vụ được nạp đầu tiên

Context engineering

Mô hình thấy gì ở mỗi bước?

Trình lắp ráp ngữ cảnh: ràng buộc, schema, trang truy xuất

Tool engineering

Nó có thể chạm vào những gì, dưới dạng nào?

Định nghĩa công cụ với input/output có kiểu dữ liệu rõ ràng

Loop engineering

Điều gì khởi động và kết thúc một lần chạy?

Trình chạy (runner): trigger, điều kiện dừng, ngân sách

Graph engineering

Nó nhớ những gì và mọi thứ liên kết như thế nào?

Lớp bộ nhớ: nodes, edges có kiểu dữ liệu, aliases

Eval engineering

Kết quả bị từ chối như thế nào?

Trình xác minh (verifier), nằm ngoài sự kiểm soát của agent

Harness engineering

Điều gì giữ tất cả những thứ trên gắn kết với nhau?

Khung hệ thống, quyền hạn và hooks

Đọc bảng từ trên xuống dưới, đó là một lịch sử. Đọc từ dưới lên trên, đó là một kiến trúc: harness engineering là công việc quyết định vị trí của sáu kỹ thuật còn lại, để không cái nào bị ẩn nấp trong prompt.

Điểm cuối cùng mang sức nặng lớn nhất.

Prompt là nơi dễ nhất để đặt mọi thứ, nên mọi thứ đều trôi dạt vào đó: định dạng đầu ra, quy tắc dừng, những chỉnh sửa của tuần trước, danh sách những thứ agent không bao giờ được đụng vào. Nó hoạt động hoàn hảo trên mô hình bạn viết cho, nhưng rồi mô hình tiếp theo đọc cùng đoạn văn đó theo cách khác.

2/ Giải Phẫu Của Một Harness

Thói quen hữu ích nhất tôi học được là viết toàn bộ harness thành một tệp cấu hình duy nhất, để không điều quan trọng nào bị ngầm định:

text
1# harness.yaml
2model: kimi-k3 # một dòng. mọi thứ bên dưới vẫn sống sót sau khi đổi model
3tools: [browser, fs, shell, search]
4permissions:
5 write: [./10-returns, ./20-graph, ./40-runs]
6 ask_first: [send, publish, pay, delete]
7context:
8 always: [SKILL.md, CONSTRAINTS.md, SCHEMA.md]
9 per_agent: return_schema
10runner:
11 trigger: cron "0 2 * * *" # hàng đêm, trong khi bạn ngủ
12 stop: 40 verified nodes OR 3 passes with nothing new
13 budget: { agents: 300, minutes: 45, retries: 2 }
14memory:
15 graph: ./20-graph
16 aliases: ./aliases.csv
17verify:
18 - script: checks/schema.py
19 - agent: reviewer, fresh context
20hooks:
21 pre_tool: hooks/pre_tool.sh
22 post_run: append 40-runs/
Mr. Buzzoni - inline image

Ba dòng trong tệp đó làm phần lớn công việc.

model: cố tình chỉ là một dòng. Mọi thứ khác được viết sao cho không quan tâm dòng đó nói gì. Đó chính là toàn bộ câu chuyện về tính di động (portability).

permissions: quan trọng hơn tools:, mặc dù nó nằm thấp hơn trong tệp. Ghi rõ những gì agent được phép thay đổi và những gì nó phải hỏi trước là điều phân biệt giữa một hệ thống bạn để chạy qua đêm và một hệ thống bạn phải ngồi canh chừng.

verify: có hai mục vì một lý do. Script không tốn chi phí và bắt được mọi lỗi cơ học. Reviewer là một agent thứ hai chưa bao giờ thấy agent đầu tiên làm việc, bởi vì một agent tự chấm điểm đầu ra của chính mình sẽ luôn tìm ra lý do để phê duyệt.

Trên đĩa, harness là một thư mục, và mỗi kỹ thuật từ bảng trên đều có địa chỉ riêng trong đó.

Mr. Buzzoni - inline image

3/ Tại Sao Kimi K3 Là Động Cơ Tôi Muốn Đặt Vào Nó

Những gì harness cần

Những gì Kimi K3 mang lại

Một runner có khả năng mở rộng quy mô (fan out)

Agent Swarm: lên tới 300 agents xử lý cùng một vấn đề đồng thời, mà không cần viết orchestrator

Code đủ mạnh để tự viết các bước kiểm tra

Hạng #1 trên Frontend Code Arena với 1.679 điểm, dẫn trước Fable 5 (1.631) và GPT-5.6 Sol (1.618), đứng đầu 6 trong 7 lĩnh vực

Một động cơ cải thiện ngay bên dưới bạn

Từ #18 lên #1 chỉ trong một bản cập nhật tháng Bảy

Dòng đầu tiên quan trọng hơn vẻ ngoài của nó. Hầu hết các harness tự chế đều phát sinh một orchestrator thủ công tại một thời điểm nào đó, và đó thường là tệp dễ vỡ nhất trong thư mục. Với swarm, fan-out trở thành một dòng ngân sách, agents: 300, và harness chỉ cần xử lý những gì quay trở lại.

Dòng thứ hai quan trọng vì harness chủ yếu là code mà mô hình viết cho bạn: hook scripts, schema checks, dashboard nhỏ đọc từ 40-runs. Một động cơ dẫn đầu arena frontend sẽ làm đúng những thứ đó ngay lần thử đầu tiên thường xuyên hơn nhiều.

Dòng thứ ba là lý lẽ cho harness engineering trong một điểm dữ liệu. Khi một mô hình leo 17 bậc qua đêm, harness biến sự leo thang đó thành hiệu quả ngay trong ngày, vì dòng duy nhất cần thay đổi là model.

4/ Hooks: Các Phản Xạ

Hook là một script ngắn mà harness chạy tại một thời điểm cố định, bất kể mô hình quyết định làm gì. Hooks là nơi harness ngừng là một bố cục thư mục và bắt đầu hành xử như một hệ thống an toàn.

Hook

Khi nào kích hoạt

Nó làm gì

pre_tool

Trước bất kỳ lệnh gọi tool nào

Chặn các thao tác ghi ngoài danh sách quyền

post_tool

Sau mỗi lần trả về

Chạy kiểm tra schema và từ chối đầu ra sai định dạng ngay lập tức

pre_send

Trước khi bất cứ thứ gì rời khỏi máy

Giữ nó trong hàng đợi cho đến khi bạn phê duyệt

on_fail

Sau một kết quả bị từ chối

Gắn lý do thất bại vào lần thử lại

post_run

Khi điều kiện dừng đạt được

Thêm hồ sơ chạy vào 40-runs và so sánh đồ thị

Hook pre_tool từ dòng đầu tiên vừa vặn trong năm dòng:

text
1# hooks/pre_tool.sh
2case "$TARGET" in
3 ./10-returns/*|./20-graph/*|./40-runs/*) exit 0 ;;
4 *) echo "blocked: $TARGET is outside the write list"; exit 1 ;;
5esac

Chỉ riêng hook on_fail đã thay đổi kinh tế học của một vòng lặp. Một lần thử lại mang theo lý do lần thử trước thất bại là một sự sửa chữa. Không có lý do đó, vòng lặp trả giá cho cùng một sai lầm lần thứ hai.

5/ Một Đêm Trông Như Thế Nào

Ghép tất cả các mảnh lại với nhau và harness hành xử như một ca đêm tuân theo các quy tắc. Lúc 02:00, trigger kích hoạt và truy vấn khởi động chọn mọi node cần xử lý. Swarm mở rộng quy mô, một agent cho mỗi node.

Các kết quả trả về không khớp schema bị post_tool từ chối trước khi chúng đến được đồ thị, và mỗi node bị từ chối sẽ thử lại một lần với lý do thất bại được đính kèm. Khi một agent cố gắng ghi ra ngoài thư mục của nó, pre_tool chặn nó mà không đánh thức ai.

Các node đã hợp nhất và edges có kiểu dữ liệu được đưa vào 20-graph. Một email dự thảo đến pre_send và chờ đợi. post_run thêm hồ sơ, và vòng lặp tự dừng theo điều kiện của nó, nằm gọn trong ngân sách 45 phút từ tệp cấu hình.

Lúc 07:30, bạn đọc một tệp và đưa ra hai quyết định. Đó là toàn bộ chi phí buổi sáng cho việc vận hành loop engineering và graph engineering theo cách này, và đó chính là mục đích của harness: mọi thứ có thể chạy mà không cần bạn đều đã chạy xong, và một vài thứ cần bạn đang chờ đợi ở một chỗ.

Mr. Buzzoni - inline image

6/ Bài Kiểm Tra Hoán Đổi (Swap Test)

Cách kiểm toán nhanh nhất cho bất kỳ thiết lập agent nào: thay đổi dòng model và chạy lại. Bất cứ thứ gì hỏng hóc đều là harness đang sống ở sai chỗ.

Điều gì hỏng sau khi hoán đổi

Nó đã ẩn nấp ở đâu

Nó thuộc về đâu

Định dạng đầu ra bị lệch

"luôn trả lời bằng JSON" trong prompt

Một return schema cộng với một script từ chối mọi thứ khác

Các lần chạy ngừng tự kết thúc

"cứ tiếp tục cho đến khi nó kỹ lưỡng"

Một điều kiện dừng dựa trên số đếm

Những chỉnh sửa của tuần trước biến mất

Lịch sử chat

CONSTRAINTS.md, được nạp mỗi lần chạy

Công ty giống nhau xuất hiện ba lần

Phán đoán của mô hình

aliases.csv, được kiểm tra trước khi hợp nhất

Nó ghi vào nơi nó không nên

Một câu lịch sự trong prompt

Một danh sách quyền và một hook pre_tool

Một thiết lập vượt qua bài kiểm tra hoán đổi là có tính di động, và tính di động là thứ khiến nó đáng tiền.

Mr. Buzzoni - inline image

Chi Phí Và Lợi Nhuận

Các công ty dành nguyên quý để xây dựng nền tảng agent nội bộ. Một harness hoạt động tốt chỉ là một thư mục, một tệp cấu hình và năm script ngắn, và nó chạy trên gói đăng ký Kimi. Khoảng cách đó chính là cơ hội.

Kênh

Nó mang lại lợi nhuận

Bạn cần gì trước tiên

Thiết lập harness cho nhóm nhỏ

Phí một lần ở mức bốn chữ số cho cấu hình, hooks và verifier xung quanh quy trình làm việc của họ

Một harness của riêng bạn, chạy theo lịch trình

Dịch vụ retainer ngày phát hành

Phí hàng tháng để chạy bài kiểm tra hoán đổi trên mỗi bản phát hành mô hình lớn và chuyển đội ngũ sang mô hình dẫn đầu

Một khách hàng có các lần chạy đã được ghi log vào 40-runs

Mẫu harness chuyên biệt

Thư mục và yaml được đóng gói cho một ngành: nghiên cứu, tuyển dụng, tuân thủ

Cùng một harness đã được chứng minh ở hai thị trường khác nhau

Kênh thứ hai là kênh tôi sẽ xây dựng đầu tiên. Mỗi bản phát hành lớn đều xáo trộn bảng xếp hạng, riêng K3 đã di chuyển 17 bậc trong một bản cập nhật, và mọi đội ngũ có harness đều cần một người mà công việc là chạy bài kiểm tra hoán đổi vào ngày phát hành.

Phiên Bản Ngắn Gọn

Prompt, context, tool, loop, graph và eval engineering hóa ra đều là các thành phần của một cỗ máy, và harness engineering là việc quyết định vị trí của từng thành phần đó.

Đặt mô hình phía sau một dòng, ưu tiên permissions hơn tools và đặt verifier bên ngoài agent. Khi đó, bước nhảy vọt tiếp theo trên bảng xếp hạng sẽ chỉ là một thay đổi cấu hình thay vì phải xây dựng lại từ đầu.

Mr. Buzzoni - inline image

Và nếu bạn thấy bài viết này hữu ích:

  • Đánh dấu trang bài viết này. Các liên kết thay đổi và các repo mới xuất hiện hàng tuần, bạn sẽ cần nó như một tài liệu tham khảo
  • Để có các phân tích sâu hàng tuần về kiến trúc AI, giao dịch định lượng và kinh tế agent, hãy theo dõi tôi: @polydao
  • Tham gia Kênh TG: Buzzoni Notes - ở đây tôi chia sẻ các prompt thô, skills tùy chỉnh và alpha còn quá sớm cho X
Lưu một chạm

Đọc sâu bài viết viral bằng AI trong YouMind

Lưu nguồn, đặt câu hỏi tập trung, tóm tắt lập luận và biến một bài viết viral thành các ghi chú có thể tái sử dụng trong một không gian làm việc AI duy nhất.

Khám phá YouMind
Dành cho nhà sáng tạo

Biến Markdown của bạn thành bài viết 𝕏 gọn gàng

Khi bạn đăng bài viết dài của riêng mình, việc định dạng hình ảnh, bảng và khối mã cho 𝕏 rất mệt mỏi. YouMind biến cả bản nháp Markdown thành một bài viết 𝕏 gọn gàng, sẵn sàng để đăng.

Thử Markdown sang 𝕏

Thêm pattern để giải mã

Bài viết viral gần đây

Khám phá thêm bài viết viral