📌 内容摘要

  • 零基础也能看懂:从注册账号到跑通第一行代码,每一步都有截图说明和解释。
  • 覆盖 Python 和 Node.js 两种语言,选你熟悉的那个,不熟悉的也有解释。
  • 不只是”Hello World”——教程结束后你能做到:多轮对话、流式输出、设置角色,三个真实可用的功能。
  • 附新手最常遇到的5个报错和解决方法,遇到问题不用到处搜索。

一、你需要准备什么

开始之前先确认你有这些:

  • 一张境外信用卡(Visa 或 Mastercard)——注册 Anthropic 账号需要,充值最低 $5
  • Python 3.8+ 或 Node.js 18+——选一个你熟悉的即可
  • 能访问 anthropic.com 的网络环境——国内需要科学上网
  • 一个代码编辑器——VS Code 或任何你习惯的工具
⚠️ 关于费用
API 调用按 token 计费,不是包月制。初学练手的费用极低——本文所有示例代码跑完大概花不到 $0.01。充值 $5 可以练习几个月。账号余额不够时 API 调用会报错,记得查看余额。

二、第一步:注册账号和获取 API Key

注册 Anthropic 账号

访问 console.anthropic.com,点击 Sign Up,用邮箱注册。注册完成后会进入 Anthropic Console 控制台——这是管理你的 API Key 和查看用量的地方,和 claude.ai 聊天界面是两个不同的网站。

充值

在控制台左侧找到 Billing(账单),点击 Add credits,用信用卡充值最少 $5。充值后才能使用 API(新账号有少量免费额度,但很快用完)。

创建 API Key

在控制台左侧找到 API Keys,点击 Create Key,给这个 Key 取个名字(比如”学习用”),点击确认。

⚠️ 关键:Key 只显示一次
API Key 创建后只在这一刻完整显示,关闭窗口后再也看不到完整内容。请立刻复制并保存到安全的地方(比如密码管理器)。如果忘了保存,只能删掉重新创建。

你的 API Key 格式大概是这样:sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxx

三、第二步:安装 SDK

Python 版本

# 在终端(命令行)运行这一行
pip install anthropic

# 验证安装成功
python -c "import anthropic; print(anthropic.__version__)"
# 正常会输出版本号,如:0.40.0

Node.js 版本

# 在终端运行
npm install @anthropic-ai/sdk

# 验证安装成功
node -e "const a = require('@anthropic-ai/sdk'); console.log('安装成功')"

四、第三步:设置 API Key

不要把 API Key 直接写在代码里——万一你把代码上传到 GitHub,Key 就泄漏了,别人能用你的额度。正确做法是用环境变量:

Mac / Linux

# 在终端运行(替换成你的真实 Key)
export ANTHROPIC_API_KEY="sk-ant-api03-你的key"

# 验证设置成功
echo $ANTHROPIC_API_KEY

Windows(PowerShell)

$env:ANTHROPIC_API_KEY = "sk-ant-api03-你的key"

# 验证
echo $env:ANTHROPIC_API_KEY
注意:export 设置的环境变量只在当前终端窗口有效,关掉终端就失效了。如果不想每次重新设置,可以把这行命令加到 ~/.zshrc~/.bashrc 文件里。或者用 python-dotenv 库从 .env 文件读取(后面会讲)。

五、第四步:发出第一个请求

创建一个新文件,复制以下代码,运行试试:

Python 版本(hello.py)

import anthropic

# 创建客户端(自动读取 ANTHROPIC_API_KEY 环境变量)
client = anthropic.Anthropic()

# 发出请求
message = client.messages.create(
    model      = "claude-haiku-4-5-20251001",  # 使用最便宜的模型练习
    max_tokens = 256,                           # 最多生成 256 个 token
    messages   = [
        {
            "role":    "user",
            "content": "你好!请用一句话介绍你自己。"
        }
    ]
)

# 打印回复
print(message.content[0].text)

