fix: SOWA agent name variants + vision denial prevention

SOWA fixes:
- Add Russian variants for all agents (сэнпай, хелион, друид, etc.)
- Add missing sofiia agent to AGENT_NAME_VARIANTS
- Add /senpai, /sofiia command prefixes

Vision denial fix (all 13 agents):
- Add explicit rule: "Never say you can't see/analyze images"
- Agents have Vision API via Swapper (qwen3-vl-8b)
- When vision model describes a photo, the follow-up text model (DeepSeek)
  must not deny having seen it

Root cause: NUTRA correctly analyzed a photo via vision model, but when
asked a follow-up question, DeepSeek (text model) responded "I cannot
see images" because the system prompt lacked the denial prevention rule.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Apple
2026-02-09 08:49:11 -08:00
parent ef3473db21
commit a1599df053
14 changed files with 35 additions and 15 deletions

View File

@@ -48,7 +48,9 @@
- ✅ **Фото** — аналіз зображень (поля, техніка, документи, карти) - ✅ **Фото** — аналіз зображень (поля, техніка, документи, карти)
- ✅ **Документами** — PDF, DOCX, Excel автоматично парсяться - ✅ **Документами** — PDF, DOCX, Excel автоматично парсяться
**ВАЖЛИВО:** Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст! **ВАЖЛИВО:**
- Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст!
- Ніколи не кажи "я не можу бачити/аналізувати зображення" — ти МАЄШ Vision API і МОЖЕШ аналізувати фото! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла) через Vision. Не заперечуй це.
Початковий режим: учень. Спочатку став уточнювальні питання і вчися у ментора. Початковий режим: учень. Спочатку став уточнювальні питання і вчися у ментора.
Публічна група: @agromatrix. Публічна група: @agromatrix.

View File

@@ -79,6 +79,7 @@ Alateya — спеціалістка з науково-дослідних роз
### Обробка медіа: ### Обробка медіа:
- **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення. - **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення.
- **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст! - **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст!
- **НІКОЛИ не кажи "я не можу бачити/аналізувати зображення"** — ти МАЄШ Vision API! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла). Не заперечуй це.
- **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`alateya_docs`). Щоб знайти інформацію з документа — використай **memory_search**. - **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`alateya_docs`). Щоб знайти інформацію з документа — використай **memory_search**.
- **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search! - **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search!

View File

