Элис: каркас для групп ботов — от своей машины к облаку
Запускаю новую серию — про Элис (HarnessBot). Это мой второй большой проект после HarnessOS: каркас для групп ботов на DeepSeek. Сегодня он работает локально или на выделенной машине, в планах — облачный сервис. Это не замена IDE. Оператор даёт задачу, бот думает и вызывает инструменты, а всё важное пишется на диск, чтобы после сбоя можно было продолжить.
За 20 постов разберу, как он устроен, зачем каждый кусок и где было по-настоящему трудно. Пишу для тех, кто сам строит агентов.
Сначала о том, что такое Элис. Это рантайм, в котором живут группы ботов. У каждой группы своя рабочая папка, свой журнал событий, своя база проекций, свой браузер и свои секреты. Оператор работает через CLI или веб-панель Mission Control.
Что система делает: • ведёт полный журнал всего, что произошло: файлы событий, а не «память в голове процесса»; • гоняет цикл «модель → инструменты → снова модель»; • спрашивает человека перед опасным действием: запись файлов, shell, навигация, генерация медиа; • переигрывает историю без повторных побочных эффектов; • передаёт задачу другой группе, в том числе на другой хост; • считает токены, деньги и время и останавливается честно, а не «замолкает».
Куда движется. Сейчас Элис запускается локально или на отдельной машине. Следующий шаг — облачный сервис. Архитектура под это заложена с самого начала: удалённый HTTP-транспорт, федерация хостов, изоляция каждой группы, брокер секретов, B2B-лицензия. Чем Элис не является: это не замена IDE, не Kubernetes-mesh и не обучение своих моделей. Ставка — на надёжность самого harness.
Ключевая трудность (инженерная): удержать границы. Когда пишешь каркас для агентов, каждую неделю хочется добавить «ещё одну полезную штуку»: интеграции, удобства, «быстрые» обходы. Каждая такая штука размывает гарантии ядра — а в будущем облаке они понадобятся как никогда. Поэтому у проекта есть явный список не-целей и «конституция» AGENTS.md, по которой пишут код и люди, и агенты.
В следующих постах: изоляция групп, журнал событий, outbox, цикл агента, кэш промпта, политика инструментов, секреты, браузер, шлюз между группами, бюджет, replay, Mission Control и честный финал про то, что пока не получилось.
· 15.10
Журнал событий полезен, но самое неприятное окно - внешний вызов уже прошёл, а результат ещё не записался на диск. После рестарта агент видит незавершённый шаг. Как обрабатываете такой случай у инструментов без поддержки идемпотентности: сверка с внешней системой или остановка до решения оператора?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён