BIẾT A.I CHƯA?

Đánh giá “Code Execution with MCP” của Anthropic

Bài viết kỹ thuật mới đây của Anthropic, “Code execution with MCP: Building more efficient agents“, là một trong những bài phân tích về các thách thức khi xây dựng AI Agent (tác tử AI) ở quy mô lớn.

Bài viết này không chỉ giới thiệu một tính năng mới, mà còn thẳng thắn chỉ ra một “nút thắt cổ chai” nghiêm trọng mà bất kỳ ai xây dựng hệ thống AI phức tạp đều sẽ gặp phải, đồng thời đề xuất một giải pháp rất thực dụng.

Vấn đề “chết người” của AI Agent khi có quá nhiều công cụ

Anthropic bắt đầu bằng cách giới thiệu MCP (Model Context Protocol) – một tiêu chuẩn mở mà họ xây dựng để AI Agent có thể kết nối với các hệ thống bên ngoài (như Google Drive, Salesforce, v.v.). Ý tưởng này rất hay: tạo ra một “giao thức chung” để AI có thể dùng hàng ngàn công cụ.

Nhưng chính ở quy mô “hàng ngàn công cụ” này, vấn đề bắt đầu nảy sinh. Phương pháp truyền thống là “gọi công cụ trực tiếp” (direct tool calling), tức là AI sẽ “đọc” định nghĩa của tất cả công cụ đó. Bài viết đã chỉ ra rất đúng hai vấn đề lớn:

1. Quá tải cửa sổ ngữ cảnh (Context Window Overload):

  • Hãy tưởng tượng, trước khi bạn kịp hỏi AI bất cứ điều gì, nó đã phải “nhồi” hàng trăm ngàn token (đơn vị dữ liệu) chỉ để đọc mô tả của 1000+ công cụ.
  • Đánh giá: Đây là một sự lãng phí tài nguyên khổng lồ. Nó làm tăng chi phí và tăng độ trễ (latency) một cách phi lý.

2. Phình to dữ liệu trung gian (Intermediate Results Bloat):

  • Bài viết đưa ra một ví dụ rất hay: Bạn yêu cầu AI “Lấy bản ghi cuộc họp từ Google Drive và đính nó vào một khách hàng trên Salesforce”.
  • AI sẽ gọi công cụ gdrive.getDocument(), toàn bộ nội dung bản ghi (ví dụ: 50.000 token) sẽ được trả về ngữ cảnh của AI.
  • Sau đó, AI lại gọi công cụ salesforce.updateRecord()sao chép toàn bộ 50.000 token đó vào lệnh gọi mới.
  • Đánh giá: Dữ liệu bị xử lý trùng lặp. Nó không chỉ tốn kém mà còn làm tăng nguy cơ AI “sao chép nhầm” hoặc gặp lỗi khi dữ liệu quá lớn, vượt cả cửa sổ ngữ cảnh.

Giải pháp: Biến AI Agent thành một Lập trình viên

Thay vì coi AI là một người dùng công cụ, Anthropic đề xuất biến nó thành một lập trình viên.

Giải pháp được gọi là “Thực thi mã” (Code Execution). Thay vì “gọi” công cụ, AI sẽ được cấp một môi trường code (sandbox) và một hệ thống file chứa các API của công cụ (ví dụ: servers/google-drive/getDocument.ts).

Khi nhận yêu cầu, AI sẽ viết một đoạn code (ví dụ bằng TypeScript) để hoàn thành tác vụ.

// AI sẽ tự viết ra đoạn code này:
import * as gdrive from './servers/google-drive';
import * as salesforce from './servers/salesforce';

// 1. Lấy dữ liệu (chỉ lưu trong biến, không vào ngữ cảnh AI)
const transcript = (await gdrive.getDocument({ documentId: 'abc123' })).content;

// 2. Cập nhật dữ liệu
await salesforce.updateRecord({
  objectType: 'SalesMeeting',
  recordId: '00Q5f000001abcXYZ',
  data: { Notes: transcript }
});

Đánh giá: Đây là một bước đi cực kỳ thông minh. Nó giải quyết triệt để cả hai vấn đề trên bằng cách tận dụng chính thế mạnh của các mô hình LLM hiện đại: khả năng lập trình.

Phân tích các lợi ích “ăn tiền” của giải pháp này

Bài viết đã phân tích rất rõ 5 lợi ích vượt trội mà mình xin tóm tắt và đánh giá như sau:

1. “Tiết lộ dần” (Progressive Disclosure):

  • AI không cần tải 1000+ định nghĩa công cụ cùng lúc. Nó có thể dùng lệnh ls ./servers/ để xem có những dịch vụ nào, và chỉ đọc file định nghĩa của công cụ nó thực sự cần (ví dụ: getDocument.ts).
  • Giá trị: Bài viết tuyên bố giảm từ 150.000 token xuống chỉ còn 2.000 token. Đây là một con số ấn tượng, giúp tiết kiệm chi phí và thời gian khởi động AI.