# 顺便看看这次花了多少 token
print(f"\n--- 用量统计 ---")
print(f"输入:{message.usage.input_tokens} tokens")
print(f"输出:{message.usage.output_tokens} tokens")
# 运行
python hello.py

# 正常输出类似:
# 我是 Claude,Anthropic 开发的 AI 助手,很高兴认识你!
#
# --- 用量统计 ---
# 输入:18 tokens
# 输出:22 tokens

Node.js 版本(hello.js)

const Anthropic = require("@anthropic-ai/sdk");

const client = new Anthropic();   // 自动读取 ANTHROPIC_API_KEY 环境变量

async function main() {
  const message = await client.messages.create({
    model:      "claude-haiku-4-5-20251001",
    max_tokens: 256,
    messages: [
      {
        role:    "user",
        content: "你好!请用一句话介绍你自己。"
      }
    ]
  });

  console.log(message.content[0].text);
  console.log(`\n输入:${message.usage.input_tokens} tokens`);
  console.log(`输出:${message.usage.output_tokens} tokens`);
}

main();
node hello.js

如果看到 Claude 的回复,恭喜——你已经成功调用 Claude API 了!

六、理解代码里的关键参数

刚才的代码里有几个参数需要理解,之后写代码时会频繁用到:

参数 含义 新手建议
model 使用哪个模型 练习用 Haiku(最便宜),正式项目用 Sonnet
max_tokens 回复最多多少 token(必填!) 聊天用 1024,长文章用 4096
messages 对话历史列表 role 只能是 “user” 或 “assistant”
system(可选) 给 Claude 设定角色和规则 不放在 messages 里,是独立参数

模型选哪个?

模型 model string 适合场景 价格
Haiku 4.5 claude-haiku-4-5-20251001 练习、分类、简单问答 最便宜
Sonnet 4.6 claude-sonnet-4-6 日常开发首选,性价比最高 中等
Opus 4.6 claude-opus-4-6 复杂推理、高质量要求 最贵

七、进阶:三个真实可用的功能

功能一:设置角色(system prompt)

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model      = "claude-haiku-4-5-20251001",
    max_tokens = 512,
    system     = "你是一名专业的中文写作助手,擅长把复杂的内容改写得简洁易懂。回答时只使用中文。",
    messages   = [
        {
            "role":    "user",
            "content": "帮我用简单的语言解释什么是 API"
        }
    ]
)

print(response.content[0].text)

功能二:多轮对话

import anthropic

client = anthropic.Anthropic()

# 对话历史:每次都把完整历史传进去
# Claude API 本身不记忆,你需要自己维护历史列表
conversation = []

def chat(user_message: str) -> str:
    # 把用户消息加入历史
    conversation.append({
        "role":    "user",
        "content": user_message
    })

    # 带历史发送请求
    response = client.messages.create(
        model      = "claude-haiku-4-5-20251001",
        max_tokens = 1024,
        system     = "你是一个友善的聊天助手。",
        messages   = conversation,    # 传入完整历史
    )

    # 把 Claude 的回复也加入历史(下次发送时带上)
    assistant_reply = response.content[0].text
    conversation.append({
        "role":    "assistant",
        "content": assistant_reply
    })

    return assistant_reply


# 测试多轮对话
print("Claude:", chat("我叫小明,我今年25岁"))
print("Claude:", chat("你还记得我叫什么名字吗?"))  # Claude 会记得"小明"
print("Claude:", chat("我多少岁了?"))               # Claude 会记得"25岁"

功能三:流式输出(逐字显示)

import anthropic

client = anthropic.Anthropic()

print("Claude 的回复:", end="", flush=True)

