Глава 4 · Инструменты¶
Инструменты — это руки агента. Обсуждаются классификация инструментов и общие принципы их проектирования, протокол MCP и трудности выбора инструментов, три типа инструментов (восприятие, исполнение, сотрудничество) и событийно-управляемые асинхронные агенты.
← К оглавлению · 📖 Читать главу
Сопутствующие проекты¶
| Эксп. | Проект | Тип | Описание |
|---|---|---|---|
| 4-1 | perception-tools | ✅ | Строит полноценный набор инструментов восприятия: веб-поиск, мультимодальное понимание, операции с файловой системой и доступ к публичным источникам данных. Большинство функций основано на бесплатных открытых API (DuckDuckGo, Open-Meteo, Yahoo Finance, OpenStreetMap и др.) и не требует API-ключа. |
| 4-2 | execution-tools | ✅ | Реализует набор инструментов исполнения с механизмами безопасности: операции с файлами, интерпретатор кода, виртуальный терминал и интеграция с внешними системами. Предотвращает опасные операции через вторичный механизм подтверждения LLM, автоматически суммирует сложные выводы и проверяет синтаксис кода. |
| 4-3 | collaboration-tools | ✅ | Даёт полный набор возможностей сотрудничества: автоматизация браузера (фреймворк browser-use), Human-in-the-Loop, многоканальные уведомления (Email, Telegram, Slack, Discord) и управление таймерами. Поддерживает одобрение чувствительных операций администратором и запуск задач по расписанию. |
| 4-4 | agent-with-event-trigger | ✅ | Современный событийно-управляемый агент на FastAPI, по умолчанию интегрирующий все инструменты первых трёх MCP-серверов. Использует нативную асинхронную архитектуру для чистой загрузки MCP-инструментов и принимает события из разных источников (Web, мессенджеры, GitHub, таймеры и т. д.) через HTTP API. Даёт автоматическую документацию API (Swagger UI) и фоновый мониторинг. |
| 4-5 | async-agent | ✅ | Реализует ядро событийно-управляемого асинхронного фреймворка агента (Flux) на однопоточной модели asyncio: очередь событий-«входящих» распределяет задачи по срочности (прерывание/немедленно/очередь), поддерживает параллельное исполнение асинхронных инструментов, позволяет прерывать текущий раунд во время исполнения и даёт отмену и запрос статуса для имитируемых долгих задач. Решения принимает настоящий LLM (function calling). |
| 4-6 | active-tool-discovery | ✅ | Сравнивает две парадигмы: «внедрить схемы всех 120+ инструментов» и «активное обнаружение по требованию». Во второй в системном промпте остаются лишь несколько базовых инструментов и мета-инструмент discover_tools, а по сходству эмбеддингов из библиотеки извлекаются 3–5 наиболее релевантных специализированных инструментов. Это экономит токены и не даёт модели ошибочно выбрать или неправильно применить инструмент из чрезмерно длинного списка. |
| — | active-tool-selection | ✅ | Реализует интеллектуальный выбор инструментов, позволяя агенту активно подбирать наиболее подходящую их комбинацию под задачу, а не пассивно принимать предопределённый набор. |
Дополнительно
chapter4/docker-compose.ymlиchapter4/DOCKER_DEPLOYMENT.mdдают эталонное решение для контейнеризации и развёртывания упомянутых MCP-серверов инструментов.
Типы проектов¶
| Значок | Тип | Значение |
|---|---|---|
| ✅ | Автономный | Полный код в этом репозитории, запускается после настройки API-ключа |
| 📖 | Гайд по воспроизведению | Подробный документ, зависящий от внешних репозиториев через git clone |
| 🚧 | Проектный документ | Только архитектура/план реализации, рабочий код ещё в разработке |