AI Agent(智能体) 教程

AI Agent 称为智能体,本质是自动执行任务的程序,核心在于让模型不只回答问题,而是按步骤完成动作。
Agent 不是对话助手,它是一段能理解目标→规划步骤→调用工具→产出结果的流程体。
简单来说,AI Agent(人工智能代理) 是一个能够感知环境、进行决策并执行行动,以达成特定目标的智能软件实体。它不仅仅是回答问题的聊天机器人,更是能够"动手做事"的智能执行者。
谁适合阅读本教程?
- 想使用 AI 自动化日常任务的人
- 对编程不熟但想用 AI 做实际工作的新人
- 已会基本电脑操作、但对"Agent""工作流"等概念零基础的人
- 想把 AI 从"聊天"提升到"真正干活"的人
学习本教程前你需要了解
- 了解电脑上的基础操作:文件、文件夹、复制、粘贴
- 会安装软件、能根据提示完成基本设置
- 能看懂简单英文单词,不要求口语
- 愿意按步骤执行,不跳步骤
- 具备用例思维:明确"要让 Agent 做什么"而不是"让它自己想办法"
AI Agent 结构组成
结构由三块组成:
- 目标:明确任务意图
- 逻辑:按规则拆成可执行步骤
- 工具:通过代码或 API 让步骤落地
运行方式:
- 接收输入
- 判断当前任务
- 调用对应工具执行
- 返回结果
- 保留必要上下文
- 支持多轮连续操作
- 遇阻时调整执行步骤
与普通大模型的差异点
- 普通大模型:生成文本
- Agent:生成行动并执行行动,能完成实际工作
举例:
- 给出目标:如"规划三天北京行程,预算 5000"。
- 自动检索机票、酒店与价格。
- 自动收集景点信息并做对比。
- 自动生成可执行行程表。
- 具备条件时可继续执行预订操作。
AI Agent 的工作原理:一个简单的代码示例
让我们通过一个 Python 伪代码示例,直观感受一下 AI Agent 的工作流程。假设我们要创建一个能自动查询天气并给出穿衣建议的简单 Agent。
实例
# 伪代码示例:简易天气穿衣助手Agent
import requests
class WeatherAgent:
def __init__(self):
self.memory = [] # 简单的记忆存储
self.tools = {
'get_weather': self.get_weather_api,
'give_advice': self.generate_advice
}
# 工具1: 调用天气API
def get_weather_api(self, city):
"""调用外部天气API获取数据"""
# 这里模拟一个API调用
print(f"[Agent 行动] 正在查询{city}的天气...")
# 假设返回的数据
mock_data = {'city': city, 'temp': 22, 'condition': '晴朗', 'wind': '3级'}
return mock_data
# 工具2: 根据天气生成建议
def generate_advice(self, weather_data):
"""根据天气数据生成穿衣建议"""
temp = weather_data['temp']
condition = weather_data['condition']
advice = f"当前{weather_data['city']}气温{temp}℃,天气{condition}。"
if temp > 25:
advice += "建议穿短袖、短裤。"
elif temp > 15:
advice += "建议穿长袖T恤、薄外套。"
else:
advice += "建议穿毛衣、厚外套。"
return advice
# 规划与执行核心
def run(self, user_input):
"""解析用户目标并执行任务"""
print(f"[用户指令] {user_input}")
# 步骤1: 规划 - 从指令中提取关键信息(城市)
# 这里简化处理,实际会用更复杂的NLP模型
if "天气" in user_input and "北京" in user_input:
city = "北京"
else:
return "请告诉我您想查询哪个城市的天气?"
# 步骤2: 行动 - 调用工具获取天气
weather_info = self.tools['get_weather'](city)
self.memory.append({'step': 'fetched_weather', 'data': weather_info}) # 存入记忆
# 步骤3: 行动 - 调用工具生成建议
final_advice = self.tools['give_advice'](weather_info)
self.memory.append({'step': 'generated_advice', 'data': final_advice}) # 存入记忆
# 步骤4: 输出结果
return final_advice
# 使用Agent
agent = WeatherAgent()
result = agent.run("我想知道北京的天气,该怎么穿衣服?")
print(f"[Agent 回复] {result}")
# 输出示例:
# [用户指令] 我想知道北京的天气,该怎么穿衣服?
# [Agent 行动] 正在查询北京的天气...
# [Agent 回复] 当前北京气温22℃,天气晴朗。建议穿长袖T恤、薄外套。
import requests
class WeatherAgent:
def __init__(self):
self.memory = [] # 简单的记忆存储
self.tools = {
'get_weather': self.get_weather_api,
'give_advice': self.generate_advice
}
# 工具1: 调用天气API
def get_weather_api(self, city):
"""调用外部天气API获取数据"""
# 这里模拟一个API调用
print(f"[Agent 行动] 正在查询{city}的天气...")
# 假设返回的数据
mock_data = {'city': city, 'temp': 22, 'condition': '晴朗', 'wind': '3级'}
return mock_data
# 工具2: 根据天气生成建议
def generate_advice(self, weather_data):
"""根据天气数据生成穿衣建议"""
temp = weather_data['temp']
condition = weather_data['condition']
advice = f"当前{weather_data['city']}气温{temp}℃,天气{condition}。"
if temp > 25:
advice += "建议穿短袖、短裤。"
elif temp > 15:
advice += "建议穿长袖T恤、薄外套。"
else:
advice += "建议穿毛衣、厚外套。"
return advice
# 规划与执行核心
def run(self, user_input):
"""解析用户目标并执行任务"""
print(f"[用户指令] {user_input}")
# 步骤1: 规划 - 从指令中提取关键信息(城市)
# 这里简化处理,实际会用更复杂的NLP模型
if "天气" in user_input and "北京" in user_input:
city = "北京"
else:
return "请告诉我您想查询哪个城市的天气?"
# 步骤2: 行动 - 调用工具获取天气
weather_info = self.tools['get_weather'](city)
self.memory.append({'step': 'fetched_weather', 'data': weather_info}) # 存入记忆
# 步骤3: 行动 - 调用工具生成建议
final_advice = self.tools['give_advice'](weather_info)
self.memory.append({'step': 'generated_advice', 'data': final_advice}) # 存入记忆
# 步骤4: 输出结果
return final_advice
# 使用Agent
agent = WeatherAgent()
result = agent.run("我想知道北京的天气,该怎么穿衣服?")
print(f"[Agent 回复] {result}")
# 输出示例:
# [用户指令] 我想知道北京的天气,该怎么穿衣服?
# [Agent 行动] 正在查询北京的天气...
# [Agent 回复] 当前北京气温22℃,天气晴朗。建议穿长袖T恤、薄外套。
代码解读:
WeatherAgent类定义了一个简单的 Agent 框架。tools字典定义了 Agent 可以使用的两种"工具"(函数)。run方法是核心流程:它解析用户指令,规划出需要调用get_weather_api和generate_advice两个工具,然后按顺序执行,并将中间结果存入memory,最后输出整合后的答案。
