# Глава 4 · Инструменты > Инструменты — это руки агента. Обсуждаются классификация инструментов и общие принципы их проектирования, протокол MCP и трудности выбора инструментов, три типа инструментов (восприятие, исполнение, сотрудничество) и событийно-управляемые асинхронные агенты. ← [К оглавлению](../docs/ru/README.md) · 📖 [Читать главу](../book-ru/chapter4.md) ## Как читать эксперименты В основном тексте короткие скелеты механизмов объясняют поток управления; в каталогах экспериментов находятся полные адаптеры SDK, журналы, тесты и приёмочные доказательства. Читать каждый файл построчно не требуется. - **Starter:** Начните с цели, минимальной команды и условий приёмки; начните с [async-agent](async-agent/); - **Builder:** Проследите точку входа, основной цикл, схему состояния/сообщений, инструменты и проверяющий модуль. - **Maintainer:** Затем изучите тесты, манифесты доказательств, обработку сбоев, откат и адаптеры провайдеров. При первом чтении можно пропустить ключи, слой представления и совместимость провайдеров; вернитесь при воспроизведении чисел. ## Сопутствующие проекты | Эксп. | Проект | Тип | Описание | | :--: | --- | :--: | --- | | 4-1 | [perception-tools](perception-tools/) | ✅ | Строит полноценный набор инструментов восприятия: веб-поиск, мультимодальное понимание, операции с файловой системой и доступ к публичным источникам данных. Большинство функций основано на бесплатных открытых API (DuckDuckGo, Open-Meteo, Yahoo Finance, OpenStreetMap и др.) и не требует API-ключа. | | 4-2 | [multimodal-agent](multimodal-agent/) | ✅ | Multimodal processing: compare native multimodal, extract-to-text, and tool-based analysis. | | 4-3 | [execution-tools](execution-tools/) | ✅ | Реализует набор инструментов исполнения с механизмами безопасности: операции с файлами, интерпретатор кода, виртуальный терминал и интеграция с внешними системами. Предотвращает опасные операции через вторичный механизм подтверждения LLM, автоматически суммирует сложные выводы и проверяет синтаксис кода. | | 4-4 | [collaboration-tools](collaboration-tools/) | ✅ | Даёт полный набор возможностей сотрудничества: автоматизация браузера (фреймворк browser-use), Human-in-the-Loop, многоканальные уведомления (Email, Telegram, Slack, Discord) и управление таймерами. Поддерживает одобрение чувствительных операций администратором и запуск задач по расписанию. | | 4-5 | [active-tool-discovery](active-tool-discovery/) | ✅ | Сравнивает две парадигмы: «внедрить схемы всех 120+ инструментов» и «активное обнаружение по требованию». Во второй в системном промпте остаются лишь несколько базовых инструментов и мета-инструмент `discover_tools`, а по сходству эмбеддингов из библиотеки извлекаются 3–5 наиболее релевантных специализированных инструментов. Это экономит токены и не даёт модели ошибочно выбрать или неправильно применить инструмент из чрезмерно длинного списка. | | — | [active-tool-selection](active-tool-selection/) | ✅ | Реализует интеллектуальный выбор инструментов, позволяя агенту активно подбирать наиболее подходящую их комбинацию под задачу, а не пассивно принимать предопределённый набор. | > Дополнительно `chapter4/docker-compose.yml` и `chapter4/DOCKER_DEPLOYMENT.md` дают эталонное решение для контейнеризации и развёртывания упомянутых MCP-серверов инструментов. ## Типы проектов | Значок | Тип | Значение | | :--: | --- | --- | | ✅ | **Автономный** | Полный код в этом репозитории, запускается после настройки API-ключа | | 📖 | **Гайд по воспроизведению** | Подробный документ, зависящий от **внешних репозиториев** через `git clone` | | 🚧 | **Проектный документ** | Только архитектура/план реализации, рабочий код ещё в разработке |