// by Anthropic

Claude

使用完全指南

// AI Assistant · Prompt Engineering · API · Best Practices

01 / Claude 是什么
关于 Claude

Claude 是由 Anthropic 开发的 AI assistant,基于宪法 AI(Constitutional AI)技术构建,注重安全性、诚实性和无害性(HHH: Helpful, Harmless, Honest)。

Claude 擅长:写作与编辑、代码生成与调试、分析推理、数学计算、多语言处理、创意写作、问答与对话。

访问方式
claude.ai(网页)· API(开发者)· Claude Code(CLI)· iOS/Android App
模型对比
模型特点适用场景
Haiku 快速 · 轻量 · 低成本 简单Q&A · 高频调用 · 实时应用
Sonnet 均衡 · 推荐 · 主力 日常编码 · 分析 · 写作
Opus 最强 · 复杂推理 复杂任务 · 研究 · 高难度代码

// 最新版本:claude-haiku-4-5 · claude-sonnet-4-5 · claude-opus-4

Context Window

Context window 是模型在单次对话中能处理的最大 token 数(输入+输出之和)。

概念说明
Token约 4 字符 / 0.75 英文词 / 1-2 中文字
Context对话历史 + System prompt + 当前消息
超出限制早期内容被截断或遗忘
最佳实践
长文档分段处理 · 保持 system prompt 精简 · 定期总结对话历史
02 / Prompt 工程技巧
清晰指令原则

写好 prompt 的核心:具体、明确、有边界

差的 Prompt
"帮我写代码" / "解释一下这个" / "做得更好一点"
好的 Prompt
"用 Python 3.11 写一个解析 CSV 文件的函数,输入为文件路径,返回 list[dict],需要处理 BOM 和编码问题,加上 docstring 和类型标注"

关键要素:任务(做什么)+ 约束(怎么做)+ 格式(输出什么样)+ 上下文(背景信息)

System Prompt 角色设定

System prompt 在对话开始前设定 Claude 的角色、规则和行为,贯穿整个对话。

# 示例 System Prompt
你是一个专业的 Python 后端工程师,
具备 10 年经验。回答时:
- 优先使用最新的 Python 特性
- 代码要包含类型标注
- 提供可能的异常处理
- 指出潜在的性能问题
- 使用中文回答,代码注释用英文
设定要素
身份/专业度 · 行为规则 · 输出风格 · 禁止项 · 语言要求
Few-shot 少样本示例

通过提供输入-输出示例,让模型学习格式和风格,无需解释规则。

# Few-shot 示例模式
将以下句子转换为技术文档风格:

输入:"这个功能挺好用的"
输出:"该功能具备良好的用户体验"

输入:"代码跑得很快"
输出:"系统执行性能优异,响应延迟低"

输入:"这个 bug 很难找"
输出: ← Claude 会按格式继续

// 通常 2-5 个示例效果最佳;示例要覆盖边界情况

Chain of Thought 思维链

让 Claude 展示推理过程,可以显著提升复杂任务的准确率。

# 方式1:直接要求
"请一步步思考,然后给出答案"
"让我们逐步分析这个问题"
"Think step by step"

# 方式2:引导格式
"回答前,请先:
1. 分析问题的关键点
2. 列出可能的方案
3. 评估各方案的优缺点
4. 给出最终建议"

# 方式3:Extended Thinking(API)
# 使用 thinking 参数让模型展示
# 内部推理过程(claude-3-7+ 支持)
XML 标签结构化

用 XML 标签明确区分 prompt 的不同部分,让模型更准确理解结构。

<context>
我们是一家电商公司,正在开发推荐系统。
用户数据存储在 PostgreSQL 中。
</context>

<task>
设计一个协同过滤推荐算法的数据库 schema。
</task>

<requirements>
- 支持实时更新用户行为
- 查询响应时间 < 100ms
- 数据量:1000万用户,500万商品
</requirements>

<output_format>
SQL DDL 语句 + 索引设计 + 说明
</output_format>
任务分解 & 迭代优化

任务分解:将复杂任务拆分为子任务,逐步完成。

# 代替:一次性要求所有内容
# 步骤化处理:

步骤1: "先帮我梳理这个系统的架构设计"
步骤2: "基于架构,设计数据库 schema"
步骤3: "为 schema 写迁移脚本"
步骤4: "写对应的 ORM model 类"

迭代优化:通过反馈不断改进输出。

迭代技巧
"很好,但需要更注重性能" · "第2点展开细说" · "用更简洁的写法" · "增加错误处理"
03 / Tool Use / Function Calling
Tool Use 基础

