AI Agent(智能体)教程

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

什么是 AI Agent?

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

经典公式

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

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

与传统程序的区别

传统程序(自动售货机) AI Agent(私人助理)
投币 → 按按钮 → 出商品 告诉需求 → 助理规划 → 完成任务并汇报
固定指令流程 自主制定计划、使用工具、自我调整
输入 → 处理 → 输出 持续执行直到完成或遇到障碍

Agent 结构组成

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

运行方式

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

与普通大模型的差异

普通大模型 AI Agent
生成文本 生成行动并执行,完成实际工作
回答“怎么做” 直接动手做

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

工作原理:代码示例

下面通过一个 Python 伪代码示例,直观感受 AI 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}")

代码解读

  • WeatherAgent 类定义了框架,tools 字典包含两种工具(函数)。
  • run 方法解析指令,规划调用 get_weather_apigenerate_advice,按序执行,将中间结果存入 memory,最后输出。

执行示例:

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

更多资源

Agent 架构示意图
示例图