"Give an AI agent a real project and let it experiment autonomously." — Inspired by karpathy/autoresearch
Оригинальный karpathy/autoresearch — AI агент исследует обучение нейросетей (nanochat), модифицируя только train.py с одной метрикой val_bpb.
ProjectEvolve — расширяет эту идею на любой проект:
- Любой язык программирования (Python, JavaScript, Go, Rust, ...)
- Любые типы задач (backend, frontend, DevOps, документация, ...)
- Любые файлы и директории (полная свобода действий)
- Кроссплатформенность (Windows, Linux, macOS)
- Накопление знаний между запусками
Ключевое наследство: агент работает autonomously, итеративно улучшает проект, сохраняет успешные изменения, отбрасывает неудачные.
ProjectEvolve — это универсальный инструмент для запуска AI-агента на любом проекте. Агент autonomously анализирует код, предлагает улучшения, вносит изменения и учитывает результаты предыдущих экспериментов.
- Анализирует — изучает структуру, код, документацию проекта
- Предлагает — генерирует идеи для улучшений
- Внедряет — вносит изменения в код/структуру/документацию
- Тестирует — проверяет, что ничего не сломалось
- Накапливает — следующая итерация видит результаты предыдущей
- Повторяет — цикл продолжается autonomously
- 🔄 Автономные эксперименты — AI самостоятельно анализирует, предлагает и внедряет улучшения
- 📚 Накопление знаний — каждая итерация видит результаты предыдущих, создавая базу знаний проекта
- ⚡ Универсальность — работает с Python, JavaScript, Go, Rust и любыми другими технологиями
- 🎨 Гибкая настройка — простой опросник адаптирует под ваш проект
- 🌐 Кроссплатформенность — Windows, Linux, macOS
- 🔧 Нулевое обслуживание — агент всё делает сам
┌─────────────────┐ ┌──────────────┐ ┌─────────────┐
│ Ваш проект │─────▶│ ProjectEvolve│─────▶│ AI Агент │
│ (любой язык) │ │ (скрипт) │ │ (Claude) │
└─────────────────┘ └──────────────┘ └─────────────┘
│ │
▼ ▼
┌──────────────┐ ┌─────────────┐
│ Конфигурация │ │ Эксперимент │
│ .autoresearch│ │ #1, #2, #3 │
└──────────────┘ └─────────────�
│ │
▼ ▼
┌──────────────┐ ┌─────────────┐
│ Улучшения │◀─────│ Контекст │
│ кода/доков │ │ накапливает│
└──────────────┘ └─────────────┘
- 🔍 Анализировать — изучает структуру проекта, код, документацию
- 💡 Предлагать — генерирует идеи для улучшений
- 🔨 Внедрять — вносит изменения в код, структуру, документацию
- 🧪 Quality Loop — встроенная система самотестирования с количественными метриками
- 📊 Оценивать — автоматический скоринг (0.0-1.0) с pass/fail решениями
- 📝 Документировать — обновляет README, создаёт новую документацию
- 🔄 Итерировать — каждая следующая итерация учитывает предыдущие
| Платформа | Поддержка | Установка |
|---|---|---|
| Windows | ✅ Полная | autoresearch.bat |
| Linux | ✅ Полная | python autoresearch.py |
| macOS | ✅ Полная | python autoresearch.py |
- Python 3.10+
- Claude CLI (Anthropic)
- Git (опционально)
ProjectEvolve включает встроенную систему самотестирования, вдохновлённую quality gates:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Generate │─────▶│ Apply │─────▶│ Evaluate │
│ (Идея) │ │ (Изменения) │ │ (Скоринг) │
└──────────────┘ └──────────────┘ └──────┬───────┘
│
▼
┌──────────────┐
│ Decision │
│ СОХРАНИТЬ/ │
│ ОТБРОСИТЬ │
└──────────────┘
│
┌─────────────────────┘
│ (если сохранено)
▼
┌──────────────┐
│ След. итер. │
└──────────────┘
- Универсальность — работает с Python, JavaScript, Go, Rust, Ruby, Java, любым языком
- Автодетект — автоматически находит команды для тестов (
npm test,pytest,cargo test, и т.д.) - Количественные метрики — скоринг 0.0-1.0 с pass/fail решениями
- Две фазы — Phase A (базовое качество, порог 70%) → Phase B (строгое качество, порог 85%)
- Автоматически — запускает тесты после каждого эксперимента, решает сохранять или отбросить изменения
# Автономная проверка качества
python F:/IdeaProjects/autoresearch/utils/quality_loop.py --project /path/to/project
# Кастомные пороги
python utils/quality_loop.py --project . --threshold-a 0.7 --threshold-b 0.85
# JSON вывод для парсинга
python utils/quality_loop.py --project . --jsonКонфигурационный файл .autoresearch/quality.yml создаётся автоматически:
metrics:
tests:
enabled: true
command: "" # Автодетект: npm test, pytest, cargo test, etc.
build:
enabled: false
command: "" # Автодетект: npm run build, cargo build, etc.
thresholds:
a:
min_score: 0.7 # Порог Phase A
required_checks: ["tests"]
b:
min_score: 0.85 # Порог Phase B
required_checks: ["tests", "build"]Сохранить изменения если:
- ✅ Score ≥ baseline + 0.05 (улучшение на 5%+)
- ✅ Все обязательные проверки пройдены
- ✅ Нет критических ошибок
Отбросить изменения если:
- ❌ Score уменьшился
- ❌ Критические тесты fail
- ❌ Нарушены ограничения проекта
Ручная проверка если:
⚠️ Score ~ baseline (минимальные изменения)⚠️ Некоторые некритичные тесты fail
ProjectEvolve требует Claude Code с соответствующими разрешениями.
- ✅ "bypass permissions on" — Рекомендуется! Никаких подтверждений не нужно
⚠️ Другие режимы (auto/manual) — Могут требоваться подтверждения во время выполнения- ❌ Риск: Агент может зависнуть в ожидании одобрения использования инструментов
Агенту ProjectEvolve нужны эти инструменты (если не в режиме bypass):
Основные инструменты:
Edit— Изменение файловRead— Чтение содержимого файловWrite— Создание новых файловGlob— Поиск файлов по шаблонуGrep— Поиск по содержимому файлов
Дополнительные инструменты:
Bash— Выполнение shell команд (для Quality Loop)Agent— Запуск суб-агентов
Вариант 1: Режим Bypass (Рекомендуется)
{
"permissionMode": "bypass"
}Вариант 2: Авто-одобрение безопасных инструментов
{
"permissionMode": "auto",
"autoApproveSafeTools": true,
"alwaysAllowTools": ["Edit", "Read", "Write", "Glob", "Grep"]
}| Режим | Поведение | Рекомендация |
|---|---|---|
| bypass | Без prompt'ов, полная автономия | ✅ Лучше для ProjectEvolve |
| auto | Авто-одобрение безопасных | |
| manual | Prompt на каждый инструмент | ❌ Не рекомендуется |
Если агент завис во время выполнения:
- Проверьте, ожидает ли permission prompt подтверждения
- Одобрите требуемый инструмент (Edit, Read, Write и т.д.)
- Или переключитесь в режим bypass для полной автономии
Примечание: Все скрипты имеют 30-минутный тайм-аут на эксперимент. Если Claude CLI зависнет (например, на prompt'е разрешения), эксперимент завершится по тайм-ауту и перейдёт к следующему. Проверьте логи на наличие ошибок тайм-аута.
Для AI агента: Прочитайте INSTALL.md и настройте систему:
# AI агент настраивает окружение
# (установка Python, Node.js, Claude CLI, создание директорий)AI агент выполнит:
- ✅ Детекция ОС (Windows/Linux/macOS)
- ✅ Установка недостающих зависимостей
- ✅ Создание необходимых директорий
- ✅ Проверка установки
Подробнее: См.
INSTALL.md— это инструкция для AI агента по кроссплатформенной настройке.
После настройки окружения запустите скрипт:
# Базовый запуск (10 итераций, интервал 5 минут)
python F:/IdeaProjects/autoresearch/autoresearch.py --project /path/to/project
# С параметрами
python F:/IdeaProjects/autoresearch/autoresearch.py --project . --iter 50 --timeout 2
# Windows (через bat-файл)
F:/IdeaProjects/autoresearch/autoresearch.bat . 50 2Параметры:
--project— путь к вашему проекту--iter— количество итераций (по умолчанию 10)--timeout— интервал между итерациями в минутах (по умолчанию 5)
autoresearch/
├── autoresearch.py # Главный скрипт
├── autoresearch.bat # Windows launcher
├── INSTALL.md # Инструкция по установке (для AI)
├── README.md # Английская версия (основная)
├── README_RU.md # Русская версия (полная)
├── QUICKSTART.md # Краткая инструкция
├── config/
│ ├── default_prompt.md # Шаблон промпта для агента
│ └── quality.yml # Конфигурация quality gate
├── utils/
│ ├── cli_setup.py # Интерактивная настройка
│ └── quality_loop.py # Реализация quality loop
└── .gitignore # Git ignore
your-project/
├── .autoresearch/
│ ├── .autoresearch.json # Конфигурация проекта
│ ├── quality.yml # Конфигурация quality gate (авто-создаётся)
│ ├── experiments/
│ │ ├── prompt_1.md
│ │ ├── output_1.md
│ │ ├── accumulation_context.md # Накопленный контекст
│ │ ├── last_experiment.md # Последний эксперимент
│ │ ├── changes_log.md # Лог изменений
│ │ └── summary.json # Итоговая сводка
│ └── logs/
│ └── autoresearch.log # Логи запуска
========================================================================
ProjectEvolve - First Time Setup
========================================================================
Проект: /path/to/your-project
Название проекта: My Awesome App
Краткое описание: Web приложение для управления задачами
Цели проекта (по одной на строке):
> Улучшить производительность
> Добавить тесты
> Обновить документацию
> [Enter]
Ограничения (опционально):
> Не менять API
> [Enter]
✓ Конфигурация сохранена!
{
"name": "My Awesome App",
"description": "Web приложение для управления задачами",
"goals": [
"Улучшить производительность",
"Добавить тесты",
"Обновить документацию"
],
"constraints": [
"Не менять API"
],
"tech_stack": ["Python", "FastAPI", "PostgreSQL"],
"focus_areas": ["performance", "testing", "documentation"]
}# Краткая форма: 3 эксперимента, 1 минута интервал
python F:/IdeaProjects/autoresearch/autoresearch.py . 3 1
# Полная форма: то же самое
python F:/IdeaProjects/autoresearch/autoresearch.py --project . --iter 3 --timeout 1# 50 экспериментов, интервал 10 минут
python F:/IdeaProjects/autoresearch/autoresearch.py --project . --iter 50 --timeout 10# Первичная настройка
python F:/IdeaProjects/autoresearch/autoresearch.py --project /path/to/project --configure
# Позже — запуск
python F:/IdeaProjects/autoresearch/autoresearch.py --project /path/to/project --iter 10# Продолжить с Experiment 25 (после предыдущей сессии завершившейся на 24)
python F:/IdeaProjects/autoresearch/autoresearch.py --project . --iter 10 --start-from 25
# Это запустит Эксперименты 25-34 (10 экспериментов начиная с 25)
# Агент всё равно увидит накопленный контекст от всех предыдущих экспериментов# Автоопределяет следующий номер (если output_1.md существует, начнёт с 2)
python F:/IdeaProjects/autoresearch/autoresearch.py . 10 1
# Или без параметра --project (использует текущую директорию)
python F:/IdeaProjects/autoresearch/autoresearch.py 10 1Автоопределение номера:
- Скрипт проверяет существующие
output_N.mdфайлы - Находит максимальный номер и добавляет 1
- Если файлов нет — начинается с Experiment 1
npm install -g @anthropic-ai/claude-codeУстановите Python 3.10+ и добавьте в PATH.
Увеличьте интервал между итерациями (--timeout).
python F:/IdeaProjects/autoresearch/autoresearch.py --project . --reconfigure- 📖 INSTALL.md — Инструкция по установке (для AI агента)
- ⚡ QUICKSTART.md — Краткая инструкция
- 🇬🇧 README.md — Английская версия (основная)
Вклад приветствуется! Создавайте issues и pull requests.
- 🌐 Web UI для мониторинга экспериментов
- 📊 Визуализация прогресса
- 🔔 Уведомления о завершении
- 📈 Метрики и аналитика
- 🔄 Интеграция с CI/CD
MIT License — свободно используйте в любых проектах.
Если этот проект вам полезен, поставьте звёздочку на GitHub!
Сделано с ❤️ для автономного исследования проектов