6 6
7> Создавайте производственные AI-агентов с Claude Code как библиотеку7> Создавайте производственные AI-агентов с Claude Code как библиотеку
8 8
9Создавайте AI-агентов, которые автономно читают файлы, запускают команды, ищут в интернете, редактируют код и многое другое. Agent SDK предоставляет вам те же инструменты, цикл агента и управление контекстом, которые питают Claude Code, программируемые на Python и TypeScript. Для получения информации о логике проектирования агентского каркаса см. [A harness for every task: dynamic workflows in Claude Code](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code) в блоге.9Агент — это приложение, которое выполняет задачу, планируя собственные шаги и вызывая инструменты, которые читают файлы, запускают команды или редактируют код. Agent SDK предоставляет вам те же инструменты, [цикл агента](/docs/ru/agent-sdk/agent-loop) и управление контекстом, которые питают Claude Code, программируемые на Python и TypeScript.
10 10
11<CodeGroup>11<h2 id="compare-the-agent-sdk-to-other-claude-tools">
12 ```python Python theme={null}12 Сравнение Agent SDK с другими инструментами Claude
13 import asyncio
14 from claude_agent_sdk import query, ClaudeAgentOptions
15
16
17 async def main():
18 async for message in query(
19 prompt="Find and fix the bug in auth.py",
20 options=ClaudeAgentOptions(allowed_tools=["Read", "Edit", "Bash"]),
21 ):
22 print(message) # Claude reads the file, finds the bug, edits it
23
24
25 asyncio.run(main())
26 ```
27
28 ```typescript TypeScript theme={null}
29 import { query } from "@anthropic-ai/claude-agent-sdk";
30
31 for await (const message of query({
32 prompt: "Find and fix the bug in auth.ts",
33 options: { allowedTools: ["Read", "Edit", "Bash"] }
34 })) {
35 console.log(message); // Claude reads the file, finds the bug, edits it
36 }
37 ```
38</CodeGroup>
39
40Agent SDK включает встроенные инструменты для чтения файлов, запуска команд и редактирования кода, поэтому ваш агент может начать работу немедленно без необходимости реализации выполнения инструментов. Погрузитесь в быстрый старт или изучите реальных агентов, созданных с помощью SDK:
41
42<CardGroup cols={2}>
43 <Card title="Быстрый старт" icon="play" href="/ru/agent-sdk/quickstart">
44 Создайте агента по исправлению ошибок за несколько минут
45 </Card>
46
47 <Card title="Примеры агентов" icon="star" href="https://github.com/anthropics/claude-agent-sdk-demos">
48 Помощник по электронной почте, исследовательский агент и многое другое
49 </Card>
50</CardGroup>
51
52<h2 id="get-started">
53 Начало работы
54</h2>13</h2>
55 14
56<Steps>15Agent SDK, CLI, Client SDK и Managed Agents подходят для разных потребностей. Используйте таблицу, чтобы найти тот, который соответствует тому, что вы создаёте.
57 <Step title="Установите SDK">
58 <Tabs>
59 <Tab title="TypeScript">
60 ```bash theme={null}
61 npm install @anthropic-ai/claude-agent-sdk
62 ```
63 </Tab>
64
65 <Tab title="Python (uv)">
66 [uv](https://docs.astral.sh/uv/) — это быстрый менеджер пакетов Python, который автоматически обрабатывает виртуальные окружения:
67
68 ```bash theme={null}
69 uv init
70 uv add claude-agent-sdk
71 ```
72 </Tab>
73
74 <Tab title="Python (pip)">
75 Создайте и активируйте виртуальное окружение, затем установите пакет. Установка в виртуальное окружение избегает ошибки `error: externally-managed-environment`, которую системный Python на недавних установках Debian, Ubuntu и Homebrew возвращает для `pip install` вне venv.
76
77 На macOS или Linux:
78
79 ```bash theme={null}
80 python3 -m venv .venv
81 source .venv/bin/activate
82 pip install claude-agent-sdk
83 ```
84
85 На Windows:
86
87 ```powershell theme={null}
88 py -m venv .venv
89 .venv\Scripts\Activate.ps1
90 pip install claude-agent-sdk
91 ```
92
93 Если PowerShell блокирует `Activate.ps1` с ошибкой политики выполнения, сначала запустите `Set-ExecutionPolicy -Scope Process RemoteSigned`.
94
95 Пакет Python требует Python 3.10 или более поздней версии. Если pip сообщает `No matching distribution found for claude-agent-sdk`, ваш интерпретатор старше 3.10. Запустите `python3 --version` на macOS или Linux или `py --version` на Windows, чтобы проверить.
96 </Tab>
97 </Tabs>
98
99 <Note>
100 TypeScript SDK поставляется с собственным бинарным файлом Claude Code для вашей платформы в качестве дополнительной зависимости, поэтому вам не нужно устанавливать Claude Code отдельно.
101 </Note>
102 </Step>
103
104 <Step title="Установите ваш API ключ">
105 Получите API ключ из [Console](https://platform.claude.com/), затем установите его как переменную окружения.
106
107 На macOS или Linux:
108
109 ```bash theme={null}
110 export ANTHROPIC_API_KEY=sk-ant-xxxxx
111 ```
112
113 На Windows PowerShell:
114
115 ```powershell theme={null}
116 $env:ANTHROPIC_API_KEY = "sk-ant-xxxxx"
117 ```
118
119 SDK также поддерживает аутентификацию через сторонних поставщиков API:
120
121 * **Amazon Bedrock**: установите переменную окружения `CLAUDE_CODE_USE_BEDROCK=1` и настройте учетные данные AWS
122 * **Claude Platform on AWS**: установите `CLAUDE_CODE_USE_ANTHROPIC_AWS=1` и `ANTHROPIC_AWS_WORKSPACE_ID`, затем настройте учетные данные AWS
123 * **Google Cloud's Agent Platform**: установите переменную окружения `CLAUDE_CODE_USE_VERTEX=1` и настройте учетные данные Google Cloud
124 * **Microsoft Azure**: установите переменную окружения `CLAUDE_CODE_USE_FOUNDRY=1` и настройте учетные данные Azure
125
126 См. руководства по настройке для [Amazon Bedrock](/ru/amazon-bedrock), [Claude Platform on AWS](/ru/claude-platform-on-aws), [Google Cloud's Agent Platform](/ru/google-vertex-ai) или [Microsoft Foundry](/ru/microsoft-foundry) для получения подробной информации.
127
128 <Note>
129 Если не одобрено ранее, Anthropic не разрешает сторонним разработчикам предлагать вход в claude.ai или ограничения скорости для своих продуктов, включая агентов, созданных на Claude Agent SDK. Вместо этого используйте методы аутентификации по API ключу, описанные в этом документе.
130 </Note>
131 </Step>
132 16
133 <Step title="Запустите вашего первого агента">17| Если вы... | Используйте | Почему |
134 Этот пример создает агента, который перечисляет файлы в вашем текущем каталоге, используя встроенные инструменты.18| ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
19| Создаёте агента без самостоятельной реализации цикла инструментов | **Agent SDK** | Библиотека, которая запускает цикл агента в вашем собственном процессе на Python или TypeScript. |
20| Занимаетесь интерактивной разработкой или запускаете одноразовые задачи из терминала | [**Claude Code CLI**](/docs/ru/overview) | Интерфейс терминала, созданный для ежедневного интерактивного использования. |
21| Вызываете API напрямую и реализуете цикл инструментов самостоятельно | [**Client SDK**](https://platform.claude.com/docs/en/api/client-sdks) | Прямой доступ к API Anthropic вместо Claude Code. Вы реализуете цикл инструментов самостоятельно. |
22| Запускаете долгоживущих или асинхронных агентов без управления собственной инфраструктурой sandbox или сессии | [**Managed Agents**](https://platform.claude.com/docs/en/managed-agents/overview) | Размещённый REST API, отдельный продукт от Agent SDK. Anthropic запускает агента и sandbox. |
135 23
136 <CodeGroup>24SDK доступен как библиотека только для Python и TypeScript. Чтобы запустить тот же цикл агента из другого языка, [запустите CLI как подпроцесс](/docs/ru/headless) с флагом `-p` и `--output-format json`.
137 ```python Python theme={null}
138 import asyncio
139 from claude_agent_sdk import query, ClaudeAgentOptions
140
141
142 async def main():
143 async for message in query(
144 prompt="What files are in this directory?",
145 options=ClaudeAgentOptions(allowed_tools=["Bash", "Glob"]),
146 ):
147 if hasattr(message, "result"):
148 print(message.result)
149
150
151 asyncio.run(main())
152 ```
153
154 ```typescript TypeScript theme={null}
155 import { query } from "@anthropic-ai/claude-agent-sdk";
156
157 for await (const message of query({
158 prompt: "What files are in this directory?",
159 options: { allowedTools: ["Bash", "Glob"] }
160 })) {
161 if ("result" in message) console.log(message.result);
162 }
163 ```
164 </CodeGroup>
165 </Step>
166</Steps>
167
168**Готовы к разработке?** Следуйте [Быстрому старту](/ru/agent-sdk/quickstart), чтобы создать агента, который находит и исправляет ошибки за несколько минут.
169 25
170<h2 id="capabilities">26<h2 id="capabilities">
171 Возможности27 Возможности
172</h2>28</h2>
173 29
174Все, что делает Claude Code мощным, доступно в SDK:30Эти возможности Claude Code доступны в SDK:
175
176<Tabs>
177 <Tab title="Встроенные инструменты">
178 Ваш агент может читать файлы, запускать команды и искать в кодовых базах из коробки. Ключевые инструменты включают:
179
180 | Инструмент | Что он делает |
181 | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
182 | **Read** | Читать любой файл в рабочем каталоге |
183 | **Write** | Создавать новые файлы |
184 | **Edit** | Делать точные правки в существующих файлах |
185 | **Bash** | Запускать команды терминала, скрипты, операции git |
186 | **Monitor** | Наблюдать фоновый скрипт и реагировать на каждую строку вывода как на событие |
187 | **Glob** | Находить файлы по шаблону (`**/*.ts`, `src/**/*.py`) |
188 | **Grep** | Искать содержимое файлов с помощью regex |
189 | **WebSearch** | Искать в интернете текущую информацию |
190 | **WebFetch** | Получать и анализировать содержимое веб-страниц |
191 | **[AskUserQuestion](/ru/agent-sdk/user-input#handle-clarifying-questions)** | Задавать пользователю уточняющие вопросы с вариантами множественного выбора |
192
193 Этот пример создает агента, который ищет в вашей кодовой базе комментарии TODO:
194
195 <CodeGroup>
196 ```python Python theme={null}
197 import asyncio
198 from claude_agent_sdk import query, ClaudeAgentOptions
199
200
201 async def main():
202 async for message in query(
203 prompt="Find all TODO comments and create a summary",
204 options=ClaudeAgentOptions(allowed_tools=["Read", "Glob", "Grep"]),
205 ):
206 if hasattr(message, "result"):
207 print(message.result)
208
209
210 asyncio.run(main())
211 ```
212
213 ```typescript TypeScript theme={null}
214 import { query } from "@anthropic-ai/claude-agent-sdk";
215
216 for await (const message of query({
217 prompt: "Find all TODO comments and create a summary",
218 options: { allowedTools: ["Read", "Glob", "Grep"] }
219 })) {
220 if ("result" in message) console.log(message.result);
221 }
222 ```
223 </CodeGroup>
224 </Tab>
225
226 <Tab title="hooks">
227 Запускайте пользовательский код в ключевых точках жизненного цикла агента. SDK hooks используют функции обратного вызова для проверки, логирования, блокирования или преобразования поведения агента.
228
229 **Доступные hooks:** `PreToolUse`, `PostToolUse`, `Stop`, `SessionStart`, `SessionEnd`, `UserPromptSubmit` и другие.
230
231 Этот пример логирует все изменения файлов в файл аудита:
232
233 <CodeGroup>
234 ```python Python theme={null}
235 import asyncio
236 from datetime import datetime
237 from claude_agent_sdk import query, ClaudeAgentOptions, HookMatcher
238
239
240 async def log_file_change(input_data, tool_use_id, context):
241 file_path = input_data.get("tool_input", {}).get("file_path", "unknown")
242 with open("./audit.log", "a") as f:
243 f.write(f"{datetime.now()}: modified {file_path}\n")
244 return {}
245
246
247 async def main():
248 async for message in query(
249 prompt="Refactor utils.py to improve readability",
250 options=ClaudeAgentOptions(
251 permission_mode="acceptEdits",
252 hooks={
253 "PostToolUse": [
254 HookMatcher(matcher="Edit|Write", hooks=[log_file_change])
255 ]
256 },
257 ),
258 ):
259 if hasattr(message, "result"):
260 print(message.result)
261
262
263 asyncio.run(main())
264 ```
265
266 ```typescript TypeScript theme={null}
267 import { query, HookCallback } from "@anthropic-ai/claude-agent-sdk";
268 import { appendFile } from "fs/promises";
269
270 const logFileChange: HookCallback = async (input) => {
271 const filePath = (input as any).tool_input?.file_path ?? "unknown";
272 await appendFile("./audit.log", `${new Date().toISOString()}: modified ${filePath}\n`);
273 return {};
274 };
275
276 for await (const message of query({
277 prompt: "Refactor utils.py to improve readability",
278 options: {
279 permissionMode: "acceptEdits",
280 hooks: {
281 PostToolUse: [{ matcher: "Edit|Write", hooks: [logFileChange] }]
282 }
283 }
284 })) {
285 if ("result" in message) console.log(message.result);
286 }
287 ```
288 </CodeGroup>
289
290 [Узнайте больше о hooks →](/ru/agent-sdk/hooks)
291 </Tab>
292
293 <Tab title="Subagents">
294 Создавайте специализированных агентов для обработки сосредоточенных подзадач. Ваш основной агент делегирует работу, а подагенты сообщают результаты.
295 31
296 Определите пользовательских агентов со специализированными инструкциями. Подагенты вызываются через инструмент Agent, поэтому включите `Agent` в `allowedTools` для автоматического одобрения этих вызовов:32| Возможность | Что она делает | Узнайте больше |
33| -------------------------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
34| Встроенные инструменты | Читать, писать, редактировать файлы, запускать команды и искать в веб-сети | [Справочник инструментов](/docs/ru/tools-reference) |
35| Hooks | Запускать пользовательский код в ключевых точках жизненного цикла агента | [Hooks](/docs/ru/agent-sdk/hooks) |
36| Subagents | Создавать специализированных агентов для сосредоточенных подзадач | [Subagents](/docs/ru/agent-sdk/subagents) |
37| MCP | Подключать внешние инструменты и источники данных через Model Context Protocol | [MCP](/docs/ru/agent-sdk/mcp) |
38| Permissions | Контролировать, какие инструменты запускаются автоматически, какие требуют одобрения | [Permissions](/docs/ru/agent-sdk/permissions) |
39| Sessions | Сохранять контекст между обменами, возобновлять или разветвлять позже | [Sessions](/docs/ru/agent-sdk/sessions) |
40| Skills, commands, и memory | Загружать автоматически из `.claude/` вашего проекта и из `~/.claude/`, как в Claude Code | [Skills](/docs/ru/agent-sdk/skills), [Commands](/docs/ru/agent-sdk/skills#commands-in-agent-sdk-sessions), [Memory](/docs/ru/agent-sdk/modifying-system-prompts), [Configuration loading](/docs/ru/agent-sdk/claude-code-features) |
41| Plugins | Упаковывать skills, агентов, hooks и MCP серверы, и загружать их по локальному пути | [Plugins](/docs/ru/agent-sdk/plugins) |
297 42
298 <CodeGroup>43<h2 id="get-started">
299 ```python Python theme={null}44 Начало работы
300 import asyncio
301 from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition
302
303
304 async def main():
305 async for message in query(
306 prompt="Use the code-reviewer agent to review this codebase",
307 options=ClaudeAgentOptions(
308 allowed_tools=["Read", "Glob", "Grep", "Agent"],
309 agents={
310 "code-reviewer": AgentDefinition(
311 description="Expert code reviewer for quality and security reviews.",
312 prompt="Analyze code quality and suggest improvements.",
313 tools=["Read", "Glob", "Grep"],
314 )
315 },
316 ),
317 ):
318 if hasattr(message, "result"):
319 print(message.result)
320
321
322 asyncio.run(main())
323 ```
324
325 ```typescript TypeScript theme={null}
326 import { query } from "@anthropic-ai/claude-agent-sdk";
327
328 for await (const message of query({
329 prompt: "Use the code-reviewer agent to review this codebase",
330 options: {
331 allowedTools: ["Read", "Glob", "Grep", "Agent"],
332 agents: {
333 "code-reviewer": {
334 description: "Expert code reviewer for quality and security reviews.",
335 prompt: "Analyze code quality and suggest improvements.",
336 tools: ["Read", "Glob", "Grep"]
337 }
338 }
339 }
340 })) {
341 if ("result" in message) console.log(message.result);
342 }
343 ```
344 </CodeGroup>
345
346 Сообщения из контекста подагента включают поле `parent_tool_use_id`, позволяющее отследить, какие сообщения принадлежат какому выполнению подагента.
347
348 [Узнайте больше о subagents →](/ru/agent-sdk/subagents)
349 </Tab>
350
351 <Tab title="MCP">
352 Подключайтесь к внешним системам через Model Context Protocol: базы данных, браузеры, API и [сотни других](https://github.com/modelcontextprotocol/servers).
353
354 Этот пример подключает [Playwright MCP server](https://github.com/microsoft/playwright-mcp), чтобы дать вашему агенту возможности автоматизации браузера:
355
356 <CodeGroup>
357 ```python Python theme={null}
358 import asyncio
359 from claude_agent_sdk import query, ClaudeAgentOptions
360
361
362 async def main():
363 async for message in query(
364 prompt="Open example.com and describe what you see",
365 options=ClaudeAgentOptions(
366 mcp_servers={
367 "playwright": {"command": "npx", "args": ["@playwright/mcp@latest"]}
368 }
369 ),
370 ):
371 if hasattr(message, "result"):
372 print(message.result)
373
374
375 asyncio.run(main())
376 ```
377
378 ```typescript TypeScript theme={null}
379 import { query } from "@anthropic-ai/claude-agent-sdk";
380
381 for await (const message of query({
382 prompt: "Open example.com and describe what you see",
383 options: {
384 mcpServers: {
385 playwright: { command: "npx", args: ["@playwright/mcp@latest"] }
386 }
387 }
388 })) {
389 if ("result" in message) console.log(message.result);
390 }
391 ```
392 </CodeGroup>
393
394 [Узнайте больше о MCP →](/ru/agent-sdk/mcp)
395 </Tab>
396
397 <Tab title="Permissions">
398 Контролируйте точно, какие инструменты может использовать ваш агент. Разрешите безопасные операции, заблокируйте опасные или требуйте одобрения для чувствительных действий.
399
400 <Note>
401 Для интерактивных подсказок одобрения и инструмента `AskUserQuestion`, см. [Обработка одобрений и ввода пользователя](/ru/agent-sdk/user-input).
402 </Note>
403
404 Этот пример создает агента только для чтения, который может анализировать, но не изменять код. `allowed_tools` предварительно одобряет `Read`, `Glob` и `Grep`.
405
406 <CodeGroup>
407 ```python Python theme={null}
408 import asyncio
409 from claude_agent_sdk import query, ClaudeAgentOptions
410
411
412 async def main():
413 async for message in query(
414 prompt="Review this code for best practices",
415 options=ClaudeAgentOptions(
416 allowed_tools=["Read", "Glob", "Grep"],
417 ),
418 ):
419 if hasattr(message, "result"):
420 print(message.result)
421
422
423 asyncio.run(main())
424 ```
425
426 ```typescript TypeScript theme={null}
427 import { query } from "@anthropic-ai/claude-agent-sdk";
428
429 for await (const message of query({
430 prompt: "Review this code for best practices",
431 options: {
432 allowedTools: ["Read", "Glob", "Grep"]
433 }
434 })) {
435 if ("result" in message) console.log(message.result);
436 }
437 ```
438 </CodeGroup>
439
440 [Узнайте больше о permissions →](/ru/agent-sdk/permissions)
441 </Tab>
442
443 <Tab title="Sessions">
444 Сохраняйте контекст между несколькими обменами. Claude помнит прочитанные файлы, выполненный анализ и историю разговора. Возобновляйте сеансы позже или разветвляйте их, чтобы исследовать различные подходы.
445
446 Этот пример захватывает ID сеанса из первого запроса, затем возобновляет работу с полным контекстом:
447
448 <CodeGroup>
449 ```python Python theme={null}
450 import asyncio
451 from claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage, ResultMessage
452
453
454 async def main():
455 session_id = None
456
457 # First query: capture the session ID
458 async for message in query(
459 prompt="Read the authentication module",
460 options=ClaudeAgentOptions(allowed_tools=["Read", "Glob"]),
461 ):
462 if isinstance(message, SystemMessage) and message.subtype == "init":
463 session_id = message.data["session_id"]
464
465 # Resume with full context from the first query
466 async for message in query(
467 prompt="Now find all places that call it", # "it" = auth module
468 options=ClaudeAgentOptions(resume=session_id),
469 ):
470 if isinstance(message, ResultMessage):
471 print(message.result)
472
473
474 asyncio.run(main())
475 ```
476
477 ```typescript TypeScript theme={null}
478 import { query } from "@anthropic-ai/claude-agent-sdk";
479
480 let sessionId: string | undefined;
481
482 // First query: capture the session ID
483 for await (const message of query({
484 prompt: "Read the authentication module",
485 options: { allowedTools: ["Read", "Glob"] }
486 })) {
487 if (message.type === "system" && message.subtype === "init") {
488 sessionId = message.session_id;
489 }
490 }
491
492 // Resume with full context from the first query
493 for await (const message of query({
494 prompt: "Now find all places that call it", // "it" = auth module
495 options: { resume: sessionId }
496 })) {
497 if ("result" in message) console.log(message.result);
498 }
499 ```
500 </CodeGroup>
501
502 [Узнайте больше о sessions →](/ru/agent-sdk/sessions)
503 </Tab>
504</Tabs>
505
506<h3 id="claude-code-features">
507 Функции Claude Code
508</h3>
509
510SDK также поддерживает конфигурацию на основе файловой системы Claude Code. С параметрами по умолчанию SDK загружает их из `.claude/` в вашем рабочем каталоге и `~/.claude/`. Чтобы ограничить, какие источники загружаются, установите `setting_sources` (Python) или `settingSources` (TypeScript) в ваших параметрах.
511
512| Функция | Описание | Местоположение |
513| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- | ----------------------------------- |
514| [Skills](/ru/agent-sdk/skills) | Специализированные возможности, которые Claude использует автоматически или вы вызываете с помощью `/name` | `.claude/skills/*/SKILL.md` |
515| [Commands](/ru/agent-sdk/slash-commands) | Пользовательские команды в устаревшем формате. Используйте skills для новых пользовательских команд | `.claude/commands/*.md` |
516| [Memory](/ru/agent-sdk/modifying-system-prompts) | Контекст проекта и инструкции | `CLAUDE.md` или `.claude/CLAUDE.md` |
517| [Plugins](/ru/agent-sdk/plugins) | Расширяйте с помощью skills, агентов, hooks и MCP серверов | Программно через опцию `plugins` |
518
519<h2 id="compare-the-agent-sdk-to-other-claude-tools">
520 Сравнение Agent SDK с другими инструментами Claude
521</h2>45</h2>
522 46
523Claude Platform предлагает несколько способов разработки с Claude. Вот как Agent SDK вписывается:47Следуйте [Quickstart](/docs/ru/agent-sdk/quickstart), чтобы установить SDK, установить ваш API ключ и создать вашего первого агента, который находит и исправляет ошибки в существующем коде.
524
525<Tabs>
526 <Tab title="Agent SDK vs Client SDK">
527 [Anthropic Client SDK](https://platform.claude.com/docs/ru/api/client-sdks) дает вам прямой доступ к API: вы отправляете подсказки и реализуете выполнение инструментов самостоятельно. **Agent SDK** дает вам Claude со встроенным выполнением инструментов.
528
529 С Client SDK вы реализуете цикл инструментов. С Agent SDK Claude обрабатывает это:
530
531 <CodeGroup>
532 ```python Python theme={null}
533 # Client SDK: You implement the tool loop
534 response = client.messages.create(...)
535 while response.stop_reason == "tool_use":
536 result = your_tool_executor(response.tool_use)
537 response = client.messages.create(tool_result=result, **params)
538
539 # Agent SDK: Claude handles tools autonomously
540 async for message in query(prompt="Fix the bug in auth.py"):
541 print(message)
542 ```
543
544 ```typescript TypeScript theme={null}
545 // Client SDK: You implement the tool loop
546 let response = await client.messages.create({ ...params });
547 while (response.stop_reason === "tool_use") {
548 const result = yourToolExecutor(response.tool_use);
549 response = await client.messages.create({ tool_result: result, ...params });
550 }
551 48
552 // Agent SDK: Claude handles tools autonomously49<Note>
553 for await (const message of query({ prompt: "Fix the bug in auth.ts" })) {50 Если не было предварительного одобрения, Anthropic не разрешает сторонним разработчикам предлагать вход через claude.ai или ограничения скорости для своих продуктов, включая агентов, созданных на основе Claude Agent SDK. Вместо этого используйте методы аутентификации по API ключу, описанные в [Quickstart](/docs/ru/agent-sdk/quickstart).
554 console.log(message);51</Note>
555 }
556 ```
557 </CodeGroup>
558 </Tab>
559
560 <Tab title="Agent SDK vs Claude Code CLI">
561 Те же возможности, другой интерфейс:
562
563 | Вариант использования | Лучший выбор |
564 | ------------------------------ | ------------ |
565 | Интерактивная разработка | CLI |
566 | CI/CD конвейеры | SDK |
567 | Пользовательские приложения | SDK |
568 | Одноразовые задачи | CLI |
569 | Производственная автоматизация | SDK |
570
571 Многие команды используют оба: CLI для ежедневной разработки, SDK для производства. Рабочие процессы напрямую переводятся между ними.
572 </Tab>
573
574 <Tab title="Agent SDK vs Managed Agents">
575 [Managed Agents](https://platform.claude.com/docs/ru/managed-agents/overview) — это размещенный REST API: Anthropic запускает агента и песочницу, а ваше приложение отправляет события и получает результаты потоком. **Agent SDK** — это библиотека, которая запускает цикл агента внутри вашего собственного процесса.
576
577 | | Agent SDK | Managed Agents |
578 | -------------------------------- | ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
579 | **Запускается в** | Ваш процесс, ваша инфраструктура | Инфраструктура, управляемая Anthropic |
580 | **Интерфейс** | Библиотека Python или TypeScript | REST API |
581 | **Агент работает с** | Файлами в вашей инфраструктуре | Управляемой песочницей на сеанс |
582 | **Состояние сеанса** | JSONL в вашей файловой системе | Журнал событий, размещенный в Anthropic |
583 | **Пользовательские инструменты** | Функции Python или TypeScript в процессе | Claude запускает инструмент; вы выполняете и возвращаете результаты |
584 | **Лучше всего подходит для** | Локальное прототипирование, агенты, которые работают непосредственно с вашей файловой системой и сервисами | Производственные агенты без необходимости управления песочницей или инфраструктурой сеанса, долгоживущие и асинхронные сеансы |
585
586 Обычный путь — прототипирование с Agent SDK локально, а затем переход на Managed Agents для производства.
587 </Tab>
588</Tabs>
589 52
590<h2 id="changelog">53<h2 id="changelog">
591 Журнал изменений54 Журнал изменений
596* **TypeScript SDK**: [просмотреть CHANGELOG.md](https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md)59* **TypeScript SDK**: [просмотреть CHANGELOG.md](https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md)
597* **Python SDK**: [просмотреть CHANGELOG.md](https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md)60* **Python SDK**: [просмотреть CHANGELOG.md](https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md)
598 61
599<h2 id="reporting-bugs">62<h2 id="report-bugs">
600 Сообщение об ошибках63 Сообщение об ошибках
601</h2>64</h2>
602 65
613 76
614**Разрешено:**77**Разрешено:**
615 78
616* "Claude Agent" (предпочтительно для раскрывающихся меню)79* "Claude Agent", предпочтительно для раскрывающихся меню
617* "Claude" (когда находится в меню, уже помеченном как "Agents")80* "Claude", когда находится в меню, уже помеченном как "Agents"
618* "{YourAgentName} Powered by Claude" (если у вас есть существующее имя агента)81* "\{YourAgentName} Powered by Claude", если у вас есть существующее имя агента
619 82
620**Не разрешено:**83**Не разрешено:**
621 84
634 Следующие шаги97 Следующие шаги
635</h2>98</h2>
636 99
637<CardGroup cols={2}>100Эти ресурсы содержат более глубокие технические детали и примеры проектов для разработки с помощью Agent SDK.
638 <Card title="Быстрый старт" icon="play" href="/ru/agent-sdk/quickstart">
639 Создайте агента, который находит и исправляет ошибки за несколько минут
640 </Card>
641
642 <Card title="Примеры агентов" icon="star" href="https://github.com/anthropics/claude-agent-sdk-demos">
643 Помощник по электронной почте, исследовательский агент и многое другое
644 </Card>
645
646 <Card title="TypeScript SDK" icon="code" href="/ru/agent-sdk/typescript">
647 Полная справка API TypeScript и примеры
648 </Card>
649 101
650 <Card title="Python SDK" icon="code" href="/ru/agent-sdk/python">102* [Быстрый старт](/docs/ru/agent-sdk/quickstart): создайте своего первого агента, который находит и исправляет ошибки
651 Полная справка API Python и примеры103* [Руководство по миграции](/docs/ru/agent-sdk/migration-guide): перейдите с пакетов Claude Code SDK на Agent SDK
652 </Card>104* [Цикл агента](/docs/ru/agent-sdk/agent-loop): как Claude планирует, вызывает инструменты и решает, когда задача завершена
653</CardGroup>105* [Примеры агентов](https://github.com/anthropics/claude-agent-sdk-demos): демонстрационные приложения для локальной разработки
106* [TypeScript SDK](/docs/ru/agent-sdk/typescript): полная справка API TypeScript и примеры
107* [Python SDK](/docs/ru/agent-sdk/python): полная справка API Python и примеры
108* [Дизайн агентского каркаса](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code): как команда Claude Code использует динамические рабочие процессы для одновременной организации множества подагентов