Skip to content

Reliability layer, evals и README как engineering case-study (v1.1.0)#1

Merged
Refusned merged 4 commits into
mainfrom
feat/reliability-evals-docs
May 21, 2026
Merged

Reliability layer, evals и README как engineering case-study (v1.1.0)#1
Refusned merged 4 commits into
mainfrom
feat/reliability-evals-docs

Conversation

@Refusned
Copy link
Copy Markdown
Owner

Что в PR

Релиз v1.1.0 — production reliability и проверяемость поведения. Существующее поведение бота не меняется: новый код подключается явно.

Reliability-слой (api/reliability/)

  • healthcheck.py/health/detailed со статусом 4 LLM-провайдеров, моделей, очереди, uptime; /health/live, /health/ready. В 152-ФЗ режиме пробятся только РФ-провайдеры
  • cost_ceiling.py — дневной потолок расходов на LLM (KENT_MAX_DAILY_COST_USD): warning на 80%, HTTP 429 на 100%
  • redaction.py — маскировка PII в логах (email, телефоны, токены, карты)
  • 19 unit-тестов, все зелёные

Evals (evals/)

  • regression_set.yaml — 15 эталонных запросов в 7 категориях
  • run_regression.py — pytest-harness
  • cost_report.md — baseline стоимости по провайдерам

Документация

  • README переписан как инженерный case-study: Engineering decisions, Reliability, Evals & Observability. Честное описание архитектуры (overlay над OpenClaw, LangGraph для RAG-routing)
  • docs/known_limitations.md, docs/failure_modes.md
  • CTA-бейдж: AI Automation Specialist → AI / LLM Application Engineer

CI

  • ci-python.yml — ruff + pytest для reliability-слоя на Python 3.11/3.12 (дополняет static-checks.yml)

Почему reliability-слой не подключён к main.py

api/main.py обслуживает живой production-бот @ask_kent_bot. Слой положен как drop-in пакет с тестами и зелёным CI; подключение (3 правки) — отдельный контролируемый шаг, описан в api/reliability/INTEGRATION.md.

Проверка

  • pytest api/reliability/tests/ — 19 passed
  • ruff check api/reliability/ — clean

🤖 Generated with Claude Code

Roman Barmin and others added 4 commits May 21, 2026 11:12
Drop-in пакет api/reliability/ поверх существующего FastAPI gateway:
- healthcheck: /health/detailed со статусом 4 LLM-провайдеров, /health/live,
  /health/ready; в 152-ФЗ режиме пробятся только РФ-провайдеры
- cost_ceiling: дневной потолок расходов на LLM с warning на 80% и
  блокировкой HTTP 429 на 100%, откат в полночь UTC
- redaction: маскировка PII в логах (email, телефоны, токены, карты)
- 19 unit-тестов, все зелёные

Слой не подключён к main.py автоматически — интеграция отдельным
контролируемым шагом (см. api/reliability/INTEGRATION.md), т.к. main.py
обслуживает живой production-бот.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
evals/ для проверки поведения Kent при изменении промптов:
- regression_set.yaml — 15 эталонных запросов в 7 категориях
  (tool_calling, RAG, ambiguous, prompt_injection, long_context,
  pii_sensitive, edge_case) с expected-правилами
- run_regression.py — pytest-harness, проверяет ответы против правил
- cost_report.md — baseline стоимости на провайдера и тип запроса

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- known_limitations.md — границы продукта (архитектурные,
  безопасностные, функциональные), что сознательно не сделано
- failure_modes.md — таксономия 10 типов отказов с примерами
  реальных запросов и стратегией реагирования

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- README: добавлены секции Engineering decisions, Reliability,
  Evals & Observability; честное описание архитектуры (overlay
  над OpenClaw, LangGraph для RAG-routing); CTA-бейдж обновлён
  на AI / LLM Application Engineer
- CHANGELOG: секция [1.1.0]
- VERSION: 1.0.0 -> 1.1.0
- ci-python.yml: ruff + pytest для reliability-слоя на 3.11/3.12
  (дополняет static-checks.yml, не заменяет)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@Refusned Refusned merged commit dc400c6 into main May 21, 2026
3 checks passed
@Refusned Refusned deleted the feat/reliability-evals-docs branch May 21, 2026 07:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant