AI Agent 入门(一):什么是 AI Agent?——从概念到第一个 API 调用
本文是 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 |
动手练习
- 换用不同的 system prompt,观察 LLM 回答风格的变化
- 把
temperature分别设为 0、0.5、1.0、1.5,观察输出的差异 - 试一个不同的模型(如切换为通义千问),看看效果差别
思考题
- LLM 和 Agent 最关键的区别是什么?
- 为什么 Agent 需要"工具"?只靠 LLM 的"知识"不够吗?
- 如果你想让 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 的关键基础。
如果您觉得有用,欢迎 点赞、转发、评论、关注。
更多推荐



所有评论(0)