Repository navigation
Architecture
Nereus Bot edited this page Aug 11, 2026
·
2 revisions
main.py ──► src/nereus/core/graph.py (LangGraph StateGraph)
│
┌────┴────┐
│ NereusState │ (pydantic TypedDict)
└────┬────┘
┌────────┼────────┐
│ Coach │ Tutor │ Examiner │ (agents/* + llu/*.py)
│ (roadmap + diag)│ (materials)│ (assessment)│
└────────┼────────┘
▼
llm/inference.py (StructuredInferenceClient, retry x2)
│
LLM_PROVIDER = stub | openrouter
LLM_PROVIDER=stub— in‑memory, без сети (тесты / CI / демо).LLM_PROVIDER=openrouter— chat + embeddings через OpenRouter.
-
Automaton —
src/nereus/core/graph.pyсобираетStateGraphи фиксирует allowlist сериализуемых объектов;core/factory.py:build_nereus_graph()— централизованная сборка. -
LLM runtime —
llm/prompts.py(реестр ролей),llm/schema.py(Pydantic‑контракты ответов),llm/params.py(per‑role),llm/inference.py(клиент с ретраями,LLMUnavailableError). -
Память —
core/session.py:LearningSession(агрегация прогресса и слабых мест,dump/load,trim_context),core/context.pytruncate/summarize. -
RAG —
db/chroma.py:ChromaStore(upsert/search по темам),llm/retriever.py, retrieval‑узел в графе. -
Хранилище пользователей —
core/user_store.py:UserStore(SQLite + memory) иUserStoreRedis(Redis hash, graceful fallback на memory); фабрикаbuild_user_store()диспатчит наUSER_STORAGE. -
Чекпоинтер —
core/persistence.py:build_checkpointer(memory/sqlite/redis) для cross‑restart resume в CLI и Chainlit. -
UI —
src/nereus/ui/app.py(Chainlit).
Все пути/модели/таймауты читаются через Pydantic‑settings
(src/nereus/config/settings.py); переменные можно переопределять через .env
(см. .env.example и Development).