跳转至

第1章 智能体与生成式 AI

学习目标

  • 理解 AI Agent(智能体)的定义与核心特征
  • 区分 Agent 与 ChatGPT、传统助手、固定工作流的差异
  • 掌握 Agent 的自主性、工具调用与记忆三大核心能力
  • 使用 OpenAI Agents SDK 编写一个可运行的简单 Agent
  • 识别 Agent 在企业场景中的实际价值

问题导入

2023 年以来,以 ChatGPT 为代表的生成式 AI 改变了人机交互方式,但它本质仍是"一问一答"的对话工具。当你需要 AI 真正完成一项任务——例如查询数据库、调用外部 API、连续多步推理并自主决策时,单纯的聊天模型就显得力不从心。AI Agent(智能体)正是在这种需求下崛起的新范式:它以大语言模型为"大脑",配合工具调用、记忆与规划能力,能够自主完成端到端的复杂任务。从智能客服自动处理工单,到财务 Agent 自动生成分析报告,Agent 正在从"对话玩具"走向"生产力工具"。本章将带你建立对 Agent 的完整认知,为后续学习 LLM、RAG、多智能体等主题打下基础。

核心概念

1. AI Agent 的定义

AI Agent 是一类以大语言模型(LLM)为核心推理引擎,能够感知环境、自主规划、调用工具并执行动作以完成目标的系统。Anthropic 在其《Building effective agents》一文中将其概括为:Agent 动态地决定自己的工作流程与工具使用,并在每一步保留对过程的控制权。与固定流水线不同,Agent 的执行路径由模型根据当前状态实时决策。

2. Agent 与 ChatGPT / 助手 / 工作流的区别

  • ChatGPT 类对话产品:仅接收文本输入、输出文本,无法主动执行外部动作。
  • AI 助手(Assistant):通常在对话基础上挂载少量工具(如检索、代码执行),但仍以人为主导,由用户发起每一步。
  • 工作流(Workflow):由开发者预先编排好的固定流程,路径不可变,LLM 仅作为其中的节点。
  • Agent:自主决定"下一步做什么",可循环执行"思考—行动—观察"直到完成目标。

3. Agent 的核心特征

  1. 自主性(Autonomy):无需人工逐步指令,能自行拆解任务、规划步骤。
  2. 工具调用(Tool Use):通过函数调用(Function Calling)操作外部世界,如查询数据库、调用 API、执行代码。
  3. 记忆(Memory):包括短期记忆(上下文窗口中的对话历史)和长期记忆(向量数据库存储的经验)。
  4. 规划(Planning):通过 ReAct、Plan-and-Execute 等策略分解复杂任务。
  5. 反馈循环:根据工具返回结果调整后续行动,形成闭环。

4. Agent 基本架构

一个典型的 Agent 系统包含四个组成部分: - 大脑(LLM):负责理解、推理与决策。 - 感知层:接收用户输入、工具返回、环境状态。 - 行动层:工具集合(函数、API、代码解释器)。 - 记忆层:上下文管理 + 向量存储。

5. ReAct 范式

ReAct(Reasoning + Acting)是 Agent 最经典的推理范式。模型在每一步先输出"思考"(Thought),再决定"行动"(Action),然后接收"观察"(Observation),循环往复直至给出最终答案。这种显式推理过程提升了结果的可解释性与准确性。

原理图

flowchart TD
    User[用户指令] --> Brain[LLM 大脑]
    Brain --> Think{思考与规划}
    Think -->|决定行动| Tool[工具调用]
    Tool --> Obs[观察结果]
    Obs --> Memory[(记忆层)]
    Memory --> Brain
    Brain -->|任务完成| Answer[最终答案]

    subgraph Agent核心
        Brain
        Think
        Tool
        Obs
        Memory
    end
图:AI Agent 高层架构,LLM 作为大脑驱动"思考—行动—观察"循环

示例代码

以下示例使用 OpenAI Agents SDK(openai-agents)创建一个具备工具调用能力的简单 Agent。

from agents import Agent, Runner, function_tool
import asyncio


@function_tool
def get_weather(city: str) -> str:
    """查询指定城市的天气信息。

    Args:
        city: 城市名称,例如 "北京"。
    """
    # 模拟数据,实际可接入天气 API
    weather_data = {"北京": "晴 25°C", "上海": "多云 28°C", "广州": "雷阵雨 30°C"}
    return weather_data.get(city, f"{city} 暂无天气数据")


