Commit graph

4 commits

Author SHA1 Message Date
Simbiot Harness
1745e6c1c8 адресация: бот давно молчит в чате — строже порог и подсказка модели («тебе» — другому человеку)
Кейсы «Правления» 17.10: «Ща обновлю тебе до премиум» (Alex — Vlad'у,
18:40, P=0.68) и «Так проверь пока опен роутер» (Alex — Vlad'у, 14:56,
P=0.62) — бот молчал 2 и 6 часов, но «тебе/проверь» перевесило, и Коди
встрял («О, спасибо! 🙏…», «Проверил OpenRouter ✅…»).
- bot_idle_minutes: молчание бота в чате по журналу исходящих/ответам;
- бот писал ≤ 10 мин назад — порог 0.5 и прежний промпт (подсказка «люди
  ещё говорят с Коди» завышала P — пробовал, откатил);
- бот молчит дольше — порог 0.6 (SIMBIOT_ADDRESSING_MIN_P_IDLE) и в
  контексте модели: «Коди не участвует в текущем разговоре, «ты/тебе» без
  имени — скорее другому человеку».
Реплей 111 спорных решений правления за 17.10: оба встревания ушли
(P 0.68→0.18, 0.62→0.31), обращения к молчавшему боту сохранились
(«Можешь зайти на клоуд…» 0.77, «Чекни опен роутер генерацию…» 0.80).
Тест: test_addressing 35 PASS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 18:48:06 +00:00
Simbiot Harness
16d2b438bd адресация: имя бота — только звательное обращение; разговор О Коди — не повод отвечать
Кейс 2026-10-17 07:40: фильтр отсёк «Блять)»/«Продолжает)», но правило
«имя в тексте = обращение» ответило на «Так теперь Коди должен отвечать
когда его тегают…» и «Ещё и забыл что он Коди)» — люди обсуждали бота.
- детерминированно — только звательное: «Коди, …», «Коди!», «…, Коди»;
  имя посреди фразы — серая зона;
- промпт decision-модели: «Коди» = Cody, речь о нём в третьем лице —
  не обращение. Пробы: 8/8 (о боте ≤ 0.14, к боту ≥ 0.96); реплей
  истории правления — оба утренних ложных ответа ушли (0.40/0.13),
  разговор Alex с ботом без тега по-прежнему распознаётся;
- мандат мин-уровня: «Коди» в чате — это ты (бот писал о себе в
  третьем лице: «Коди … на вашей стороне»).
Тест: test_addressing 31 PASS; полный набор — без регрессий.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 07:46:20 +00:00
Simbiot Harness
3ff504143a адресация: группы без chat_type по chat_id<0; облако decision — таймаут 30 с, кулдаун 60 с
- старые записи инбокса без chat_type (до t-261013113629) считались
  личкой и обходили фильтр адресации — группа теперь и по chat_id < 0;
- утренний холодный старт clef:27b в облаке (> 15 с) взводил
  предохранитель на 5 минут → ответы от CPU-nimble по 10 с: облако
  ждём до 30 с, его кулдаун 60 с (локальной — по-прежнему 5 минут).
Реплей реальной истории «Правления» (62 сообщения, бот отвечает только
на адресованное, облако ~0.66 с): приветствия и переписка людей между
собой отфильтрованы; разговор Alex с ботом без упоминания распознан
по контексту; спорные — 2–3 в каждую сторону, «Коди»/@/reply — всегда.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 07:13:35 +00:00
Simbiot Harness
9d13e59742 адресация в группах: Коди больше не встревает в чужие разговоры
Кейс «Правления»: бот отвечал на каждое сообщение группы — «Доброе
утро!», реплики Alex для Vlad, ответы Vlad на вопросы Alex: фильтра не
было, любое сообщение разрешённого человека будило минутный LLM.

harness/addressing.py — триаж ДО гейта, без LLM:
- личка/портал/агенты — как раньше;
- группа, детерминированно: @juno42bot, reply на бота, имя (Коди/Cody,
  SIMBIOT_BOT_NAMES) → боту; reply на человека → не боту;
- серая зона — decision-модель, choice «кому адресовано»: бот / человек /
  группа; P(бот) ≥ 0.5 (SIMBIOT_ADDRESSING_MIN_P). В истории — только
  ответы бота на адресованное: «встревания» сбивали модель. Замер на
  истории правления: адресованное 0.93, остальные 14 ≤ 0.22 (noul с
  полной историей давал 4 ошибки). Модель недоступна → молчим.
Вердикт: MessageTriaged{addressed} (+ 👀 только тогда) или
MessageIgnored{not_addressed}. Поллер пишет reply_to_user_id/is_bot и
mentions_bot; 👀 в группах ставит триаж, а не приём.
Тест: test_addressing 25 PASS; полный набор — без регрессий.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 07:04:56 +00:00