Bên trong Claude Code: AI agent thực chất là một vòng lặp quanh mô hình
Tóm tắt
Mô hình ngôn ngữ tự nó chỉ sinh văn bản. Một AI coding agent là “harness” bao quanh mô hình: cung cấp tool (đọc/ghi file, chạy lệnh), chạy vòng lặp think → act → observe, quản lý context, xin quyền và ghi log. Hiểu cấu trúc này giúp bạn giao việc và kiểm soát agent hiệu quả hơn.
Mô hình ngôn ngữ tự nó chỉ sinh văn bản. Khi bạn thấy Claude Code đọc file, chạy test và sửa lỗi, phần lớn “phép màu” đó đến từ harness — lớp phần mềm bao quanh mô hình: cung cấp tool, chạy vòng lặp, quản lý ngữ cảnh, xin quyền và ghi log. Hiểu cấu trúc này giúp bạn giao việc hiệu quả hơn, kiểm soát chi phí và không bị bất ngờ.
Các lớp của một harness
| Lớp | Làm gì |
|---|---|
| Tool use | Mô hình trả về yêu cầu gọi tool (đọc file, chạy shell); harness thực thi rồi gửi kết quả lại. |
| Agent loop | Lặp: suy nghĩ → hành động → quan sát, cho đến khi mô hình báo xong. |
| An toàn | Hỏi quyền trước lệnh nguy hiểm, sandbox, giới hạn thư mục, ghi log. |
| Quản lý context | Prompt caching, nén/tóm tắt lịch sử khi gần đầy, giao việc phụ cho sub-agent. |
| Mở rộng | Skills, MCP, hooks để thêm khả năng mà không sửa lõi. |
Vòng lặp tối giản
messages = [user_task]
while True:
reply = model(messages, tools=TOOLS)
if not reply.tool_calls:
break # mô hình báo xong
for call in reply.tool_calls:
if needs_approval(call): ask_user(call)
result = run_tool(call) # đọc file, chạy lệnh…
messages.append(result) # quan sát
Chỉ khoảng mười dòng, nhưng đây là xương sống của mọi agent. Phần còn lại — thứ làm nên sự khác biệt giữa các sản phẩm — là chất lượng tool, quản lý ngữ cảnh và an toàn.
Vì sao điều này ảnh hưởng đến cách bạn làm việc?
1. Chất lượng vòng lặp phụ thuộc vào “quan sát”
Agent chỉ tự sửa được khi bước quan sát có tín hiệu đúng/sai rõ ràng: test, lint, build, type-check. Không có tín hiệu, nó chỉ đoán. Vì vậy dự án có test tốt thường cho kết quả agent tốt hơn hẳn.
2. Context là tài nguyên hữu hạn
Mỗi lệnh chạy, mỗi file đọc đều được thêm vào lịch sử và được gửi lại ở mọi lượt sau. Log dài và output lệnh dài làm đầy ngữ cảnh, tăng chi phí và làm chất lượng giảm. Giao việc gọn, chia nhỏ phiên, dùng sub-agent cho việc phụ.
3. Quyền hạn là một thiết kế
Harness là thứ thực thi lệnh thay bạn. Hiểu điều đó giúp cấu hình quyền hợp lý — cho phép lệnh đọc, hỏi trước lệnh ghi hoặc xoá — thay vì bật “cho phép tất cả” cho tiện.
4. Mở rộng không cần sửa mô hình
Skills thêm quy trình, MCP thêm kết nối, hooks thêm kiểm soát (ví dụ chặn lệnh nguy hiểm, tự chạy lint). Đây là nơi team có thể tuỳ biến mà không phụ thuộc nhà cung cấp mô hình.
Các mẫu thiết kế thường gặp
Anthropic mô tả một số mẫu xây dựng trên harness: prompt chaining, routing, parallelization, orchestrator-workers và evaluator-optimizer. Agent “thực thụ” chỉ cần thiết khi số bước không đoán trước được; nhiều bài toán giải được bằng workflow đơn giản hơn.
Áp dụng thế nào?
- Cho agent cách tự kiểm chứng: ghi lệnh test, lint, build trong CLAUDE.md/AGENTS.md.
- Quản lý context: mở phiên mới cho việc mới, tránh dán log dài, yêu cầu agent tóm tắt thay vì in toàn bộ.
- Cấu hình quyền có chủ đích: allowlist các lệnh an toàn thường dùng, hỏi cho phần còn lại.
- Học nhanh nhất: tự viết một agent mini bằng API tool use — bạn sẽ hiểu vì sao từng quyết định thiết kế tồn tại.
Nguồn & tham khảo
- Building effective agents — Anthropic