Nhảy đến nội dung chính

Tạo Ứng Dụng Agent Tự Nghiên Cứu

Hôm nay, chúng ta sẽ xây dựng dự án lớn đầu tiên – một Deep Research Agent.

Đây là một trong những ứng dụng kinh điển của Agentic AI – nơi agent sẽ:

  • Tự động tìm kiếm thông tin trên Internet

  • Đọc các nguồn liên quan

  • Tổng hợp và tóm tắt thông tin

Mục tiêu của dự án

Tạo một AI Agent có khả năng:

  • Nhận một từ khóa nghiên cứu

  • Tìm kiếm trên web thông qua công cụ web-search được OpenAI cung cấp

  • Tổng hợp nội dung từ các nguồn

  • Trả về bản tóm tắt ngắn gọn (2–3 đoạn)

Công cụ cần chuẩn bị

  • Python 3.10+

  • Jupyter Notebook hoặc VSCode + extension Cursor

  • Tài khoản OpenAI có truy cập GPT-4 và hosted tools (web-search)

  • Thư viện openai (v1.3+)

Cấu trúc dự án gợi ý

deep_research_agent/
├── .env
├── deep_research.ipynb
└── requirements.txt

1. Cài đặt môi trường

Tạo thư mục và cài thư viện

mkdir deep_research_agent
cd deep_research_agent
python -m venv venv
source venv/bin/activate  # hoặc .\venv\Scripts\activate trên Windows

pip install openai python-dotenv jupyter

Tạo file requirements.txt

openai
python-dotenv
jupyter

2. Tạo file .env

Tạo file .env chứa API key của bạn:

OPENAI_API_KEY=sk-...

3. Tạo Notebook deep_research.ipynb

Bạn có thể tạo một file notebook mới trong VSCode hoặc Jupyter. Dưới đây là nội dung gợi ý từng bước bạn cần triển khai:

4. Nội dung notebook (deep_research.ipynb)

🔹 Bước 1: Khởi tạo môi trường
import os
from dotenv import load_dotenv
import openai

load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")

🔹 Bước 2: Định nghĩa công cụ hosted (web search)

from openai import OpenAI
from openai.types.beta.threads import ToolAssistant
from openai.types.beta.tools import ToolChoice

client = OpenAI()

# Mô tả Search Agent
instructions = """
You are a research assistant.
Given a search term, you search the web for that term.
You produce a concise summary in 2–3 paragraphs, capturing the main points.
Write succinctly. No need for good grammar.
"""

tools = [{"type": "web-search"}]  # Tool được OpenAI host

🔹 Bước 3: Tạo Assistant (Agent)

assistant = client.beta.assistants.create(
    name="Search Agent",
    instructions=instructions,
    tools=tools,
    model="gpt-4-turbo"
)

Bước 4: Tạo Thread, gửi yêu cầu tìm kiếm

thread = client.beta.threads.create()

user_input = "Latest AI agent frameworks in 2025"

# Thêm message
client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content=user_input
)

# Run với yêu cầu bắt buộc dùng web-search
run = client.beta.threads.runs.create(
    thread_id=thread.id,
    assistant_id=assistant.id,
    tool_choice={"type": "required"},
    model="gpt-4-turbo"
)

# Chờ chạy xong
import time
while True:
    run_status = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)
    if run_status.status in ["completed", "failed"]:
        break
    time.sleep(1)

# Lấy kết quả
messages = client.beta.threads.messages.list(thread_id=thread.id)
for msg in messages:
    print(f"{msg.role}: {msg.content[0].text.value}")

Lưu ý về chi phí

  • Mỗi lần gọi web-search tool tốn 2.5 cent/lần

  • Có thể giảm chi phí bằng cách chọn search_context="low" nếu API hỗ trợ (đang thay đổi liên tục)