telegram-cli-bot/AI_AGENT_TOOLS.md

261 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🤖 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 | Триггер "каждый день" |
### Приоритеты
Если сообщение подходит под несколько инструментов:
1. **SSH** (системные задачи) — высший приоритет
2. **Cron** (планирование)
3. **Поиск** (информация)
4. **RSS** (новости)
---
## 📦 Доступные инструменты
| Инструмент | Назначение | Триггеры |
|------------|------------|----------|
| `ddgs_search` | Поиск в интернете | "найди", "поиск", "узнай", "как сделать" |
| `rss_reader` | Чтение RSS лент | "новости", "почитай", "лента", "IT новости" |
| `ssh_executor` | SSH-команды | "проверь сервер", "выполни команду", "uptime" |
| `cron_manager` | Задачи по расписанию | "напомни", "запланируй", "каждый день" |
---
## 🔧 Настройка
### Добавление сервера в SSH
Открой `bot/tools/ssh_tool.py` и добавь:
```python
self.servers['myserver'] = ServerConfig(
host='192.168.1.100',
port=22,
username='user',
password='pass' # или client_keys=['/path/to/key']
)
```
### Добавление триггеров
Открой `bot/ai_agent.py` и добавь в соответствующий список:
```python
SEARCH_TRIGGERS = [
# ... существующие ...
ой_триггер' # новый триггер
]
```
---
## 🧪 Тестирование
Проверка работы AI-агента:
```bash
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
```
---
## 🚀 Запуск бота
```bash
cd ~/git/telegram-cli-bot
./run.sh
```
Или вручную:
```bash
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
---
## 🎯 Следующие шаги
**Можно добавить:**
1. **Веб-скрапинг** — парсинг конкретных сайтов
2. **Мониторинг** — авто-проверка метрик сервера
3. **Уведомления** — отправка уведомлений по расписанию
4. **Интеграции** — GitHub API, Docker API, etc.
---
## ⚠️ Важно
- Бот персональный — нет ролевой модели и ограничений
- Инструменты доступны **всегда** в AI-режиме
- Бот **сам решает** когда использовать инструмент
- Логи пишутся в `bot.log`
**Приятного использования! 🚀**