Начало работы с Claude Agent SDK
Узнайте, как создавать приложения AI Agent с помощью Claude Agent SDK
Обновлено 2026-09-03
Содержание
Claude Agent SDK — это официальный инструментарий разработки от Anthropic для создания AI Agent приложений на основе моделей Claude. В отличие от Claude Code (CLI инструмент), SDK предназначен для разработчиков и позволяет интегрировать возможности Claude в ваши собственные приложения.
Что такое Claude Agent SDK?¶
Claude Agent SDK предоставляет строительные блоки для создания приложений, которые могут:
- Понимать инструкции на естественном языке и выполнять сложные задачи
- Использовать инструменты (поиск, выполнение кода, файловые операции и т.д.)
- Поддерживать контекст разговора для многоходовых взаимодействий
- Подключаться к внешним сервисам (через MCP серверы)
Установка SDK¶
Python SDK¶
pip install anthropic
TypeScript SDK¶
npm install @anthropic-ai/sdk
Быстрый старт¶
Базовый вызов сообщения¶
from anthropic import Anthropic
# Через API QCode.cc
client = Anthropic(
base_url="https://api.qcode.cc/api",
api_key="cr_your_api_key"
)
message = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
messages=[
{"role": "user", "content": "Объясните, что такое RESTful API"}
]
)
print(message.content[0].text)
Потоковый ответ¶
with client.messages.stream(
model="claude-opus-5",
max_tokens=1024,
messages=[
{"role": "user", "content": "Напишите функцию быстрой сортировки на Python"}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
Использование инструментов (Tool Use)¶
Tool Use — это ключевая возможность Agent, позволяющая модели вызывать внешние инструменты.
Определение инструментов¶
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.qcode.cc/api",
api_key="cr_your_api_key"
)
# Определение инструмента поиска
tools = [
{
"name": "search_web",
"description": "Поиск информации в интернете",
"input_schema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Поисковый запрос"
}
},
"required": ["query"]
}
}
]
# Отправка сообщения с инструментами
message = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
messages=[
{"role": "user", "content": "Вычислите (15 + 25) * 2"}
],
tools=tools
)
# Обработка вызовов инструментов
for content in message.content:
if content.type == "text":
print(content.text)
elif content.type == "tool_use":
print(f"Вызов инструмента: {content.name}")
print(f"Аргументы: {content.input}")
# Имитируем выполнение инструмента
if content.name == "calculate":
result = eval(content.input["expression"])
tool_result = str(result)
elif content.name == "search_web":
tool_result = f"Результаты по запросу '{content.input['query']}'..."
# Возвращаем результат модели
message = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
messages=[
{"role": "user", "content": "Посчитай (15 + 25) * 2"},
message,
{
"role": "user",
"content": None,
"type": "tool_result",
"tool_use_id": content.id,
"content": tool_result
}
],
tools=tools
)
Потоковые вызовы инструментов¶
with client.messages.stream(
model="claude-opus-5",
max_tokens=4096,
messages=[
{"role": "user", "content": "Create a file named hello.py that prints 'Hello, World!'"}
],
tools=[
{
"name": "write_file",
"description": "Write content to a file",
"input_schema": {
"type": "object",
"properties": {
"filename": {"type": "string"},
"content": {"type": "string"}
},
"required": ["filename", "content"]
}
}
]
) as stream:
for event in stream:
if event.type == "content_block_delta":
if event.delta.type == "text_delta":
print(event.delta.text, end="", flush=True)
elif event.delta.type == "tool_use_delta":
print(f"\n[Tool Call] {event.delta.name}")
Prompt Caching¶
Prompt Caching заметно снижает стоимость длинных диалогов:
# Системный промпт (будет закеширован)
system_prompt = """You are a professional code review assistant.
Your responsibilities:
1. Check code security
2. Identify performance issues
3. Verify code standards
4. Provide improvement suggestions
"""
# Через cache_control помечаем кешируемую часть
message = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
system=[
{
"type": "text",
"text": system_prompt,
"cache_control": {"type": "ephemeral"}
}
],
messages=[
{"role": "user", "content": "Review @src/auth/login.ts"}
]
)
Пример построения агента¶
from anthropic import Anthropic
from typing import List
class CodeReviewAgent:
def __init__(self, api_key: str):
self.client = Anthropic(
base_url="https://api.qcode.cc/api",
api_key=api_key
)
self.system_prompt = """You are a professional code review assistant.
Focus on: security, performance, readability, best practices.
Output for each review: issue list, severity, fix suggestions."""
def review(self, code_snippet: str) -> str:
message = self.client.messages.create(
model="claude-opus-5",
max_tokens=4096,
system=self.system_prompt,
messages=[
{"role": "user", "content": f"Review this code:\n\n{code_snippet}"}
]
)
return message.content[0].text
# Usage
agent = CodeReviewAgent("cr_your_api_key")
result = agent.review("SELECT * FROM users WHERE id = " + user_id)
Отличия от Claude Code¶
| Характеристика | Claude Agent SDK | Claude Code |
|---|---|---|
| Целевой пользователь | Разработчики | Отдельный разработчик |
| Где выполняется | В вашем приложении | В командной строке |
| Работа с файлами | Реализуете сами | Встроено |
| Команды терминала | Реализуете сами | Встроено |
| Интеграция с Git | Реализуете сами | Встроено |
| Сценарий | Создание AI-приложений | Помощь в программировании |
Настройка QCode.cc¶
import os
# Метод 1: Переменная окружения
os.environ["ANTHROPIC_BASE_URL"] = "https://api.qcode.cc/api"
os.environ["ANTHROPIC_AUTH_TOKEN"] = "cr_your_key"
client = Anthropic() # Автоматическое чтение переменных окружения
# Метод 2: Азиатский узел (рекомендуется для материкового Китая)
client = Anthropic(
base_url="https://api.qcode.cc/api",
api_key="cr_your_key"
)
Следующие шаги¶
- Справочник API - Полная документация по параметрам API
- Руководство по выбору модели - Выбор подходящей модели
- MCP серверы - Подключение внешних сервисов для расширения возможностей
Похожие документы
🚀
Начните с QCode — Claude Code & Codex
Один тариф для Claude Code и Codex, низкая задержка в Азии
Команда 3+?
Enterprise: выделенный домен + управление ключами + защита от бана, от ¥250/чел/мес
Enterprise →