Участники чата, промпты в файлах, личности только из кода

- Бот запоминает участников (имя, фамилия, ник, активность) и ID автора каждого сообщения
- Упоминания в вопросе (@ник и по имени-ссылке) передаются модели с данными участника
- Новые инструменты агента: list_chat_members, read_member_messages (поиск по нику/имени)
- Бот обращается к людям по имени
- Промпты вынесены в prompts/system.md и prompts/personas/<id>.md
- Личности больше не редактируются из чата: скрипт seed синхронизирует их с БД при старте
- Оставлена одна личность boltun (Dirty D)
- Миграция старых баз: колонка messages.user_id

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
yunogasai
2026-09-24 18:42:23 +02:00
parent 99c4660da9
commit 26da4bb5ee
35 changed files with 567 additions and 241 deletions

View File

@@ -2,8 +2,6 @@ export const BOT_COMMANDS = [
{ command: "ask", description: "Задать вопрос боту" },
{ command: "personas", description: "Список личностей и выбор" },
{ command: "persona", description: "Выбрать личность: /persona <id>" },
{ command: "persona_add", description: "Добавить личность: /persona_add <id> <описание>" },
{ command: "persona_del", description: "Удалить пользовательскую личность: /persona_del <id>" },
{ command: "help", description: "Справка" },
];
@@ -15,12 +13,11 @@ export const helpText = (username: string) => `Я отвечаю только а
• в личке — просто напиши
Ответь командой /ask на чьё-то сообщение — я учту его. Попроси «посмотри последние 50 сообщений» — я прочитаю переписку чата.
Участников узнаю по @нику и по имени: «что писал Иван?», «что думает @ivan про это?».
Чтобы я видел переписку в группе, отключи privacy mode в @BotFather (/setprivacy → Disable) или сделай меня админом группы.
Личности:
• /personas — список и выбор кнопками
• /persona <id> — выбрать
• /persona_add <id> <описание характера> — добавить или изменить пользовательскую
• /persona_del <id> — удалить пользовательскую
/whoami — узнать свой Telegram ID (в личке).`;