Appearance
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 (
anthropicSDK) 或 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.1 | claude-opus-4-1 | 复杂推理、架构、深度研究 |
| Sonnet 4 | claude-sonnet-4-0 | 日常开发、代码生成、均衡表现 |
| Haiku 3.5 | claude-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 anthropicpython
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/sdktypescript
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 API | 50% | 大批量、非实时任务 |
| 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
- 代码审查/生成:与 Code Reviewer Agent、TypeScript Reviewer Agent、Python Reviewer Agent 协作,自动调用 Claude API 进行代码分析、生成与审查。
- 自动化流水线:结合 Verification Loop Skill、Agent Harness Construction Skill 实现端到端的代码生成-测试-审查闭环。
- 多模型/成本路由:与 Cost-Aware LLM Pipeline Skill 配合,动态路由到最优模型与批量处理方案。
- Hooks 集成:通过 Everything Claude Code Hooks 实战 实现 API 调用前后的自动化操作与安全控制。
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 组合使用。