从零开始深入理解 AI Agent(完整版)

从零开始深入理解 AI Agent

摘要:本文是一份完整的 AI Agent 开发学习指南,从核心概念到综合项目,覆盖 LangChain、LangGraph、CrewAI、MCP 等主流框架,包含 130+ 知识点、22 个实践项目。适合有编程基础、希望系统掌握 Agent 开发的开发者。


目录


一、什么是 AI Agent?

AI Agent(智能体) 是一个能够自主感知环境、做出决策、执行行动并记忆经验的智能系统。

与传统程序不同,Agent 不是按照固定逻辑执行,而是通过 LLM 的推理能力动态决策:

特性 传统程序 AI Agent
决策方式 固定逻辑(if-else) 动态推理(LLM 思考)
灵活性 需要重新编程 自然语言描述即可
能力边界 明确限定 可通过工具扩展
学习能力 可通过记忆积累经验

Agent 的核心工作循环可以概括为四个要素:

┌─────────┐      ┌─────────┐      ┌─────────┐
│  感知    │ ───→ │  推理    │ ───→ │  行动    │
│Perception│      │Reasoning │      │ Action  │
└─────────┘      └─────────┘      └─────────┘
     ↑                │                │
     │                ↓                │
┌─────────┐      ┌─────────┐           │
│  记忆    │ ←─── │  反思    │ ←─────────┘
│ Memory  │      │Reflection│
└─────────┘      └─────────┘
  • 感知(Perception):接收用户消息、系统提示、工具返回结果
  • 推理(Reasoning):LLM 分析信息、做决策、规划步骤
  • 行动(Action):调用工具/API、生成文本回复
  • 记忆(Memory):存储对话历史、向量知识库、经验教训

二、Agent 的核心架构

一个完整的 Agent 系统包含以下核心组件:

2.1 系统提示(System Prompt)

System Prompt 是 Agent 的"人格"和"规则手册",定义了:

  • 角色定位:你是谁,负责什么
  • 可用工具:能做什么,参数是什么
  • 决策规则:遇到什么情况用什么工具
  • 输出格式:如何组织回答
  • 安全边界:不能做什么

2.2 工具集(Tool Set)

工具是 Agent 与外部世界交互的桥梁。一个好的工具定义需要:

  • 描述清晰:LLM 靠描述理解工具用途
  • 参数完整:包含类型、描述、是否必需
  • 命名规范:语义化的函数名
  • 返回结构化:JSON 格式便于 LLM 解析

2.3 记忆系统(Memory)

记忆让 Agent 能够保持上下文连贯性:

  • 短期记忆:对话历史(消息列表)
  • 工作记忆:任务执行中的临时状态(State)
  • 长期记忆:跨会话知识(向量数据库)
  • 语义记忆:结构化事实(知识图谱)

三、LLM 作为 Agent 的"大脑"

大语言模型(LLM)具备强大的语言理解和生成能力,可以作为 Agent 的"大脑",负责理解意图、规划步骤、选择工具、生成输出。

LLM Agent 有三个能力层次:

Level 1:纯对话

用户: "今天天气怎么样?"
LLM: "我无法查询实时天气,但建议你查看天气预报..."

Level 2:工具调用

用户: "今天天气怎么样?"
LLM: [调用 weather_api("北京")]
     → 返回: "北京今天晴,25°C"
LLM: "北京今天晴,气温25°C,适合外出。"

Level 3:自主规划执行

用户: "帮我规划明天去上海的行程"
LLM:
  Step 1: [调用 weather_api("上海")] → 获取天气
  Step 2: [调用 search_api("上海景点")] → 查找景点
  Step 3: [调用 map_api("路线规划")] → 规划路线
  Step 4: 整合信息,生成行程建议

从 Level 1 到 Level 3,Agent 的自主性和能力呈指数级增长。


四、Tool Use / Function Calling

Function Calling 是 LLM 与外部世界交互的关键机制。LLM 不直接执行函数,而是生成函数调用的参数,由外部程序执行后将结果返回给 LLM。

4.1 工作流程

用户请求 → LLM 生成调用参数 → 函数执行实际调用 → LLM 处理结果生成回答
              ↓
       {"function": "get_weather",
        "args": {"city": "北京"}}

4.2 工具定义示例(OpenAI 格式)

TOOLS_DEFINITION = [
    {
   
   
        "type": "function",
        "function": {
   
   
            "name": "get_weather",
            "description": "获取指定城市的当前天气信息,包括温度、天气状况和湿度",
            "parameters": {
   
   
                "type": "object",
                "properties": {
   
   
                    "city": {
   
   
                        "type": "string",
                        "description": "城市名称,如:北京、上海、广州"
                    }
                },
                "required": ["city"]
            }
        }
    }
]

4.3 Agent 核心实现

class SimpleAgent:
    def __init__(self, model="gpt-4o"):
        self.client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
        self.model = model
        self.messages = []

    def run(self, user_input: str, max_iterations: int = 5):
        self.messages.append({
   
   "role": "user", "content": user_input})

        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值