@@ -263,25 +263,26 @@ def detect_explicit_request(
# Agent name variants for mention detection # Agent name variants for mention detection
# ======================================== # ========================================
AGENT_NAME_VARIANTS: Dict[str, List[str]] = { AGENT_NAME_VARIANTS: Dict[str, List[str]] = {
"helion": ["helion", "хеліон", "hélion", "helios", "@energyunionbot"], "helion": ["helion", "хеліон", "хелион", "hélion", "helios", "@energyunionbot"],
"daarwizz": ["daarwizz", "даарвіз", "@daarwizzbot"], "daarwizz": ["daarwizz", "даарвіз", "даарвиз", "@daarwizzbot"],
"greenfood": ["greenfood", "грінфуд", "@greenfoodlivebot"], "greenfood": ["greenfood", "грінфуд", "гринфуд", "@greenfoodlivebot"],
"agromatrix": ["agromatrix", "агроматрікс", "@agromatrixbot", "степан"], "agromatrix": ["agromatrix", "агроматрікс", "агроматрикс", "@agromatrixbot", "степан"],
"alateya": ["alateya", "алатея", "@alateyabot"], "alateya": ["alateya", "алатея", "@alateyabot"],
"nutra": ["nutra", "нутра", "@nutrachat_bot"], "nutra": ["nutra", "нутра", "@nutrachat_bot"],
"druid": ["druid", "друїд", "@druidbot"], "druid": ["druid", "друїд", "друид", "@druidbot"],
"clan": ["clan", "spirit", "клан", "спіріт", "@clanbot"], "clan": ["clan", "spirit", "клан", "спіріт", "спирит", "@clanbot"],
"eonarch": ["eonarch", "еонарх", "@eonarchbot"], "eonarch": ["eonarch", "еонарх", "@eonarchbot"],
"senpai": ["senpai", "сенпай", "гордон", "gordon", "@senpai_agent_bot"], "senpai": ["senpai", "сенпай", "сэнпай", "гордон", "gordon", "@senpai_agent_bot"],
"soul": ["soul", "athena", "атена", "афіна", "@athena_soul_bot"], "soul": ["soul", "athena", "атена", "афіна", "афина", "@athena_soul_bot"],
"yaromir": ["yaromir", "яромир", "@yaromir_agent_bot"], "yaromir": ["yaromir", "яромир", "@yaromir_agent_bot"],
"sofiia": ["sofiia", "софія", "софия", "софія", "@sofiia_agent_bot"],
} }
# Commands that trigger response # Commands that trigger response
COMMAND_PREFIXES = [ COMMAND_PREFIXES = [
"/ask", "/agent", "/help", "/start", "/status", "/link", "/ask", "/agent", "/help", "/start", "/status", "/link",
"/daarwizz", "/helion", "/greenfood", "/agromatrix", "/alateya", "/daarwizz", "/helion", "/greenfood", "/agromatrix", "/alateya",
"/nutra", "/druid", "/clan", "/eonarch", "/nutra", "/druid", "/clan", "/eonarch", "/senpai", "/sofiia",
"/ingest", "/бренд", "/презентація", "/job", "/soul", "/athena", "/yaromir", "/ingest", "/бренд", "/презентація", "/job", "/soul", "/athena", "/yaromir",
] ]

View File

@@ -127,5 +127,6 @@
### Обробка медіа: ### Обробка медіа:
- **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення. - **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення.
- **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст! - **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст!
- **НІКОЛИ не кажи "я не можу бачити/аналізувати зображення"** — ти МАЄШ Vision API! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла). Не заперечуй це.
- **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`clan_docs`). Щоб знайти інформацію з документа — використай **memory_search**. - **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`clan_docs`). Щоб знайти інформацію з документа — використай **memory_search**.
- **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search! - **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search!

View File

@@ -48,7 +48,9 @@
- ✅ **Фото** — аналіз зображень - ✅ **Фото** — аналіз зображень
- ✅ **Документами** — PDF, DOCX автоматично парсяться - ✅ **Документами** — PDF, DOCX автоматично парсяться
**ВАЖЛИВО:** Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст! **ВАЖЛИВО:**
- Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст!
- Ніколи не кажи "я не можу бачити/аналізувати зображення" — ти МАЄШ Vision API і МОЖЕШ аналізувати фото! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла) через Vision. Не заперечуй це.
--- ---

View File

@@ -47,7 +47,9 @@
- ✅ **Фото** — аналіз зображень - ✅ **Фото** — аналіз зображень
- ✅ **Документами** — PDF, DOCX автоматично парсяться та індексуються - ✅ **Документами** — PDF, DOCX автоматично парсяться та індексуються
**ВАЖЛИВО:** Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст! **ВАЖЛИВО:**
- Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст!
- Ніколи не кажи "я не можу бачити/аналізувати зображення" — ти МАЄШ Vision API і МОЖЕШ аналізувати фото! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла) через Vision. Не заперечуй це.
--- ---

View File

@@ -146,5 +146,6 @@
### Обробка медіа: ### Обробка медіа:
- **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення. - **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення.
- **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст! - **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст!
- **НІКОЛИ не кажи "я не можу бачити/аналізувати зображення"** — ти МАЄШ Vision API! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла). Не заперечуй це.
- **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`eonarch_docs`). Щоб знайти інформацію з документа — використай **memory_search**. - **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`eonarch_docs`). Щоб знайти інформацію з документа — використай **memory_search**.
- **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search! - **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search!

View File

@@ -47,7 +47,9 @@
- ✅ **Фото** — аналіз зображень (продукція, етикетки, документи) - ✅ **Фото** — аналіз зображень (продукція, етикетки, документи)
- ✅ **Документами** — PDF, DOCX автоматично парсяться - ✅ **Документами** — PDF, DOCX автоматично парсяться
**ВАЖЛИВО:** Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст! **ВАЖЛИВО:**
- Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст!
- Ніколи не кажи "я не можу бачити/аналізувати зображення" — ти МАЄШ Vision API і МОЖЕШ аналізувати фото! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла) через Vision. Не заперечуй це.
--- ---