# 使用 stream 方法,回复会逐字打印
with client.messages.stream(
    model      = "claude-haiku-4-5-20251001",
    max_tokens = 512,
    messages   = [{"role": "user", "content": "给我讲一个关于程序员的笑话"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)   # end="" 不换行,flush=True 立即显示

print()  # 最后换行

八、用 .env 文件管理 API Key(推荐)

比每次设置环境变量更方便的方式是用 .env 文件:

pip install python-dotenv
# 在项目根目录创建 .env 文件,写入:
ANTHROPIC_API_KEY=sk-ant-api03-你的key

# ⚠️ 重要:把 .env 加入 .gitignore,防止上传到 GitHub
echo ".env" >> .gitignore
from dotenv import load_dotenv
import anthropic

load_dotenv()   # 自动读取 .env 文件

client = anthropic.Anthropic()   # 此时 API_KEY 已经加载好了
# 后续代码和之前一样...

九、新手最常遇到的5个报错

报错一:AuthenticationError: Invalid API Key
原因:API Key 写错了,或者环境变量没有正确设置。
解决:打印 os.environ.get("ANTHROPIC_API_KEY"),确认 Key 存在且格式正确(以 sk-ant- 开头)。

报错二:BadRequestError: max_tokens: field required
原因:漏掉了 max_tokens 参数——这个参数 Claude 必须传,OpenAI 可以不传。
解决:在 messages.create() 里加上 max_tokens=1024(或其他值)。

报错三:BadRequestError: Invalid role 'system' in messages
原因:把 system prompt 放进了 messages 列表里。
解决:system 是独立的参数,不在 messages 里。正确写法:client.messages.create(system="...", messages=[...])

报错四:RateLimitError: 429
原因:短时间内发送了太多请求,超过了速率限制。
解决:等几秒再试。练习时不用频繁发请求,写好代码再运行。

报错五:ModuleNotFoundError: No module named 'anthropic'
原因:SDK 没有安装,或者安装在了不同的 Python 环境里。
解决:确认运行 pip install anthropic 时用的是你现在正在用的 Python 环境。如果用了虚拟环境(venv),先激活虚拟环境再安装。

十、下一步学什么

跑通了第一个请求之后,可以按以下方向继续深入:

  • Tool Use(工具调用):让 Claude 调用你写的函数,实现真正的 Agent——参考本系列”Tool Use 多工具调用”文章
  • Prompt 优化:学会写出稳定、高质量输出的 Prompt——参考”Prompt Engineering 完整指南”
  • 接入 Web 应用:把 API 调用嵌入 FastAPI 或 Express 后端——参考”Claude 与 FastAPI 集成”文章
  • 控制成本:了解 token 计费逻辑,学会用 Batch API 打折——参考”Claude API 计费逻辑全解析”

完整的入门代码汇总

# quickstart.py —— 把本文所有示例汇总在一个文件里

from dotenv import load_dotenv
import anthropic

load_dotenv()
client = anthropic.Anthropic()

print("=" * 40)
print("示例1:基础调用")
print("=" * 40)
msg = client.messages.create(
    model      = "claude-haiku-4-5-20251001",
    max_tokens = 128,
    messages   = [{"role": "user", "content": "用一句话说你好"}]
)
print(msg.content[0].text)


print("\n" + "=" * 40)
print("示例2:设置角色")
print("=" * 40)
msg = client.messages.create(
    model      = "claude-haiku-4-5-20251001",
    max_tokens = 256,
    system     = "你是一个用古文回答问题的学者,每句话都要用文言文。",
    messages   = [{"role": "user", "content": "今天天气真好"}]
)
print(msg.content[0].text)


print("\n" + "=" * 40)
print("示例3:多轮对话")
print("=" * 40)
history = []
for question in ["我叫张三", "我刚才说我叫什么?"]:
    history.append({"role": "user", "content": question})
    resp = client.messages.create(
        model      = "claude-haiku-4-5-20251001",
        max_tokens = 128,
        messages   = history,
    )
    reply = resp.content[0].text
    history.append({"role": "assistant", "content": reply})
    print(f"用户:{question}")
    print(f"Claude:{reply}\n")


print("=" * 40)
print("示例4:流式输出")
print("=" * 40)
print("Claude:", end="", flush=True)
with client.messages.stream(
    model      = "claude-haiku-4-5-20251001",
    max_tokens = 128,
    messages   = [{"role": "user", "content": "数到5"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
print()