Bỏ qua tới nội dung
Bài 2/11 · AI Agent cho người mới bắt đầu (Microsoft)

Tìm hiểu các framework AI agent

Framework AI agent giúp gì cho nhà phát triển, cách tạo mẫu nhanh, và khác biệt giữa Microsoft Agent Framework với Microsoft Foundry Agent Service.

Cơ bản@shine190418 phút đọc

Framework AI agent là các nền tảng phần mềm được thiết kế để đơn giản hoá việc tạo, triển khai (deploy) và quản lý AI agent. Các framework này cung cấp cho nhà phát triển những thành phần dựng sẵn, các lớp trừu tượng và tool giúp việc phát triển hệ thống AI phức tạp trở nên gọn gàng hơn.

Video của bài: Exploring AI Agent Frameworks.

Các framework giúp nhà phát triển tập trung vào phần đặc thù của ứng dụng bằng cách đưa ra cách tiếp cận chuẩn cho những thách thức chung khi phát triển AI agent. Chúng tăng khả năng mở rộng, tính dễ tiếp cận và hiệu quả khi xây hệ thống AI.

Giới thiệu

Bài này đề cập:

  • Framework AI agent là gì và giúp nhà phát triển đạt được điều gì?
  • Các nhóm có thể dùng chúng thế nào để nhanh chóng tạo mẫu, lặp và cải thiện khả năng của agent?
  • Các framework và tool do Microsoft tạo ra (Microsoft Foundry Agent Service và Microsoft Agent Framework) khác nhau thế nào?
  • Tôi có thể tích hợp trực tiếp các tool sẵn có trong hệ sinh thái Azure không, hay cần giải pháp riêng?
  • Microsoft Foundry Agent Service là gì và giúp tôi thế nào?

Mục tiêu học tập

Mục tiêu của bài là giúp bạn hiểu:

  • Vai trò của framework AI agent trong phát triển AI.
  • Cách tận dụng framework AI agent để xây agent thông minh.
  • Các khả năng (capability) chính mà framework AI agent mang lại.
  • Khác biệt giữa Microsoft Agent Framework và Microsoft Foundry Agent Service.

Framework AI agent là gì và giúp nhà phát triển làm được gì?

Các framework AI truyền thống có thể giúp bạn tích hợp AI vào ứng dụng và làm ứng dụng tốt hơn theo những cách sau:

  • Cá nhân hoá: AI có thể phân tích hành vi và sở thích của người dùng để đưa ra gợi ý, nội dung và trải nghiệm được cá nhân hoá. Ví dụ: các dịch vụ streaming như Netflix dùng AI gợi ý phim và chương trình dựa trên lịch sử xem, tăng mức độ gắn bó và hài lòng của người dùng.
  • Tự động hoá và hiệu quả: AI có thể tự động hoá các tác vụ lặp lại, tinh gọn quy trình (workflow) và cải thiện hiệu quả vận hành. Ví dụ: ứng dụng chăm sóc khách hàng dùng chatbot AI xử lý các câu hỏi thường gặp, giảm thời gian phản hồi và để nhân viên tập trung vào vấn đề phức tạp hơn.
  • Nâng cao trải nghiệm người dùng: AI có thể cải thiện trải nghiệm tổng thể bằng các tính năng thông minh như nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên và gõ dự đoán. Ví dụ: các trợ lý ảo như Siri và Google Assistant dùng AI để hiểu và phản hồi lệnh giọng nói, giúp người dùng tương tác với thiết bị dễ dàng hơn.

Nghe đều tuyệt cả, vậy sao còn cần framework AI agent?

Framework AI agent là thứ nhiều hơn một framework AI thông thường. Chúng được thiết kế để tạo ra các agent thông minh có thể tương tác với người dùng, với agent khác và với môi trường để đạt mục tiêu cụ thể. Các agent này có thể hành xử tự chủ, ra quyết định và thích nghi với điều kiện thay đổi. Chúng ta hãy xem một số khả năng chính mà framework AI agent mang lại:

  • Cộng tác và điều phối giữa các agent: cho phép tạo nhiều AI agent cùng làm việc, giao tiếp và phối hợp để giải quyết tác vụ phức tạp.
  • Tự động hoá và quản lý tác vụ: cung cấp cơ chế tự động hoá quy trình nhiều bước, giao việc và quản lý tác vụ linh hoạt giữa các agent.
  • Hiểu ngữ cảnh và thích nghi: trang bị cho agent khả năng hiểu ngữ cảnh, thích nghi với môi trường thay đổi và ra quyết định dựa trên thông tin thời gian thực.

