telegram-cli-bot/SYSTEM_PROMPT.md

6.2 KiB
Raw Blame History

Системный промпт для Telegram CLI Bot

📋 Обзор

Системный промпт — это набор инструкций для Qwen AI, который определяет:

  • Роль и задачи бота
  • Доступные инструменты (capabilities)
  • Правила автономного использования инструментов
  • Форматы ответов

🏗️ Архитектура

system_prompt.md          # Файл с системным промптом
    ↓
qwen_integration.py       # Загружает промпт при инициализации
    ↓
bot.py (handle_ai_task)   # Добавляет промпт к каждому запросу
    ↓
Qwen Code CLI             # Получает промпт + контекст + запрос

🔧 Как это работает

1. Загрузка промпта

При первом запросе к Qwen менеджер загружает промпт из файла:

system_prompt = qwen_manager.load_system_prompt()

Промпт кэшируется в памяти для последующих запросов.

2. Формирование полного запроса

Каждый запрос к Qwen включает:

[СИСТЕМНЫЙ ПРОМПТ]
    ↓
[КОНТЕКСТ ПАМЯТИ] (из ChromaDB RAG)
    ↓
[ИСТОРИЯ ДИАЛОГА] (последние 20 сообщений)
    ↓
[ЗАПРОС ПОЛЬЗОВАТЕЛЯ]

3. Автономное использование инструментов

AI агент анализирует запрос пользователя и сам решает какой инструмент использовать:

Триггеры Инструмент Пример
"найди", "погугли", "узнай" ddgs_search "найди информацию про asyncio"
"новости", "rss", "лента" rss_reader "что нового в Linux?"
"выполни команду", "ssh" ssh_executor "проверь нагрузку на сервере"
"напомни", "запланируй" cron_manager "напомни каждый день в 9 утра"

📁 Структура system_prompt.md

Разделы промпта:

  1. Роль и задачи — кто такой бот, для кого работает
  2. Доступные инструменты — описание каждого инструмента:
    • Название и функция
    • Когда использовать
    • Параметры
    • Примеры вызова
  3. Принципы работы — автономность, контекст, прозрачность, приоритеты
  4. Форматы ответов — как оформлять результаты
  5. Важные правила — технические ограничения, форматирование
  6. Примеры диалогов — few-shot prompting для лучшего понимания

🎯 Приоритеты инструментов

При принятии решения AI следует приоритету:

  1. SSH — явные системные задачи
  2. Cron — планирование и напоминания
  3. Поиск (DDGS) — свежие данные из интернета
  4. RSS — новости из подписанных лент

🔄 Обновление промпта

Для изменения поведения бота:

  1. Отредактируйте system_prompt.md
  2. Перезапустите бота (или оставьте как есть — кэш обновится при следующем запросе)
  3. Для сброса кэша: qwen_manager._system_prompt = None

💡 Советы по настройке

Добавление нового инструмента

  1. Опишите инструмент в разделе "Доступные инструменты":

    ### N. Название (`tool_name`)
    
    **Назначение:** ...
    
    **Когда использовать:**
    - Триггер 1
    - Триггер 2
    
    **Параметры:**
    - `param1` (type): описание
    
    **Пример вызова:**
    ```python
    tool_name(param1="value")
    
    
    
  2. Добавьте триггеры в bot/ai_agent.py:

    NEW_TOOL_TRIGGERS = [риггер1', риггер2']
    
  3. Реализуйте логику проверки в _should_use_new_tool()

  4. Добавьте обработку в decide()

Изменение поведения

  • Более агрессивное использование инструментов: уменьшите пороги confidence в ai_agent.py
  • Более консервативное: увеличьте пороги или добавьте больше условий
  • Изменение формата ответов: отредактируйте раздел "Формат ответов" в промпте

📊 Мониторинг

Для отслеживания использования инструментов:

# История использования инструментов
ai_agent.get_tool_history(limit=10)

# Предпочтения пользователя
ai_agent.get_user_preference(user_id, 'preferred_tool')

⚠️ Ограничения

  • Размер контекста: до 200K токенов (безопасный лимит)
  • Время выполнения: 5 минут максимум на задачу
  • Кэширование: системный промпт кэшируется в памяти менеджера

📈 Версии

Версия Изменения
0.5.3 Базовая реализация системного промпта
0.5.2 AI агент с авто-выбором инструментов
0.5.1 Интеграция RSS reader
0.5.0 Интеграция DDGS search

Документация для разработчиков Telegram CLI Bot