Detеrministic on LLM
В графе агентов разделять узлы на детерминированные (pure Python) и LLM-узлы. LLM используется только там где нужна интерпретация / семантическое понимание.
См. также концепт ../concepts/deterministic-on-exceptions.
Когда что использовать
| Задача | Где |
|---|---|
| Парсинг JSON / валидация формата | Code |
| Подсчёт метрики (count, %, average) | Code |
| Применение бизнес-правил из spec'а | Code (rule engine) |
| Понимание текста "что хотел сказать пользователь" | LLM |
| Классификация free-text по семантике | LLM |
| Извлечение entities (имена, даты, ID) | LLM (или code если паттерн жёсткий) |
| Сравнение релевантности двух текстов | LLM (или embedding similarity) |
| Routing между узлами на основе условия | Code (на state) |
Паттерн в LangGraph
# Code node — pure function def jira_quality_check(state): issues = state["issues"] flagged = [] for i in issues: if not i.description: flagged.append((i, "no_description")) if len(i.status_changes) > 5 and i.age_days < 1: flagged.append((i, "status_pumping")) # ... другие правила return {"flagged": flagged} # LLM node — только для semantic def semantic_quality_check(state): return llm.with_structured_output(SemanticVerdict).invoke( "Оцени релевантность acceptance criteria к description: ..." ) # Router — на основе state, не LLM def route(state): if len(state["flagged"]) > 10: return "needs_human_review" return "auto_apply"
Почему это важно
- Cost: LLM-вызов = деньги. Каждый детерминируемый узел не идёт в LLM
- Latency: code-node = millisecond, LLM = секунды
- Predictability: code детерминирован — те же inputs = те же outputs. LLM варьируется
- Compliance: в банке (Альфа) и в KSA enterprise — LLM на критичных решениях не пройдёт ревью. Если решение основано на чётком правиле — это аудитируемо
Anti-pattern
# Плохо: использовать LLM для подсчёта prompt = f"Сколько у этого эпика подзадач: {epic_json}" # Хорошо: count = len(epic.children)
Связано
Metadata
- title
- Детерминированная логика + LLM только для интерпретации
- tags
- ['algorithm', 'architecture-pattern', 'kognitos']
- created
- 2026-06-30