Một công ty 500 engineer. Mỗi người chạy 5–10 agent sessions mỗi ngày với Claude Code, Cursor, hoặc Codex. Mỗi session đốt token, sinh code, push thẳng vào repo — nhưng khi cuối tháng nhìn lại:
- Tháng này team tốn bao nhiêu API, chia theo dự án ra sao?
- Agent vừa commit code vi phạm security policy — ai chịu trách nhiệm?
- Cái migration làm sập staging sáng nay, ai approve nó?
- Agent của team A viết code tốt hơn hay tệ hơn team B?
- Senior dev vừa nghỉ, 6 tháng prompt engineering kinh nghiệm giờ ở đâu?
Đây không phải lỗi AI. Không phải lỗi team. Đây là lỗi kiến trúc: chúng ta đang thiếu một lớp hạ tầng mà chưa ai đặt tên cho rõ ràng.
Table of contents
Open Table of contents
Harness là gì — và tại sao mọi agent đều có
Theo định nghĩa của LangChain: Agent = Model + Harness. Tất cả những thứ không phải model đều là Harness.
Trong một agent setup, harness gồm:
| Thành phần | Vai trò | Ví dụ cụ thể |
|---|---|---|
| Context files | Định nghĩa coding standards, security policies, naming conventions | CLAUDE.md, .github/copilot-instructions.md |
| Skills | Prompt template cho các task lặp lại | review code, viết migration, refactor module |
| Sensors | Tiền xử lý output trước khi trả kết quả | ”chạy lint rồi tự sửa trước khi finalize” |
| Hooks | Script chạy before/after mỗi agent run | gửi log lên dashboard, notification Slack |
| Sandbox | Môi trường cách ly để agent thực thi code | Docker container, worktree riêng |
Sandbox do Anthropic xây. Còn file CLAUDE.md — anh ngồi viết lúc 11 giờ đêm tuần trước. Hai thứ khác nguồn gốc, khác người sở hữu, khác vòng đời — nhưng lại nhét chung vào rổ “cấu hình agent”.
Inner Harness vs Outer Harness
Mượn analogy từ wiring harness trong ô tô:
Inner Harness là những dây cáp hàn cố định trong engine block. Đừng đụng vào. Đây là phần Anthropic, OpenAI, Cursor đã đổ hàng chục triệu đô để tối ưu. Khi source code Claude Code bị leak vào đầu năm 2026, community đồng thuận đây là ví dụ tiên phong nhất về thiết kế Inner Harness — execution loop, tool routing, prompt caching, context compaction. Đừng tự xây lại.
Outer Harness là dây nối tùy biến ra dashboard, sensors, phụ kiện. Phần này mang DNA của tổ chức: context doanh nghiệp, quy trình phê duyệt, tiêu chuẩn chất lượng, cách chia sẻ tri thức. Provider không thể và không có lý do để xây thay bạn — họ không biết công ty anh vận hành ra sao.
Nghịch lý cốt lõi
Hầu hết tổ chức đang chi hàng trăm ngàn đô cho Inner (token fees), trong khi Outer — thứ thực sự quyết định chất lượng output — nằm rải rác trên laptop từng người. Khi scale lên 50, 200, 1000 engineer, nó vỡ.
Đó là lý do tại sao đầu tư vào Outer Harness có ROI cao hơn hẳn so với việc chỉ tối ưu prompt hay model selection.
Hai mindset nền tảng
1. Process-centric
Đừng xây hệ thống xoay quanh con người (“nhớ paste policy nhé”) hay xoay quanh agent (“nó thông minh, kệ nó”). Quy trình là xương sống. Human và Agent đều là node trên cùng một pipeline. Ai cắm vào cũng phải chạy đúng luồng.
2. Data-driven
Mọi thao tác phải sinh ra structured data. Không có data thì không có visibility. Không có visibility thì không improve được. Đơn giản vậy thôi.
Hai mindset này không phải hai thứ riêng biệt. Chúng bổ trợ nhau: process sinh data, data kiểm chứng process.
5 trụ cột của Outer Harness
1. Cost Attribution — Ai đốt tiền, tiêu cho gì
Vấn đề: Hóa đơn API cuối tháng là $180K. CFO hỏi “tiền đi đâu?” — chỉ biết trả lời “Anthropic”. Break down theo team, theo feature, theo agent? Không thể.
Giải pháp: Log mọi agent run kèm metadata: agent nào, task nào, project nào, model nào, input/output tokens, cost ước tính.
Kết quả khi data đủ mịn:
- Hệ thống tự phát hiện agent X đang đốt gấp 3 lần bình thường → alert ngay
- Vượt budget ceiling → hard stop, không cần ai can thiệp
- Data-driven cost control thay vì cuối tháng mở bill rồi thở dài
Cost Attribution không phải accounting. Đây là telemetry — quan sát runtime behavior để biết nơi nào spend hiệu quả, nơi nào đang lãng phí.
2. Multi-layer Knowledge Flow — Skills không nên sống trên laptop
Vấn đề kép: Agent vi phạm security policy vì engineer quên paste compliance doc. Tuần sau senior dev nghỉ — 6 tháng kinh nghiệm prompt engineering bay theo người.
Cùng gốc rễ: context và skills đang sống trên máy cá nhân thay vì hệ thống.
Giải pháp: 5 tầng context hierarchy với ownership rõ ràng ở mỗi tầng.
- Layer 1: Organization-wide (CTO-owned) — security policy, compliance, core values
- Layer 2: Department-wide (Head-owned) — coding standards, deployment policy
- Layer 3: Team-shared (Tech lead-owned) — repos knowledge, service catalog
- Layer 4: Project-local (engineer-owned) — task context, current sprint info
- Layer 5: Personal scratch (any engineer) — individual preferences, experiments
Hệ thống chạy hai chiều:
Top-down: CTO update security policy ở Layer 1 một lần → mọi agent tự động kế thừa qua tất cả layer dưới. Không ai cần “nhớ” copy-paste. Không ai có thể bypass.
Bottom-up: Engineer A viết prompt xử lý migration cực ngon ở Layer 5. Đóng gói thành Skill, promote lên Layer 3 qua fetch_skill, cả team dùng được ngay.
Senior dev nghỉ? Skills vẫn ở đây. Engineer mới kế thừa ngay ngày đầu, không cần ai ngồi “truyền nghề” 2 tuần.
3. Task Tracking — Mỗi task có lịch sử, không phải dấu chấm hỏi
Vấn đề: Agent chạy migration, staging sập. Ai approve? Khi nào? Dựa trên tiêu chí gì? Câu trả lời trong Slack thread 9 ngày trước mà không ai tìm lại được.
Giải pháp: Task lifecycle tracking + approval gates với audit trail đầy đủ.
- Mỗi task có trạng thái rõ ràng (
drafted→approved→running→verified→merged) - Mỗi approval gắn liền người, thời điểm, lý do
- Trace ngược được toàn bộ: agent nào chạy, ai approve, context version nào, cost bao nhiêu
Khi có incident, query thẳng từ task ID ra được timeline. Không phải đi tìm trong email + Slack + Jira + Google Docs + bộ nhớ của PM.
4. Quality Gates — Separation of Duties ở cấp hệ thống
Câu hỏi kinh điển: “Agent đã biết TDD rồi, cần gì quality gate ở Outer?”
Câu trả lời: Vẫn cần, vì Separation of Duties.
Inner Harness cho agent khả năng tự sửa lỗi (TDD loop, self-debug). Nhưng agent cũng hoàn toàn có thể tự approve output tệ của chính nó — bias tự thân là một trong những failure mode phổ biến nhất của AI coding agents.
Outer Quality Gates độc lập với agent:
- Coverage threshold (min 80%) phải pass trước khi merge
- Security scan không được skip dù agent nói “không cần”
- Reviewer phải khác author — hoặc là LLM khác (cross-model review), hoặc là human reviewer
5. Audit Log — Append-only, tamper-evidence
Mọi biến đổi trong hệ thống (task status change, context edit, approval decision, gate result, cost event) đều được ghi lại dưới dạng append-only. Không sửa, không xóa.
Với hash chain — mỗi record = hash của record trước + payload hiện tại — bạn có tamper-evidence ở cấp hệ thống. Cố tình sửa một record cũ = phá vỡ chuỗi hash = audit trail tự động phát hiện.
Đây không phải paranoia. Khi có sự cố compliance (SOC2, ISO27001, healthcare, fintech), audit trail là requirement chứ không phải nice-to-have. Một câu chuyện thật: team X phát hiện agent tự ý thêm dependency không có license rõ ràng. Không có audit log = không biết khi nào, ở đâu, bởi agent nào. Có log = trace được trong 2 phút.
Tại sao đây là vấn đề kiến trúc, không phải vấn đề tooling
Có ý kiến cho rằng Outer Harness chỉ là một tập hợp tools: log shipper, dashboard, CI/CD, observability stack. Không hẳn.
Tools là implementation. Outer Harness là architectural decision — quyết định rằng organization của bạn đối xử với AI agent như một node trong pipeline chứ không phải như một con người thần thánh hay một con chatbot vô hại.
Khi bạn chấp nhận mental model đó:
- Cost Attribution trở thành requirement, không phải nice-to-have
- Skills phải có owner, có version, có lifecycle
- Task Tracking phải enforce state machine chứ không phải dựa vào Slack thread
- Quality Gates phải chạy tự động, không phải “nhớ review nhé”
- Audit Log phải immutable, không phải “lưu đâu đó rồi quên”
Mô hình tư duy tổng hợp
Model sinh output. Inner Harness giữ execution an toàn. Nhưng Outer Harness mới là thứ quyết định output đó có thực sự phục vụ tổ chức hay không.
Process-centric: Human và Agent đều là node trên cùng một pipeline. Quy trình quyết định context nào được inject, output nào được approve, gate nào phải pass. Không phải human quyết đoán. Không phải agent tự phán. Process quyết.
Data-driven: Mọi thao tác sinh structured data. Cost Attribution cho data về tiền. Quality Gates cho data về chất lượng. Audit Log giữ mọi thứ immutable. Không có data thì không có visibility. Không có visibility thì mãi mãi đoán mò.
TL;DR
Sự khác biệt giữa tổ chức dùng AI hiệu quả và tổ chức chỉ đang “có AI” nằm ở chỗ: họ đã biến Outer Harness từ thói quen cá nhân thành hạ tầng chung.
Nếu bạn chưa bắt đầu, thời điểm rẻ nhất là hôm nay — mỗi ngày không có Outer Harness là một ngày bạn tích thêm nợ kỹ thuật mà không ai đo được.
Tham khảo
- Nguồn gốc bài viết: Phúc Nguyễn — Outer Harness: Tại sao Process và Data quan trọng hơn Agent (Phúc’s Words Substack, Apr 11 2026)
- Khung khái niệm: LangChain Agent Harness definition
- Bài liên quan: Birgitta Böckeler (Thoughtworks) — “The inner and outer harness of AI coding agents” — đặt thuật ngữ feedforward vs feedback controls
- Paper: “Multi-step interactions need coordination: protocols externalize sequencing rules into state machines” (Coordination externalization framework)