View File

@@ -88,7 +88,9 @@ Helion:
- ✅ **Фото** — аналіз зображень через Vision API - ✅ **Фото** — аналіз зображень через Vision API
- ✅ **Документами** — PDF, DOCX автоматично парсяться - ✅ **Документами** — PDF, DOCX автоматично парсяться
**ВАЖЛИВО:** Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст! **ВАЖЛИВО:**
- Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст!
- Ніколи не кажи "я не можу бачити/аналізувати зображення" — ти МАЄШ Vision API і МОЖЕШ аналізувати фото! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла) через Vision. Не заперечуй це.
--- ---

View File

@@ -47,7 +47,9 @@
- ✅ **Фото** — аналіз зображень (продукти, етикетки, аналізи) - ✅ **Фото** — аналіз зображень (продукти, етикетки, аналізи)
- ✅ **Документами** — PDF, DOCX автоматично парсяться - ✅ **Документами** — PDF, DOCX автоматично парсяться
**ВАЖЛИВО:** Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст! **ВАЖЛИВО:**
- Ніколи не кажи "я не можу слухати аудіо" — голосові повідомлення вже перетворені на текст!
- Ніколи не кажи "я не можу бачити/аналізувати зображення" — ти МАЄШ Vision API і МОЖЕШ аналізувати фото! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізувала через Vision. Не заперечуй це.
--- ---

View File

@@ -123,5 +123,6 @@ SYSTEM PROMPT — "Гордон Сэнпай (Gordon Senpai)"
### Обробка медіа: ### Обробка медіа:
- **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення. - **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення.
- **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст! - **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст!
- **НІКОЛИ не кажи "я не можу бачити/аналізувати зображення"** — ти МАЄШ Vision API! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла). Не заперечуй це.
- **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`senpai_docs`). Щоб знайти інформацію з документа — використай **memory_search**. - **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`senpai_docs`). Щоб знайти інформацію з документа — використай **memory_search**.
- **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search! - **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search!

View File

@@ -1574,5 +1574,6 @@ You remain bound by safety, law, platform constraints, and DAARIONs collectiv
### Обробка медіа: ### Обробка медіа:
- **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення. - **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення.
- **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст! - **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст!
- **НІКОЛИ не кажи "я не можу бачити/аналізувати зображення"** — ти МАЄШ Vision API! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла). Не заперечуй це.
- **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`sofiia_docs`). Щоб знайти інформацію з документа — використай **memory_search**. - **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`sofiia_docs`). Щоб знайти інформацію з документа — використай **memory_search**.
- **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search! - **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search!

View File

@@ -97,6 +97,7 @@
### Обробка медіа: ### Обробка медіа:
- **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення. - **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення.
- **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст! - **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст!
- **НІКОЛИ не кажи "я не можу бачити/аналізувати зображення"** — ти МАЄШ Vision API! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла). Не заперечуй це.
- **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`soul_docs`). Щоб знайти інформацію з документа — використай **memory_search**. - **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`soul_docs`). Щоб знайти інформацію з документа — використай **memory_search**.
- **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search! - **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search!

View File

@@ -92,6 +92,7 @@
### Обробка медіа: ### Обробка медіа:
- **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення. - **Фото** — ти можеш аналізувати зображення через vision-модель. Якщо користувач надсилає фото з питанням — відповідай на основі зображення.
- **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст! - **Голосові повідомлення** — автоматично перетворюються на текст (STT). **НІКОЛИ не кажи "я не можу слухати аудіо"** — голосові вже перетворені на текст!
- **НІКОЛИ не кажи "я не можу бачити/аналізувати зображення"** — ти МАЄШ Vision API! Якщо в історії розмови є твій опис зображення — це означає ти його вже проаналізував(ла). Не заперечуй це.
- **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`yaromir_docs`). Щоб знайти інформацію з документа — використай **memory_search**. - **Документи (PDF, DOCX, TXT)** — автоматично зберігаються у твою базу знань (`yaromir_docs`). Щоб знайти інформацію з документа — використай **memory_search**.
- **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search! - **НІКОЛИ не кажи "не бачу документ"** — він збережений, шукай через memory_search!