Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Коробка

Ночная смена для твоего компьютера. Вечером пишешь строку — утром читаешь отчёт.

Задачу берёт агент, работает без тебя, а потом второй агент проверяет за первым: запускает написанное, подкладывает плохой вход и пишет ПРИНЯТО или ОТКЛОНЕНО. Отчёт содержит команду, которую он выполнил, и её дословный вывод — чтобы враньё было видно.

Это не фреймворк. Это сто строк на bash поверх goose.

Кому это нужно

Тому, у кого есть папка с работой — проект, тексты, выгрузки, архив — и дела, которые он раз за разом делает руками. И тому, кто уже пробовал агента в чате и устал сидеть рядом, подтверждать каждый шаг и объяснять по третьему разу.

Разница с чатом одна: здесь ты не участвуешь. Написал строку — ушёл. Вернулся — читаешь, что сделано и что сказал приёмщик.

На чём это работает в жизни

  • починить падение в скрипте, добавить тест и показать вывод
  • разобрать папку загрузок: переименовать по дате, разложить по типам
  • свести двенадцать месячных выгрузок в одну таблицу
  • пройтись по текстам и выправить одинаковую ошибку во всех
  • собрать поиск по своим заметкам и проверить его на пяти вопросах

Общее у этих задач: результат видно глазами, и понятно, чем проверить.

Кому не нужно

Кто хочет собеседника — это не он, коробка не разговаривает. Кто ждёт, что агент сам придумает, чем заняться, — она берёт только то, что написано. Кто не готов завести ключ модели — без него не работает вообще.

Первые пятнадцать минут

  1. git clone и bash ustanovka.sh — ставит goose, заводит файл настроек.
  2. Вписать ключ в nastroyki. DeepSeek берётся на platform.deepseek.com, задача стоит копейки.
  3. Проверить на пустяке — команда работает из любой папки: ZADACHA="создай файл zhivoy.txt со строкой ЖИВОЙ и покажи его" bash ~/korobka/zapusk.sh
  4. Открыть otchety/ и увидеть отчёт: что взял, чем кончилось, что сказал приёмщик.
  5. Дать настоящую задачу — в своей папке, с проверкой внутри задачи.

Установка

git clone https://github.com/buyan201430-code/korobka.git && cd korobka && bash ustanovka.sh

Дальше вписать свой ключ в файл nastroyki. По умолчанию DeepSeek — задача стоит копейки. MiniMax включается двумя строками там же.

Работа

Одна задача прямо сейчас:

ZADACHA="почини в moj-proekt/schet.py деление на ноль, добавь тест и покажи вывод" RABOCHAYA=~/moj-proekt bash ~/korobka/zapusk.sh

Через очередь — строка в zadachi.md:

- [ ] разобрать папку ~/Downloads: переименовать по дате и разложить по типам

и запуск RABOCHAYA=~/Downloads bash ~/korobka/zapusk.sh. Берётся верхняя строка без галочки, сделанное коробка помечает [x] сама.

По расписанию — родным планировщиком goose или через cron:

0 3 * * * RABOCHAYA=~/moj-proekt bash ~/korobka/zapusk.sh

Сколько стоит

Один прогон — два вызова модели: исполнитель и приёмщик. На DeepSeek это копейки за задачу, но если ставишь на ночное расписание, считай по две задачи за ночь, а не по одной. Приёмку можно отключить на прогон: BEZ_PRIEMKI=1.

Ключ живёт только в файле nastroyki, который в git не попадает. В zadachi.md ключи не писать — этот файл отслеживается.

Границы

Границы — работать только внутри RABOCHAYA, ничего не удалять снаружи, не делать git push — передаются модели текстом задания. Скриптом они не обеспечиваются: песочницы здесь нет, и агент, который решит выйти за папку, технически может это сделать. Держи в RABOCHAYA то, что не жалко потерять, и не запускай прогон там, откуда есть доступ к чужим репозиториям.

Прогон дольше часа убивается сторожем — PREDEL=7200 меняет предел. У приёмки свой предел, PREDEL_PRIEMKI=1800 по умолчанию.

Пока прогон идёт, очередь заперта каталогом .zamok-ocheredi: второй прогон не возьмёт ту же строку, а скажет, что очередь занята. Если прогон убили силой, замок останется — снять rmdir.

Проверено на macOS (Apple Silicon). Под Linux код разведён (sed обеих версий), но живого прогона там не было.

Как писать задачу

Плохо: почини поиск

Хорошо: в poisk.py добавь порог 0.62, ниже — печатать НЕ НАЙДЕНО; проверь на трёх словах и покажи вывод

Правило одно: в задаче должно быть, что проверить и чем измерить. Без проверки агент сдаёт правдоподобное — не потому что ленив, а потому что «сделано» без критерия определяет он сам.

Проверка

Приёмка — то место, где коробка может соврать сама себе: разбирать её вердикт небрежно значит превращать отказ в успех. На это есть проба:

bash proba.sh

Она гоняет zapusk.sh на заглушке вместо goose — без сети, без ключа и без платных вызовов — и проверяет семь случаев: отказ, в объяснении которого встретилось слово ПРИНЯТО; чистое ПРИНЯТО тремя строками; молчание приёмщика; приёмщика, упавшего ненулевым кодом; вердикт без строк ЗАПУСКАЛ и ВЫВОД; отказ исполнителя; длинный дословный вывод. По каждому печатает ОК или ПРОВАЛ, в конце число провалов; при любом провале код возврата ненулевой.

Что внутри

файл что делает
zapusk.sh весь механизм: очередь, прогон, сторож времени, приёмка, отчёт
proba.sh проба приёмки на заглушках, без сети и ключей
zadachi.md список задач словами
nastroyki ключ и выбор модели, в git не попадает
otchety/ отчёт за день и полный лог каждого прогона

Почему так мало кода

Автономный агент обычно умирает не от нехватки ума, а от того, что все его ходы уходят на самопроверку до работы. У этой коробки проверки стоят после результата и делаются другим агентом, который не видел, как первый старался.

About

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

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages