AI Agents: Chúng là gì & Cách xây dựng quy trình làm việc tự động đầu tiên của bạn

AI tutorial - IT technology blog
AI tutorial - IT technology blog

Bối cảnh & Tại sao: Hiểu về cuộc cách mạng Agent

Đã 2 giờ sáng. Một cảnh báo khác vừa được kích hoạt, báo hiệu một lỗi quy trình thủ công đã làm sập một báo cáo quan trọng. Nghe có quen không? Trong các hoạt động IT, chúng ta thường thấy mình phải vật lộn với những vấn đề như vậy. Chúng ta tạo script, cấu hình cron job và tự động hóa bất cứ khi nào có thể. Nhưng điều gì sẽ xảy ra khi một tác vụ đòi hỏi nhiều hơn chỉ là thực thi đơn giản—khi nó yêu cầu suy luận, thích ứng hoặc tương tác với nhiều hệ thống động? Đó chính xác là nơi AI agent trở nên vô giá.

Hãy coi một AI agent không chỉ đơn thuần là đoạn mã thực thi hướng dẫn. Thay vào đó, hãy xem nó như một hệ thống thông minh có khả năng hiểu các mục tiêu, suy luận qua các bước cần thiết để đạt được chúng, sử dụng nhiều công cụ khác nhau, học hỏi từ môi trường của nó, và thậm chí tự điều chỉnh. Điều này vượt ra ngoài tự động hóa cơ bản; đó là việc ủy thác các tác vụ phức tạp, nhiều bước mà trước đây đòi hỏi sự can thiệp của con người hoặc các script phức tạp, dễ hỏng.

Tôi lần đầu tiên thấy sức mạnh của agent trong một sự cố nghiêm trọng. Chúng tôi cần kéo dữ liệu động từ ba API riêng biệt, đối chiếu chúng, và sau đó cập nhật hệ thống ticketing của chúng tôi—tất cả được kích hoạt bởi đầu vào ngôn ngữ tự nhiên. Thực hiện thủ công vừa dễ xảy ra lỗi vừa chậm một cách đáng sợ.

Scripting truyền thống sẽ yêu cầu hàng nghìn dòng logic điều kiện để tính đến mọi trường hợp biên có thể hình dung được. Chính lúc đó, tiềm năng to lớn của phương pháp tiếp cận dựa trên agent đã trở nên rõ ràng. Theo kinh nghiệm thực tế của tôi, đây là một kỹ năng rất quan trọng. Nó trao quyền cho các kỹ sư để giải quyết những thách thức cấp cao hơn, chuyển trọng tâm từ việc khắc phục sự cố phản ứng liên tục sang đổi mới chủ động.

AI agent được xây dựng đặc biệt để giải quyết những thách thức phức tạp này. Chúng kết hợp các Mô hình Ngôn ngữ Lớn (LLM) với các công cụ bên ngoài và một quy trình suy luận có cấu trúc. Điều này cho phép chúng quan sát, suy nghĩ, hành động và lặp lại—giống như một người vận hành, nhưng ở tốc độ và quy mô máy. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn những kiến thức cơ bản để tự xây dựng một agent.

Cài đặt: Thiết lập môi trường phát triển Agent của bạn

Trước khi triển khai agent đầu tiên của bạn, việc thiết lập một môi trường phát triển mạnh mẽ là rất cần thiết. Đối với hướng dẫn này, chúng tôi sẽ sử dụng Python và framework LangChain—một bộ công cụ linh hoạt giúp tinh gọn quá trình phát triển agent. Bạn cũng sẽ cần quyền truy cập vào một nhà cung cấp Mô hình Ngôn ngữ Lớn (LLM). Mặc dù các ví dụ của chúng tôi sẽ sử dụng OpenAI, bạn có thể thoải mái thay thế bằng Gemini, Anthropic, hoặc bất kỳ LLM nào khác được LangChain hỗ trợ.

Bước 1: Môi trường ảo Python

Đầu tiên, cô lập các phụ thuộc dự án của bạn bằng cách sử dụng môi trường ảo Python. Điều này ngăn chặn xung đột với các dự án Python khác trên hệ thống của bạn.


python3 -m venv agent_env
source agent_env/bin/activate  # Trên Windows, sử dụng `agent_env\Scripts\activate`

Bạn sẽ thấy (agent_env) được thêm vào trước dấu nhắc lệnh terminal của bạn, cho biết bạn đang ở bên trong môi trường ảo.

Bước 2: Cài đặt các phụ thuộc

Tiếp theo, cài đặt LangChain và client Python của OpenAI. Nếu bạn chọn một nhà cung cấp LLM khác, hãy cài đặt thư viện client tương ứng của nó.


pip install langchain openai

Để cho phép agent của chúng ta tương tác với các hệ thống bên ngoài, chúng ta cũng sẽ cần chuẩn bị một công cụ tìm kiếm. Trong môi trường sản xuất, điều này sẽ liên quan đến việc tích hợp với các dịch vụ như SerpAPI, Google Search API, hoặc một giải pháp tìm kiếm nội bộ tùy chỉnh. Tuy nhiên, đối với hướng dẫn này, chúng ta sẽ thiết lập một phiên bản giả lập đơn giản.


pip install "langchain[community]"

Lệnh này cài đặt các công cụ cộng đồng của LangChain, cung cấp nhiều tiện ích khác nhau mà chúng ta có thể dễ dàng sử dụng hoặc điều chỉnh cho agent của mình.

Bước 3: Đặt khóa API của bạn

Để sử dụng các mô hình của OpenAI, bạn cần có khóa API. Điều quan trọng là phải xử lý khóa này một cách an toàn, không bao giờ mã hóa cứng trực tiếp vào script của bạn. Hãy sử dụng các biến môi trường.


export OPENAI_API_KEY='your_openai_api_key_here'
# Hoặc nếu bạn đang sử dụng tệp .env (cài đặt python-dotenv: pip install python-dotenv)
# Sau đó trong script Python của bạn: from dotenv import load_dotenv; load_dotenv()

Cấu hình: Lắp ráp bộ não của Agent của bạn

Với môi trường phát triển đã được chuẩn bị, giờ đây chúng ta có thể tiến hành cấu hình AI agent ban đầu của mình. Mục tiêu của chúng ta là tạo ra một ‘trợ lý nghiên cứu’ đơn giản. Agent này sẽ nhận một truy vấn, sử dụng công cụ tìm kiếm để thu thập thông tin, và sau đó trình bày một bản tóm tắt các phát hiện của nó.

Bước 1: Định nghĩa các công cụ của bạn

Các công cụ đóng vai trò là giao diện của agent của bạn với thế giới bên ngoài. Chúng có thể bao gồm từ khả năng tìm kiếm web và thực thi mã đến các cuộc gọi API tùy chỉnh hoặc tương tác cơ sở dữ liệu. Với mục đích minh họa này, chúng ta sẽ thiết lập một công cụ tìm kiếm mô phỏng.


import os
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_react_agent
from langchain import hub
from langchain.tools import tool

# --- Định nghĩa một công cụ tìm kiếm đơn giản, mô phỏng ---
# Trong một kịch bản thực tế, điều này sẽ gọi một API tìm kiếm như Google Search hoặc SerpAPI
 @toolcraft_info.yaml
def search(query: str) -> str:
    """Tìm kiếm thông tin trên web dựa trên truy vấn."""
    print(f"\n[DEBUG]: Agent đã sử dụng công cụ tìm kiếm với truy vấn: '{query}'")
    # Mô phỏng kết quả tìm kiếm để minh họa
    if "latest AI models" in query.lower():
        return "Kết quả Google Search: Các mô hình AI mới nhất bao gồm Gemini 1.5, GPT-4o và Claude 3 Opus. Chúng xuất sắc trong khả năng suy luận đa phương thức và kích thước cửa sổ ngữ cảnh."
    elif "LangChain agents" in query.lower():
        return "Kết quả Google Search: LangChain agents được xây dựng bằng LLM để quyết định hành động và sử dụng công cụ. Các thành phần chính là LLM, công cụ và cơ chế suy luận (ví dụ: ReAct)."
    else:
        return f"Kết quả Google Search: Đã tìm thấy một số thông tin về '{query}'. Có vẻ đây là một chủ đề phức tạp cần điều tra thêm."

tools = [search]

Bước 2: Khởi tạo LLM

Mô hình Ngôn ngữ Lớn (LLM) hoạt động như trí thông minh cốt lõi của agent. Nó chịu trách nhiệm xử lý đầu vào, xác định công cụ nào sẽ sử dụng và tạo ra các phản hồi thích hợp.


# Khởi tạo LLM. Bạn có thể chọn gpt-4-turbo hoặc một mô hình mạnh mẽ khác.
llm = ChatOpenAI(model="gpt-4o", temperature=0)

Tôi đã đặt temperature=0 để làm cho các phản hồi của agent mang tính xác định hơn, điều này thường mong muốn đối với các tác vụ tự động.

Bước 3: Tạo Agent

LangChain cung cấp nhiều loại agent khác nhau. Trong số đó, create_react_agent nổi bật là một tùy chọn rất hiệu quả và được sử dụng thường xuyên, bắt nguồn từ framework ‘ReAct’ (Suy luận và Hành động). Phương pháp này hướng dẫn LLM vừa xem xét logic các hành động tiếp theo của nó vừa thực thi chúng sau đó.


# Lấy prompt cho ReAct agent từ LangChain Hub
prompt = hub.pull("hwchase17/react")

# Tạo agent
agent = create_react_agent(llm, tools, prompt)

# Tạo một AgentExecutor. Đây là môi trường runtime cho agent.
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True, handle_parsing_errors=True)

Cờ verbose=True rất quan trọng để gỡ lỗi, vì nó phơi bày quá trình tư duy nội bộ của agent, bao gồm các quan sát, suy nghĩ và các hành động tiếp theo của nó. Ngoài ra, việc đặt handle_parsing_errors=True góp phần đáng kể vào hoạt động mạnh mẽ hơn của agent.

Xác minh & Giám sát: Đảm bảo Agent của bạn hoạt động như mong đợi

Phát triển một AI agent không phải là một tác vụ ‘chạy một lần rồi quên’. Giống như bất kỳ hệ thống sản xuất quan trọng nào, nó đòi hỏi phải xác minh hành vi kỹ lưỡng và giám sát hiệu suất liên tục.

Bước 1: Chạy Agent của bạn

Hãy đưa trợ lý nghiên cứu của chúng ta vào thử nghiệm. Đặt cho nó một câu hỏi yêu cầu sử dụng công cụ tìm kiếm của nó.


# Chạy agent với một truy vấn
print("\n--- Đang chạy Agent cho Truy vấn 1 ---")
response = agent_executor.invoke({"input": "What are the latest advancements in AI models?"})
print("\nCâu trả lời cuối cùng của Agent:")
print(response["output"])

print("\n--- Đang chạy Agent cho Truy vấn 2 ---")
response = agent_executor.invoke({"input": "Explain how LangChain agents work."})
print("\nCâu trả lời cuối cùng của Agent:")
print(response["output"])

print("\n--- Đang chạy Agent cho Truy vấn 3 ---")
response = agent_executor.invoke({"input": "Tell me about the history of quantum computing."})
print("\nCâu trả lời cuối cùng của Agent:")
print(response["output"])

Thực thi script này sẽ tiết lộ đầu ra chi tiết và dài dòng. Hãy quan sát ‘độc thoại’ nội bộ của agent: suy nghĩ của nó, các hành động mà nó thực hiện (như gọi công cụ search), và các quan sát tiếp theo được lấy từ đầu ra của công cụ. Mức độ minh bạch này cực kỳ có giá trị để hiểu quá trình ra quyết định của agent, và quan trọng hơn, để chẩn đoán lỗi.

Bước 2: Gỡ lỗi và Lặp lại

Hiếm khi một agent hoạt động hoàn hảo ngay từ lần thử đầu tiên. Bạn có thể sẽ gặp phải các tình huống mà nó không sử dụng công cụ một cách chính xác, bị kẹt trong một vòng lặp, hoặc đưa ra câu trả lời không hữu ích. Dưới đây là danh sách kiểm tra khắc phục sự cố:

  • Kỹ thuật Prompt: Prompt hệ thống có rõ ràng không? Nó có mô tả đầy đủ vai trò của agent, các công cụ có sẵn và định dạng đầu ra mong muốn không?
  • Định nghĩa Công cụ: Mô tả công cụ của bạn có chính xác không? LLM phụ thuộc rất nhiều vào các mô tả này để quyết định khi nào và làm thế nào để sử dụng một công cụ.
  • Lựa chọn LLM: LLM bạn chọn có đủ khả năng cho tác vụ không? Suy luận phức tạp hơn thường yêu cầu các mô hình mạnh mẽ hơn.
  • Xử lý lỗi: Bạn đã triển khai xử lý lỗi mạnh mẽ trong các công cụ của mình chưa? Đầu ra công cụ không mong muốn có thể làm trật bánh quá trình suy luận của agent.

Bước 3: Giám sát cho môi trường sản xuất

Đối với các agent trong môi trường sản xuất, ghi log chi tiết cơ bản là không đủ. Bạn cần khả năng quan sát phù hợp:

  • Ghi log có cấu trúc: Ghi lại đầu vào, đầu ra, các lệnh gọi công cụ và các bước trung gian của agent dưới định dạng có cấu trúc (ví dụ: JSON) vào một hệ thống ghi log trung tâm.
  • Khả năng theo dõi: Các công cụ như LangSmith (một sản phẩm của LangChain) cung cấp khả năng theo dõi đặc biệt. Chúng cho phép bạn hình dung toàn bộ đường dẫn thực thi của agent, từ mỗi lần gọi LLM đến mỗi lần sử dụng công cụ. Chức năng này cực kỳ hữu ích để gỡ lỗi các hành vi phức tạp của agent.
  • Số liệu hiệu suất: Giám sát việc sử dụng token của LLM, thời gian phản hồi và tỷ lệ thành công khi thực thi công cụ.
  • Con người trong vòng lặp: Đối với các tác vụ quan trọng, hãy cân nhắc thêm bước xem xét của con người trước khi agent thực hiện các hành động không thể đảo ngược.

Hãy tiếp cận các agent của bạn như cách bạn làm với các microservice quan trọng. Chúng đòi hỏi phải giám sát liên tục, tinh chỉnh lặp đi lặp lại và hiểu rõ chính xác các giới hạn hoạt động của chúng. Bức tranh tổng thể về tự động hóa IT đang phát triển theo hướng các hệ thống thông minh và thích ứng, khiến việc thành thạo AI agent trở thành một kỹ năng ngày càng quan trọng.

Share: