Skip to content

Everything Claude Code 的 Claude API Skill 是面向 Python 和 TypeScript 开发者的 Claude API 实战模式集,覆盖消息与流式接口、工具调用、视觉分析、批量处理、Prompt 缓存、Agent SDK 等核心能力。通过本 Skill,开发者可以系统性掌握如何用 Claude API 构建高效、可扩展、低成本的 AI 应用,并与 ECC 体系下的其他 Agent、Skill 无缝协作,显著提升 AI 辅助编程效率。

Everything Claude Code Claude API Skill:Python/TypeScript 构建 Claude API 应用的完整模式集

在 AI 编程助手辅助开发 Claude API 应用时,常见痛点包括:模型选择与切换、流式输出体验、工具调用集成、视觉输入支持、批量处理、Prompt 管理、成本控制、错误处理等。Everything Claude Code 的 Claude API Skill 针对这些场景,提供了从零到生产的完整模式集,帮助你用 Python 或 TypeScript 快速集成、优化和扩展 Claude API,适用于个人开发、团队协作到企业级自动化流水线。

本指南将带你分步掌握 Claude API Skill 的实际用法,结合 ECC 的 Agent/Skill/Hook 体系,打造高效、可维护的 AI 应用。想了解更多 ECC 体系基础,可参考 Everything Claude Code 完全指南


一、Skill 适用场景与激活时机

Claude API Skill 会在以下场景自动激活或推荐:

  • 你正在用 Python (anthropic SDK) 或 TypeScript (@anthropic-ai/sdk) 调用 Claude API
  • 需要集成 Claude 消息接口、流式输出、工具调用、视觉分析(Vision)、批量处理(Batches)、Prompt 缓存等能力
  • 用户/Agent 询问 Claude API 接入、Agent SDK、成本优化、模型能力等问题
  • 需要优化 API 调用成本、token 占用或响应延迟
  • 需要与 ECC 体系下的 Agent(如 Code Reviewer、Build Resolver、GAN Generator 等)协作

二、模型选择与环境配置

1. 主要模型与应用场景

模型ID推荐用途
Opus 4.1claude-opus-4-1复杂推理、架构、深度研究
Sonnet 4claude-sonnet-4-0日常开发、代码生成、均衡表现
Haiku 3.5claude-3-5-haiku-latest快速响应、大批量、成本敏感

建议:一般开发任务优先用 Sonnet 4,如需极致推理选 Opus,批量/低成本场景用 Haiku。生产环境建议用快照 ID 固定模型版本。

2. 环境变量配置

bash
export ANTHROPIC_API_KEY="your-api-key-here"
export ANTHROPIC_MODEL="claude-sonnet-4-0"  # 可选,默认模型

注意:API Key 切勿硬编码,统一用环境变量管理。


三、Python SDK 快速集成与进阶用法

1. 安装与基础消息调用

bash
pip install anthropic
python
import anthropic

client = anthropic.Anthropic()  # 自动读取 ANTHROPIC_API_KEY

message = client.messages.create(
    model="claude-sonnet-4-0",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Explain async/await in Python"}
    ]
)
print(message.content[0].text)

2. 流式输出体验

Claude 支持流式响应,适合生成长文本或增强用户体验:

python
with client.messages.stream(
    model="claude-sonnet-4-0",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Write a haiku about coding"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

3. System Prompt 与角色设定

通过 system 字段注入高级指令或身份设定:

python
message = client.messages.create(
    model="claude-sonnet-4-0",
    max_tokens=1024,
    system="You are a senior Python developer. Be concise.",
    messages=[{"role": "user", "content": "Review this function"}]
)

四、TypeScript SDK 快速集成与进阶用法

1. 安装与基础消息调用

bash
npm install @anthropic-ai/sdk
typescript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic(); // 自动读取 ANTHROPIC_API_KEY

const message = await client.messages.create({
  model: "claude-sonnet-4-0",
  max_tokens: 1024,
  messages: [
    { role: "user", content: "Explain async/await in TypeScript" }
  ],
});
console.log(message.content[0].text);

2. 流式输出体验

typescript
const stream = client.messages.stream({
  model: "claude-sonnet-4-0",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Write a haiku" }],
});

for await (const event of stream) {
  if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
    process.stdout.write(event.delta.text);
  }
}

五、工具调用(Tool Use)与多步 Agent 工作流

Claude 支持“工具调用”模式,让 LLM 主动调用你定义的函数,实现代码检索、外部 API 查询等:

python
tools = [
    {
        "name": "get_weather",
        "description": "Get current weather for a location",
        "input_schema": {
            "type": "object",
            "properties": {
                "location": {"type": "string", "description": "City name"},
                "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
            },
            "required": ["location"]
        }
    }
]

