本文是 AI Agent 入门系列的第 1 篇。适合有 Python 基础、想学习 AI Agent 开发的读者。
学完本篇,你会理解 AI Agent 的核心概念,并跑通第一个 LLM API 调用。


本课目标

  • 理解 AI Agent 的定义与核心组成
  • 清楚 LLM 与 Agent 的区别
  • 跑通第一个 LLM API 调用

本课产出

  • 新建文件lesson01_hello_llm.py,粘贴下文完整代码
  • 运行python lesson01_hello_llm.py(Linux/macOS 可能需用 python3
  • 效果:向 LLM 发送消息获取回复,对比不同 system prompt 的输出差异

一、从 LLM 到 Agent

如果你用过 ChatGPT、Claude 这类产品,那你已经接触过 LLM(Large Language Model,大语言模型) 了。

它的工作方式很简单:

你问 → LLM 答

但你会发现一个问题:LLM 只会"说话",不会"做事"

比如你让 LLM “帮我查一下明天的天气”——它能告诉你查天气需要用什么 API,但它自己不会真的去查。因为它没有手

这就是 Agent 要解决的问题。

AI Agent(智能体) = 给 LLM 装上"手"和"记忆",让它能自主完成任务。

LLM(对话机器人):  输入 → 输出
Agent(智能体):    目标 → 思考 → 调用工具 → 观察结果 → 再思考 → ... → 完成

二、Agent 的四要素

一个完整的 Agent 通常包含四个核心组件:

组件 角色 类比 说明
LLM 大脑 推理决策 人的大脑 理解问题、决定怎么做
工具(Tools) 执行动作 人的手和脚 搜索、计算、读写文件、调 API
记忆(Memory) 存储信息 人的记忆 记住上下文、用户偏好、历史经验
规划(Planning) 制定策略 人的思考过程 拆解复杂任务、安排执行顺序

简单的 Agent 可以只有 LLM + 工具 + 循环(比如第 4 课的手写版),但完整的 Agent 通常具备这四种能力。

三、Agent 和聊天机器人有什么不同?

聊天机器人 AI Agent
输出 文本 文本 + 调用工具
记忆 当前会话 当前会话 + 持久化存储
主动 被动回答 主动规划、执行
闭环 一次对话 循环直到任务完成

四、动手:跑通第一个 LLM 调用

环境准备

# 1. 确保 Python 3.10+
python --version

# 2. 安装依赖
pip install openai python-dotenv

# 3. 申请 API Key(任选一个)
#    推荐 DeepSeek: https://platform.deepseek.com/ 
#    备选 OpenAI:   https://platform.openai.com/api-keys
#    备选 通义千问:  https://bailian.console.aliyun.com/
📁 .env 文件设置(小白必看)

项目中有一个 code/.env.example 文件,按以下步骤操作:

第一步:去 DeepSeek 官网注册 → 创建 API Key → 复制
  (https://platform.deepseek.com/)

第二步:进入 code/ 目录,把 .env.example 重命名为 .env
  方法①:右键文件 → 重命名
  方法②:命令行运行(在 code/ 目录下):
         macOS/Linux: mv .env.example .env
         Windows:     ren .env.example .env

第三步:用记事本/VSCode 打开 .env 文件
  找到这行:DEEPSEEK_API_KEY="sk-你的key"
  把 "sk-你的key" 换成你刚复制的 Key
  示例:DEEPSEEK_API_KEY="sk-1234567890abcdef"

第四步:保存文件,搞定!

⚠️ .env 文件和你的 Python 代码放在同一目录code/ 下)。
这个文件包含了你的 API Key,不要分享或上传到网上。代码仓库中的 .env.example 是安全的模板,真正的 Key 只写在 .env 中。

完整代码

新建 lesson01_hello_llm.py,粘贴以下代码:

"""
第 1 课:第一个 LLM 调用
演示基本的 Chat Completion API 调用
"""
import os
from dotenv import load_dotenv

load_dotenv()

# --- 方案 A(推荐):DeepSeek ---
from openai import OpenAI
client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com",
)
MODEL = "deepseek-chat"

