Văn bản gốc đang được dịch và xem xét với sự cho phép của tác giả gốc (Maarten Grootendorst).
Nếu bạn tìm thấy bất kỳ lỗi dịch thuật nào, vui lòng cho mình biết và mình sẽ sửa chúng.
Mình đã dịch văn bản gốc và thêm một số liên kết. Ngôi thứ nhất trong bài viết này đề cập đến tác giả gốc.
Bài viết gốc tiếng Anh của Maarten Grootendorst: A Visual Guide to LLM Agents
Khám phá các thành phần chính của đơn tác tử và đa tác tử
LLM Agents đang ngày càng trở nên phổ biến, dường như thay thế các LLM hội thoại "thông thường" mà chúng ta đã quen thuộc. Những khả năng đáng kinh ngạc này không dễ dàng tạo ra và đòi hỏi nhiều thành phần phối hợp hoạt động.
Với hơn 60 hình ảnh trực quan tùy chỉnh trong bài đăng này, bạn sẽ khám phá lĩnh vực LLM Agents, các thành phần chính của chúng và tìm hiểu về các khung đa tác tử (Multi-Agent frameworks).
What Are LLM Agents?
Để hiểu LLM Agents là gì, trước tiên chúng ta hãy khám phá các khả năng cơ bản của một LLM. Theo truyền thống, một LLM không làm gì khác ngoài dự đoán token tiếp theo.
Bằng cách lấy mẫu nhiều token liên tiếp, chúng ta có thể mô phỏng các cuộc hội thoại và sử dụng LLM để đưa ra các câu trả lời mở rộng hơn cho các truy vấn của mình.
Tuy nhiên, khi chúng ta tiếp tục "cuộc hội thoại", bất kỳ LLM nào cũng sẽ bộc lộ một trong những nhược điểm chính của nó. Nó không nhớ các cuộc hội thoại!
Có nhiều tác vụ khác mà LLM thường thất bại, bao gồm các phép toán cơ bản như nhân và chia:
Điều này có nghĩa là LLM tệ hại? Chắc chắn là không! Không cần thiết LLM phải có khả năng làm mọi thứ vì chúng ta có thể bù đắp cho nhược điểm của chúng thông qua các công cụ bên ngoài, bộ nhớ và hệ thống truy xuất.
Thông qua các hệ thống bên ngoài, khả năng của LLM có thể được tăng cường. Anthropic gọi đây là "LLM Tăng cường" (The Augmented LLM).
Ví dụ, khi đối mặt với một câu hỏi toán học, LLM có thể quyết định sử dụng công cụ thích hợp (ví dụ máy tính).
Vậy "Augmented LLM" này có phải là một Agent không? Không hẳn, nhưng cũng có thể một chút…
Hãy bắt đầu với định nghĩa về Agents:¹
Một tác tử (agent) là bất cứ thứ gì có thể được xem như là nhận thức môi trường của nó thông qua các bộ cảm biến (sensors) và tác động lên môi trường đó thông qua các bộ truyền động (actuators).
— Russell & Norvig, AI: A Modern Approach (2016)
Agents tương tác với môi trường của chúng và thường bao gồm một số thành phần quan trọng:
- Môi trường (Environments) — Thế giới mà agent tương tác
- Bộ cảm biến (Sensors) — Được sử dụng để quan sát môi trường
- Bộ truyền động (Actuators) — Các công cụ được sử dụng để tương tác với môi trường
- Bộ điều khiển / Bộ xử lý (Effectors) — "Bộ não" hoặc các quy tắc quyết định cách chuyển từ quan sát sang hành động
Khung này được sử dụng cho tất cả các loại agents tương tác với tất cả các loại môi trường, chẳng hạn như robot tương tác với môi trường vật lý hoặc các AI agents tương tác với phần mềm.
Chúng ta có thể khái quát hóa khung này một chút để làm cho nó phù hợp hơn với "Augmented LLM”
Sử dụng “Augmented” LLM, Agent có thể quan sát môi trường thông qua đầu vào văn bản (vì LLM thường là các mô hình dựa trên văn bản) và thực hiện các hành động nhất định thông qua việc sử dụng các công cụ (như tìm kiếm trên web).
Để chọn hành động nào cần thực hiện, LLM Agent có một thành phần quan trọng: khả năng lập kế hoạch. Để làm được điều này, LLM cần có khả năng "lý luận" và "suy nghĩ" thông qua các phương pháp như chuỗi suy luận (chain-of-thought).
Để biết thêm thông tin về lý luận, hãy xem The Visual Guide to Reasoning LLMs
Sử dụng hành vi lý luận này, LLM Agents sẽ lên kế hoạch cho các hành động cần thiết để thực hiện
Hành vi lập kế hoạch này cho phép Agent hiểu tình huống (LLM), lên kế hoạch cho các bước tiếp theo (planning), thực hiện các hành động (tools) và theo dõi các hành động đã thực hiện (memory).
Tùy thuộc vào hệ thống, bạn có thể có LLM Agents với các mức độ tự chủ khác nhau.
Tùy thuộc vào người bạn hỏi, một hệ thống càng "mang tính tác tử" (agentic) khi LLM càng quyết định nhiều hơn về cách hệ thống có thể hoạt động.
Trong các phần tiếp theo, chúng ta sẽ xem xét các phương pháp khác nhau về hành vi tự chủ thông qua ba thành phần chính của LLM Agent: Memory, Tools, và Planning.
Memory
LLM là các hệ thống hay quên, hoặc chính xác hơn là không thực hiện bất kỳ hoạt động ghi nhớ nào khi tương tác với chúng.
Ví dụ, khi bạn hỏi LLM một câu hỏi và sau đó theo dõi bằng một câu hỏi khác, nó sẽ không nhớ câu hỏi trước đó.
Chúng ta thường gọi điều này là trí nhớ ngắn hạn (short-term memory), hay còn gọi là trí nhớ làm việc (working memory). Nó hoạt động như một bộ đệm để lưu giữ bối cảnh gần nhất hoặc ngay lập tức, bao gồm cả những hành động gần đây mà tác nhân LLM đã thực hiện.
Tuy nhiên, LLM Agent cũng cần theo dõi cả những bước trước đó — không chỉ là các hành động gần nhất, mà có thể là hàng chục bước trước đó.
Điều này được gọi là trí nhớ dài hạn (long-term memory), vì tác nhân LLM về mặt lý thuyết có thể thực hiện hàng chục, thậm chí hàng trăm bước cần được ghi nhớ.
Let’s explore several tricks for giving these models memory.
Hãy khám phá một số thủ thuật để cung cấp bộ nhớ cho các mô hình này.
Short-Term Memory
The most straightforward method for enabling short-term memory is to use the model's context window, which is essentially the number of tokens an LLM can process.
Phương pháp đơn giản nhất để kích hoạt bộ nhớ ngắn hạn là sử dụng cửa sổ ngữ cảnh của mô hình, về cơ bản là số lượng token mà một LLM có thể xử lý.
The context window tends to be at least 8192 tokens and sometimes can scale up to hundreds of thousands of tokens!
A large context window can be used to track the full conversation history as part of the input prompt.
Cửa sổ ngữ cảnh thường có ít nhất 8192 token và đôi khi có thể lên đến hàng trăm nghìn token! Một cửa sổ ngữ cảnh lớn có thể được sử dụng để theo dõi toàn bộ lịch sử hội thoại như một phần của prompt đầu vào.
This works as long as the conversation history fits within the LLM’s context window and is a nice way of mimicking memory. However, instead of actually memorizing a conversation, we essentially “tell” the LLM what that conversation was.
Điều này hoạt động miễn là lịch sử cuộc trò chuyện vẫn nằm trong cửa sổ ngữ cảnh (context window) mà LLM có thể xử lý. Đây là một cách khá hay để giả lập trí nhớ. Tuy nhiên, thay vì thật sự ghi nhớ cuộc trò chuyện, chúng ta về cơ bản chỉ “kể lại” cho LLM biết nội dung cuộc trò chuyện đó là gì.
For models with a smaller context window, or when the conversation history is large, we can instead use another LLM to summarize the conversations that happened thus far.
Đối với các mô hình có cửa sổ ngữ cảnh nhỏ hơn, hoặc khi lịch sử hội thoại lớn, chúng ta có thể sử dụng một LLM khác để tóm tắt các cuộc hội thoại đã diễn ra trước đó.
By continuously summarizing conversations, we can keep the size of this conversation small. It will reduce the number of tokens while keeping track of only the most vital information.
Bằng cách liên tục tóm tắt các cuộc hội thoại, chúng ta có thể giữ cho kích thước của cuộc hội thoại này nhỏ. Nó sẽ giảm số lượng token trong khi vẫn theo dõi chỉ những thông tin quan trọng nhất.
Long-term Memory
Long-term memory in LLM Agents includes the agent’s past action space that needs to be retained over an extended period.
Bộ nhớ dài hạn (Long-term memory) trong LLM Agents bao gồm không gian hành động trước đây của agent và cần được lưu giữ trong một khoảng thời gian dài.
A common technique to enable long-term memory is to store all previous interactions, actions, and conversations in an external vector database.
Một kỹ thuật phổ biến để kích hoạt bộ nhớ dài hạn là lưu trữ tất cả các tương tác, hành động và cuộc hội thoại trước đó trong một cơ sở dữ liệu vector bên ngoài.
To build such a database, conversations are first embedded into numerical representations that capture their meaning.
Để xây dựng một cơ sở dữ liệu như vậy, các cuộc hội thoại trước tiên được nhúng (embedded) vào các biểu diễn số học nắm bắt ý nghĩa của chúng.
After building the database, we can embed any given prompt and find the most relevant information in the vector database by comparing the prompt embedding with the database embeddings.
Sau khi xây dựng cơ sở dữ liệu, chúng ta có thể nhúng bất kỳ prompt nào và tìm thông tin phù hợp nhất trong cơ sở dữ liệu vector bằng cách so sánh embedding của prompt với embedding của cơ sở dữ liệu.
This method is often referred to as Retrieval-Augmented Generation (RAG).
Phương pháp này thường được gọi là Retrieval-Augmented Generation (RAG)
Long-term memory can also involve retaining information from different sessions. For instance, you might want an LLM Agent to remember any research it has done in previous sessions.
Long-term memory cũng có thể liên quan đến việc lưu giữ thông tin từ các phiên khác nhau. Ví dụ, bạn có thể muốn một LLM Agent nhớ bất kỳ nghiên cứu nào nó đã thực hiện trong các phiên trước.
Different types of information can also be related to different types of memory to be stored. In psychology, there are numerous types of memory to differentiate, but the Cognitive Architectures for Language Agents paper coupled four of them to LLM Agents.2
Các loại thông tin khác nhau cũng có thể liên quan đến các loại bộ nhớ khác nhau để lưu trữ. Trong tâm lý học, có nhiều loại bộ nhớ khác nhau để phân biệt, nhưng bài báo Cognitive Architectures for Language Agents đã ghép bốn trong số chúng với LLM Agents.²
Memory Type
- Working: Agent’s current and recent circumstances
- Human example: Shopping List
- Agent example: Context
- Procedural: Instructions to determine the agent’s behavior
- Human example: Tying Shoes
- Agent example: System Prompt
- Semantic: Facts about the world
- Human example: Dog Breeds
- Agent example: User Information
- Episodic: Sequences of the agent’s past behaviors
- Human example: 7th Birthday
- Agent example: Past Actions
Legend:
- Green = Short-term memory
- Blue = Long-term memory
Bản dịch tiếng Việt:
Loại bộ nhớ
- Bộ nhớ làm việc: Hoàn cảnh hiện tại và gần đây của tác nhân
- Ví dụ con người: Danh sách mua sắm
- Ví dụ tác nhân: Ngữ cảnh
- Bộ nhớ thủ tục: Hướng dẫn xác định hành vi của tác nhân
- Ví dụ con người: Buộc dây giày
- Ví dụ tác nhân: Lời nhắc hệ thống
- Bộ nhớ ngữ nghĩa: Sự thật về thế giới
- Ví dụ con người: Các giống chó
- Ví dụ tác nhân: Thông tin người dùng
- Bộ nhớ hồi ức: Chuỗi các hành vi trong quá khứ của tác nhân
- Ví dụ con người: Sinh nhật lần thứ 7
- Ví dụ tác nhân: Các hành động trước đó
Chú thích:
- Màu xanh lá = Bộ nhớ ngắn hạn
- Màu xanh dương = Bộ nhớ dài hạn
Sự khác biệt này giúp xây dựng các khung mang tính tác tử. semantic memory (các sự kiện về thế giới) có thể được lưu trữ trong một cơ sở dữ liệu khác với working memory (các tình huống hiện tại và gần đây).
Tools
Tools cho phép một LLM nhất định tương tác với một môi trường bên ngoài (chẳng hạn như cơ sở dữ liệu) hoặc sử dụng các ứng dụng bên ngoài (chẳng hạn như các code tùy chỉnh để chạy).
Các tools thường có hai mục đích sử dụng chính: truy xuất dữ liệu để lấy thông tin mới nhất và thực hiện hành động như đặt lịch họp hoặc gọi đồ ăn.
Để thực sự sử dụng một tool, LLM cần tạo ra văn bản phù hợp với API của tool đó. Chúng ta thường mong đợi các chuỗi có thể được định dạng theo JSON để dễ dàng chuyển vào một code interpreter.
Lưu ý rằng điều này không chỉ giới hạn ở JSON — chúng ta cũng có thể gọi tool trực tiếp bằng mã lệnh!
Bạn cũng có thể tạo các hàm tùy chỉnh mà LLM có thể sử dụng, chẳng hạn như một hàm nhân cơ bản. Điều này thường được gọi là gọi hàm (function calling).
Một số LLM có thể sử dụng bất kỳ công cụ nào nếu chúng được prompt một cách chính xác và đầy đủ. Sử dụng công cụ là một khả năng mà hầu hết các LLM hiện tại đều có.
Một phương pháp ổn định hơn để truy cập công cụ là tinh chỉnh (fine-tuning) LLM (sẽ nói thêm về điều đó sau!). Tools có thể được sử dụng theo một thứ tự nhất định nếu khung mang tính tác tử (agentic framework) được cố định...
...hoặc LLM có thể tự động chọn công cụ nào cần sử dụng và khi nào. LLM Agents, như hình trên, về cơ bản là các chuỗi lệnh gọi LLM (nhưng có khả năng tự động chọn hành động/công cụ/v.v.).
Nói cách khác, đầu ra của các bước trung gian được đưa trở lại LLM để tiếp tục xử lý.
Toolformer
Việc sử dụng tools là một kỹ thuật mạnh mẽ để tăng cường khả năng của LLMs và bù đắp cho những điểm yếu của chúng. Do đó, các nỗ lực nghiên cứu về sử dụng và học hỏi công cụ đã gia tăng nhanh chóng trong vài năm trở lại đây.
Hình ảnh được chú thích và cắt xén của bài báo “Tool Learning with Large Language Models: A Survey”. Với sự tập trung ngày càng tăng vào việc sử dụng công cụ, (Agentic) LLMs dự kiến sẽ trở nên mạnh mẽ hơn.
Phần lớn nghiên cứu này không chỉ liên quan đến việc prompt LLM để sử dụng tool mà còn đào tạo chúng đặc biệt cho việc sử dụng tool.
Một trong những kỹ thuật đầu tiên để làm như vậy được gọi là Toolformer, một mô hình được đào tạo để quyết định API nào cần gọi và gọi như thế nào.³
Nó thực hiện điều này bằng cách sử dụng các token [
và ]
để chỉ ra sự bắt đầu và kết thúc của việc gọi một công cụ. Khi được cung cấp một prompt, ví dụ "What is 5 times 3?", nó bắt đầu tạo ra các token cho đến khi nó đạt đến token [
.
Sau đó, nó tạo ra các token cho đến khi nó đạt đến token →
cho biết LLM ngừng tạo token.
Sau đó, tool sẽ được gọi và đầu ra sẽ được thêm vào các token đã được tạo ra trước đó.
Ký hiệu ]
cho biết LLM bây giờ có thể tiếp tục tạo nếu cần.
Toolformer tạo ra hành vi này bằng cách cẩn thận tạo ra một tập dữ liệu với nhiều lần sử dụng công cụ mà mô hình có thể đào tạo. Đối với mỗi công cụ, một prompt few-shot được tạo thủ công và được sử dụng để lấy mẫu các đầu ra sử dụng các công cụ này.
Các đầu ra được lọc dựa trên tính chính xác của việc sử dụng công cụ, đầu ra và mức giảm loss. Tập dữ liệu kết quả được sử dụng để đào tạo một LLM tuân thủ định dạng sử dụng công cụ này.
Kể từ khi Toolformer được phát hành, đã có nhiều kỹ thuật thú vị như LLM có thể sử dụng hàng nghìn công cụ (ToolLLM4) hoặc LLM có thể dễ dàng truy xuất các công cụ phù hợp nhất (Gorilla5).
Dù bằng cách nào, hầu hết các LLM hiện tại (đầu năm 2025) đã được đào tạo để gọi tool dễ dàng thông qua tạo JSON (như chúng ta đã thấy trước đó).
Model Context Protocol (MCP)
Tools là một thành phần quan trọng trong các Agentic frameworks, cho phép LLMs tương tác với thế giới và mở rộng khả năng của mình. Tuy nhiên, việc kích hoạt tool use trở nên phức tạp khi có quá nhiều API khác nhau, vì mỗi tool đều cần phải:
- Theo dõi (tracked) và cung cấp thủ công cho LLM
- Mô tả (described) thủ công (bao gồm cả JSON schema mong đợi)
- Cập nhật (updated) thủ công mỗi khi API thay đổi
Để giúp việc triển khai tools dễ dàng hơn cho bất kỳ Agentic framework nào, Anthropic đã phát triển Model Context Protocol (MCP). MCP chuẩn hóa việc truy cập API cho các dịch vụ như ứng dụng thời tiết hoặc GitHub.
MCP bao gồm ba thành phần chính:
- MCP Host — Ứng dụng LLM (ví dụ như Cursor) quản lý các kết nối
- MCP Client — Duy trì kết nối 1:1 với các MCP servers
- MCP Server — Cung cấp ngữ cảnh, tools, và các khả năng cho LLMs
Ví dụ, giả sử bạn muốn một ứng dụng LLM nhất định tóm tắt 5 commit mới nhất từ kho lưu trữ của bạn.
MCP Host (cùng với client) trước tiên sẽ gọi MCP Server để hỏi những công cụ nào có sẵn.
LLM nhận được thông tin và có thể chọn sử dụng một công cụ. Nó gửi yêu cầu đến MCP Server thông qua Host, sau đó nhận được kết quả, bao gồm cả công cụ đã sử dụng.
Cuối cùng, LLM nhận được kết quả và có thể phân tích một câu trả lời cho người dùng.
Framework này giúp việc tạo tools dễ dàng hơn bằng cách kết nối với các MCP Server mà bất kỳ ứng dụng LLM nào cũng có thể sử dụng. Vì vậy, khi bạn tạo một MCP Server để tương tác với Github, bất kỳ ứng dụng LLM nào hỗ trợ MCP đều có thể sử dụng nó.
Planning
Tool use cho phép một LLM mở rộng khả năng của mình. Các tools thường được gọi thông qua các yêu cầu có cấu trúc giống JSON.
Nhưng trong một hệ thống agentic, làm sao LLM biết nên dùng tool nào và vào lúc nào?
Đó chính là lúc planning (lập kế hoạch) phát huy vai trò. Planning trong LLM Agents liên quan đến việc phân tách một nhiệm vụ được giao thành các bước có thể hành động.
Kế hoạch này cho phép mô hình lặp đi lặp lại suy ngẫm về hành vi trong quá khứ và cập nhật kế hoạch hiện tại nếu cần thiết. Tôi thích nó khi một kế hoạch thành công!
Để kích hoạt planning trong LLM Agents, trước tiên chúng ta hãy xem xét nền tảng của kỹ thuật này, cụ thể là lý luận (reasoning).
Reasoning
Planning actionable steps requires complex reasoning behavior. As such, the LLM must be able to showcase this behavior before taking the next step in planning out the task.
“Reasoning” LLMs are those that tend to “think” before answering a question.
Việc lập kế hoạch các bước có thể hành động đòi hỏi hành vi lý luận phức tạp. Do đó, LLM phải có khả năng thể hiện hành vi này trước khi thực hiện bước tiếp theo trong việc lập kế hoạch tác vụ.
Các LLMs có khả năng reasoning là những mô hình có xu hướng “think” trước khi đưa ra câu trả lời cho một câu hỏi.
Tôi đang sử dụng các thuật ngữ "reasoning" và "thinking" một cách hơi lỏng lẻo vì chúng ta có thể tranh luận liệu đây có phải là suy nghĩ giống con người hay chỉ đơn giản là chia câu trả lời thành các bước có cấu trúc.
Hành vi lý luận này có thể được kích hoạt bằng khoảng hai lựa chọn: tinh chỉnh LLM hoặc kỹ thuật prompt cụ thể.
Với kỹ thuật prompt, chúng ta có thể tạo các ví dụ về quá trình lý luận mà LLM nên tuân theo. Cung cấp các ví dụ (còn được gọi là few-shot prompting7) là một phương pháp tuyệt vời để điều hướng hành vi của LLM.
Phương pháp luận cung cấp các ví dụ về quá trình suy nghĩ này được gọi là Chuỗi Suy luận (Chain-of-Thought) và cho phép hành vi lý luận phức tạp hơn.8 Chain-of-thought cũng có thể được kích hoạt mà không cần bất kỳ ví dụ nào (zero-shot prompting) bằng cách đơn giản nói "Let’s think step-by-step”.9
Khi đào tạo một LLM, chúng ta có thể cung cấp cho nó một lượng đủ lớn các tập dữ liệu bao gồm các ví dụ giống như suy nghĩ hoặc LLM có thể tự khám phá quá trình suy nghĩ của riêng nó.
Một ví dụ tuyệt vời là DeepSeek-R1, nơi rewards được sử dụng để hướng dẫn việc sử dụng các quá trình suy nghĩ.
Để biết thêm thông tin về Reasoning LLM, hãy xem hướng dẫn trực quan của tôi..
Reasoning and Acting
Cho phép hành vi lý luận trong LLM là điều tuyệt vời nhưng không nhất thiết có thể lập kế hoạch cho các bước hành động.
Các kỹ thuật mà chúng tôi tập trung vào cho đến nay hoặc thể hiện hành vi lý luận hoặc tương tác với môi trường thông qua các công cụ.
Ví dụ, Chain-of-Thought tập trung hoàn toàn vào suy luận. Một trong những kỹ thuật đầu tiên kết hợp cả hai quá trình này được gọi là ReAct (Reason and Act).10
ReAct thực hiện điều này thông qua kỹ thuật prompt engineering cẩn thận. Prompt ReAct mô tả ba bước:
- Thought - Một bước suy luận về tình huống hiện tại
- Action - Một tập hợp các hành động để thực hiện (ví dụ: các công cụ)
- Observation - Một bước suy luận về kết quả của hành động
Bản thân prompt sau đó khá đơn giản.
LLM sử dụng prompt này (có thể được sử dụng làm system prompt) để điều hướng hành vi của nó hoạt động theo chu kỳ gồm các thought, action và observation.
Nó tiếp tục hành vi này cho đến khi một action chỉ định trả về kết quả. Bằng cách lặp lại các thought và observation, LLM có thể lên kế hoạch cho các action, quan sát đầu ra của nó và điều chỉnh cho phù hợp.
Như vậy, framework này cho phép LLM thể hiện hành vi agent tự chủ hơn so với các Agent có các bước được xác định trước và cố định.
Reflecting
Không ai, kể cả LLM với ReAct, sẽ thực hiện mọi tác vụ một cách hoàn hảo. Thất bại là một phần của quá trình miễn là bạn có thể suy ngẫm về quá trình đó.
Quá trình này còn thiếu trong ReAct và đó là nơi Reflexion xuất hiện. Reflexion là một kỹ thuật sử dụng củng cố bằng lời nói để giúp các agent học hỏi từ những thất bại trước đó.11
Phương pháp này giả định ba vai trò LLM:
- Actor — Chọn và thực hiện các action dựa trên các observation trạng thái. Chúng ta có thể sử dụng các phương pháp như Chain-of-Thought hoặc ReAct.
- Evaluator — Chấm điểm các output do Actor tạo ra.
- Self-reflection — Suy ngẫm về action được thực hiện bởi Actor và các điểm số được tạo bởi Evaluator.
Các memory module được thêm vào để theo dõi các action (ngắn hạn) và self-reflection (dài hạn), giúp Agent học hỏi từ những sai lầm của nó và xác định các action được cải thiện. Một kỹ thuật tương tự và thanh lịch được gọi là SELF-REFINE, trong đó các action tinh chỉnh output và tạo feedback được lặp lại.12
Cùng một LLM chịu trách nhiệm tạo ra output ban đầu, output đã tinh chỉnh và feedback.
Hình ảnh chú thích của bài báo “SELF-REFINE: Iterative Refinement with Self-Feedback”
Điều thú vị là, hành vi tự phản ánh này, cả Reflexion và SELF-REFINE, rất giống với hành vi của reinforcement learning, nơi một phần thưởng được đưa ra dựa trên chất lượng của output.
Multi-Agent Collaboration
Tác tử đơn lẻ mà chúng ta đã khám phá có một số vấn đề: quá nhiều công cụ có thể làm phức tạp việc lựa chọn, ngữ cảnh trở nên quá phức tạp và tác vụ có thể đòi hỏi sự chuyên môn hó
Thay vào đó, chúng ta có thể hướng tới Đa tác tử (Multi-Agents), các framework nơi nhiều tác tử (mỗi tác tử có quyền truy cập vào công cụ (tools), bộ nhớ (memory) và lập kế hoạch (planning)) tương tác với nhau và môi trường của chúng:
Các hệ thống Đa tác tử này thường bao gồm các Tác tử chuyên biệt (specialized Agents), mỗi tác tử được trang bị bộ công cụ riêng và được giám sát bởi một người giám sát (supervisor). Người giám sát quản lý giao tiếp giữa các Tác tử và có thể giao các tác vụ cụ thể cho các Tác tử chuyên biệt.
Mỗi Tác tử có thể có các loại công cụ khác nhau, nhưng cũng có thể có các hệ thống bộ nhớ khác nhau.
Trong thực tế, có hàng tá kiến trúc Đa tác tử với hai thành phần cốt lõi:
- Khởi tạo tác tử (Agent Initialization) — Các Tác tử (chuyên biệt) riêng lẻ được tạo ra như thế nào?
- Điều phối tác tử (Agent Orchestration) — Tất cả các Tác tử được phối hợp như thế nào?
Hãy khám phá các framework Đa tác tử thú vị khác nhau và làm nổi bật cách các thành phần này được triển khai.
Interactive Simulacra of Human Behavior
Có lẽ một trong những bài báo về Đa tác tử có ảnh hưởng nhất, và thẳng thắn mà nói là vô cùng thú vị, có tên là Generative Agents: Interactive Simulacra of Human Behavior”.13
Trong bài báo này, họ đã tạo ra các tác tử phần mềm tính toán mô phỏng hành vi con người đáng tin cậy, mà họ gọi là Tác tử sinh (Generative Agents).
Hồ sơ (profile) được gán cho mỗi Tác tử sinh khiến chúng cư xử theo những cách độc đáo và giúp tạo ra hành vi thú vị và năng động hơn.
Mỗi Tác tử được khởi tạo với ba module (bộ nhớ (memory), lập kế hoạch (planning) và suy ngẫm (reflection)) rất giống với các thành phần cốt lõi mà chúng ta đã thấy trước đây với ReAct và Reflexion.
Module Bộ nhớ (Memory) là một trong những thành phần quan trọng nhất trong framework này. Nó lưu trữ cả hành vi lập kế hoạch và suy ngẫm, cũng như tất cả các sự kiện cho đến nay.
Đối với bất kỳ bước tiếp theo hoặc câu hỏi nào, các ký ức được truy xuất và chấm điểm dựa trên tính gần đây (recency), tầm quan trọng (importance) và mức độ liên quan (relevance) của chúng. Các ký ức có điểm số cao nhất được chia sẻ với Tác tử.
Annoted figure of the Generative Agents: Interactive Simulacra of Human Behavior paper.
Cùng nhau, chúng cho phép các Tác tử tự do thực hiện hành vi của mình và tương tác với nhau. Như vậy, có rất ít sự điều phối Tác tử vì chúng không có các mục tiêu cụ thể để hướng tới.
Annotated image from the interactive demo.
Có quá nhiều đoạn thông tin tuyệt vời trong bài báo này, nhưng tôi muốn làm nổi bật metric đánh giá (evaluation metric) của họ.14
Có quá nhiều đoạn thông tin tuyệt vời trong bài báo này, nhưng tôi muốn làm nổi bật metric đánh giá (evaluation metric) của họ.
Việc đánh giá của họ liên quan đến tính đáng tin cậy (believability) của hành vi Tác tử là metric chính, với các người đánh giá là con người chấm điểm chúng.
Annotated figure of the Generative Agents: Interactive Simulacra of Human Behavior paper.
Nó cho thấy tầm quan trọng của quan sát, lập kế hoạch và suy ngẫm cùng nhau trong hiệu suất của các Tác tử sinh này. Như đã khám phá trước đây, lập kế hoạch không hoàn chỉnh nếu không có hành vi suy ngẫm.
Modular Frameworks
Dù bạn chọn framework nào để tạo ra hệ thống Multi-Agent, chúng thường bao gồm một số thành phần cơ bản như hồ sơ (profile), khả năng nhận thức môi trường (perception of the environment), bộ nhớ (memory), lập kế hoạch (planning), và các hành động khả dụng (available actions). 1516
Các framework phổ biến để triển khai các thành phần này là AutoGen17, MetaGPT18, và CAMEL19. Tuy nhiên, mỗi framework tiếp cận giao tiếp giữa các Tác tử một chút khác nhau.
Với CAMEL, chẳng hạn, người dùng trước tiên tạo câu hỏi của mình và xác định vai trò AI User và AI Assistant. Vai trò AI User đại diện cho người dùng là con người và sẽ hướng dẫn quá trình.
Sau đó, AI User và AI Assistant sẽ cộng tác để giải quyết truy vấn bằng cách tương tác với nhau.
Phương pháp đóng vai này cho phép giao tiếp cộng tác giữa các tác tử.
AutoGen và MetaGPT có các phương pháp giao tiếp khác nhau, nhưng tất cả đều quy về bản chất cộng tác này của giao tiếp. Các Tác tử có cơ hội tham gia và nói chuyện với nhau để cập nhật trạng thái hiện tại, mục tiêu và các bước tiếp theo của chúng.
Trong năm qua, và đặc biệt là trong vài tuần gần đây, sự phát triển của các framework này đã bùng nổ.
Năm 2025 hứa hẹn sẽ là một năm vô cùng thú vị khi các framework này tiếp tục trưởng thành và phát triển mạnh mẽ!
Conclusion
Hành trình khám phá về LLM Agents của chúng ta đến đây là kết thúc! Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về cách các LLM Agent được xây dựng.
1Russell, S. J., & Norvig, P. (2016). Artificial intelligence: a modern approach. pearson.
2Sumers, Theodore, et al. "Cognitive architectures for language agents." Transactions on Machine Learning Research (2023).
3Schick, Timo, et al. "Toolformer: Language models can teach themselves to use tools." Advances in Neural Information Processing Systems 36 (2023): 68539-68551.
4 Qin, Yujia, et al. "Toolllm: Facilitating large language models to master 16000+ real-world apis." arXiv preprint arXiv:2307.16789 (2023).
5 Patil, Shishir G., et al. "Gorilla: Large language model connected with massive apis." Advances in Neural Information Processing Systems 37 (2024): 126544-126565.
6 "Introducing the Model Context Protocol." Anthropic, www.anthropic.com/news/model-context-protocol. Accessed 13 Mar. 2025.
7 Mann, Ben, et al. "Language models are few-shot learners." arXiv preprint arXiv:2005.14165 1 (2020): 3.
8 Wei, Jason, et al. "Chain-of-thought prompting elicits reasoning in large language models." Advances in neural information processing systems 35 (2022): 24824-24837.
9 Kojima, Takeshi, et al. "Large language models are zero-shot reasoners." Advances in neural information processing systems 35 (2022): 22199-22213.
10 Yao, Shunyu, Zhao, Jeffrey, Yu, Dian, Du, Nan, Shafran, Izhak, Narasimhan, Karthik, and Cao, Yuan. ReAct: Synergizing Reasoning and Acting in Language Models. Retrieved from https://par.nsf.gov/biblio/10451467. International Conference on Learning Representations (ICLR).
11 Shinn, Noah, et al. "Reflexion: Language agents with verbal reinforcement learning." Advances in Neural Information Processing Systems 36 (2023): 8634-8652.
12 Madaan, Aman, et al. "Self-refine: Iterative refinement with self-feedback." Advances in Neural Information Processing Systems 36 (2023): 46534-46594.
13 Park, Joon Sung, et al. "Generative agents: Interactive simulacra of human behavior." Proceedings of the 36th annual acm symposium on user interface software and technology. 2023.
14 To see a cool interactive playground of the Generative Agents, follow this link: https://reverie.herokuapp.com/arXiv_Demo/
15 Wang, Lei, et al. "A survey on large language model based autonomous agents." Frontiers of Computer Science 18.6 (2024): 186345.
16 Xi, Zhiheng, et al. "The rise and potential of large language model based agents: A survey." Science China Information Sciences 68.2 (2025): 121101.
17 Wu, Qingyun, et al. "Autogen: Enabling next-gen llm applications via multi-agent conversation." arXiv preprint arXiv:2308.08155 (2023).
18 Hong, Sirui, et al. "Metagpt: Meta programming for multi-agent collaborative framework." arXiv preprint arXiv:2308.00352 3.4 (2023): 6.
19 Li, Guohao, et al. "Camel: Communicative agents for" mind" exploration of large language model society." Advances in Neural Information Processing Systems 36 (2023): 51991-52008.