🔧 模块2:环境搭建篇 — Claude Code 开发环境配置

2.1 环境要求总览

项目最低要求推荐配置
操作系统macOS 12+ / Ubuntu 20.04+ / Windows 10+ (WSL2)macOS 14+ / Ubuntu 22.04+
Python3.103.11 或 3.12
内存8 GB16 GB+
磁盘空间5 GB 可用20 GB+ 可用
网络稳定互联网连接低延迟宽带
Node.js(可选)18+20 LTS
⚠️ Windows 用户特别注意

如果你使用 Windows,强烈建议使用 WSL2(Windows Subsystem for Linux)。Claude Code 在原生 Linux 环境下运行更稳定。安装 WSL2 的方法请参考 微软官方文档。如果不想用 WSL2,可以使用 Windows Terminal + Git Bash,但可能会遇到路径相关的问题。

2.2 Python 环境配置

Step 1: 检查 Python 版本

# 在终端中运行以下命令,检查 Python 是否已安装及版本号
python3 --version

# 期望输出类似:Python 3.11.8
# 如果版本低于 3.10,需要升级
# 如果提示 "command not found",说明未安装 Python

Step 2: 安装 Python(如未安装)

# macOS 使用 Homebrew 安装(如没有 Homebrew,先访问 brew.sh 安装)
brew install python@3.12

# 验证安装
python3.12 --version

Step 3: 创建项目虚拟环境(重要!)

# 创建项目目录
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 开发的基本规范。

2.3 Python 依赖库安装(Agent 入门版本)

# 确保虚拟环境已激活(终端提示符前有 (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

2.4 大模型 API 密钥配置(三方案)

方案A:Claude API 云端方案(推荐入门使用)

获取 API 密钥

访问 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 创建完成"

测试 API 连接

# 创建测试脚本 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

方案B:本地开源模型方案(免费、数据隐私)

📌 适用场景

如果你没有 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"

方案C:DeepSeek API 国内方案(高性价比、中文友好)

🇨🇳 强烈推荐国内用户使用

DeepSeek V4-Pro 原生兼容 Anthropic Messages API 格式,可以直接替换 Claude API,无需代理、无需翻译层。对于国内用户来说,网络延迟低、中文能力出色、价格约为 Claude 的 1/10~1/30,是学习 AI Agent 开发的绝佳选择。

为什么选择 DeepSeek?

对比维度Claude APIDeepSeek API
国内网络延迟较高(需访问海外服务器)✅ 低延迟(国内直连)
中文能力⭐⭐⭐⭐ 强⭐⭐⭐⭐⭐ 极强(中文母语级)
价格(每百万 Token)输入 $3 / 输出 $15✅ 输入 $0.435 / 输出 $0.87
上下文长度200K tokens✅ 1M tokens(100万)
API 兼容性Anthropic 原生✅ 原生兼容 Anthropic + OpenAI 双格式
多模态(图片理解)✅ 支持⚠️ 纯文本(不支持图片)

子方案 C1:Claude Code CLI 直接接入(在终端中使用)

如果你已经安装了 Claude Code CLI 工具(npm install -g @anthropic-ai/claude-code),可以直接通过环境变量切换到 DeepSeek:

获取 DeepSeek API Key

访问 DeepSeek 开放平台 → 注册/登录 → API Keys → 创建 API Key → 复制密钥(以 sk- 开头)。

配置环境变量(Linux/macOS)

# 在终端中执行(或写入 ~/.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

Windows PowerShell 配置

$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-chatdeepseek-reasoner 旧别名将于 2026年7月24日 退役,请迁移到新模型名。

子方案 C2:Python SDK 接入(本教程推荐)

在本教程所有代码项目中,我们将使用 DeepSeek 的 Anthropic 兼容端点,这意味着你只需修改一行代码(base_url),就能把之前为 Claude 写的所有 Agent 代码直接跑在 DeepSeek 上。

安装依赖(与方案A完全相同)

# 使用 Anthropic Python SDK + DeepSeek 端点
pip install anthropic python-dotenv requests rich

配置 .env 文件(支持双 API Key)

# 编辑 .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

创建兼容双 API 的配置文件

# 更新 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)"

创建兼容双 API 的 Agent 基类

# 创建 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 Python SDK 进阶参数

# 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 使用注意事项

三方案对比总结

方案适合人群价格网络要求Agent 能力
方案A: Claude API 海外用户 / 追求最强 Agent 能力 $$$ 较高 需访问 api.anthropic.com ⭐⭐⭐⭐⭐ 最强
方案B: 本地 Ollama 完全离线 / 数据不出本地 $ 免费 无需网络 ⭐⭐⭐ 中等
方案C: DeepSeek API 🇨🇳 国内用户 / 高性价比 $ 较低(约 Claude 的 1/10~1/30) 国内直连,低延迟 ⭐⭐⭐⭐ 很强(中文尤佳)

2.5 环境完整检测脚本

# 创建环境检测脚本 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

2.6 常见启动报错排查方案

报错信息原因解决方案
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 requestspip list | grep anthropic
3. API 配置创建 .env,三选一配置密钥(Claude/DeepSeek/Ollama)python3 test_api.pypython3 agent_base.py
4. 环境检测运行完整检测脚本python3 check_env.py

✏️ 课后练习

  1. 环境搭建:按照本教程完整搭建 Claude Code 开发环境,运行 check_env.py 保证所有检测项通过。
  2. 多方案尝试:如果条件允许,同时配置 Claude API、DeepSeek API 和本地 Ollama 三套方案,对比它们在速度、成本、Agent 能力上的差异。
  3. API 测试:修改 test_api.py,让模型用中文回答 "AI Agent 是什么?"(限制 200 字以内),观察不同 temperature 参数的效果。
  4. 报错演练:故意删除 .env 文件,运行 test_api.py,观察报错信息,然后修复——熟悉排错流程。
← 模块1:核心认知 下一个模块:首个Agent实战 →