# --- 方案 B:OpenAI(取消注释即可切换)---
# from openai import OpenAI
# client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# MODEL = "gpt-4o-mini"

# --- 方案 C:通义千问 ---
# from openai import OpenAI
# client = OpenAI(
#     api_key=os.getenv("DASHSCOPE_API_KEY"),
#     base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
# )
# MODEL = "qwen-plus"

if not client.api_key:
    print("❌ 未检测到 API Key!请在 .env 文件中设置。")
    exit(1)

# === 示例 1:基础对话 ===
print("=" * 50)
print("示例 1:基础对话")
print("=" * 50)
try:
    response = client.chat.completions.create(
        model=MODEL,
        messages=[{"role": "user", "content": "用一句话解释什么是 AI Agent"}]
    )
    print("回答:", response.choices[0].message.content)
except Exception as e:
    print(f"API 调用失败:{e}")

# === 示例 2:System Prompt 对比 ===
print("\n" + "=" * 50)
print("示例 2:不同 System Prompt 对比")
print("=" * 50)
system_prompts = [
    "你是一个专业的技术导师,回答要简洁准确。",
    "你是一个风趣的科普作者,用生活比喻解释技术概念。",
]
for i, sp in enumerate(system_prompts, 1):
    print(f"\n--- Prompt {i} ---")
    try:
        resp = client.chat.completions.create(
            model=MODEL,
            messages=[{"role": "system", "content": sp},
                      {"role": "user", "content": "什么是 AI Agent?"}]
        )
        print(resp.choices[0].message.content)
    except Exception as e:
        print(f"API 调用失败:{e}")

# === 示例 3:temperature 参数对比 ===
print("\n" + "=" * 50)
print("示例 3:temperature 参数对比")
print("=" * 50)
for temp in [0.0, 0.7, 1.5]:
    print(f"\n--- temperature = {temp} ---")
    try:
        resp = client.chat.completions.create(
            model=MODEL,
            messages=[{"role": "user", "content": "用三种不同的方式说'你好'"}],
            temperature=temp,
        )
        print(resp.choices[0].message.content)
    except Exception as e:
        print(f"API 调用失败:{e}")

运行结果示例

==================================================
示例 1:基础对话
==================================================
回答:AI Agent 是一种能够自主感知环境、做出决策并采取行动的智能程序...

==================================================
示例 2:不同 System Prompt 对比
==================================================

--- Prompt 1 ---
AI Agent(人工智能代理)是指能够自主执行任务的智能系统...

--- Prompt 2 ---
想象一下,你有一个超级聪明的小助手...

常见报错

问题 原因 解决
API 调用失败:401 API Key 无效或未设置 检查 .env 文件内容和环境变量
API 调用失败:404 模型名错误 确认 MODEL 名称是否正确(如 deepseek-chat
ModuleNotFoundError: No module named 'openai' 未安装依赖 运行 pip install openai python-dotenv
Error loading .env file .env 文件不存在 创建 .env 文件并写入 API Key

动手练习

  1. 换用不同的 system prompt,观察 LLM 回答风格的变化
  2. temperature 分别设为 0、0.5、1.0、1.5,观察输出的差异
  3. 试一个不同的模型(如切换为通义千问),看看效果差别

思考题

  1. LLM 和 Agent 最关键的区别是什么?
  2. 为什么 Agent 需要"工具"?只靠 LLM 的"知识"不够吗?
  3. 如果你想让 Agent 执行一个三步任务(搜索→分析→报告),你会怎么设计?

📦 完整代码

本课程所有代码已托管在 GitCode:

git clone git@gitcode.com:gcw_A202cbBm/ai-agent.git
cd ai-agent/code

也可直接访问:https://gitcode.com/gcw_A202cbBm/ai-agent


下一篇预告:AI Agent 入门(二):理解 LLM —— Chat Completion、参数调优与结构化输出

我们将深入 LLM 的工作原理,学会如何控制输出格式——这是后续实现 Tool Use 的关键基础。


如果您觉得有用,欢迎 点赞、转发、评论、关注

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