2. Lọc dữ liệu hiệu quả (Context-Efficient Results):

  • Đây là điểm thay đổi cuộc chơi. Với 10.000 dòng spreadsheet, AI có thể viết code lọc ngay trong môi trường thực thi (ví dụ: allRows.filter(row => row["Status"] === 'pending' )) và chỉ console.log 5 dòng đầu tiên.
  • Giá trị: Mô hình AI chỉ “thấy” 5 dòng dữ liệu, thay vì 10.000 dòng. Giờ đây, AI có thể xử lý các tập dữ liệu khổng lồ mà không sợ bị quá tải.

3. Luồng điều khiển mạnh mẽ (Powerful Control Flow):

  • AI có thể viết các logic phức tạp như vòng lặp while (ví dụ: “cứ 5 giây kiểm tra Slack một lần cho đến khi thấy thông báo ‘deployment complete'”).
  • Giá trị: Thay vì lặp đi lặp lại chu trình (Gọi tool -> Chờ kết quả -> AI suy nghĩ -> Gọi tool tiếp), AI chỉ cần viết một kịch bản và để môi trường code tự chạy. Hiệu quả hơn rất nhiều.

4. Bảo mật và quyền riêng tư (Privacy-Preserving):

  • Đây là điểm cực kỳ quan trọng. Vì dữ liệu (như cái transcript ở ví dụ trên) chỉ nằm trong biến của môi trường code, nó không bao giờ đi vào cửa sổ ngữ cảnh của AI trừ khi được log ra.
  • Giá trị: Dữ liệu nhạy cảm (PII) của khách hàng được bảo vệ. Bài viết còn đề xuất một cơ chế nâng cao: tự động “token hóa” (che) dữ liệu nhạy cảm. Ví dụ AI chỉ thấy [EMAIL_1] thay vì [email protected], nhưng khi gọi API Salesforce, hệ thống sẽ tự “giải mã” và gửi đi email thật.

5. Lưu trữ trạng thái và “Kỹ năng” (State & Skills):

  • AI có thể ghi kết quả trung gian ra file (ví dụ: fs.writeFile('./workspace/leads.csv', …)).
  • Giá trị: Nó có thể tạm dừng và tiếp tục công việc sau. Thậm chí, nó có thể tự viết ra các hàm và lưu lại vào thư mục /skills (ví dụ: saveSheetAsCsv.ts) để tái sử dụng trong tương lai. Đây là cách để AI tự “tiến hóa” và xây dựng thư viện kỹ năng cho riêng mình.

Góc nhìn thực tế: Sự đánh đổi không thể tránh khỏi

Bài viết của Anthropic cũng rất thực tế khi thừa nhận một “cái giá” phải trả cho giải pháp này.

Đánh giá: Việc cho AI chạy code mà nó tự sinh ra là một rủi ro bảo mật. Giải pháp này đòi hỏi một cơ sở hạ tầng phức tạp: một môi trường sandboxing (cách ly) cực kỳ an toàn, có giới hạn tài nguyên, giám sát chặt chẽ để ngăn AI làm những việc nguy hiểm (ví dụ: tấn công mạng, đào tiền ảo, v.v.).

Đây là một sự đánh đổi rõ ràng: “gọi công cụ trực tiếp” thì an toàn và đơn giản nhưng kém hiệu quả; “thực thi mã” thì cực kỳ mạnh mẽ và hiệu quả nhưng đòi hỏi chi phí vận hành và kỹ thuật bảo mật cao.


Đây là một bài viết kỹ thuật xuất sắc. Anthropic không chỉ chia sẻ một “chiến thắng” mà còn phân tích rõ ràng “tại sao” họ phải làm vậy và “làm như thế nào”.

Nó cho thấy một tầm nhìn rõ ràng: tương lai của AI Agent không chỉ là “gọi API” đơn thuần. Tương lai là biến AI Agent thành một “kỹ sư phần mềm” tự động, biết cách tự khám phá công cụ, viết code để lọc dữ liệu, xử lý logic phức tạp và thậm chí tự tạo ra kỹ năng mới cho mình.

Bài viết này là một tài liệu tham khảo giá trị cho bất kỳ ai đang nghiêm túc trong việc xây dựng các AI Agent phức tạp, hiệu quả và có khả năng mở rộng.

Duy Nghiện
Hãy làm khán giả, đừng làm nhân vật chính :)

You may also like

Nhận thông báo qua email
Nhận thông báo cho
guest

0 Bình luận
Mới nhất
Cũ nhất Nhiều like nhất
Phản hồi nội tuyến
Xem tất cả bình luận