main
LangGraph с узлом рефлексии
LangGraph‑агент, который пишет ответ на вопрос, затем отдельным LLM‑критиком оценивает качество (полнота, конкретика, отсутствие воды). При вердикте needs_revision узел rewrite улучшает текст (до max_rounds раз).
Стек
| Компонент | Технология |
|---|---|
| LLM | BroJS gpt-oss-20b |
| Граф | LangGraph StateGraph |
| Состояние | ReflectState (TypedDict) |
Установка
pip install -r requirements.txt
Добавь в .env:
JOURNAL_MCP_PAT=твой_токен
Запуск
python main.py
Структура проекта
| Файл | Назначение |
|---|---|
graph.py |
Узлы draft_answer, reflect, rewrite и сборка графа |
main.py |
Точка входа, три демо‑примера |
requirements.txt |
Зависимости |
Архитектура графа
START -> draft_answer -> reflect
|
ok ----------+-------> END
needs_revision & round < max_rounds -> rewrite -> reflect
needs_revision & round >= max_rounds -> END
Узлы
- draft_answer — первичный ответ на вопрос (5‑10 предложений)
- reflect — LLM‑критик: вердикт
ok/needs_revision+ замечания вcritique - rewrite — учитывает замечания, обновляет
draft, увеличиваетround
Состояние ReflectState
class ReflectState(TypedDict):
question: str # исходный вопрос
draft: str # текущий вариант ответа
critique: str # замечания критика
verdict: str # ok | needs_revision
round: int # текущий раунд (0 = первый черновик)
max_rounds: int # максимум раундов доработки
Description
Languages
Python
100%