Tool use 允许 Claude 调用外部函数(工具),实现搜索网页、执行代码、操作文件等功能。

工作流程:用户发消息 → Claude 决定调用哪个工具 → 执行工具获取结果 → Claude 基于结果回答

# 工具定义结构(API)
tools = [
  {
    "name": "get_weather",
    "description": "获取指定城市的当前天气",
    "input_schema": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "description": "城市名称"
        }
      },
      "required": ["city"]
    }
  }
]
Artifacts 功能

Artifacts 是 Claude 生成的独立内容单元,在对话框右侧展示,可直接预览和编辑。

Artifact 类型说明
code代码片段,支持语法高亮
htmlHTML 页面,实时预览
svg矢量图形,可视化预览
mermaid流程图/序列图
reactReact 组件,交互预览
markdown格式化文档
触发方式
明确要求生成的完整文件 · 超过 ~15行的代码 · 独立可运行的内容
04 / API 基本用法(Python)
基础调用
import anthropic

client = anthropic.Anthropic(
    api_key="your-api-key"
    # 或设环境变量 ANTHROPIC_API_KEY
)

# 基本消息
message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": "用 Python 实现快速排序"
        }
    ]
)
print(message.content[0].text)
System Prompt & 对话
# 带 system prompt 的多轮对话
messages = []

def chat(user_input: str) -> str:
    messages.append({
        "role": "user",
        "content": user_input
    })
    response = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=2048,
        system="你是一个专业的代码审查工程师",
        messages=messages
    )
    reply = response.content[0].text
    messages.append({
        "role": "assistant",
        "content": reply
    })
    return reply

chat("帮我审查这段代码:...")
chat("第3条建议能详细说明吗?")
Streaming 流式输出
# 流式输出(实时显示)
with client.messages.stream(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": "写一篇短文"
    }]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

# 获取完整消息(流结束后)
message = stream.get_final_message()
print(message.usage)  # token使用量
Tool Use API 示例
tools = [{
    "name": "search",
    "description": "搜索网络信息",
    "input_schema": {
        "type": "object",
        "properties": {
            "query": {"type": "string"}
        },
        "required": ["query"]
    }
}]

response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user",
               "content": "搜索最新的AI新闻"}]
)

# 检查是否调用了工具
if response.stop_reason == "tool_use":
    tool_use = response.content[0]
    print(tool_use.name, tool_use.input)
05 / 最佳实践 & 避免幻觉
避免幻觉 (Hallucination)

幻觉指模型生成看似合理但实际错误的内容(虚假事实、不存在的引用等)。

减少幻觉的方法
1. 要求引用来源:"请注明你的信息来源"
2. 要求不确定时说明:"如果不确定,请直接告诉我"
3. 提供背景材料:"基于以下文档回答..."
4. 分步验证:"先列出你确定的事实,再给建议"
5. 要求自我核查:"检查你的回答是否有逻辑错误"
高风险场景
具体数据/统计 · 法律条文 · 医学建议 · 历史细节 · 特定人物言论 — 务必独立验证
Prompt 最佳实践总结
技巧说明
明确输出格式"用 JSON 格式" / "用 Markdown 表格" / "分3点"
限制输出长度"用200字以内" / "只列关键点"
给出反例"不要写成X,要写成Y"
分配角色"你是..." 比 "请假设..." 效果更好
肯定句式"要做X" 比 "不要做Y" 效果更好
提供示例2-5 个 few-shot 示例通常足够
迭代而非重写在已有结果上改进优于重头开始
上下文优先提供相关代码/文档比单纯描述更好
常用 Prompt 模板
# 代码审查
"""审查以下代码,指出:
1. 潜在的 bug
2. 性能问题
3. 安全漏洞
4. 改进建议(附修改后的代码)

```python
[你的代码]
```"""

# 文档生成
"""为以下函数生成文档:
- 功能描述
- 参数说明(类型、含义、取值范围)
- 返回值说明
- 异常情况
- 使用示例"""

# 技术选型
"""我需要为[场景]选择[类型]方案。
需求:[列出具体需求]
约束:[技术栈/预算/团队规模]
请对比3个主流方案的优缺点,
推荐最适合的并说明理由。"""
API 参数速查
参数说明
model模型 ID,如 claude-sonnet-4-5
max_tokens最大输出 token 数(必填)
temperature0-1,越高越有创意,默认1
top_p核采样概率,与 temperature 二选一
system系统提示词
messages对话历史,user/assistant 交替
tools可用工具列表
stream是否流式返回
stop_sequences遇到这些字符串停止生成
metadata.user_id用于滥用检测的用户标识