message = client.messages.create(
    model="claude-sonnet-4-0",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "What's the weather in SF?"}]
)

for block in message.content:
    if block.type == "tool_use":
        result = get_weather(**block.input)
        # 将结果通过 tool_result 反馈给 Claude
        follow_up = client.messages.create(
            model="claude-sonnet-4-0",
            max_tokens=1024,
            tools=tools,
            messages=[
                {"role": "user", "content": "What's the weather in SF?"},
                {"role": "assistant", "content": message.content},
                {"role": "user", "content": [
                    {"type": "tool_result", "tool_use_id": block.id, "content": str(result)}
                ]}
            ]
        )

进阶:结合 ECC 的 Agent Harness Construction Skill 可批量定义、注册多种工具,打造复杂 Agent 工作流。


六、视觉分析(Vision)

Claude 支持图片输入,适用于图表解读、截图分析等场景:

python
import base64

with open("diagram.png", "rb") as f:
    image_data = base64.standard_b64encode(f.read()).decode("utf-8")

message = client.messages.create(
    model="claude-sonnet-4-0",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": image_data}},
            {"type": "text", "text": "Describe this diagram"}
        ]
    }]
)

七、批量处理(Batches API)与 Prompt 缓存

1. 批量 API(Batches)

适合大规模异步处理,成本可降 50%:

python
import time

batch = client.messages.batches.create(
    requests=[
        {
            "custom_id": f"request-{i}",
            "params": {
                "model": "claude-sonnet-4-0",
                "max_tokens": 1024,
                "messages": [{"role": "user", "content": prompt}]
            }
        }
        for i, prompt in enumerate(prompts)
    ]
)

while True:
    status = client.messages.batches.retrieve(batch.id)
    if status.processing_status == "ended":
        break
    time.sleep(30)

for result in client.messages.batches.results(batch.id):
    print(result.result.message.content[0].text)

2. Prompt 缓存

对重复的 system prompt/上下文可缓存,极大节省 token 成本:

python
message = client.messages.create(
    model="claude-sonnet-4-0",
    max_tokens=1024,
    system=[
        {"type": "text", "text": large_system_prompt, "cache_control": {"type": "ephemeral"}}
    ],
    messages=[{"role": "user", "content": "Question about the cached context"}]
)
print(f"Cache read: {message.usage.cache_read_input_tokens}")
print(f"Cache creation: {message.usage.cache_creation_input_tokens}")

八、Agent SDK 与多步推理

Agent SDK 支持多轮对话、工具调用与自主循环:

python
tools = [{
    "name": "search_codebase",
    "description": "Search the codebase for relevant code",
    "input_schema": {
        "type": "object",
        "properties": {"query": {"type": "string"}},
        "required": ["query"]
    }
}]

client = anthropic.Anthropic()
messages = [{"role": "user", "content": "Review the auth module for security issues"}]

while True:
    response = client.messages.create(
        model="claude-sonnet-4-0",
        max_tokens=4096,
        tools=tools,
        messages=messages,
    )
    if response.stop_reason == "end_turn":
        break
    messages.append({"role": "assistant", "content": response.content})
    # ... 执行工具并追加 tool_result

配合 ECC Autonomous Agent Harness Skill 可实现持久记忆、任务队列等全自动 Agent 系统。


九、成本优化与常见错误处理

策略节省比例适用场景
Prompt 缓存最高 90%重复 system prompt/上下文
Batches API50%大批量、非实时任务
Haiku 替代 Sonnet~75%简单分类/抽取任务
max_tokens 控制可变结果较短时
Streaming提升体验,无成本差异

错误处理建议

python
import time
from anthropic import APIError, RateLimitError, APIConnectionError

try:
    message = client.messages.create(...)
except RateLimitError:
    time.sleep(60)  # 限流重试
except APIConnectionError:
    # 网络问题重试
    pass
except APIError as e:
    print(f"API error {e.status_code}: {e.message}")

十、Skill 典型协作模式与配套 Agent


FAQ

Q: Claude API Skill 与直接用 SDK 的区别是什么?
A: Skill 不仅封装了 SDK 的最佳实践,还集成了模型选择、成本优化、工具调用、视觉输入等模式,并能与 ECC Agent/Skill/Hook 体系自动协作,极大提升开发效率与可维护性。

Q: 如何用 Claude API Skill 降低调用成本?
A: 推荐使用 Prompt 缓存、Batches API、max_tokens 控制和 Haiku 轻量模型,Skill 会根据场景自动建议最优方案。

Q: Claude API Skill 能否与自定义 Agent/工具链集成?
A: 可以。Skill 支持自定义工具调用、批量处理、Agent SDK 等扩展,适用于各种定制化工作流,并可与 ECC 体系下的其他 Agent/Skill 组合使用。