Детерминированная логика + LLM только для интерпретации / home / algorithms / deterministic-on-llm
algorithmarchitecture-patternkognitos

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"

Почему это важно

Anti-pattern

# Плохо: использовать LLM для подсчёта
prompt = f"Сколько у этого эпика подзадач: {epic_json}"
# Хорошо:
count = len(epic.children)

Связано

Metadata
title
Детерминированная логика + LLM только для интерпретации
tags
['algorithm', 'architecture-pattern', 'kognitos']
created
2026-06-30