Создание первого агента
Цели урока
После прохождения этого урока вы сможете:
- 1Сконфигурировать персонального AI-агента
- 2Настроить системный промпт и набор инструментов
- 3Определить монтируемые директории
- 4Понять жизненный цикл агента в контейнере
Создаём персонального ассистента
В этом уроке мы создадим персонального AI-агента, который управляет папкой Downloads: сортирует файлы, даёт сводку по новым документам, и отвечает на вопросы о содержимом файлов. Весь процесс настройки происходит через конфигурационный файл.
Конфигурация агента
Каждый агент в NanoClaw описывается в конфигурационном файле. Ключевые параметры: имя, системный промпт, доступные инструменты и монтированные директории.
{
"agents": [
{
"name": "download-manager",
"display_name": "Менеджер загрузок",
"system_prompt": "Ты — персональный ассистент для управления папкой загрузок. Ты можешь: 1) Просматривать список файлов, 2) Перемещать файлы в папки по категориям, 3) Давать сводку по содержимому PDF и текстовых документов, 4) Удалять дубликаты. Всегда спрашивай подтверждение перед удалением файлов.",
"tools": [
"list_files",
"move_file",
"read_file",
"delete_file",
"create_directory"
],
"mounts": [
{
"host": "~/Downloads",
"container": "/workspace/downloads",
"mode": "rw"
},
{
"host": "~/Documents/sorted",
"container": "/workspace/sorted",
"mode": "rw"
}
],
"container": {
"engine": "auto",
"memory_limit": "512m",
"network": false
}
}
]
}Разбор конфигурации
| Параметр | Назначение | Пример |
|---|---|---|
| name | Уникальный идентификатор агента | download-manager |
| display_name | Имя для отображения в WhatsApp | Менеджер загрузок |
| system_prompt | Инструкции для Claude | Ты — персональный ассистент... |
| tools | Доступные инструменты | list_files, move_file... |
| mounts | Монтированные директории хоста | ~/Downloads → /workspace/downloads |
| container.memory_limit | Лимит оперативной памяти | 512m |
| container.network | Доступ к интернету | false (отключён) |
Жизненный цикл агента
Пользователь отправляет сообщение в WhatsApp
NanoClaw создаёт изолированный контейнер для агента
Указанные директории монтируются в контейнер
Claude получает системный промпт и сообщение пользователя
Агент выполняет задачу, используя доступные инструменты
Результат отправляется обратно в WhatsApp
Контейнер сохраняется для продолжения диалога (или уничтожается после таймаута)
Тестовый диалог
Агент: «В папке Downloads 47 файлов: 12 PDF, 8 изображений, 15 ZIP-архивов, 7 документов Word, 5 прочих. Хотите, чтобы я рассортировал их по категориям?»
Вы: «Да, рассортируй»
Агент: «Создал папки: Documents, Images, Archives, Other. Переместил 47 файлов. Детали: Documents/ — 19 файлов (12 PDF + 7 DOCX), Images/ — 8 файлов, Archives/ — 15 ZIP, Other/ — 5 файлов. Всё готово!»
Обратите внимание: агенту намеренно отключён доступ к сети (network: false). Это дополнительная мера безопасности — агент, управляющий локальными файлами, не должен иметь возможности отправлять данные в интернет.
Начните с минимального набора инструментов и монтируемых директорий. Добавляйте новые возможности постепенно, когда убедитесь в стабильной работе агента.
