确实,Manus rất thông minh, họ đã chia công cụ thành 3 lớp: Lớp 1: Gọi hàm (Function Calling) Đây là lớp cơ bản nhất, chỉ giữ lại một nhóm nhỏ các hàm cố định, nguyên tử, chẳng hạn như: đọc ghi tệp, thực thi lệnh Shell, tìm kiếm tệp, v.v. Trong lời nhắc hệ thống của LLM chỉ có định nghĩa công cụ của lớp này, tương đối ít, dưới 15 cái, định dạng đầu vào và đầu ra rất rõ ràng, không dễ mắc lỗi, nhưng trong số này có hai công cụ rất đặc biệt, một là Shell, một là File. Lớp 2: Công cụ Sandbox (Sandbox Utilities) Mỗi phiên Manus đều chạy trong một máy ảo sandbox hoàn chỉnh. Đó chính là điều đã được đề cập trong tweet gốc, máy ảo được cài sẵn nhiều công cụ dòng lệnh, chẳng hạn như công cụ chuyển đổi định dạng, công cụ nhận diện giọng nói, thậm chí là một khách hàng dòng lệnh mcp. Sau đó, những công cụ này đều được gọi thông qua Shell được định nghĩa trong lớp 1, tức là công cụ dòng lệnh, gọi dòng lệnh. Nhưng làm thế nào mà mô hình công cụ nhiều như vậy biết được? Manus sẽ trực tiếp thông báo cho LLM trong lời nhắc hệ thống rằng có nhiều công cụ dòng lệnh được cài sẵn trong một thư mục cụ thể. Đối với những công cụ thường dùng nhất, sẽ liệt kê trực tiếp tên của chúng. Đối với những công cụ không thường dùng, LLM có thể trực tiếp liệt kê tất cả công cụ dòng lệnh thông qua lệnh đã đề cập trong tweet gốc, và xem cách sử dụng của bất kỳ công cụ nào bằng tham số --help, vì tất cả những công cụ này đều do họ tự phát triển, định dạng đồng nhất. Lớp 3: Gói mã và API (Packages and APIs) Lớp này thực sự là LLM viết mã Python theo thời gian thực, thông qua mã để thực hiện các chức năng phức tạp hơn. Chẳng hạn, nếu người dùng muốn truy vấn dữ liệu của một API nào đó, có thể trực tiếp viết một hàm bằng Python, lấy dữ liệu API và phân tích thành định dạng cần thiết. Thực ra trong Codex, việc sử dụng mã Python làm công cụ đã rất phổ biến. Do các phép toán phức tạp đều được hoàn thành bằng mã, kết quả được trả về cho Đại lý chính, vì vậy sẽ không chiếm dụng ngữ cảnh của Đại lý chính. Lợi ích của thiết kế 3 lớp này là, từ góc độ mô hình, các công cụ cần gọi chỉ cố định là mười mấy cái ở lớp 1, nhưng nhờ vào dòng lệnh và mã, nó có thể phát sinh ra vô số sự kết hợp công cụ. Còn một điểm nữa là tôi đã đề cập trong tweet trước về các tác nhân phụ, Manus cũng áp dụng rất nhiều mô hình "tác nhân như công cụ (agent as tool)". Xem các tác nhân phụ như công cụ, chẳng hạn như tác nhân phụ chịu trách nhiệm tìm kiếm, nhưng trong mắt Đại lý chính, tác nhân phụ này chỉ là một công cụ. Đồng thời cũng có thể rất tốt để giảm bớt ngữ cảnh.