async def main() -> None:
    """运行一个简单的天气查询 Agent。"""
    agent = Agent(
        name="天气助手",
        instructions="你是一个贴心的天气助手。当用户询问天气时,调用 get_weather 工具获取结果,并用自然语言回复。",
        tools=[get_weather],
        model="gpt-4o-mini",
    )

    result = await Runner.run(agent, "北京今天天气怎么样?")
    print("Agent 回复:", result.final_output)


if __name__ == "__main__":
    asyncio.run(main())

运行结果说明:Agent 会先调用 get_weather("北京") 得到"晴 25°C",再用自然语言组织成回答,例如"北京今天天气晴朗,气温约 25°C,适合出行。"整个过程展示了 LLM 自主决定调用工具的能力。

企业案例

案例 1:智能客服 Agent

某电商平台部署客服 Agent,集成订单查询、退款、物流追踪等工具。当用户反馈"我的订单还没到"时,Agent 自主调用订单系统 API 查询物流,若发现异常则自动创建工单流转给人工。上线后人工坐席工作量下降 40%,平均响应时间从 5 分钟缩短至 30 秒。

案例 2:财务分析 Agent

某集团财务部使用 Agent 自动生成月度经营分析报告。Agent 接入 ERP 数据库、Excel 文件与行业研报,按"取数—清洗—分析—绘图—撰写"的流程自主完成。原本需要 2 名分析师 3 天完成的工作,Agent 可在 2 小时内输出初稿,分析师只需做最终审阅。

案例 3:研发运维 Agent

某互联网公司构建 Ops Agent,监听告警后自动执行日志查询、定位根因、生成修复脚本并提 PR。Agent 把工程师从重复的排查工作中解放出来,MTTR(平均故障恢复时间)降低 55%。

常见问题

Q1:Agent 和 LangChain 是一回事吗? A:不是。LangChain 是开发框架,Agent 是一种系统形态。你可以用 LangChain 构建 Agent,也可以用 OpenAI Agents SDK、CrewAI 等其他框架。

Q2:有了 Function Calling 就等于有了 Agent 吗? A:不等价。Function Calling 是单次工具调用能力;Agent 强调的是自主循环——根据观察结果决定下一步,直到任务完成。

Q3:Agent 会不会"失控"无限循环? A:可能,因此需要在工程上设置最大迭代次数、超时、成本上限等护栏(guardrails),并对工具权限做最小化控制。

Q4:Agent 一定比固定工作流好吗? A:不一定。任务路径确定、对延迟敏感的场景,固定工作流更稳定高效;任务路径不确定、需要灵活决策的场景才适合 Agent。

面试题

1. 请用自己的话定义 AI Agent。 参考答案:AI Agent 是以 LLM 为推理引擎,能感知环境、自主规划、调用工具并执行动作以完成目标的系统,其核心在于"自主决策 + 反馈循环"。

2. Agent 与传统工作流(Workflow)的本质区别是什么? 答题要点:工作流路径由开发者预设,LLM 仅作为节点;Agent 路径由 LLM 动态决定,保留对过程的控制权,可循环执行直到完成。

3. 简述 ReAct 范式的执行流程。 参考答案:Thought(思考)→ Action(行动/调用工具)→ Observation(观察结果)→ 循环,直至 Final Answer。

4. 设计一个 Agent 时,如何防止它陷入无限循环? 答题要点:设置最大迭代次数、单次/总成本上限、超时时间;限制工具权限;增加终止判断条件。

练习题

  1. 概念辨析:列举你日常使用的 3 款 AI 产品,判断它们是"对话产品""助手"还是"Agent",并说明理由。
  2. 动手实践:基于本章示例代码,为天气 Agent 增加一个 get_time 工具,使其能回答"现在几点"的问题,并测试多轮对话。
  3. 思考题:如果一个客服场景的工单分类规则已经非常稳定且明确,你会选择固定工作流还是 Agent?为什么?

小结

本章建立了对 AI Agent 的整体认知:Agent 是以 LLM 为大脑、具备自主性、工具调用与记忆能力的智能系统,区别于单纯的对话产品和固定工作流。ReAct 范式提供了"思考—行动—观察"的经典循环。后续章节将深入 Agent 的底层基石——大语言模型(LLM)、Token、Embedding、Prompt、RAG 与多智能体。延伸阅读推荐:Anthropic《Building effective agents》、OpenAI Agents SDK 官方文档、Lilian Weng 博客《LLM Powered Autonomous Agents》。