Tóm lại, agent cho phép bạn làm được nhiều hơn, đưa tự động hoá lên tầm cao mới, tạo ra những hệ thống thông minh hơn có thể thích nghi và học hỏi từ môi trường.

Làm sao tạo mẫu, lặp và cải thiện khả năng của agent thật nhanh?

Đây là lĩnh vực thay đổi rất nhanh, nhưng có vài điểm chung ở hầu hết framework AI agent giúp bạn tạo mẫu và lặp nhanh, cụ thể là thành phần mô-đun, tool cộng tác và học theo thời gian thực. Chúng ta cùng đi vào từng phần:

  • Dùng thành phần mô-đun: các SDK AI cung cấp thành phần dựng sẵn như connector AI và bộ nhớ, function calling bằng ngôn ngữ tự nhiên hoặc plugin code, prompt template, và nhiều thứ khác.
  • Tận dụng tool cộng tác: thiết kế agent với vai trò và tác vụ cụ thể, cho phép kiểm thử và tinh chỉnh các quy trình cộng tác.
  • Học theo thời gian thực: cài đặt vòng phản hồi để agent học từ tương tác và điều chỉnh hành vi linh hoạt.

Dùng thành phần mô-đun

Các SDK như Microsoft Agent Framework cung cấp thành phần dựng sẵn như connector AI, định nghĩa tool và quản lý agent.

Các nhóm có thể dùng thế nào: các nhóm có thể nhanh chóng lắp ráp những thành phần này thành một bản mẫu chạy được mà không phải bắt đầu từ con số không, giúp thử nghiệm và lặp nhanh.

Trong thực tế hoạt động ra sao: bạn có thể dùng một parser dựng sẵn để trích thông tin từ đầu vào của người dùng, một module bộ nhớ để lưu và truy xuất dữ liệu, và một bộ sinh prompt để tương tác với người dùng, tất cả mà không cần tự xây các thành phần này từ đầu.

Code ví dụ. Chúng ta hãy xem ví dụ dùng Microsoft Agent Framework với FoundryChatClient để model phản hồi đầu vào của người dùng có gọi tool:

python
# Microsoft Agent Framework Python Example

import asyncio
import os

from agent_framework import tool
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential


# Define a sample tool function to book travel
@tool(approval_mode="never_require")
def book_flight(date: str, location: str) -> str:
    """Book travel given location and date."""
    return f"Travel was booked to {location} on {date}"


async def main():
    provider = FoundryChatClient(
        project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
        model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
        credential=AzureCliCredential(),
    )
    agent = provider.as_agent(
        name="travel_agent",
        instructions="Help the user book travel. Use the book_flight tool when ready.",
        tools=[book_flight],
    )

    response = await agent.run("I'd like to go to New York on January 1, 2025")
    print(response)
    # Example output: Your flight to New York on January 1, 2025, has been successfully booked. Safe travels! ✈️🗽


if __name__ == "__main__":
    asyncio.run(main())

Ví dụ này cho thấy cách bạn tận dụng một parser dựng sẵn để trích thông tin chính từ đầu vào của người dùng, như điểm đi, điểm đến và ngày của yêu cầu đặt vé. Cách tiếp cận mô-đun này cho phép bạn tập trung vào logic cấp cao.

Tận dụng tool cộng tác

Các framework như Microsoft Agent Framework hỗ trợ tạo nhiều agent cùng làm việc với nhau.

Các nhóm có thể dùng thế nào: các nhóm có thể thiết kế agent với vai trò và tác vụ cụ thể, cho phép kiểm thử, tinh chỉnh quy trình cộng tác và cải thiện hiệu quả tổng thể của hệ thống.

Trong thực tế hoạt động ra sao: bạn có thể tạo một nhóm agent, mỗi agent có chức năng chuyên biệt như truy xuất dữ liệu, phân tích hay ra quyết định. Các agent này có thể giao tiếp và chia sẻ thông tin để đạt mục tiêu chung, như trả lời câu hỏi của người dùng hay hoàn thành một tác vụ.

Code ví dụ (Microsoft Agent Framework):

python
# Creating multiple agents that work together using the Microsoft Agent Framework

import os
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

provider = FoundryChatClient(
    project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
    model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
    credential=AzureCliCredential(),
)

# Data Retrieval Agent
agent_retrieve = provider.as_agent(
    name="dataretrieval",
    instructions="Retrieve relevant data using available tools.",
    tools=[retrieve_tool],
)

