Не список фич, а объяснение архитектуры: что с чем связано, как данные текут через систему, куда обращается каждый компонент, и какие есть интересные детали под капотом.
Неважно где ты общаешься с Claude — в браузере на claude.ai, в терминале через Claude Code, в мобильном приложении или через свой код. Под капотом всё идёт в одно место:
// Вся магия происходит здесь: POST https://api.anthropic.com/v1/messages // Заголовки: x-api-key: sk-ant-... // твой ключ anthropic-version: 2023-06-01 // версия API Content-Type: application/json
claude.ai, Claude Code, Cowork, мобильные приложения, Agent SDK — это всё клиенты, которые формируют запрос и шлют его в этот один эндпоинт. Разница только в том, какие инструменты они подключают и как показывают ответ пользователю.
Вот полный путь твоего сообщения от нажатия Enter до получения ответа. Каждый шаг — это отдельный этап обработки внутри Anthropic.
Контекстное окно — это всё что модель видит за один запрос. Модель не помнит предыдущие разговоры — каждый раз ей показывают полную картину заново. В окно попадает:
1. System prompt — инструкции для модели. В claude.ai это огромный промпт от Anthropic (~10-15K токенов): правила поведения, стиль, безопасность, user preferences, memory. Если используешь API — пишешь свой.
2. История диалога — все сообщения user и assistant в текущем чате. Каждый новый запрос включает ВСЮ историю. Вот почему длинные чаты тормозят и стоят дороже — каждое сообщение перечитывается заново.
3. Tool definitions — JSON-схемы всех подключённых инструментов (имена, описания, параметры). В claude.ai подключено 30+ инструментов — web_search, web_fetch, визуализация, карты, спорт, погода, Canva, Figma, и все MCP-коннекторы. Это жрёт ~15-50K токенов просто на определения.
4. Файлы и картинки — PDF конвертируется в изображения постранично, картинки кодируются в base64. Всё это добавляется в контекст.
5. Memory — информация из прошлых чатов, сохранённая в userMemories. Вставляется в system prompt.
System prompt + tool definitions — это тысячи токенов, которые одинаковые в каждом запросе одного чата. Перечитывать их каждый раз — дорого.
Prompt caching запоминает этот повторяющийся "префикс". Если следующий запрос начинается с тех же токенов — они не обрабатываются заново, а берутся из кэша.
Cache hit = 10% от стандартной цены input-токенов. То есть экономия 90%.
Cache miss = первый запрос платит полную цену + наценку за запись в кэш (1.25x для 5-минутного кэша, 2x для часового).
Собранный контекст отправляется на GPU-кластер Anthropic. Параметр inference_geo определяет регион (US или EU, по умолчанию — глобальный роутинг).
Если включено — модель сначала генерирует thinking-блок: внутренние рассуждения, которые пользователь не видит. Это как черновик в голове перед ответом. Улучшает качество на сложных задачах (математика, код, логика). Thinking-токены оплачиваются как output-токены.
Модель генерирует токены один за одним. Каждый следующий токен зависит от всех предыдущих + от всего контекстного окна. Если включён streaming — каждый токен отправляется клиенту через SSE (Server-Sent Events) по мере генерации. Вот почему ты видишь как текст "печатается".
Модель генерирует пока не произойдёт одно из трёх:
end_turn — модель решила что ответ готов. Финал.
tool_use — модель решила что ей нужен инструмент (погуглить, посчитать, открыть файл). Генерация останавливается, возвращается запрос на вызов инструмента.
max_tokens — упёрлись в лимит output-токенов. Ответ обрезан.
Это то, что делает Claude не просто чат-ботом, а агентом. Цикл выглядит так:
// Цикл повторяется пока модель не вернёт end_turn: 1. Модель получает контекст, думает 2. Модель решает: "мне нужно погуглить" → stop_reason: tool_use 3. Возвращает: { name: "web_search", input: { query: "..." } } 4. Инструмент исполняется, результат добавляется в контекст 5. Модель снова получает контекст (теперь с результатом поиска) 6. Модель решает: "нужно ещё что-то" → снова tool_use ...или "всё, могу ответить" → stop_reason: end_turn
В одном ответе claude.ai модель может сделать 5, 10, 20 таких циклов. Каждый раз весь контекст (с накопленными результатами) отправляется заново. Вот почему сложные запросы с поиском стоят дорого — это много последовательных вызовов API.
Финальный ответ может содержать:
Текст — обычный ответ. Стримится через SSE токен за токеном.
Citations — если был web_search, ответ содержит ссылки на конкретные предложения из источников. Каждая цитата указывает: документ #2, предложения 3-5.
Артефакты — в claude.ai модель может создавать файлы (HTML, React, SVG, Mermaid), которые рендерятся прямо в чате. Это не магия API — это функция фронтенда claude.ai.
Usage — каждый ответ содержит точный подсчёт: сколько input_tokens, output_tokens, cache_creation_tokens, cache_read_tokens было использовано.
Главное разделение в архитектуре инструментов: где исполняется код. Это определяет всё — скорость, стоимость, безопасность, что можно и что нельзя.
Модель вызывает, Anthropic исполняет на своих серверах, результат сразу в потоке ответа. Ты вообще не участвуешь.
Тебе не нужно писать код для обработки. Результат приходит автоматически.
Модель возвращает tool_use блок с именем и аргументами. Ты запускаешь, отправляешь tool_result обратно.
Ты пишешь код: получил tool_use → выполнил → отправил tool_result → модель продолжает.
Model Context Protocol — открытый стандарт, который позволяет подключить Claude к чему угодно: GitHub, Slack, Gmail, Notion, твоя база данных, твой внутренний API. Без написания кастомных инструментов.
MCP-сервер — это программа, которая "оборачивает" API какого-то сервиса в стандартный формат. Claude не знает как работает API GitHub напрямую. Но он знает протокол MCP. MCP-сервер GitHub говорит: "у меня есть инструменты: create_issue, list_repos, search_code" — и Claude может их вызывать.
Сервер запускается на твоём компьютере как процесс (node, python, npx). Общение через stdin/stdout. Работает только в Claude Code и Claude Desktop. Не требует интернета — можно подключить локальную БД, файлы, git.
Конфиг в ~/.claude.json или claude_desktop_config.json.
Сервер доступен по URL. Работает везде: claude.ai, Desktop, Cowork, мобильные. Сервер должен быть публично доступен — Anthropic подключается к нему со своих серверов, не с твоего компьютера.
Примеры: GitHub, Slack, Gmail, Notion, Figma, Canva, Supabase, Vercel, ClickUp, Sentry — все они предоставляют remote MCP-серверы.
Параметр mcp_servers[] прямо в запросе к Messages API. Anthropic сам подключается к серверу, получает список инструментов, и отдаёт их модели. Только HTTP-серверы, не STDIO.
"mcp_servers": [{ "type": "url", "url": "https://mcp.github.com/sse", "name": "github", "authorization_token": "ghp_..." }]
Проблема: каждый подключённый инструмент добавляет ~500-1500 токенов в контекст (имя, описание, параметры). 50 MCP-инструментов = ~77K токенов ещё до того как ты что-то написал. Это "context pollution" — инструменты жрут память, оставляя мало места для реальной работы.
Tool search загружает в контекст только индекс инструментов (имена и короткие описания). Когда модели нужен конкретный инструмент — она ищет по индексу, и только тогда полное определение подгружается.
| Без tool search | С tool search |
|---|---|
| ~77K токенов на 50+ инструментов | ~8.7K токенов (индекс + ~500 токенов overhead) |
| Модель видит все инструменты сразу | Модель ищет нужные по ключевым словам |
| Качество выбора падает при 30+ инструментах | Грузит 3-5 самых релевантных |
Все используют один API, но каждый клиент добавляет свой слой сверху.
Что добавляет поверх API: веб-интерфейс чата, артефакты (рендеринг HTML/React/SVG прямо в чате), проекты (группы чатов с общим контекстом), memory (запоминает между чатами), user preferences (настройки стиля), deep research (длинные исследования с десятками поисков), remote MCP-коннекторы через UI.
Под капотом: Огромный system prompt (~10-15K токенов) с правилами поведения, безопасности, форматирования. 30+ инструментов подключены из коробки. Артефакты — это функция фронтенда, не API.
Что добавляет поверх API: терминальный интерфейс, agent loop (автоматический цикл tool_use), встроенные инструменты (bash, text_editor, computer_use), субагенты (параллельные агенты на подзадачи), CLAUDE.md (конфиг проекта), hooks (shell-команды до/после действий), plugins, локальные MCP-серверы через STDIO.
Под капотом: Свой system prompt, заточенный под кодинг. Compaction — автоматическое сжатие контекста при длинных сессиях. Tool search для управления большим количеством MCP-серверов. Auto-memory — сохраняет выученные паттерны между сессиями.
Суть: Тот же движок, который работает внутри Claude Code, но доступный как библиотека для Python и TypeScript. Позволяет строить своих агентов с теми же возможностями: agent loop, встроенные инструменты, MCP, субагенты, hooks.
Ключевое отличие от прямого API: Agent SDK сам управляет циклом tool_use. С прямым API ты сам пишешь цикл "получил tool_use → выполнил → отправил tool_result". Agent SDK делает это автоматически.
Нативное десктоп-приложение. Главная фишка — поддержка локальных MCP-серверов через STDIO. Можно подключить файловую систему, локальную базу данных, git — всё без интернета. Конфигурируется через claude_desktop_config.json.
| Opus 4.6 | Sonnet 4.6 | Haiku 4.5 | |
|---|---|---|---|
| Роль | Самая умная. Сложные задачи, агенты, кодинг | Баланс. Большинство рабочих задач | Быстрая и дешёвая. Классификация, роутинг |
| API ID | claude-opus-4-6 |
claude-sonnet-4-6 |
claude-haiku-4-5 |
| Контекст | 1M токенов | 1M токенов | 200K токенов |
| Max output | 32K (sync), 300K (batch) | 64K (sync), 300K (batch) | 8K |
| Input / 1M | $5 | $3 | $1 |
| Output / 1M | $25 | $15 | $5 |
Batch API — асинхронная обработка, -50% на всё. До 100K запросов, результат в течение 24ч.
Prompt caching (cache hit) — -90% на закэшированные input-токены.
Data residency (US-only) — +10% на все токены.
Extended thinking — thinking-токены = output rate, без наценки.
web_search — $10 за 1000 поисков + стандартные токены.
Каждый запрос к API — это чистый лист. Модель не имеет долгосрочной памяти. То что в claude.ai выглядит как "memory" — это текстовые заметки, которые вставляются в system prompt при каждом запросе. Если убрать их из промпта — модель забудет всё.
В отличие от OpenAI, Anthropic не предоставляет собственную модель эмбеддингов и не поддерживает дообучение (fine-tuning). Для эмбеддингов рекомендуют Voyage AI. Для "кастомизации" — prompt engineering и Agent Skills.
Когда контекстное окно заполняется (в Claude Code или Agent SDK), включается compaction: модель резюмирует историю, сохраняя суть и убирая детали. Это позволяет работать часами без потери контекста — но детали старых сообщений теряются.
Модель может вызвать несколько инструментов за один ход — несколько tool_use блоков в одном ответе. Клиент исполняет все параллельно и отправляет все tool_result разом. Экономит время на последовательных запросах.
Те же модели Claude, но оплата через облачного провайдера (AWS, GCP, Azure). Есть ограничения: MCP connector в API не работает на Bedrock и Vertex. Региональные эндпоинты = +10% наценка.