Harness_ru README

The project's README from github.com/justxor/Harness_ru. As one markdown file: README.md.

Harness Engineering — полный курс на русском

harness-tests

Как заставить AI-агента писать код надёжно. Не «какую модель выбрать», а как спроектировать вокруг неё рабочую систему: инструкции, инструменты, среду, состояние и верификацию.

Курс — от нуля до продвинутых тем: теоретическая база из 11 блоков, 14 модулей, 8 практических проектов, 14 лабораторных работ, задачник из 60 задач с разборами, 13 схем, исполняемый набор тестов для вашей обвязки, диагностический протокол «как починить агента», библиотека готовых шаблонов, карта инструментов, 40 приёмов и каталог антипаттернов.

Главный тезис курса: способность модели и надёжность исполнения — это две разные вещи. Одна и та же модель в «голой» среде и в среде с продуманным harness даёт качественно разные результаты. Апгрейд модели — самый дорогой и обычно не самый эффективный способ починить агента.


Популярные ресурсы по Машинному Обучению, ИИ и анализу данных

🧠 Machine Learning — авторский Telegram-канал, который содержит всю базу для работы с ИИ-моделями. Дайджесты лучших проектов, разбор кода, инструкции по запуску LLM, подготовка к собесу и многое другое.

📚 Data Science — редкая литература, статьи, курсы и уникальные гайды для мл-специалистов любого уровня. Читайте, развивайтесь, практикуйте.

💼 Machine Interview — это база с 1900 вопросами с собеседований по машинному обучению. Вы легко получите оффер, изучив популярные вопросы.

🔥 Целая папка супер полезных ресурсов по ИИ


Оглавление

Введение

Часть 0. Теоретическая база

Часть I. Фундамент

Часть II. Состояние и время

Часть III. Скоуп и дисциплина

Часть IV. Верификация

Часть V. Эксплуатация

Часть VI. Автономия

Практика и справочники


Что такое harness

Harness (буквально «упряжь») — всё, что находится за пределами весов модели и определяет, какая часть её способностей реально проявится в вашем проекте.

Если это не веса модели — это harness:

Метафора, которая помогает: породистая лошадь без упряжи далеко не уедет. Модель — это лошадь. Harness — седло, узда, стремена и подковы. Апгрейд лошади не отменяет необходимости упряжи.

Диагностическое правило №1: когда агент сломался — сначала проверяйте harness, потом модель. Если та же модель успешно решает похожие задачи в хорошо структурированных репозиториях, проблема почти наверняка в вашей среде, а не в её способностях.

Это не Harness.io

Важное уточнение, потому что путаница возникает постоянно: Harness.io — это коммерческая CI/CD-платформа. Этот курс — не о ней. Здесь речь о harness engineering — инженерной дисциплине проектирования окружения для AI-кодинг-агентов (Claude Code, OpenAI Codex, Cursor, Gemini CLI, Aider и т. п.).


Кому нужен курс и как его проходить

Курс для вас, если вы:

Предварительные требования: git, командная строка, любой опыт с одним из кодинг-агентов. Знание ML не нужно вообще.

Три трека прохождения

Трек Время Что делать
Спринт (полдня) 3–4 ч Быстрый старт → диагностический протокол → модули 1, 2, 4, 8, 9 → лабораторные Л3, Л8, Л7, Л11
Основной (2 недели) ~20 ч Часть 0 (блоки Т1–Т5, Т7, Т8) → модули 1–12 подряд → после каждого блока соответствующий проект и связанные лабораторные
Полный (6 недель) ~60 ч Вся Часть 0 → все 14 модулей → все 8 проектов → все 14 лабораторных → собственный capstone на рабочем репозитории
Диагностика (30 минут) 0,5 ч Только протокол ремонта: подходит, если агент уже сломан и разбираться в теории некогда

Схема 1. Карта маршрута обучения

