Три самые сложные задачи в HarnessOS

Как я строил HarnessOS · 9/10

Каждый из сложных аспектов harness’а я решал отдельно. Не пытался сделать всё сразу.

Вот три задачи, которые оказались самыми сложными. И как я их решал — без деталей реализации.

Задача 1. Как не терять работу при сбоях

Представь: агент делает задачу из 10 шагов. Сделал 6. Упал сервер.

Наивное решение — начать заново. Минус: теряется время, сжигаются токены.

Что я сделал: каждое действие агента записывается. Не в оперативную память, а в постоянное хранилище. Когда агент запускается снова, он читает эту запись и понимает, где остановился.

Это называется resume. Работа не теряется. Продолжаем с того же места.

Задача 2. Как откатывать плохие шаги

Представь: агент сделал шаг, и что-то сломалось. Он понял, что сделал неправильно.

Наивное решение — чинить руками. Минус: долго, рискованно, можно сломать ещё больше.

Что я сделал: после каждого шага агента сохраняется снимок состояния. Если шаг плохой, берём предыдущий снимок. Всё, что было после, отменяется.

Это называется rollback. Не надо чинить руками. Откатил — и работаешь с чистой точки.

Задача 3. Как не создавать дубли

Представь: агент отправил команду «создать заказ». Но ответ не пришёл — сеть моргнула. Агент не знает, создался заказ или нет.

Наивное решение — повторить. Минус: создастся второй заказ.

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

Это называется идемпотентностью (idempotency). Повторная попытка не ломает систему.

Все три задачи — про надёжность. Про то, что может пойти не так. И про то, чтобы система не рассыпалась от первой же проблемы.

В последнем посте серии — что я понял за это время.

#HarnessOS #AIразработка #КакЯСтроилHarnessOS #AIагенты #разработка

Три самые сложные задачи в HarnessOS | Сетка — социальная сеть от hh.ru