Xây Dựng Hệ Thống Sales Agent Thông Minh với OpenAI SDK
Trong OpenAI Agent SDK, bạn có thể biến một Agent thành một Tool, nghĩa là Agent này có thể được gọi bởi Agent khác như một công cụ chuyên trách — mở ra khả năng phối hợp nhiều Agent để tự động hóa quy trình bán hàng thông minh.
Ý tưởng:
-
Mỗi agent có phong cách bán hàng riêng.
-
Tạo 1 agent điều phối (Orchestrator) có thể gọi các agent khác như công cụ để tạo email.
-
Quy trình được tự động hóa & phân công vai trò.
Cập nhật code: Biến Agent thành Tool
Bước 1: Cập nhật agents.py
from openai import Agent
from tools import get_sales_products, send_sales_email
# 3 agents như trước
agent_professional = Agent(
instructions="Bạn là nhân viên bán hàng chuyên nghiệp. Hãy viết email chào hàng chuyên nghiệp và gửi đi.",
tools=[get_sales_products, send_sales_email],
)
agent_funny = Agent(
instructions="Bạn là nhân viên bán hàng hài hước. Hãy viết email sáng tạo và vui nhộn để thu hút khách hàng.",
tools=[get_sales_products, send_sales_email],
)
agent_direct = Agent(
instructions="Bạn là nhân viên bán hàng ngắn gọn. Hãy viết email ngắn, đúng trọng tâm và gửi đi.",
tools=[get_sales_products, send_sales_email],
)
# Biến các Agent thành công cụ
tool_professional = agent_professional.as_tool(
name="SalesAgentProfessional",
description="Viết email chào hàng chuyên nghiệp và gửi đi"
)
tool_funny = agent_funny.as_tool(
name="SalesAgentFunny",
description="Viết email chào hàng hài hước và gửi đi"
)
tool_direct = agent_direct.as_tool(
name="SalesAgentDirect",
description="Viết email chào hàng ngắn gọn, đi thẳng vào vấn đề và gửi đi"
)
Bước 2: Tạo Agent Điều Phối (Orchestrator)
orchestrator = Agent(
instructions="""
Bạn là điều phối viên bán hàng. Tùy theo phong cách khách hàng yêu cầu, hãy gọi đúng agent tương ứng
để viết email chào hàng và gửi đi.
""",
tools=[tool_professional, tool_funny, tool_direct]
)
Bước 3: Tự động chạy Agent Điều Phối trong main.py
import asyncio
from dotenv import load_dotenv
from openai import trace
from agents import orchestrator
load_dotenv()
async def run_orchestration():
customer_input = """
Khách hàng muốn mua smartphone. Gửi email tới hoang@example.com.
Phong cách: hài hước.
"""
runner = orchestrator.runner()
async for chunk in runner.run_stream(customer_input):
print(chunk.delta, end="", flush=True)
asyncio.run(run_orchestration())
Kết quả kỳ vọng:
Orchestrator phân tích đầu vào:
"Phong cách: hài hước"
→ Gọi tool_funny
→ Gọiget_sales_products("smartphone")
→ Soạn email hài hước
→ Gọisend_sales_email()
→ Trả kết quả
Lợi ích:
-
Tái sử dụng agent như các module thông minh.
-
Có thể mở rộng không giới hạn (ví dụ thêm
agent_thuyết_phục
,agent_tiết_kiệm
...). -
Tự động hóa toàn bộ quy trình bán hàng theo yêu cầu từng khách.
Tác giả: Đỗ Ngọc Tú
Công Ty Phần Mềm VHTSoft