flowchart TD
    S(["Агент работает нестабильно"]) --> Q{"Сломано прямо сейчас?"}
    Q -- "да" --> D["Диагностический протокол<br/>30 минут"]
    Q -- "нет" --> B["Быстрый старт<br/>4 файла, 30 минут"]
    D --> B
    B --> T0["Часть 0<br/>теоретическая база"]
    T0 --> C1["Части I-III<br/>фундамент, состояние, скоуп"]
    C1 --> C2["Части IV-V<br/>верификация и эксплуатация"]
    C2 --> G{"Метрики стабильно зелёные?"}
    G -- "нет" --> LAB["Лабораторные Л1-Л14<br/>замеры до и после"]
    LAB --> C2
    G -- "да" --> C3["Часть VI<br/>автономия и графы"]
    C3 --> P["8 проектов + задачник"]
    P --> OWN(["Свой capstone<br/>на рабочем репозитории"])

Как учиться правильно. Каждый модуль устроен одинаково: симптом → механика → понятия → что делать → замер. Не переходите к следующему модулю, пока не сделали замер на своём проекте. Harness engineering — эмпирическая дисциплина: без цифр вы не отличите улучшение от самообмана.


Быстрый старт: минимальный harness за 30 минут

Четыре файла дают львиную долю эффекта. Сделайте их прямо сейчас, до чтения теории.

Шаг 1. AGENTS.md в корне репозитория (10 минут)

# AGENTS.md

## Проект
Backend платежей. Python 3.11, FastAPI, PostgreSQL 15, Redis 7.

## Команды
- Установка: `make setup`
- Запуск: `make dev`
- Тесты: `make test`
- Полная верификация: `make check`   # tests + types + lint

## Жёсткие ограничения (MUST)
- Все эндпоинты — только через OAuth 2.0.
- Только синтаксис SQLAlchemy 2.0 (`select()`, не `Query`).
- Все SQL — параметризованные запросы. Никогда не склеивать строки.
- Никогда не `eval()`, `exec()`, `pickle.loads()` на внешних данных.
- Нельзя менять `migrations/` без отдельного разрешения.

## Definition of Done
Фича готова = `make check` зелёный + E2E-сценарий фичи проходит.
«Код написан» — это не готово.

## Правила работы
- Одна фича за раз. Не начинать вторую, пока первая не прошла верификацию.
- Никакого рефакторинга «заодно», пока основная фича не проверена.
- Перед завершением сессии обновить `PROGRESS.md`.

## Куда смотреть подробности
- `docs/api-patterns.md` — обязательно при добавлении эндпоинта
- `docs/db-rules.md` — обязательно при изменении моделей и миграций
- `docs/testing.md` — при написании тестов

Правило: 50–150 строк, не больше. Всё остальное — в docs/.

Шаг 2. feature_list.json (7 минут)

[
  {
    "id": "F01",
    "behavior": "POST /api/cart/items с {product_id, quantity} возвращает 201 и товар в корзине",
    "verification": "pytest tests/e2e/test_cart.py::test_add_item",
    "state": "passing",
    "evidence": "commit a1b2c3d, 4 passed"
  },
  {
    "id": "F02",
    "behavior": "GET /api/cart возвращает корзину с итоговой суммой",
    "verification": "pytest tests/e2e/test_cart.py::test_get_cart",
    "state": "active",
    "evidence": null
  },
  {
    "id": "F03",
    "behavior": "POST /api/checkout создаёт заказ и очищает корзину",
    "verification": "pytest tests/e2e/test_checkout.py",
    "state": "not_started",
    "evidence": null
  }
]

Состояний ровно четыре: not_started, active, blocked, passing. Агент не имеет права ставить passing сам — только скрипт верификации.

Шаг 3. PROGRESS.md (5 минут)

# Прогресс

## Состояние на сейчас
- Коммит: a1b2c3d
- Тесты: 42/43 (падает test_pagination_empty)
- Линт/типы: чисто
- Активная фича: F02

