8.3 KiB
8.3 KiB
🤖 AI-Агент с Автономными Инструментами
✅ Реализовано
Интеграция завершена успешно! Теперь твой бот умеет самостоятельно решать, когда использовать инструменты — без прямых команд!
📋 Что реализовано
1. Улучшенный AI-агент (bot/ai_agent.py)
Добавлено:
- ✅ Расширенные триггеры для всех инструментов
- ✅ Приоритет инструментов: SSH > Cron > Поиск > RSS
- ✅ Контекстная чувствительность (оценка уверенности)
- ✅ Логирование использования инструментов
- ✅ Поддержка пользовательских предпочтений
2. SSH-инструмент (bot/tools/ssh_tool.py)
Возможности:
- ✅ Подключение к серверам по SSH (asyncssh)
- ✅ Выполнение команд с таймаутом
- ✅ Красивое форматирование вывода
- ✅ Конфигурация серверов (по умолчанию: 192.168.1.54)
Пример:
Ты: Проверь нагрузку на сервере
Бот: 🖥️ SSH: home
Команда: uptime
Вывод: 14:30:00 up 10 days, load average: 0.15
✅ Успешно
3. Cron-инструмент (bot/tools/cron_tool.py)
Возможности:
- ✅ Создание задач по расписанию
- ✅ Поддержка форматов:
*/5 * * * *,@hourly,@daily,@weekly - ✅ Просмотр, удаление, включение/выключение задач
- ✅ Немедленный запуск задач
Пример:
Ты: Напомни каждый день делать бэкап
Бот: ⏰ Ваши задачи:
✅ Daily Backup
Команда: /home/user/backup.sh
Расписание: @daily
Следующий запуск: 2024-03-11 00:00:00
4. Обновлённый format_tool_result в bot.py
Добавлено:
- ✅ Форматирование для SSH-команд
- ✅ Форматирование для Cron-задач
- ✅ Обработка ошибок с красивым выводом
🎯 Как это работает
Автономное использование инструментов
Бот сам понимает, когда нужен инструмент:
| Твоя фраза | Бот использует | Почему |
|---|---|---|
| "Найди информацию про Python" | 🔍 DDGS Search | Триггер "найди" |
| "Почитай новости IT" | 📰 RSS Reader | Триггер "новости" |
| "Проверь сервер" | 🖥️ SSH Executor | Триггер "проверь сервер" |
| "Напомни каждый день" | ⏰ Cron Manager | Триггер "каждый день" |
Приоритеты
Если сообщение подходит под несколько инструментов:
- SSH (системные задачи) — высший приоритет
- Cron (планирование)
- Поиск (информация)
- RSS (новости)
📦 Доступные инструменты
| Инструмент | Назначение | Триггеры |
|---|---|---|
ddgs_tool |
Поиск в интернете | "найди", "поиск", "узнай", "как сделать" |
rss_tool |
Чтение RSS лент | "новости", "почитай", "лента", "IT новости" |
ssh_tool |
SSH-команды | "проверь сервер", "выполни команду", "uptime" |
cron_tool |
Задачи по расписанию | "напомни", "запланируй", "каждый день" |
🔧 Настройка
Добавление сервера в SSH
Открой bot/tools/ssh_tool.py и добавь:
self.servers['myserver'] = ServerConfig(
host='192.168.1.100',
port=22,
username='user',
password='pass' # или client_keys=['/path/to/key']
)
Добавление триггеров
Открой bot/ai_agent.py и добавь в соответствующий список:
SEARCH_TRIGGERS = [
# ... существующие ...
'мой_триггер' # новый триггер
]
🧪 Тестирование
Проверка работы AI-агента:
cd ~/git/telegram-cli-bot
python3 -c "
import asyncio
from bot.ai_agent import ai_agent
async def test():
tests = [
'Найди информацию про Python',
'Почитай новости',
'Проверь нагрузку на сервере',
'Напомни каждый день',
'Привет!'
]
for msg in tests:
decision = await ai_agent.decide(msg)
print(f'{msg}: {decision.tool_name or \"нет инструмента\"} (conf={decision.confidence})')
asyncio.run(test())
"
Ожидаемый результат:
Найди информацию про Python: ddgs_search (conf=0.9)
Почитай новости: rss_reader (conf=0.9)
Проверь нагрузку на сервере: ssh_executor (conf=0.9)
Напомни каждый день: cron_manager (conf=0.85)
Привет!: нет инструмента (conf=0.0)
📝 Примеры использования
🔍 Поиск в интернете
Ты: Найди руководство по async/await в Python
Бот: 🔍 Результаты поиска:
1. **Python Async/Await Documentation**
https://docs.python.org/3/library/asyncio.html
asyncio is a library to write concurrent code ...
📰 Чтение новостей
Ты: Почитай новости Linux
Бот: 📰 Последние новости:
1. Linux Kernel 6.8 Released
📅 2024-03-10 14:30:00
🔗 https://...
🖥️ SSH-команды
Ты: Сколько места на диске?
Бот: 🖥️ SSH: home
Команда: df -h
Вывод:
Filesystem Size Used Avail
/dev/sda1 100G 50G 50G
✅ Успешно
⏰ Cron-задачи
Ты: Запланируй бэкап каждый день в 3 ночи
Бот: ✅ Задача добавлена:
• ID: 1
• Название: Daily Backup
• Расписание: 0 3 * * *
• Следующий запуск: 2024-03-11 03:00:00
🚀 Запуск бота
cd ~/git/telegram-cli-bot
./run.sh
Или вручную:
python3 bot.py
📊 Статистика
Файлы изменены/созданы:
- ✅
bot/ai_agent.py— улучшенный AI-агент - ✅
bot/tools/ssh_tool.py— SSH-инструмент (новый) - ✅
bot/tools/cron_tool.py— Cron-инструмент (новый) - ✅
bot/tools/__init__.py— реестр (обновлён) - ✅
bot.py— форматирование результатов (обновлён) - ✅
TOOLS.md— документация (обновлена)
Строк кода добавлено: ~600+
Инструментов доступно: 4
🎯 Следующие шаги
Можно добавить:
- Веб-скрапинг — парсинг конкретных сайтов
- Мониторинг — авто-проверка метрик сервера
- Уведомления — отправка уведомлений по расписанию
- Интеграции — GitHub API, Docker API, etc.
⚠️ Важно
- Бот персональный — нет ролевой модели и ограничений
- Инструменты доступны всегда в AI-режиме
- Бот сам решает когда использовать инструмент
- Логи пишутся в
bot.log
Приятного использования! 🚀