Nếu loại bỏ những lời cường điệu về một "tác nhân AI" (AI agent), chúng ta sẽ thấy một khái niệm có thể nắm bắt trong một buổi chiều: một mô hình, một vòng lặp và một vài công cụ. Đây là phần một trong loạt bài gồm ba phần. Chúng tôi sẽ xây dựng một công cụ sắp xếp cá nhân hoạt động hiệu quả từ đầu bằng Python thuần túy, và trên hành trình đó, bạn sẽ học được một mô hình duy nhất mà cả tác nhân nghiên cứu và trợ lý lập trình trong phần hai và phần ba đều tái sử dụng.
Bạn có một ứng dụng ghi chú chứa đầy những suy nghĩ dang dở. "Gửi email cho Dave về số liệu quý 3. Đặt lịch nha sĩ. Tìm hiểu về hội nghị đó. Hoàn thành bản trình bày trước thứ Năm. Gọi điện cho mẹ." Đó là một đống lộn xộn, không phải một kế hoạch, và việc biến đống lộn xộn đó thành một kế hoạch là một công việc tốn sức.
Nếu bỏ qua những lời quảng cáo cường điệu về "AI agent", chúng ta sẽ thấy một khái niệm dễ hiểu chỉ trong một buổi chiều: một mô hình, một vòng lặp và một vài công cụ. Đây là phần một trong loạt bài gồm ba phần. Chúng ta sẽ xây dựng một công cụ sắp xếp công việc cá nhân hoạt động hiệu quả từ đầu bằng Python thuần túy, và trên hành trình đó, bạn sẽ học được một mô hình duy nhất mà cả tác nhân nghiên cứu và trợ lý lập trình trong phần hai và phần ba đều tái sử dụng.
Bạn có một ứng dụng ghi chú chứa đầy những suy nghĩ dang dở. "Gửi email cho Dave về số liệu quý 3. Đặt lịch hẹn nha sĩ. Tìm hiểu về hội nghị đó. Hoàn thành bản trình bày trước thứ Năm. Gọi điện cho mẹ." Đó là một đống lộn xộn, không phải một kế hoạch, và biến đống lộn xộn thành một kế hoạch chính là loại công việc nhỏ nhặt, phiền toái, hàng ngày mà một AI agent thực sự giỏi.
Vì vậy, đó là những gì chúng ta sẽ xây dựng trong phần đầu tiên này: một tác nhân sắp xếp. Bạn đưa cho nó một danh sách suy nghĩ lộn xộn, và nó sẽ sắp xếp chúng thành một kế hoạch có cấu trúc, ưu tiên, duy trì một danh sách việc cần làm liên tục và có thể cập nhật danh sách đó khi bạn thực hiện. Không có gì quá lớn lao. Một thứ nhỏ bé và thực tế mà bạn thực sự có thể sử dụng vào cuối bài viết.
Nhưng đây là điều giá trị hơn mà bạn sẽ có được. Xây dựng công cụ sắp xếp này sẽ dạy bạn mô hình cốt lõi mà mọi tác nhân đều chạy trên đó, cùng một vòng lặp mà tác nhân nghiên cứu trong phần hai và trợ lý lập trình trong phần ba được xây dựng từ đó. Học nó một lần ở đây, và hai phần tiếp theo chủ yếu là việc thay thế các công cụ. Vì vậy, bài viết này có hai mục đích. Nó xây dựng một thứ hữu ích và nó dạy nền tảng cho mọi thứ sau đó.
Một lưu ý nhanh về những gì bạn cần: Python 3.10 trở lên, một khóa API từ nhà cung cấp mô hình và sẵn sàng đọc khoảng năm mươi dòng mã. Không có framework, không có LangChain, không có cơ sở dữ liệu vector. Những thứ đó hữu ích sau này, nhưng chúng che giấu chính xác điều bạn muốn hiểu ngay bây giờ, đó là bản chất của một tác nhân.
Bản chất của một tác nhân
Trước bất kỳ đoạn mã nào, ý tưởng quan trọng nhất, bởi vì nó loại bỏ gần như tất cả sự nhầm lẫn xung quanh từ này.
Một chatbot trả lời. Bạn gửi cho nó một tin nhắn, nó gửi lại một tin nhắn, và đó là toàn bộ tương tác. Một tác nhân hoạt động. Bạn đưa cho nó một mục tiêu, và nó thực hiện nhiều bước để đạt được mục tiêu đó, thực hiện các hành động trong thế giới thực trên đường đi. Sự khác biệt đó nghe có vẻ nhỏ nhưng không phải vậy. Khoảnh khắc một mô hình có thể hành động thay vì chỉ phản hồi, bạn không còn viết lời nhắc nữa, bạn đang xây dựng một hệ thống.
Định nghĩa rõ ràng nhất mà tôi từng thấy là: một tác nhân là một mô hình sử dụng các công cụ trong một vòng lặp. Đó thực sự là phần lớn của nó. Có một mô hình ngôn ngữ thực hiện suy luận, có một bộ công cụ mà mô hình có thể gọi để thực sự thực hiện mọi việc, và có một vòng lặp cho phép nó tiếp tục cho đến khi công việc hoàn thành. Mọi người tô vẽ điều này bằng rất nhiều thuật ngữ, nhưng bên dưới hầu hết mọi tác nhân vào năm 2026, đó là cỗ máy.
Mô hình cụ thể mà chúng ta sẽ sử dụng được gọi là ReAct, viết tắt của Reasoning and Acting (Suy luận và Hành động), và nó đã là kiến trúc thân thiện với người mới bắt đầu mặc định trong một thời gian vì một lý do chính đáng: nó dễ kiểm tra. Vòng lặp diễn ra theo chu trình Nghĩ, Hành động, Quan sát và lặp lại. Mô hình suy nghĩ về những gì nó cần làm, hành động bằng cách gọi một công cụ, quan sát kết quả, và sau đó suy nghĩ lại với thông tin mới đó, lặp đi lặp lại cho đến khi nó có đủ để đưa ra câu trả lời cuối cùng. Bởi vì mỗi bước đều rõ ràng, khi có điều gì đó sai, bạn có thể thấy chính xác ở đâu, điều này cực kỳ quan trọng khi bạn đang học.
Ba phần bạn cần
Mọi tác nhân, bao gồm cả công cụ sắp xếp của chúng ta, đều được xây dựng từ ba thành phần. Nắm vững ba điều này và phần còn lại chỉ là chi tiết.
Đầu tiên là mô hình, bộ não.
Nó thực hiện lập luận và quyết định hành động ở mỗi bước. Bạn truy cập nó thông qua một API. Bạn không đào tạo bất cứ điều gì; bạn đang thuê một mô hình hiện có và giao cho nó một công việc.
Thứ hai là các công cụ. Một công cụ chỉ là một hàm mà mô hình được phép gọi, đi kèm với mô tả về chức năng của nó. Đây là phần cho phép tác nhân hành động thay vì chỉ nói chuyện. Đối với công cụ sắp xếp của chúng ta, các công cụ sẽ là những thứ như “lưu một nhiệm vụ vào danh sách” và “đọc danh sách hiện tại”. Mỗi công cụ có hai phần: một lược đồ (schema), là một mô tả bằng ngôn ngữ tự nhiên mà mô hình đọc để hiểu công cụ làm gì và khi nào sử dụng nó, và hàm Python thực tế chạy khi mô hình quyết định gọi nó. Hãy coi lược đồ như một hợp đồng. Mô hình đọc hợp đồng; mã của bạn tuân thủ nó.
Thứ ba là bộ nhớ, và đối với một tác nhân nhỏ, điều này đơn giản hơn nhiều so với những gì nghe có vẻ. Bộ nhớ của tác nhân chỉ là lịch sử cuộc trò chuyện đang diễn ra. Mọi suy nghĩ, mọi hành động, mọi quan sát đều được thêm vào một danh sách tin nhắn, và bạn gửi toàn bộ danh sách đó trở lại mô hình ở mỗi lượt. Đó là cách tác nhân “ghi nhớ” những gì nó đã làm trong phiên này. Đó không phải là phép thuật; đó là một danh sách ngày càng dài mà bạn liên tục gửi lại.
Đó là toàn bộ bộ công cụ. Một mô hình, một số công cụ với lược đồ, và một lịch sử tin nhắn mà bạn liên tục thêm vào. Bây giờ chúng ta sẽ xây dựng.
Xây dựng công cụ sắp xếp, từng bước một
Hãy cùng xem xét theo thứ tự bạn sẽ thực sự viết nó.
Đầu tiên, thiết lập. Cài đặt SDK của nhà cung cấp và một gói để tải các bí mật, lưu khóa API của bạn vào một biến môi trường thay vì dán nó vào tệp, và tải nó ở đầu tập lệnh của bạn. Mã hóa cứng khóa API vào mã nguồn của bạn là lỗi phổ biến nhất của người mới bắt đầu và đó là cách các khóa bị rò rỉ trên internet, vì vậy đừng làm điều đó.
```python
import os
import json
from anthropic import Anthropic
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
```
Tiếp theo, các công cụ. Công cụ sắp xếp của chúng ta cần thực hiện một vài việc cụ thể: thêm một nhiệm vụ, liệt kê các nhiệm vụ hiện tại và ưu tiên chúng. Chúng ta sẽ giữ danh sách nhiệm vụ trong một danh sách Python đơn giản cho bây giờ, điều đó có nghĩa là nó sẽ được đặt lại khi chương trình đóng. Lưu trữ nó vào một tệp là một bổ sung nhỏ bạn có thể thực hiện sau này; để học mẫu, lưu trữ trong bộ nhớ sẽ sạch hơn.
```python
tasks = []
def add_task(description, priority="medium"):
tasks.append({"task": description, "priority": priority, "done": False})
return f"Added: {description} (priority: {priority})"
def list_tasks():
if not tasks:
return "The list is empty."
return "\n".join(
f"{i+1}. [{t['priority']}"
```
Nguồn tin: Medium Towards AI — Tác giả: Yashraj Behera. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.