feat: add training group support in Gateway

- Added TRAINING_GROUP_IDS constant for Agent Preschool group
- Gateway now adds "[РЕЖИМ НАВЧАННЯ]" prefix for training groups
- Agents will respond to all messages in training groups

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Apple
2026-02-03 08:03:07 -08:00
parent 8907fb110c
commit c8698f6a1d
2 changed files with 28 additions and 7 deletions

View File

@@ -25,10 +25,11 @@ Helion:
## 0.0.1 ПРАВИЛА ДЛЯ ГРУП (ОБОВ'ЯЗКОВО!)
**ВИКЛЮЧЕННЯ — НАВЧАЛЬНА ГРУПА "Agent Preschool Daarion.city":**
- У цій групі ти в РЕЖИМІ НАВЧАННЯ
- Відповідай на ВСІ повідомлення, навіть без згадки
**ВИКЛЮЧЕННЯ — НАВЧАЛЬНА ГРУПА (chat_id: -1003556680911):**
- Якщо ти в групі "Agent Preschool Daarion.city" — ти в РЕЖИМІ НАВЧАННЯ
- Відповідай на ВСІ повідомлення в цій групі, навіть без згадки
- Це тренувальний полігон для агентів
- Будь активним, дружнім, відповідай коротко
- Будь активним учасником діалогу
**У ІНШИХ ГРУПОВИХ ЧАТАХ ВІДПОВІДАЙ ТІЛЬКИ якщо:**

View File

@@ -34,6 +34,11 @@ logger = logging.getLogger(__name__)
TELEGRAM_MAX_MESSAGE_LENGTH = 4096
TELEGRAM_SAFE_LENGTH = 3500 # Leave room for formatting
# Training groups - agents respond to ALL messages without mention requirement
TRAINING_GROUP_IDS = {
"-1003556680911", # Agent Preschool Daarion.city
}
# Brand stack services
BRAND_INTAKE_URL = os.getenv("BRAND_INTAKE_URL", "http://brand-intake:9211").rstrip("/")
BRAND_REGISTRY_URL = os.getenv("BRAND_REGISTRY_URL", "http://brand-registry:9210").rstrip("/")
@@ -1644,11 +1649,19 @@ async def handle_telegram_webhook(
# Build message with conversation context
local_history = memory_context.get("local_context_text", "")
# Check if this is a training group
is_training_group = str(chat_id) in TRAINING_GROUP_IDS
training_prefix = ""
if is_training_group:
training_prefix = "[РЕЖИМ НАВЧАННЯ - відповідай на це повідомлення, ти в навчальній групі Agent Preschool]\n\n"
logger.info(f"🎓 Training mode activated for chat {chat_id}")
if local_history:
# Add conversation history to message for better context understanding
message_with_context = f"[Контекст розмови]\n{local_history}\n\n[Поточне повідомлення від {username}]\n{text}"
message_with_context = f"{training_prefix}[Контекст розмови]\n{local_history}\n\n[Поточне повідомлення від {username}]\n{text}"
else:
message_with_context = text
message_with_context = f"{training_prefix}{text}"
# Build request to Router
system_prompt = agent_config.system_prompt
@@ -3019,11 +3032,18 @@ async def _old_helion_telegram_webhook(update: TelegramUpdate):
# Build message with conversation context
local_history = memory_context.get("local_context_text", "")
# Check if this is a training group
is_training_group = str(chat_id) in TRAINING_GROUP_IDS
training_prefix = ""
if is_training_group:
training_prefix = "[РЕЖИМ НАВЧАННЯ - відповідай на це повідомлення, ти в навчальній групі Agent Preschool]\n\n"
if local_history:
# Add conversation history to message for better context understanding
message_with_context = f"[Контекст розмови]\n{local_history}\n\n[Поточне повідомлення від {username}]\n{text}"
message_with_context = f"{training_prefix}[Контекст розмови]\n{local_history}\n\n[Поточне повідомлення від {username}]\n{text}"
else:
message_with_context = text
message_with_context = f"{training_prefix}{text}"
# Build request to Router with Helion context
router_request = {