# Data Analysis Agent
agent_analyze = provider.as_agent(
    name="dataanalysis",
    instructions="Analyze the retrieved data and provide insights.",
    tools=[analyze_tool],
)

# Run agents in sequence on a task
retrieval_result = await agent_retrieve.run("Retrieve sales data for Q4")
analysis_result = await agent_analyze.run(f"Analyze this data: {retrieval_result}")
print(analysis_result)

Code trên cho thấy cách tạo một tác vụ có nhiều agent cùng làm việc để phân tích dữ liệu. Mỗi agent thực hiện một chức năng cụ thể, và tác vụ được thực thi bằng cách điều phối các agent để đạt kết quả mong muốn. Tạo các agent chuyên trách với vai trò chuyên biệt giúp tăng hiệu quả và hiệu năng của tác vụ.

Học theo thời gian thực

Các framework nâng cao cung cấp khả năng hiểu ngữ cảnh và thích nghi theo thời gian thực.

Các nhóm có thể dùng thế nào: các nhóm có thể cài đặt vòng phản hồi để agent học từ tương tác và điều chỉnh hành vi linh hoạt, dẫn đến cải thiện và tinh chỉnh khả năng liên tục.

Trong thực tế hoạt động ra sao: agent có thể phân tích phản hồi của người dùng, dữ liệu môi trường và kết quả tác vụ để cập nhật cơ sở kiến thức, điều chỉnh thuật toán ra quyết định và cải thiện hiệu năng theo thời gian. Quá trình học lặp này giúp agent thích nghi với điều kiện và sở thích người dùng thay đổi, nâng cao hiệu quả tổng thể của hệ thống.

Microsoft Agent Framework và Microsoft Foundry Agent Service khác nhau thế nào?

Có nhiều cách so sánh hai cách tiếp cận này, nhưng chúng ta hãy xem vài khác biệt chính về thiết kế, khả năng và trường hợp sử dụng mục tiêu.

Microsoft Agent Framework (MAF)

Microsoft Agent Framework cung cấp một SDK gọn gàng để xây AI agent bằng FoundryChatClient. Nó cho phép nhà phát triển tạo agent tận dụng model Azure OpenAI với khả năng gọi tool tích hợp sẵn, quản lý hội thoại và bảo mật cấp doanh nghiệp qua Azure identity.

Trường hợp sử dụng: xây AI agent sẵn sàng cho production với dùng tool, quy trình nhiều bước và các kịch bản tích hợp doanh nghiệp.

Đây là một số khái niệm cốt lõi quan trọng của Microsoft Agent Framework:

  • Agent. Agent được tạo qua FoundryChatClient và cấu hình với tên, chỉ dẫn (instructions) và tool. Agent có thể:
    • Xử lý tin nhắn người dùng và sinh phản hồi bằng model Azure OpenAI.
    • Gọi tool tự động dựa trên ngữ cảnh hội thoại.
    • Duy trì trạng thái hội thoại qua nhiều lượt tương tác.

Đây là đoạn code cho thấy cách tạo một agent:

python
import os
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

provider = FoundryChatClient(
    project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
    model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
    credential=AzureCliCredential(),
)
agent = provider.as_agent(
    name="my_agent",
    instructions="You are a helpful assistant.",
)

response = await agent.run("Hello, World!")
print(response)
  • Tool. Framework hỗ trợ định nghĩa tool dưới dạng hàm Python mà agent có thể tự động gọi. Tool được đăng ký khi tạo agent:
python
def get_weather(location: str) -> str:
    """Get the current weather for a location."""
    return f"The weather in {location} is sunny, 72°F."

agent = provider.as_agent(
    name="weather_agent",
    instructions="Help users check the weather.",
    tools=[get_weather],
)
  • Điều phối đa agent. Bạn có thể tạo nhiều agent với chuyên môn khác nhau và điều phối công việc của chúng:
python
planner = provider.as_agent(
    name="planner",
    instructions="Break down complex tasks into steps.",
)

executor = provider.as_agent(
    name="executor",
    instructions="Execute the planned steps using available tools.",
    tools=[execute_tool],
)

plan = await planner.run("Plan a trip to Paris")
result = await executor.run(f"Execute this plan: {plan}")
  • Tích hợp Azure Identity. Framework dùng AzureCliCredential (hoặc DefaultAzureCredential) để xác thực an toàn, không cần key, loại bỏ việc phải tự quản lý API key.

Microsoft Foundry Agent Service

