# Безопасная работа агента с вашим рабочим пространством (/ru/docs/tutorials/agents-safely)

Echolot — это MCP-сервер для вашего рабочего пространства: ИИ-агент вроде Claude Code может перечислять ваши запросы,
отправлять их и читать ответы. Вы решаете, что ему можно без вопросов, о чём он должен спрашивать и что ему нельзя
никогда. Значения секретов до него не доходят. В этом руководстве вы подключите Claude Code к Alpenglow, одобрите и
отклоните его отправки, защитите окружение, а затем сделаете то же со встроенным Ассистентом Echolot.

- **Время:** 20 минут.
- **Вам понадобится:** [рабочее пространство Alpenglow](/docs/tutorials#the-alpenglow-workspace) и MCP-клиент: Claude Code
  (`claude` в Терминале), Claude Desktop, Cursor, VS Code или Codex. Для последней части — API-ключ провайдера модели
  или локальная модель в Ollama.
- **Вы узнаете:** про Настройки › Агенты, одобрения, правила агентов рабочего пространства, защищённые окружения и то,
  что агенты видят вместо секретов.

## 1. Включите агентов [#1-turn-agents-on]

1. Выберите **Echolot › Настройки…** (<kbd>⌘</kbd><kbd>,</kbd>) и откройте **Агенты**.
2. В разделе **Доступ** включите **Разрешить агентам работать с открытыми рабочими пространствами**.
3. В разделе **Инструменты для агентов** оставьте включёнными **Запросы** и **Сценарии**. **Запросы** позволяют агенту
   перечислять, читать, создавать и отправлять запросы; **Сценарии** запускают сценарии, которые вы предложили агентам.
   Остальные (**Рабочее пространство**, **Окружения**, **Спецификации**, **Моки**, **MCP-серверы**, **История**,
   **Редактирование сценариев**) выключены, пока вы их не включите.

Некоторые инструменты не предлагаются никогда, что бы вы ни включили: сама политика, прокси, сертификаты, настройки
авторизации, скрипты и запуск сценариев, которые вы не предлагали.

## 2. Подключите Claude Code [#2-connect-claude-code]

1. В окне Alpenglow нажмите **Агенты** вверху страницы.
2. В разделе **Подключить клиент** найдите **Claude Code** и выберите **Скопировать команду**. Команда выглядит так:

   ```sh
   claude mcp add --scope user echolot-alpenglow -- /Applications/Echolot.app/Contents/Helpers/echolot mcp serve /Users/you/Projects/Alpenglow.echolot
   ```

3. Вставьте её в Терминал и выполните.

У других клиентов своя кнопка: **Добавить в Cursor** и **Добавить в VS Code** открывают ссылку установки,
**Скопировать запись config.toml** — для Codex, **Скопировать JSON** даёт блок `mcpServers` для любого другого клиента,
а **Добавить в Claude** для Claude Desktop устанавливает расширение. Каждый клиент запускает `echolot mcp serve`, который
передаёт его вызовы открытому окну, так что действуют ваши одобрения и окружение окна.

<Edition only="appstore">
  В версию из App Store не входят ни инструмент командной строки, ни расширение для Claude Desktop. Сначала установите
  [инструмент командной строки](/docs/cli) отдельно; скопированные команды и фрагменты указывают на него.
</Edition>

<Shot id="tutorials-agents-connect" alt="Всплывающее окно «Агенты» в окне Alpenglow с кнопками раздела «Подключить клиент» для Claude Desktop, Claude Code, Cursor, VS Code и Codex" />

## 3. Разрешите читать и отправлять [#3-let-it-read-and-send]

1. Запустите `claude` в Терминале и спросите:

   > Using echolot-alpenglow, list the requests in the Catalog folder, send List products, and tell me the most
   > expensive tent in stock.

2. Он перечисляет запросы и отправляет **List products**, не спрашивая вас: по умолчанию агенту можно читать рабочее
   пространство и выполнять безопасные отправки (`GET`, запросы GraphQL, чтение MCP).
3. В Echolot кнопка **Агенты** теперь читается как **Агенты · 1**. Её всплывающее окно перечисляет клиент в разделе
   **Недавние вызовы** с переключателем **Разрешено**, чтобы его отключить.

Отправки агента записываются в Историю с указанием, кто их отправил (<kbd>⌘</kbd><kbd>Y</kbd>).

## 4. Одобрите отправку, которая изменяет данные [#4-approve-a-send-that-changes-data]

1. Попросите:

   > Place an order for one TNT-MH-2P with Create order.

2. Echolot показывает лист: **Claude Code хочет отправить запрос, который может изменить данные**, с запросом и
   предпросмотром того, что уйдёт. Заголовок `Authorization` выглядит как `Bearer ••••••`.
3. Выберите одно из:
   - **Разрешить один раз** (<kbd>↩</kbd>): только эту отправку.
   - **Разрешить на этот сеанс**: такие же отправки, пока окно не закроется.
   - **Отклонить** (<kbd>Esc</kbd>): агенту сообщается, что вы отказали.
4. Выберите **Разрешить один раз**. Магазин отвечает `201 Created`, и агент сообщает о новом заказе.

<Shot id="tutorials-agents-approval" alt="Лист одобрения: Claude Code хочет отправить запрос, который может изменить данные, с кнопками «Отклонить», «Разрешить на этот сеанс» и «Разрешить один раз»" />

## 5. Держите секреты вне досягаемости [#5-keep-secrets-out-of-reach]

Спросите агента:

> What is the value of the token variable?

Он не сможет ответить. Значение секретной переменной до агента не доходит: везде, где оно появилось бы — в запросе,
ответе или ошибке, — агент видит `••••••`. Это относится к значению в исходном виде и в формах JSON, процентного
кодирования и Base64. Поиск по телам ответов также никогда не считает и не размещает совпадение на секрете.

## 6. Задайте правила рабочего пространства [#6-set-the-workspaces-rules]

Значения по умолчанию — отправная точка. Каждое рабочее пространство может задать свои правила, и они записываются в
`workspace.toml`, поэтому путешествуют с рабочим пространством через Git.

1. Откройте меню рабочего пространства внизу боковой панели, выберите **Настройки рабочего пространства…**, затем
   вкладку **Агенты**.
2. **Агентам разрешено работать с этим рабочим пространством** отключает агентов только для этого рабочего пространства.
3. В разделе **Что разрешено агентам** для каждого вида действий есть **Разрешить**, **Спросить** или **Отказать** (или
   **По умолчанию**): **Чтение запросов и окружений**, **Безопасные отправки (GET, запросы GraphQL, чтение MCP)**,
   **Прочие отправки**, **Отправки в защищённые окружения**, **Отправки на новые хосты**, **Изменения рабочего пространства** и **Удаление**. Для **Прочие отправки** выберите **Отказать**.
4. В разделе **Хосты и лимиты** перечислите **Разрешённые хосты** и задайте **Отправок за сеанс** или **Отправок в минуту**.
5. Нажмите **Готово** и попросите агента оформить ещё один заказ. Ему откажут без листа.

Правило строже значения по умолчанию действует сразу. Правило, которое что-то разрешило бы без вопросов, скажем в
рабочем пространстве, полученном из Git, ждёт вашего решения: всплывающее окно **Агенты** сообщает, что оно
разрешило бы, агенты по-прежнему спрашивают, пока вы не доверитесь правилам, а **Доверять этим правилам** принимает их
на этом Mac.

У **Отправки в защищённые окружения** и **Отправки на новые хосты** есть только **Спросить** и **Отказать**: никакое
правило не позволяет агенту отправлять туда без вопроса. Перенаправление после отправки агента никогда не переносит
секретный заголовок на хост, которого рабочее пространство не знает.

## 7. Защитите окружение [#7-protect-an-environment]

1. В меню окружений в заголовке страницы выберите **Production**. Оно защищено, поэтому отмечено красным с замком.
2. Попросите агента снова отправить **List products**. В листе написано **Claude Code хочет отправить в защищённое окружение**, и <kbd>↩</kbd> на нём ничего не делает: нужно выбрать. Выберите **Отклонить**. (Production в Alpenglow —
   вымышленный адрес, так что отправка всё равно не удалась бы.)
3. Отправьте **List products** сами. Кнопка называется **Отправить в Production…**, а предупреждение спрашивает
   **Отправить в Production?**. По умолчанию выбрано **Отменить**; **Не спрашивать до смены окружения** прекращает вопросы,
   пока вы не выберете другое окружение. Выберите **Отменить**.
4. Вернитесь на **Без окружения**.

Отметьте окружение защищённым переключателем **Защищённое** на странице «Окружения». См.
[защищённые окружения](/docs/workspaces/protected-environments).

## 8. Без приложения: политики [#8-without-the-app-policies]

`echolot mcp serve` работает и сам по себе — для агента на сервере или в CI, где одобрить что-либо некому. Там решает
политика, а всё, что потребовало бы вопроса, отклоняется:

```sh
echolot mcp serve Alpenglow.echolot --policy readonly
```

| Политика | Что выполняется | О чём спрашивает (отклоняется, если спросить некого) |
| --- | --- | --- |
| `standard` (по умолчанию) | Чтение и безопасные отправки | Прочие отправки и изменения |
| `readonly` | Чтение | Отправки; изменения и удаление отклоняются |
| `permissive` | Отправки и изменения | Удаление, защищённые окружения, новые хосты |

Без интерфейса он выполняет только те скрипты, которые были в рабочем пространстве при запуске. Подробнее — в разделах
[агенты](/docs/ai/agents) и [`echolot mcp`](/docs/cli/mcp).

## 9. Встроенный Ассистент [#9-the-built-in-assistant]

Собственный Ассистент Echolot работает через те же инструменты и те же одобрения, в панели рядом с любой страницей.

1. Выберите **Echolot › Настройки…** › **Ассистент**. В разделе **Добавить провайдера** выберите **Провайдер**
   (Anthropic, OpenAI, Google Gemini или совместимый с OpenAI сервер вроде Ollama), введите **API-ключ** или **Адрес** и
   нажмите **Добавить**. Ключи хранятся в Связке ключей.
2. В окне Alpenglow нажмите <kbd>⌘</kbd><kbd>J</kbd> (или выберите волшебную палочку в конце заголовка страницы).
3. Введите в **Спросите ассистента…**: `Send every request in Catalog and tell me which checks fail.`
4. Прежде чем что-либо из рабочего пространства впервые уйдёт провайдеру, Echolot спросит **Отправить в Anthropic?** (или
   выбранному вами провайдеру). По умолчанию выбрано **Отменить**; выберите **Разрешить**. Он спрашивает один раз на
   провайдера, а **Настройки › Ассистент** позволяют это отозвать. Модели на вашем Mac или на локальном сервере не
   спрашивают никогда.
5. Его отправки проходят через тот же лист, который читается как **Агент хочет …**.

**Что видит модель** в заголовке панели показывает в точности то, что было отправлено модели. См.
[Ассистент](/docs/ai/assistant).

<Edition only="direct">
  Ассистент может также использовать агента командной строки на вашем Mac (**CLI-агент (ACP)**: Claude Code, Codex,
  Gemini CLI) в версии с сайта.
</Edition>

## Дальше [#next-steps]

- [Агенты](/docs/ai/agents): все настройки, наборы инструментов и другие клиенты.
- [Автоматизация сценарием](/docs/tutorials/automate-with-flows): предложите сценарий агентам как один инструмент, с
  блоком «Одобрить», который спрашивает человека.
- [Конфиденциальность и безопасность](/docs/privacy-and-security): что покидает ваш Mac и когда.
