---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - https://vibe.sourcecraft.dev/portal/docs/en/code-assistant/operations/agent/how-tools-work.md
  - https://vibe.sourcecraft.dev/portal/docs/ru/code-assistant/operations/agent/how-tools-work.md
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/code-assistant/operations/agent/how-tools-work.md
    type: text/markdown
    title: Markdown version
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/code-assistant/llms.txt
    rel: describedby
title: Как работают инструменты в SourceCraft Code Assistant
description: 'Обзор инструментов SourceCraft Code Assistant для взаимодействия с кодом и окружением: чтение, редактирование, выполнение команд и поиск.'
---
> **Documentation Index:** Fetch the complete configuration index at https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt


# Как работают инструменты в SourceCraft Code Assistant

<!-- source: ru/_includes/code-assistant/only-in-vscode.md -->
{% note warning %}

Функциональность доступна только в Visual Studio Code.

{% endnote %}
<!-- endsource: ru/_includes/code-assistant/only-in-vscode.md -->

Для взаимодействия с вашим кодом и окружением Code Assistant использует определенный набор инструментов. Это специализированные модули, которые выполняют конкретные действия, такие как чтение файлов, внесение изменений, выполнение команд или поиск по коду. Инструменты обеспечивают автоматизацию для распространенных задач разработки без необходимости ручного выполнения.

## Работа с инструментами {#how-tools-work}

В интерфейсе чата опишите естественным языком, что нужно сделать, и Code Assistant выполнит следующие шаги:
1. Выберет подходящий инструмент на основе вашего запроса.
1. Предоставит инструмент с его параметрами для вашего рассмотрения.
1. Выполнит одобренный инструмент и покажет вам результаты.
1. Продолжит этот процесс до завершения вашей задачи.

## Справочник инструментов {#tool-reference}

| Название инструмента | Описание | Категория |
| --- | --- | --- |
| `read_file` | Читает содержимое файла с номерами строк | Чтение |
| `search_files` | Ищет текст или шаблоны regex в файлах | Чтение |
| `list_files` | Получает список файлов и директорий в указанном месте | Чтение |
| `list_code_definition_names` | Получает список определений кода, таких как классы и функции | Чтение |
| `write_to_file` | Создает новые файлы или перезаписывает существующие | Редактирование |
| `apply_diff` | Вносит точечные изменения в определенные части файла | Редактирование |
| `execute_command` | Выполняет команды в терминале VS Code | Выполнение |
| `web_fetch` | Получает содержимое веб-страницы или текстового ресурса по URL | Браузер |
| `browser_action` | Выполняет действия в браузере | Браузер |
| `ask_followup_question` | Задает уточняющий вопрос | Рабочий процесс |
| `attempt_completion` | Указывает, что задача завершена | Рабочий процесс |
| `switch_mode` | Переключается на другой режим работы | Рабочий процесс |
| `new_task` | Создает новую подзадачу с определенным стартовым режимом | Рабочий процесс |

### Получение контента по URL с помощью web_fetch {#web-fetch}

Инструмент `web_fetch` выполняет GET-запрос по указанному URL и возвращает текстовое содержимое ресурса. HTML-страницы автоматически преобразуются в Markdown, а JSON и другие текстовые форматы возвращаются без преобразования. Длинный контент может быть обрезан.

Инструмент принимает параметры:

* `url` — URL ресурса с указанием протокола, например `https://example.com`. Обязательный параметр.
* `render` — способ загрузки страницы. Значение `false` используется по умолчанию и подходит для страниц, содержимое которых доступно без выполнения JavaScript. Значение `true` загружает страницу в headless-браузере и подходит для сайтов с динамическим содержимым. Необязательный параметр.

`web_fetch` предназначен только для чтения и не позволяет нажимать кнопки, заполнять формы или выполнять другие интерактивные действия. Для таких сценариев используйте `browser_action`.

## Пример использования инструментов {#example-usage}

Вот как работает типичное взаимодействие с инструментом:

1. Пользователь пишет в чат: `Создай файл с именем greeting.js, который выводит приветственное сообщение.`
1. Code Assistant предлагает использовать инструмент `write_to_file`.

    ```xml
    <write_to_file>
    <path>greeting.js</path>
    <content>
    function greet(name) {
      console.log(`Hello, ${name}!`);
    }

    greet('World');
    </content>
    <line_count>5</line_count>
    </write_to_file>
    ```

1. Пользователь нажимает **Save** в интерфейсе чата.
1. Code Assistant подтверждает создание файла.

## Безопасность инструментов и одобрение {#tool-safety-and-approval}

Каждое использование инструмента требует вашего явного одобрения. Когда Code Assistant предлагает инструмент, появляются следующие элементы управления:
* **Approve** для одобрения выполнения действия.
* **Reject** для отказа от предложенного действия.
* (опционально) **Auto-approve** для [автоматического одобрения](https://vibe.sourcecraft.dev/portal/docs/ru/code-assistant/operations/agent/auto-approving-actions.md) действий.

Этот механизм безопасности обеспечивает контроль над тем, какие файлы изменяются, какие команды выполняются и как изменяется ваша кодовая база. Всегда внимательно проверяйте предложения инструментов перед их одобрением.