Microsoft Foundry Agent Service là phần bổ sung mới hơn, được giới thiệu tại Microsoft Ignite 2024. Nó cho phép phát triển và triển khai AI agent với các model linh hoạt hơn, chẳng hạn gọi trực tiếp các LLM mã nguồn mở như Llama 3, Mistral và Cohere.

Microsoft Foundry Agent Service cung cấp cơ chế bảo mật doanh nghiệp và phương thức lưu trữ dữ liệu mạnh hơn, phù hợp cho ứng dụng doanh nghiệp.

Nó hoạt động ngay với Microsoft Agent Framework để xây và triển khai agent.

Dịch vụ này hiện đang ở giai đoạn Public Preview và hỗ trợ Python và C# để xây agent.

Dùng Python SDK của Microsoft Foundry Agent Service, chúng ta có thể tạo một agent với tool do người dùng định nghĩa:

python
import asyncio
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

# Define tool functions
def get_specials() -> str:
    """Provides a list of specials from the menu."""
    return """
    Special Soup: Clam Chowder
    Special Salad: Cobb Salad
    Special Drink: Chai Tea
    """

def get_item_price(menu_item: str) -> str:
    """Provides the price of the requested menu item."""
    return "$9.99"


async def main() -> None:
    credential = DefaultAzureCredential()
    project_client = AIProjectClient.from_connection_string(
        credential=credential,
        conn_str="your-connection-string",
    )

    agent = project_client.agents.create_agent(
        model="gpt-5-mini",
        name="Host",
        instructions="Answer questions about the menu.",
        tools=[get_specials, get_item_price],
    )

    thread = project_client.agents.create_thread()

    user_inputs = [
        "Hello",
        "What is the special soup?",
        "How much does that cost?",
        "Thank you",
    ]

    for user_input in user_inputs:
        print(f"# User: '{user_input}'")
        message = project_client.agents.create_message(
            thread_id=thread.id,
            role="user",
            content=user_input,
        )
        run = project_client.agents.create_and_process_run(
            thread_id=thread.id, agent_id=agent.id
        )
        messages = project_client.agents.list_messages(thread_id=thread.id)
        print(f"# Agent: {messages.data[0].content[0].text.value}")


if __name__ == "__main__":
    asyncio.run(main())

Khái niệm cốt lõi

Microsoft Foundry Agent Service có các khái niệm cốt lõi sau:

  • Agent. Microsoft Foundry Agent Service tích hợp với Microsoft Foundry. Trong Microsoft Foundry, một AI agent đóng vai trò một microservice "thông minh" có thể dùng để trả lời câu hỏi (RAG), thực hiện hành động hoặc tự động hoá hoàn toàn các quy trình. Nó làm được vậy nhờ kết hợp sức mạnh của model AI tạo sinh với các tool cho phép truy cập và tương tác với nguồn dữ liệu thực tế. Đây là ví dụ về một agent:
python
agent = project_client.agents.create_agent(
    model="gpt-5-mini",
    name="my-agent",
    instructions="You are helpful agent",
    tools=code_interpreter.definitions,
    tool_resources=code_interpreter.resources,
)

Trong ví dụ này, một agent được tạo với model gpt-5-mini, tên my-agent và chỉ dẫn You are helpful agent. Agent được trang bị tool và resource để thực hiện tác vụ thông dịch code.

  • Thread và message. Thread là một khái niệm quan trọng khác. Nó đại diện cho một cuộc hội thoại hoặc tương tác giữa agent và người dùng. Thread có thể dùng để theo dõi tiến trình hội thoại, lưu thông tin ngữ cảnh và quản lý trạng thái tương tác. Đây là ví dụ về một thread:
python
thread = project_client.agents.create_thread()
message = project_client.agents.create_message(
    thread_id=thread.id,
    role="user",
    content="Could you please create a bar chart for the operating profit using the following data and provide the file to me? Company A: $1.2 million, Company B: $2.5 million, Company C: $3.0 million, Company D: $1.8 million",
)

# Ask the agent to perform work on the thread
run = project_client.agents.create_and_process_run(thread_id=thread.id, agent_id=agent.id)

# Fetch and log all messages to see the agent's response
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")