## Сделано
- [x] F01 — добавление товара в корзину (passing)

## В работе
- [ ] F02 — получение корзины (90%, не сходится расчёт скидки)

## Заблокировано
- F05 — ждём доступ к sandbox платёжного провайдера

## Решения этой сессии
- Итоговая сумма считается на сервере, не на клиенте — клиенту нельзя доверять цены.

## Следующие шаги
1. Починить расчёт скидки в `services/cart.py:total()`
2. Прогнать `make check`
3. Начать F03

Шаг 4. make check (8 минут)

setup:
	uv sync

dev:
	uv run uvicorn app.main:app --reload

test:
	uv run pytest -x -q

types:
	uv run mypy src --strict

lint:
	uv run ruff check src

e2e:
	uv run pytest tests/e2e -q

check: lint types test e2e
	@echo "ALL CHECKS PASSED"

Одна команда, один зелёный/красный ответ. Это самая высокорентабельная часть harness.

Проверка результата: тест холодного старта

Откройте новую сессию агента, ничего не объясняйте голосом и задайте пять вопросов:

  1. Что это за система и зачем она?
  2. Как её запустить?
  3. Как её проверить (какие команды)?
  4. Какие правила нельзя нарушать?
  5. Где сейчас работа �

Harness_ru (justxor/Harness_ru)

Searching Database…

这是什么?一套完整讲述 harness 工程(配套工程)的课程(以俄语编写):讲解如何围绕 AI 编程智能体设计整个系统——包括指令、工具、环境、状态和验证——让它能稳定可靠地写出代码。
这是一门课程、一个工具,还是一个库?它是一门课程,不是软件库:包含 11 个理论板块、14 个模块、8 个实战项目、14 个实验、60 道带解答的习题,另外还有一套可执行的测试集和一个现成模板库。
我该怎么开始使用它?先从 30 分钟的快速上手开始,不用先学理论:在仓库里添加一个 AGENTS.md(50 到 150 行)、一个 featurelist.json 和一个 PROGRESS.md,再加上一个 'make check' 命令,结果要么全绿要么报红。
学这门课之前我需要会什么?需要会 Git、命令行,并且至少亲手用过一款编程智能体。完全不需要机器学习方面的知识。
这是讲 Harness.io 那个 CI/CD 平台的吗?不是——虽然名字经常被搞混,但它讲的不是商业化的 Harness.io CI/CD 平台,而是面向 AI 编程智能体的 harness 工程。另外请注意,课程内容全部是用俄语写的。
这门课适合谁?适合编程智能体输出结果时好时坏的开发者、想让智能体在没有人工监督的情况下跨会话连续工作数小时的人,以及正在围绕智能体搭建内部工具或平台的团队。
'harness'(配套工程)到底是什么?指的是模型权重之外、决定模型能力有多少真正落到你项目里的一切:指令文件(AGENTS.md、CLAUDE.md、.cursorrules、skills)、可用的工具(shell、测试、代码检查工具、浏览器、MCP)、运行环境、会话状态,以及验证命令和 E2E 测试这类反馈机制。
为什么课程说升级模型通常不是正确的解决办法?它的核心论点是:模型能力和执行可靠性是两回事。同一个模型放在空 environments 里和放在搭建良好的 harness 里,效果差别很大,所以升级模型是修复智能体最烧钱、而且通常最没效果的办法。
我怎么检验自己的 harness 是否真的管用?课程提供了一个冷启动测试:新开一个智能体会话,什么都不口头解释,然后问五个问题——这个系统是什么、怎么运行它、怎么验证它、哪些规则不能违反、目前进展到哪了。课程还附带了一套可执行的 harness 测试集。
Creator
justxor
Size
0.4 MB
Stars
318
Updated
CommitOct 04
Age
2mo
Commits · 90 Days