AI Agent(智能体) 教程

AI Agent 称为智能体,本质是自动执行任务的程序,核心在于让模型不只回答问题,而是按步骤完成动作。

Agent 不是对话助手,它是一段能理解目标→规划步骤→调用工具→产出结果的流程体。

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


谁适合阅读本教程?

  1. 想使用 AI 自动化日常任务的人
  2. 对编程不熟但想用 AI 做实际工作的新人
  3. 已会基本电脑操作、但对"Agent""工作流"等概念零基础的人
  4. 想把 AI 从"聊天"提升到"真正干活"的人

学习本教程前你需要了解

  1. 了解电脑上的基础操作:文件、文件夹、复制、粘贴
  2. 会安装软件、能根据提示完成基本设置
  3. 能看懂简单英文单词,不要求口语
  4. 愿意按步骤执行,不跳步骤
  5. 具备用例思维:明确"要让 Agent 做什么"而不是"让它自己想办法"

AI Agent 结构组成

结构由三块组成:

  1. 目标:明确任务意图
  2. 逻辑:按规则拆成可执行步骤
  3. 工具:通过代码或 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恤、薄外套。

代码解读

  1. WeatherAgent 类定义了一个简单的 Agent 框架。
  2. tools 字典定义了 Agent 可以使用的两种"工具"(函数)。
  3. run 方法是核心流程:它解析用户指令,规划出需要调用 get_weather_apigenerate_advice 两个工具,然后按顺序执行,并将中间结果存入 memory,最后输出整合后的答案。