Trong code trên, một thread được tạo. Sau đó, một message được gửi vào thread. Bằng cách gọi create_and_process_run, agent được yêu cầu thực hiện công việc trên thread. Cuối cùng, các message được lấy về và ghi log để xem phản hồi của agent. Các message cho thấy tiến trình hội thoại giữa người dùng và agent. Cũng cần hiểu rằng message có thể thuộc nhiều kiểu như văn bản, ảnh hoặc file, tức là công việc của agent có thể tạo ra một ảnh hoặc một phản hồi văn bản chẳng hạn. Là nhà phát triển, bạn có thể dùng thông tin này để xử lý thêm phản hồi hoặc trình bày cho người dùng.

  • Tích hợp với Microsoft Agent Framework. Microsoft Foundry Agent Service làm việc liền mạch với Microsoft Agent Framework, nghĩa là bạn có thể xây agent bằng FoundryChatClient và triển khai chúng qua Agent Service cho các kịch bản production.

Trường hợp sử dụng: Microsoft Foundry Agent Service được thiết kế cho ứng dụng doanh nghiệp cần triển khai AI agent an toàn, dễ mở rộng và linh hoạt.

Hai cách tiếp cận này khác nhau ở đâu?

Nghe có vẻ chồng lấn, nhưng có vài khác biệt chính về thiết kế, khả năng và trường hợp sử dụng mục tiêu:

  • Microsoft Agent Framework (MAF): là một SDK sẵn sàng cho production để xây AI agent. Nó cung cấp API gọn gàng để tạo agent có gọi tool, quản lý hội thoại và tích hợp Azure identity.
  • Microsoft Foundry Agent Service: là một nền tảng và dịch vụ triển khai agent trong Microsoft Foundry. Nó có sẵn kết nối tới các dịch vụ như Azure OpenAI, Azure AI Search, Bing Search và thực thi code.

Vẫn chưa biết chọn cái nào?

Các trường hợp sử dụng

Chúng ta hãy thử đi qua vài trường hợp sử dụng phổ biến:

Hỏi: Tôi đang xây ứng dụng AI agent cho production và muốn bắt đầu nhanh

Đáp: Microsoft Agent Framework là lựa chọn tốt. Nó cung cấp API đơn giản, đậm chất Python qua FoundryChatClient, cho phép định nghĩa agent với tool và chỉ dẫn chỉ trong vài dòng code.

Hỏi: Tôi cần triển khai cấp doanh nghiệp với các tích hợp Azure như Search và thực thi code

Đáp: Microsoft Foundry Agent Service là phù hợp nhất. Đây là dịch vụ nền tảng có sẵn khả năng dùng nhiều model, Azure AI Search, Bing Search và Azure Functions. Nó giúp dễ dàng xây agent trong Foundry Portal và triển khai ở quy mô lớn.

Hỏi: Tôi vẫn rối, cho tôi một lựa chọn thôi

Đáp: Hãy bắt đầu với Microsoft Agent Framework để xây agent, rồi dùng Microsoft Foundry Agent Service khi bạn cần triển khai và mở rộng chúng trong production. Cách này giúp bạn lặp nhanh trên logic của agent mà vẫn có lộ trình rõ ràng tới triển khai doanh nghiệp.

Chúng ta hãy tóm tắt các khác biệt chính trong một bảng:

FrameworkTrọng tâmKhái niệm cốt lõiTrường hợp sử dụng
Microsoft Agent FrameworkSDK agent gọn gàng có gọi toolAgent, Tool, Azure IdentityXây AI agent, dùng tool, quy trình nhiều bước
Microsoft Foundry Agent ServiceModel linh hoạt, bảo mật doanh nghiệp, sinh code, gọi toolTính mô-đun, cộng tác, điều phối quy trìnhTriển khai AI agent an toàn, dễ mở rộng và linh hoạt

Có tích hợp trực tiếp được các tool sẵn có trong hệ sinh thái Azure không, hay cần giải pháp riêng?

Câu trả lời là có, bạn có thể tích hợp trực tiếp các tool sẵn có trong hệ sinh thái Azure, đặc biệt với Microsoft Foundry Agent Service, vì nó được xây để làm việc liền mạch với các dịch vụ Azure khác. Ví dụ bạn có thể tích hợp Bing, Azure AI Search và Azure Functions. Nó cũng tích hợp sâu với Microsoft Foundry.

Microsoft Agent Framework cũng tích hợp với các dịch vụ Azure qua FoundryChatClient và Azure identity, cho phép bạn gọi dịch vụ Azure trực tiếp từ tool của agent.

Code mẫu

Còn câu hỏi về framework AI agent?

Tham gia Microsoft Foundry Discord để gặp gỡ những người cùng học, dự các buổi office hours và được giải đáp thắc mắc về AI agent.

Tài liệu tham khảo

Nguồn