| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | macOS 12+ / Ubuntu 20.04+ / Windows 10+ (WSL2) | macOS 14+ / Ubuntu 22.04+ |
| Python | 3.10 | 3.11 或 3.12 |
| 内存 | 8 GB | 16 GB+ |
| 磁盘空间 | 5 GB 可用 | 20 GB+ 可用 |
| 网络 | 稳定互联网连接 | 低延迟宽带 |
| Node.js(可选) | 18+ | 20 LTS |
如果你使用 Windows,强烈建议使用 WSL2(Windows Subsystem for Linux)。Claude Code 在原生 Linux 环境下运行更稳定。安装 WSL2 的方法请参考 微软官方文档。如果不想用 WSL2,可以使用 Windows Terminal + Git Bash,但可能会遇到路径相关的问题。
# 在终端中运行以下命令,检查 Python 是否已安装及版本号
python3 --version
# 期望输出类似:Python 3.11.8
# 如果版本低于 3.10,需要升级
# 如果提示 "command not found",说明未安装 Python
# macOS 使用 Homebrew 安装(如没有 Homebrew,先访问 brew.sh 安装)
brew install python@3.12
# 验证安装
python3.12 --version
# 创建项目目录
mkdir -p ~/ai-agent-study
cd ~/ai-agent-study
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
# macOS/Linux:
source venv/bin/activate
# Windows (cmd):
venv\Scripts\activate
# 激活成功后,终端提示符前会出现 (venv) 标识
# 例如:(venv) user@computer:~/ai-agent-study$
虚拟环境为每个项目创建独立的 Python 包空间,避免不同项目的依赖冲突。比如项目A需要 library==1.0,项目B需要 library==2.0,虚拟环境让它们互不干扰。这是 Python 开发的基本规范。
# 确保虚拟环境已激活(终端提示符前有 (venv))
# 然后运行以下命令安装核心依赖
pip install anthropic==0.39.0 # Anthropic/Claude 官方 Python SDK
pip install python-dotenv==1.0.1 # 管理环境变量(API 密钥等)
pip install requests==2.32.3 # HTTP 请求库(调用外部 API)
pip install rich==13.7.1 # 终端美化输出(可选,让日志更好看)
# 一次性安装
pip install anthropic python-dotenv requests rich
# 验证安装
pip list | grep -E "anthropic|dotenv|requests|rich"
# 期望输出:
# anthropic 0.39.0
# python-dotenv 1.0.1
# requests 2.32.3
# rich 13.7.1
访问 Anthropic Console → 注册/登录 → Settings → API Keys → Create Key → 复制密钥(以 sk-ant- 开头)。
API 密钥相当于你的账户密码!绝对不要把密钥直接写在代码里,绝对不要上传到 GitHub,绝对不要分享给他人。
# 在项目目录下创建 .env 文件
cd ~/ai-agent-study
touch .env
# 编辑 .env 文件,写入以下内容:
# ANTHROPIC_API_KEY=sk-ant-your-actual-api-key-here
# 使用命令行直接写入(替换为你的真实密钥)
echo 'ANTHROPIC_API_KEY=sk-ant-your-key-here' > .env
# 创建 .gitignore(防止密钥被提交到 Git)
echo '.env' >> .gitignore
echo 'venv/' >> .gitignore
echo '__pycache__/' >> .gitignore
# 创建 config.py,统一管理配置
cat > config.py << 'PYEOF'
"""AI Agent 全局配置文件"""
import os
from dotenv import load_dotenv
# 加载 .env 文件中的环境变量
load_dotenv()
# API 配置
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
if not ANTHROPIC_API_KEY:
raise ValueError("❌ 未找到 ANTHROPIC_API_KEY!请在 .env 文件中配置。")
# 模型配置
DEFAULT_MODEL = "claude-sonnet-4-6" # 性价比最优,适合入门
# 项目路径
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
PYEOF
echo "✅ config.py 创建完成"
# 创建测试脚本 test_api.py
cat > test_api.py << 'PYEOF'
"""测试 Anthropic API 连接"""
from config import ANTHROPIC_API_KEY
from anthropic import Anthropic
def test_connection():
"""发送一个简单请求,验证 API 是否可用"""
print("🔄 正在测试 API 连接...")
try:
client = Anthropic(api_key=ANTHROPIC_API_KEY)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=100,
messages=[{"role": "user", "content": "回复'连接成功!'"}]
)
print(f"✅ API 连接成功!响应: {response.content[0].text}")
return True
except Exception as e:
print(f"❌ API 连接失败: {e}")
print("常见原因:1) API密钥错误 2) 网络问题 3) 账户余额不足")
return False
if __name__ == "__main__":
test_connection()
PYEOF
# 运行测试
python3 test_api.py
如果你没有 Anthropic API 额度,或者数据不能出本地,可以使用开源模型替代。但请注意,开源模型在 Agent 能力上通常弱于 Claude,适合学习和原型验证。
# 安装 Ollama(本地模型运行工具)
# macOS:
brew install ollama
# Ubuntu:
curl -fsSL https://ollama.com/install.sh | sh
# 下载一个适合 Agent 任务的模型(推荐 llama3.1 或 qwen2.5)
ollama pull llama3.1:8b
# 安装 OpenAI 兼容库(Ollama 提供 OpenAI 兼容接口)
pip install openai
# 创建 Ollama 配置
cat > config_ollama.py << 'PYEOF'
"""使用 Ollama 本地模型的配置"""
from openai import OpenAI
# Ollama 默认运行在 localhost:11434
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # Ollama 不需要真实密钥,但必须提供
)
def chat(prompt: str, model: str = "llama3.1:8b") -> str:
"""使用本地模型进行对话"""
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
temperature=0.3
)
return response.choices[0].message.content
# 测试
if __name__ == "__main__":
print(chat("回复'本地模型连接成功!'"))
PYEOF
echo "✅ Ollama 配置完成"
echo "⚠️ 使用前确保已启动 Ollama 服务:ollama serve"
DeepSeek V4-Pro 原生兼容 Anthropic Messages API 格式,可以直接替换 Claude API,无需代理、无需翻译层。对于国内用户来说,网络延迟低、中文能力出色、价格约为 Claude 的 1/10~1/30,是学习 AI Agent 开发的绝佳选择。
| 对比维度 | Claude API | DeepSeek API |
|---|---|---|
| 国内网络延迟 | 较高(需访问海外服务器) | ✅ 低延迟(国内直连) |
| 中文能力 | ⭐⭐⭐⭐ 强 | ⭐⭐⭐⭐⭐ 极强(中文母语级) |
| 价格(每百万 Token) | 输入 $3 / 输出 $15 | ✅ 输入 $0.435 / 输出 $0.87 |
| 上下文长度 | 200K tokens | ✅ 1M tokens(100万) |
| API 兼容性 | Anthropic 原生 | ✅ 原生兼容 Anthropic + OpenAI 双格式 |
| 多模态(图片理解) | ✅ 支持 | ⚠️ 纯文本(不支持图片) |
如果你已经安装了 Claude Code CLI 工具(npm install -g @anthropic-ai/claude-code),可以直接通过环境变量切换到 DeepSeek:
访问 DeepSeek 开放平台 → 注册/登录 → API Keys → 创建 API Key → 复制密钥(以 sk- 开头)。
# 在终端中执行(或写入 ~/.bashrc / ~/.zshrc 永久生效)
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="sk-your-deepseek-api-key"
export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_EFFORT_LEVEL="max"
# 然后正常启动 Claude Code
claude
$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="sk-your-deepseek-api-key"
$env:ANTHROPIC_MODEL="deepseek-v4-pro[1m]"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
$env:CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"
$env:CLAUDE_CODE_EFFORT_LEVEL="max"
claude
| 模型 ID | 定位 | 适用场景 |
|---|---|---|
deepseek-v4-pro[1m] | 旗舰推理模型,1M 上下文 | 复杂 Agent 任务、长文档处理、深度推理 |
deepseek-v4-pro | 旗舰推理模型,128K 上下文 | 通用 Agent 任务(推荐入门) |
deepseek-v4-flash | 轻量快速模型 | 子 Agent 任务、简单操作、高并发场景 |
⚠️ 注意:deepseek-chat 和 deepseek-reasoner 旧别名将于 2026年7月24日 退役,请迁移到新模型名。
在本教程所有代码项目中,我们将使用 DeepSeek 的 Anthropic 兼容端点,这意味着你只需修改一行代码(base_url),就能把之前为 Claude 写的所有 Agent 代码直接跑在 DeepSeek 上。
# 使用 Anthropic Python SDK + DeepSeek 端点
pip install anthropic python-dotenv requests rich
# 编辑 .env 文件,支持同时配置多个 API
cat > .env << 'EOF'
# ===== Claude API(海外用户首选)=====
ANTHROPIC_API_KEY=sk-ant-your-claude-key-here
# ===== DeepSeek API(国内用户推荐)=====
DEEPSEEK_API_KEY=sk-your-deepseek-key-here
# ===== 当前使用的 API 提供商:claude 或 deepseek =====
API_PROVIDER=deepseek
EOF
# 更新 config.py,支持 Claude / DeepSeek 双提供商
cat > config.py << 'PYEOF'
"""AI Agent 全局配置文件 — 支持 Claude + DeepSeek 双 API"""
import os
from dotenv import load_dotenv
load_dotenv()
# --- API 提供商选择 ---
API_PROVIDER = os.getenv("API_PROVIDER", "claude") # "claude" 或 "deepseek"
# --- 模型配置 ---
if API_PROVIDER == "deepseek":
# DeepSeek 配置(国内推荐)
API_KEY = os.getenv("DEEPSEEK_API_KEY")
BASE_URL = "https://api.deepseek.com/anthropic"
DEFAULT_MODEL = "deepseek-v4-pro"
LARGE_CONTEXT_MODEL = "deepseek-v4-pro[1m]" # 1M 上下文
FAST_MODEL = "deepseek-v4-flash"
if not API_KEY:
raise ValueError(
"❌ 未找到 DEEPSEEK_API_KEY!\n"
" 请在 .env 文件中配置,或设置 API_PROVIDER=claude"
)
else:
# Claude API 配置(默认)
API_KEY = os.getenv("ANTHROPIC_API_KEY")
BASE_URL = "https://api.anthropic.com"
DEFAULT_MODEL = "claude-sonnet-4-6"
LARGE_CONTEXT_MODEL = "claude-opus-4-8"
FAST_MODEL = "claude-haiku-4-5"
if not API_KEY:
raise ValueError(
"❌ 未找到 ANTHROPIC_API_KEY!\n"
" 请在 .env 文件中配置,或设置 API_PROVIDER=deepseek"
)
# --- 项目路径 ---
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
# --- 打印当前配置 ---
print(f"🔧 API 提供商: {API_PROVIDER.upper()}")
print(f"📦 默认模型: {DEFAULT_MODEL}")
print(f"🌐 API 端点: {BASE_URL}")
PYEOF
echo "✅ config.py 更新完成(支持 Claude + DeepSeek 双 API)"
# 创建 agent_base.py — 所有 Agent 项目的通用基类
cat > agent_base.py << 'PYEOF'
"""Agent 基类 — 自动适配 Claude / DeepSeek API"""
from anthropic import Anthropic
from config import API_KEY, BASE_URL, DEFAULT_MODEL
def create_agent_client(model: str = None) -> Anthropic:
"""
创建统一的 Agent API 客户端
自动根据 config.py 中的 API_PROVIDER 选择正确的端点和密钥
"""
return Anthropic(
api_key=API_KEY,
base_url=BASE_URL,
# 注意:DeepSeek 端点不需要设置 default_headers
)
# 快捷调用函数(本教程所有 Agent 项目可直接使用)
def call_model(
system: str = "",
user_message: str = "",
model: str = None,
max_tokens: int = 1024,
temperature: float = 0.3,
) -> str:
"""
统一的模型调用接口
使用方式: reply = call_model(system="你是助手", user_message="你好")
"""
client = create_agent_client()
model = model or DEFAULT_MODEL
response = client.messages.create(
model=model,
max_tokens=max_tokens,
system=system,
messages=[{"role": "user", "content": user_message}],
temperature=temperature,
)
return response.content[0].text.strip()
# --- 测试 ---
if __name__ == "__main__":
print("🧪 测试 API 连接...")
try:
result = call_model(
system="用中文回复,简洁明了。",
user_message="回复'API连接成功!当前用的是哪个模型?'",
max_tokens=100,
)
print(f"✅ {result}")
except Exception as e:
print(f"❌ 连接失败: {e}")
print("常见原因:1) API Key 错误 2) 网络不通 3) 账户余额不足")
PYEOF
# 运行测试
python3 agent_base.py
# DeepSeek 特有功能示例(仅在 API_PROVIDER=deepseek 时可用)
def deepseek_advanced_example():
"""展示 DeepSeek 特有的高级参数"""
from anthropic import Anthropic
client = Anthropic(
api_key=API_KEY,
base_url=BASE_URL,
)
# DeepSeek V4-Pro 支持思考模式(类似 Claude 的 extended thinking)
# 注意:需要通过 extra_headers 传递 DeepSeek 特有参数
response = client.messages.create(
model="deepseek-v4-pro",
max_tokens=2000,
system="你是一个逻辑严密的推理助手。对复杂问题请展示你的思考过程。",
messages=[{
"role": "user",
"content": "一个水池有3个进水管,A管单独注满需要2小时..."
}],
temperature=0.6, # DeepSeek 推荐使用较低 temperature
# 注意:在 Anthropic 兼容端点下,大部分 Claude 参数都适用
)
return response.content[0].text
# 如果你使用 OpenAI 兼容端点(备选方案),可以用 OpenAI SDK:
def deepseek_openai_sdk_example():
"""使用 OpenAI SDK 调用 DeepSeek(备选方案)"""
from openai import OpenAI
client = OpenAI(
api_key="sk-your-deepseek-key",
base_url="https://api.deepseek.com",
)
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"},
],
)
return response.choices[0].message.content
deepseek-chat / deepseek-reasoner 将于 2026年7月24日退役,务必使用 deepseek-v4-pro / deepseek-v4-flash。| 方案 | 适合人群 | 价格 | 网络要求 | Agent 能力 |
|---|---|---|---|---|
| 方案A: Claude API | 海外用户 / 追求最强 Agent 能力 | $$$ 较高 | 需访问 api.anthropic.com | ⭐⭐⭐⭐⭐ 最强 |
| 方案B: 本地 Ollama | 完全离线 / 数据不出本地 | $ 免费 | 无需网络 | ⭐⭐⭐ 中等 |
| 方案C: DeepSeek API | 🇨🇳 国内用户 / 高性价比 | $ 较低(约 Claude 的 1/10~1/30) | 国内直连,低延迟 | ⭐⭐⭐⭐ 很强(中文尤佳) |
# 创建环境检测脚本 check_env.py
cat > check_env.py << 'PYEOF'
#!/usr/bin/env python3
"""AI Agent 开发环境完整检测脚本"""
import sys
import subprocess
from pathlib import Path
CHECKS_PASSED = 0
CHECKS_TOTAL = 0
def check(name: str, condition: bool, detail: str = "") -> None:
global CHECKS_PASSED, CHECKS_TOTAL
CHECKS_TOTAL += 1
icon = "✅" if condition else "❌"
print(f" {icon} {name}: {detail}")
if condition:
CHECKS_PASSED += 1
print("=" * 55)
print("🔍 AI Agent 开发环境检测")
print("=" * 55)
# 1. Python 版本
py_ver = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
check("Python 版本 >= 3.10", sys.version_info >= (3, 10), py_ver)
# 2. 虚拟环境
in_venv = hasattr(sys, 'real_prefix') or sys.base_prefix != sys.prefix
check("虚拟环境已激活", in_venv, sys.prefix if in_venv else "未激活,请运行 source venv/bin/activate")
# 3. 核心依赖
for pkg, import_name in [
("anthropic", "anthropic"),
("python-dotenv", "dotenv"),
("requests", "requests"),
("rich", "rich"),
]:
try:
__import__(import_name)
check(f"{pkg} 已安装", True)
except ImportError:
check(f"{pkg} 已安装", False, f"请运行: pip install {pkg}")
# 4. .env 文件
env_file = Path(".env")
check(".env 配置文件存在", env_file.exists(), str(env_file.absolute()))
# 5. API 密钥(支持 Claude + DeepSeek 双检测)
if env_file.exists():
content = env_file.read_text()
has_claude = "ANTHROPIC_API_KEY" in content and "sk-ant-" in content
has_deepseek = "DEEPSEEK_API_KEY" in content and "sk-" in content
has_any_key = has_claude or has_deepseek
provider_detail = []
if has_claude: provider_detail.append("Claude API ✅")
if has_deepseek: provider_detail.append("DeepSeek API ✅")
check("API 密钥已配置", has_any_key,
", ".join(provider_detail) if provider_detail else "密钥未配置或格式不正确")
else:
check("API 密钥已配置", False, ".env 文件不存在")
# 6. 网络(同时检测 Claude 和 DeepSeek 端点)
try:
import requests
# 检测 Claude API
r1 = requests.get("https://api.anthropic.com", timeout=5)
check("可访问 Anthropic API", r1.status_code < 500, f"状态码: {r1.status_code}")
# 检测 DeepSeek API(国内用户关键检测项)
r2 = requests.get("https://api.deepseek.com", timeout=5)
check("可访问 DeepSeek API", r2.status_code < 500, f"状态码: {r2.status_code}")
except Exception:
check("可访问 API 端点", False, "网络不通,请检查网络连接")
# 总结
print("\n" + "=" * 55)
print(f"🎯 检测结果: {CHECKS_PASSED}/{CHECKS_TOTAL} 项通过")
if CHECKS_PASSED == CHECKS_TOTAL:
print("🎉 环境完全就绪,可以开始开发 AI Agent!")
else:
print("⚠️ 有未通过项,请根据上方 ❌ 提示修复后重新运行。")
print("=" * 55)
PYEOF
python3 check_env.py
| 报错信息 | 原因 | 解决方案 |
|---|---|---|
ModuleNotFoundError: No module named 'anthropic' |
未安装 anthropic 包,或虚拟环境未激活 | 确认虚拟环境已激活(终端显示 (venv)),然后运行 pip install anthropic |
anthropic.AuthenticationError: invalid x-api-key |
API 密钥错误或未配置 | 检查 .env 文件中的密钥是否完整(以 sk-ant- 开头),确认没有多余的空格或引号 |
anthropic.RateLimitError |
API 调用频率超限 | 等待 1-2 分钟后重试;如果是免费额度,检查是否已用完 |
ConnectionError / Timeout |
网络无法连接 Anthropic API | 检查网络连接;如果在国内,可能需要配置代理 |
command not found: python3 |
Python 未安装或未添加到 PATH | 重新安装 Python,确保安装时勾选 "Add to PATH" |
venv/bin/activate: No such file |
虚拟环境未创建,或创建时出错 | 运行 python3 -m venv venv --clear 重新创建 |
| 步骤 | 核心操作 | 验证命令 |
|---|---|---|
| 1. Python 环境 | 安装 Python 3.10+,创建虚拟环境 | python3 --version |
| 2. 依赖安装 | pip install anthropic python-dotenv requests | pip list | grep anthropic |
| 3. API 配置 | 创建 .env,三选一配置密钥(Claude/DeepSeek/Ollama) | python3 test_api.py 或 python3 agent_base.py |
| 4. 环境检测 | 运行完整检测脚本 | python3 check_env.py |
check_env.py 保证所有检测项通过。test_api.py,让模型用中文回答 "AI Agent 是什么?"(限制 200 字以内),观察不同 temperature 参数的效果。