智能体人工智能在2025年正式跻身热门赛道。此前,它还只是以“让机器玩宝可梦”的形式零星出现在大众视野中。如今,无论是微软这类科技巨头,还是零售、旅游等科技应用行业,都在智能体人工智能领域押下重注。
那么,什么是人工智能智能体?广义来说,智能体是一类能感知环境并采取行动以达成目标的系统。在当下的技术语境中,人工智能智能体 拥有一颗“大脑”——也就是大语言模型,负责规划达成理想结果的步骤序列;同时配备一双“巧手”——即各类工具接口。这些工具既能帮助智能体搜索互联网、查询内部数据库以获取数据,也能支持它发送邮件、更新预订系统等操作。
在本文中,我们将为一家酒店企业构建一套智能体系统。我们的目标是突破传统仪表盘和临时分析的局限,打造一个能主动识别预订量异常下滑、分析背后原因,并提供战略建议的营收管理智能体。
我使用的是 Python 3.11 版本,该版本能够满足我们所需所有包的运行要求。你可以从这个链接下载安装程序,之后创建虚拟环境并安装相关依赖包。
py -3.13 -m venv agentenv
agentenv\\\\Scripts\\\\activate
pip install crewai
pip install crewai-tools[mcp]
pip install tavily-python
接下来,我们为这家虚拟酒店企业创建一个简单的本地数据库,其中包含一张聚合数据表。该表会按目的地和月份,记录实际预订量、预期预订量、近期主动降价幅度,以及剩余未售客房的平均每晚售价。
import sqlite3
def setup_database():
conn = sqlite3.connect('company_data.db')
cursor = conn.cursor()
# 1. 创建聚合数据表
cursor.execute('''
DROP TABLE IF EXISTS destination_performance;
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS destination_performance (
destination_id TEXT PRIMARY KEY,
destination_name TEXT,
month TEXT,
confirmed_bookings INTEGER,
predicted_bookings INTEGER,
avg_price_drop_14d REAL,
avg_remaining_nightly_price REAL,
currency TEXT
)
''')
# 2. 插入“问题数据”
# 场景设定:预期预订量 500 间,实际仅 320 间
# 我们已降价 45 美元,但预订量依旧没有起色
data = [
('IT-TUS', '意大利托斯卡纳', '2026年3月', 320, 500, 45.00, 210, '美元'),
('JP-KYO', '日本京都', '2026年3月', 480, 450, 0.00, 180, '美元'),
('FR-PAR', '法国巴黎', '2026年3月', 600, 610, 10.00, 170, '美元')
]
cursor.executemany('INSERT OR REPLACE INTO destination_performance VALUES (?,?,?,?,?,?,?,?)', data)
conn.commit()
conn.close()
print("数据库 'company_data.db' 已初始化,并写入聚合业绩数据。")
我们的智能体系统需要一个基于大语言模型的“大脑”。你可以选择本地部署的大语言模型,而本文将使用 Gemini 模型。你只需前往这个链接创建或查看已有的 API 密钥。需要注意的是,未设置账单信息时,API 的调用频率会受到严格限制。因此,建议你进入“用量与账单”选项卡,为项目配置支付方式(我使用的是“默认 Gemini 项目”)。
配置支付方式并不意味着你会立即产生费用。目前,谷歌为新用户提供前 90 天 300 美元的免费额度,并且承诺:
只有当你选择激活完整的按需付费谷歌云账户,或选择预付费时,才会开始计费。
完成上述步骤后,我们就可以在主脚本中定义智能体的“大脑”了:
import os
# =============================================================================
# 1. 配置信息
# =============================================================================
# 在此处输入你的密钥
os.environ["GOOGLE_API_KEY"] = "请在此处输入你的 API 密钥"
# 初始化 Gemini 模型
gemini_llm = LLM(
model="gemini/gemini-flash-latest",
api_key=os.environ["GOOGLE_API_KEY"],
temperature=0.2
)
你可以通过向模型发送测试指令来验证配置是否成功,执行代码 gemini_llm.call("测试指令")。如果配置无误,Gemini 会给出响应,表明模型已准备就绪。
我们将使用 CrewAI 这个框架。它的设计十分直观,能帮助我们构建由多个人工智能智能体组成的团队,并为每个智能体分配专属角色和可用工具集。
我们的第一位团队成员是内部业绩分析师。他的职责是查询数据库,识别预订量增长是否存在异常情况。首先,我们需要为他开发一个专用工具: