Участники чата, промпты в файлах, личности только из кода
- Бот запоминает участников (имя, фамилия, ник, активность) и 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:
13
README.md
13
README.md
@@ -7,11 +7,18 @@ Telegram-бот для групповых чатов с AI-личностями.
|
||||
- Отвечает **только администраторам** из `ADMIN_IDS`, остальных молча игнорирует.
|
||||
- **Вопросы**: `/ask <вопрос>`, упоминание `@бота`, ответ на сообщение бота, в личке — любое сообщение.
|
||||
- **Контекст из чата**: бот сохраняет сообщения чата в SQLite (последние `HISTORY_LIMIT` на чат). Попросите «посмотри последние 100 сообщений и перескажи» — агент сам вызовет инструмент `read_chat_messages` и загрузит переписку в контекст. Если задать `/ask` ответом на чьё-то сообщение, оно тоже попадёт в контекст.
|
||||
- **Личности**: у каждого чата своя активная личность. Встроенные: Болтун, Эксперт, Философ, Саркастик, Пират.
|
||||
- **Участники**: бот запоминает имя, фамилию и ник каждого, кто пишет в чат (и тех, кого упомянули по имени-ссылке). Можно спрашивать «что писал @ivan?», «что думает Иван про выручку?», «кто тут самый активный?» — агент найдёт человека по нику или имени (инструменты `list_chat_members`, `read_member_messages`) и обращается к людям по имени.
|
||||
- **Личности**: задаются в коде, из чата не редактируются. Сейчас одна — `boltun` (Dirty D).
|
||||
- `/personas` — список и выбор кнопками
|
||||
- `/persona <id>` — выбрать
|
||||
- `/persona_add <id> <описание характера>` — добавить/изменить свою
|
||||
- `/persona_del <id>` — удалить свою
|
||||
|
||||
## Промпты и личности
|
||||
|
||||
- `prompts/system.md` — общие правила бота (формат ответа, инструменты). Читается при старте.
|
||||
- `prompts/personas/<id>.md` — промпт личности; список личностей (id и название) — в `src/constants/personas.ts`.
|
||||
- `pnpm seed` синхронизирует личности с БД (добавляет, обновляет, удаляет лишние). В Docker seed выполняется при каждом старте контейнера, локально — в `pnpm dev`.
|
||||
|
||||
Поменял промпт — перезапусти бота (или `pnpm seed` + перезапуск).
|
||||
|
||||
> Telegram Bot API не отдаёт историю чата задним числом: бот видит только сообщения, пришедшие после его добавления. Чтобы он видел все сообщения группы, отключите privacy mode в @BotFather (`/setprivacy` → Disable) **до** добавления в группу или сделайте бота админом группы.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user