AI Agent(智能体)教程

AI Agent 是能自主感知、决策并执行任务的智能实体,核心在于让模型不只回答问题,而是按步骤完成动作。

什么是 AI Agent?

AI Agent(人工智能代理) 是一个能够感知环境、进行决策并执行行动,以达成特定目标的智能软件实体。它不仅仅是回答问题的聊天机器人,更是能够动手做事的智能执行者

核心公式:Agent = LLM(大脑)+ Planning(规划)+ Tool use(执行)+ Memory(记忆)

思维转变

学习 Agent 需要从对话框问答进化为目标驱动的任务执行

  • 传统程序:固定指令流程(输入 → 处理 → 输出)
  • AI Agent:像有自主性的员工,能理解目标、制定计划、使用工具、自我调整、持续执行

类比理解

  • 传统程序 = 自动售货机:投币 → 按按钮 → 出商品
  • AI Agent = 私人助理:告诉需求 → 助理规划 → 完成任务并汇报

结构组成

由三块组成:

  • 目标:明确任务意图
  • 逻辑:按规则拆成可执行步骤
  • 工具:通过代码或 API 让步骤落地

运行方式

  1. 接收输入
  2. 判断当前任务
  3. 调用对应工具执行
  4. 返回结果
  5. 保留必要上下文
  6. 支持多轮连续操作
  7. 遇阻时调整执行步骤

与普通大模型的差异

普通大模型 AI Agent
生成文本 生成行动并执行,完成实际工作

举例:给出目标“规划三天北京行程,预算 5000”

  • 自动检索机票、酒店与价格
  • 自动收集景点信息并做对比
  • 自动生成可执行行程表
  • 具备条件时可继续执行预订操作

工作原理:代码示例

以下是一个 Python 伪代码示例,演示一个能自动查询天气并给出穿衣建议的简单 Agent。

python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
# 伪代码示例:简易天气穿衣助手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获取数据"""
        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: 规划 - 从指令中提取关键信息(城市)
        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}")

输出示例

text
1 2 3
[用户指令] 我想知道北京的天气,该怎么穿衣服?
[Agent 行动] 正在查询北京的天气...
[Agent 回复] 当前北京气温22℃,天气晴朗。建议穿长袖T恤、薄外套。

代码解读

  • WeatherAgent 类定义了简单的 Agent 框架
  • tools 字典定义了可使用的工具(函数)
  • run 方法为核心流程:解析指令、规划顺序、执行工具、存入记忆、输出答案

描述
描述