AI Agent(智能体)教程

从对话问答到任务执行,AI Agent 让模型真正“动手做事”。本质是自动执行任务的程序,核心在于按步骤完成动作。

什么是 AI Agent?

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

核心公式

Agent = LLM(大脑)+ Planning(规划)+ Tool use(执行)+ Memory(记忆)

思维转变:从对话框到目标驱动

传统程序遵循固定流程:输入 → 处理 → 输出。而 AI Agent 更像一个有自主性的员工:

  • 理解任务目标:明白你想要什么结果
  • 制定计划:思考如何达成目标
  • 使用工具:调用各种资源和 API
  • 自我调整:根据反馈优化策略
  • 持续执行:直到完成任务或遇到无法解决的问题

类比理解

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

结构组成

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

运行方式

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

与普通大模型的差异

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

举例:给出目标“规划三天北京行程,预算5000”,Agent 会自动检索机票、酒店与价格,收集景点信息做对比,生成可执行行程表,甚至执行预订操作。

AI Agent 的工作原理:代码示例

下面是一个 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 方法是核心流程:解析指令 → 规划步骤 → 按序执行工具 → 存入记忆 → 输出结果。

图示1
图示2