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

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