by yologdev (community) Node.js, Linux, macOS, произвольная LLM с поддержкой function calling
Самоэволюционирующий кодовый AI-агент: весь его исходный код изначально написан не человеком, а самой моделью, и продолжает переписываться в процессе работы. Даёт потоковый REPL и более сотни слэш-команд. Необычный эксперимент по саморазвивающемуся ПО, а не просто ещё один обёрточный CLI над LLM.
Один из первых и самых известных проектов автономных AI-агентов: получает цель на естественном языке и самостоятельно …
Автономный исследовательский агент: получает тему и самостоятельно проводит многошаговое веб-исследование, критически сопоставляет источники и выдаёт связный, …
Минималистичный автономный AI-агент общего назначения: управляет браузером, файловой системой, ОС и мобильными устройствами через единый набор …
Крошечное автономное AI-существо, которое живёт в отдельной папке на компьютере и непрерывно проводит собственные исследования: ищет …
git clone https://github.com/yologdev/yoyo-evolve.git cd yoyo-evolve npm install npm start

Сайт · GASP · Журнал · Документация · GitHub · DeepWiki · Проблемы · Подписаться в X
200 строк Rust. Ни одной строки человеческого кода. Одно правило: развивайся или умри. yoyo читает свой собственный исходный код, выбирает, что улучшить, реализует изменения, запускает тесты и фиксирует изменения — каждые несколько часов, самостоятельно. Через 180 дней: 158,000+ строк, 5,400+ тестов, 94 исходных файла.
Бесплатный, открытый исходный кодирующий агент для вашего терминала. Он исследует кодовые базы, выполняет изменения в нескольких файлах, запускает тесты, управляет гитом, понимает контекст проекта и восстанавливается после сбоев — всё из потокового REPL с более чем 100 команд, начинающихся с косой черты.
Человек не пишет его код. Нет дорожной карты, которая бы говорила ему, что делать. Он принимает решения самостоятельно.
Every 3 hours, yoyo wakes up and:
→ Reads its own source code
→ Checks GitHub issues for community input
→ Plans what to improve
→ Makes changes, runs tests
→ If tests pass → commit. If not → revert.
→ Replies to issues as 🐙 yoyo-evolve[bot]
→ Pushes and goes back to sleep
Every 4 hours (offset), yoyo runs a social session:
→ Reads GitHub Discussions
→ Replies to conversations it's part of
→ Joins new discussions if it has something real to say
→ Occasionally starts its own discussion
→ Learns from interacting with humans
Daily, a synthesis job regenerates active memory:
→ Reads JSONL archives (learnings + social learnings)
→ Applies time-weighted compression (recent=full, old=themed)
→ Writes active context files loaded into every prompt
Весь исторический процесс доступен в журнале коммитов и в журнале.
Наблюдайте за развитием yoyo в реальном времени:
| Что | Ссылка |
|---|---|
| Последний журнал | journals/JOURNAL.md |
| Что он изучил | memory/active_learnings.md |
| Родословная | LINEAGE.md |
| Переносимое состояние (GASP) | yoyo-gasp — клонировать и развернуть, чтобы восстановить yoyo на любой платформе |
| Запуски эволюции | GitHub Actions |
| Социальные сессии | GitHub Actions |
| Сайт путешествия | yologdev.github.io/yoyo-evolve |
Начните обсуждение на GitHub для разговора или откройте проблему на GitHub для сообщений об ошибках и запросов на функции.
| Метка | Что делает |
|---|---|
agent-input |
Предложения сообщества, отчёты об ошибках, запросы на функции — yoyo читает их на каждой сессии |
agent-self |
Проблемы, которые yoyo создал для себя как будущие задачи |
agent-help-wanted |
Проблемы, в которых yoyo застрял и просит помощи у людей |
agent-inputРост yoyo не только автономен — вы можете влиять на него.
Каждая проблема оценивается по чистому количеству голосов: "палец вверх" минус "палец вниз". yoyo приоритизирует проблемы с высоким рейтингом и снижает приоритет отрицательных.
Вы — иммунная система. Проблемы, которые сообщество проголосует вниз, будут скрыты — yoyo не будет тратить на них время.
Каждый запуск использует одинаковый фиксированный интервал в 8 часов — спонсорство покупает уровни преимуществ, а не скорость. И каждый спонсор, вне зависимости от суммы, будет указан в этом README постоянно. Здесь признание не истекает.
Ежемесячные спонсоры:
| Сумма | Преимущества |
|---|---|
| $5/мес | Приоритет проблем (💖) |
| $10/мес | Приоритет + упоминание в проблеме |
Разовые спонсоры:
| Сумма | Преимущества |
|---|---|
| $5 | Приоритет проблем (14 дней) |
| $10 | Выше + упоминание в проблеме (30 дней) |
| $1,000 💎 | Genesis — постоянный приоритет + высокая видимость |
/spawn делегирует специализированные задачи дочернему агенту, теперь с параллельным (--parallel) и фоновым (--bg + /spawn collect) выполнением, а также опциональным указанием --model для каждого подагента; модель также может автоматически делегировать подзадачи через встроенный инструмент подагента--fallback переключается на резервного провайдера при сбое API с настраиваемым приоритетом--wait-for-reset (по желанию) ждет завершения долгого сброса вместо сдачи| Инструмент | Что делает |
|---|---|
bash |
Запуск команд оболочки с интерактивным подтверждением, с опциональной RTK компрессией токенов |
read_file |
Чтение файлов с опциональным смещением/ограничением |
write_file |
Создание или перезапись файлов с предварительным просмотром содержимого |
edit_file |
Хирургическая замена текста с цветными инлайн-разницами |
search |
Поиск по файлам с использованием регулярных выражений (grep) |
list_files |
Список файлов в директории с фильтрацией по шаблону (glob) |
rename_symbol |
Переименование символов по всему проекту во всех отслеживаемых git-файлах |
ask_user |
Задает пользователю вопросы во время выполнения задачи для уточнения (только интерактивный режим) |
web_search |
Поиск в интернете и чтение фрагментов результатов |
Подагенты автоматически получают инструменты sub_agent и shared_state для делегирования подзадач и обмена памятью в мультиагентном режиме.
Работает с 15 провайдерами из коробки — переключение во время сессии с помощью /provider:
Anthropic · OpenAI · Google · Ollama · OpenRouter · xAI · Groq · DeepSeek · Mistral · Cerebras · AWS Bedrock · GitHub Models · Zhipu (ZAI) · MiniMax · Пользовательский (любой совместимый с OpenAI эндпоинт)
/diff — полный статус + разница с подсчетом добавлений/удалений/blame — цветная отладка git с опциональными диапазонами строк/commit — генерация сообщений коммитов на основе изменений/undo — откат последнего коммита, очистка неотслеживаемых файлов/git — сокращения для status, log, diff, branch, stash/pr — полный рабочий процесс с PR: list, view, create [--draft], diff, comment, checkout/review — AI-вспомогаемый ревью кода для отслеживаемых/неотслеживаемых изменений/health — запуск диагностики сборки/тестов/clippy/fmt (автоматическое обнаружение Rust, Node, Python, Go, Make)/fix — выполнение проверок и автоматическое применение исправлений для ошибок/test — определение типа проекта и запуск соответствующей команды тестирования/lint — определение типа проекта и запуск соответствующего линтера (/lint pedantic, /lint strict для Rust; /lint fix для автоматического исправления с помощью AI; /lint unsafe для сканирования небезопасного кода)/update — обновление до последней версии с GitHub/init — сканирование проекта и генерация стартового файла контекста YOYO.md/index — построение индекса кодовой базы: количество файлов, распределение языков, ключевые файлы/docs — поиск документации docs.rs для любого Rust-крата/tree — визуализация структуры проекта/find — нечеткий поиск файлов с оценкой и ранжированными результатами/ast — структурный поиск кода с использованием ast-grep (необязательно)/map — структурная карта репозитория, показывающая символы файлов и их взаимосвязи с бэкендом ast-grep/architect — дуальный режим модели: планирование с мощной моделью, реализация с более дешёвой/risk — оценка рисков по файлам на основе сигналов из истории git (/risk accuracy оценивает точность прошлых прогнозов)/save и /load — сохранение и восстановление сессий в формате JSON--continue/-c — возобновление последней сессии при запуске/compact--context-strategy checkpoint — выход с кодом 2, если контекст высокий (для перезапуска пайплайна)/tokens — визуальная шкала использования токенов с разбивкой по категориям контекста (система, пользователь, помощник, вызовы инструментов, результаты инструментов, размышления)/cost — разбивка стоимости ввода/вывода/кеша по моделям, с учётом тарифов флота (Opus 4.8 / Sonnet 5 / Fable 5 / Haiku 4.5), данные берутся в реальном времени из пресетов yoagent.yoyo/instructions.md/remember, /memories, /forget для сохранения заметок, доступных между сессиями--yes/-y — автоматически одобрять все выполнения--allow / --deny — разрешение/блокировка команд по шаблону (glob)--allow-dir / --deny-dir — ограничения на директории с предотвращением выхода за пределы пути[permissions] и [directories]; в [directories] поддерживаются дикие карты (*).yoyo.toml в репозитории не может молча предоставлять привилегии самому себе. Серверы MCP, permissions.allow, хуки оболочки и .yoyo/goal_verify.md из локальной конфигурации проекта отвергаются по умолчанию, с указанием каждого отвергнутого элемента и без выполнения. yoyo спрашивает один раз на папку (только интерактивно); --trust-project доверяет на одну сессию, --trust-project-always запоминает директорию. Неинтерактивный запуск всегда выбирает безопасный ответ..md файлов в .yoyo/commands/ (для проекта) или ~/.yoyo/commands/ (глобально) для регистрации пользовательских /commands--mcp <cmd> или mcp = [...] в .yoyo.toml подключается к серверам MCP через stdio-транспорт. /mcp list отмечает серверы, к которым не удалось подключиться, так что 2 из 3 не удалось никогда не отобразится как 3 из 3 не удалось--openapi <spec> регистрирует инструменты из спецификаций OpenAPI--skills <dir> загружает файлы навыков в формате markdown с YAML-преамбулой; поиск навыков в GitHub (/skill search), установка из локальных путей или репозиториев GitHub (/skill install gh:user/repo)--no-rtk для отключения)/mark, /jump, /marks/search с выделенными совпадениями/run <cmd> и !<cmd> обходят ИИ полностьюcurl -fsSL https://raw.githubusercontent.com/yologdev/yoyo-evolve/main/install.sh | bash
irm https://raw.githubusercontent.com/yologdev/yoyo-evolve/main/install.ps1 | iex
cargo install yoyo-agent
git clone https://github.com/yologdev/yoyo-evolve && cd yoyo-evolve && cargo install --path .
# Interactive REPL (default)
ANTHROPIC_API_KEY=sk-... yoyo
# Single prompt (bare or with flag)
yoyo "explain this codebase"
yoyo -p "explain this codebase"
# Pipe input
echo "write a README" | yoyo
# Use a different provider
OPENAI_API_KEY=sk-... yoyo --provider openai --model gpt-4o
# With extended thinking
yoyo --thinking high
# With project skills
yoyo --skills ./skills
# Resume last session
yoyo --continue
# Write output to file
yoyo -p "generate a config" -o config.toml
# Auto-approve all tool use
yoyo --yes
Создайте .yoyo.toml в корне проекта, ~/.yoyo.toml в домашней директории или ~/.config/yoyo/config.toml глобально:
model = "claude-sonnet-4-6"
provider = "anthropic"
thinking = "medium"
mcp = ["npx open-websearch@latest"]
[permissions]
allow = ["cargo *", "npm *"]
deny = ["rm -rf *"]
[directories]
allow = ["."]
deny = ["../secrets"]
Создайте файл YOYO.md (или CLAUDE.md) в корне проекта с командами сборки, архитектурными заметками и соглашениями. yoyo автоматически загружает его как системный контекст. Или выполните /init для генерации шаблона.
| Команда | Описание |
|---|---|
/add <file\|url> |
Добавить содержимое файла или URL в разговор |
/apply <patch> |
Применить дифф или патч-файл |
/architect |
Переключить режим архитектора — планировать с мощной моделью, реализовывать с дешёвой |
/ast <pattern> |
Структурный поиск кода через ast-grep (необязательно) |
/bg [subcmd] |
Управление фоновыми процессами оболочки: запуск, список, вывод, убийство |
/blame <file> |
Git blame с цветным выводом (/blame file:10-20 для диапазонов) |
/cd [dir] |
Сменить рабочую директорию (~ и относительные пути поддерживаются) |
/changelog [N] |
Показать историю последних коммитов git (по умолчанию: 15) |
/changes |
Показать файлы, изменённые в текущей сессии |
/checkpoint [sub] |
Именованные снимки состояния файлов (сохранить, список, восстановить, diff, удалить) |
/clear |
Очистить историю разговора |
/clear! |
Принудительная очистка разговора без подтверждения |
/commit [msg] |
Зафиксировать подготовленные изменения (ИИ сгенерирует сообщение, если оно опущено) |
/compact |
Оптимизировать разговор для экономии контекста |
/config [show\|edit] |
Показать настройки, путь к конфигурационному файлу или открыть его в $EDITOR |
/context [system\|tokens\|files] |
Показать контекст проекта, системный промпт, бюджет токенов или ссылающиеся файлы |
/copy |
Скопировать текст в буфер обмена системы |
/cost |
Показать разбивку стоимости сессии |
/diff |
Краткий git diff несохранённых изменений |
/docs <crate> |
Поиск документации docs.rs |
/doctor |
Запуск диагностики окружения |
/evolution [N] |
Показать историю эволюции, статистику сессии и статус CI |
/exit, /quit |
Выйти из yoyo |
/explain <file> |
Попросить агента объяснить код из файла |
/export |
Экспортировать разговор в формате markdown |
/extended <task> |
Запустить агента автономно на длительной задаче |
/extract |
Извлечь функцию или блок в новый файл |
/find <pattern> |
Нечёткий поиск файлов проекта по имени |
/fix |
Автоматическое исправление ошибок сборки/линтинга |
/forget <n> |
Удалить сохранённую память по индексу |
/fork [subcmd] |
Разветвить разговоры и переключаться между ними |
/git <subcmd> |
Быстрый git: статус, лог, добавление, diff, ветки, стэш |
/goal [subcmd] |
Установить, просмотреть или проверить прогресс по цели сессии |
/grep <pattern> |
Поиск по содержимому файлов |
/health |
Запуск проверок здоровья проекта |
/help |
Группированная справочная информация по командам |
/history [detail] |
Краткое резюме разговора (detail для подробного разбора по ходу) |
/hooks |
Показать активные хуки (до/после выполнения инструмента) |
/index |
Построить лёгкий индекс кода |
/init |
Сгенерировать начальный YOYO.md |
/jump <name> |
Перейти к закладке в разговоре |
/lint [pedantic\|strict\|fix\|unsafe] |
Автоматическое обнаружение и запуск линтера проекта (уровни строгости для Rust) |
/load [path] |
Загрузить сессию из файла |
/loop <N\|until-pass> <prompt> |
Повторять промпт в цикле опроса |
/map |
Структурная карта репозитория символов файлов (бэкенд ast-grep) |
/mark <name> |
Поставить закладку на текущую точку в разговоре |
/marks |
Список всех закладок в разговоре |
/mcp |
Список и управление подключениями к серверам MCP (неудачное подключение указывается в строке) |
/memories |
Список или поиск заметок проекта |
/model <name\|list\|info> |
Переключение, список или инспекция моделей |
/move |
Переместить метод между файлами |
/open <file> |
Открыть файл в редакторе |
/outline [symbol] |
Поиск символов или отображение структуры файла |
/permissions |
Показать активную конфигурацию безопасности и разрешений |
/plan [subcmd] |
Переключить режим планирования, однократное планирование, показать/применить/очистить |
/pr [subcmd] |
Рабочий процесс PR: список, просмотр, создание, diff, комментарии, checkout |
/profile |
Статистика сессии (токены, стоимость, время, ходы) |
/provider <name> |
Переключение или отображение текущего провайдера |
/quick <question> |
Быстрый ответ без инструментов (одноразовый, без цикла агента) |
/read |
Переключить режим "только чтение" — анализировать, но не модифицировать |
/refactor |
Инструменты рефакторинга (извлечение, переименование, перемещение) |
/remember <note> |
Сохранить постоянную заметку проекта |
/rename <old> <new> |
Переименовать символ по всему проекту |
/retry |
Переслать последний ввод (--with "..." для уточнения) |
/review [path] |
AI-рецензирование кода (--quick, --thorough) |
/revisit |
Пересмотреть закрытые/отложенные задачи, которые могут стать выполнимыми |
/rewind |
Восстановить разговор, автоматически сохранённый /clear |
/risk [subcmd] |
Оценка рисков по файлам на основе истории git (/risk accuracy) |
/run <cmd> |
Запустить команду оболочки напрямую (без ИИ, без токенов) |
/save [path] |
Сохранить сессию в файл |
/search <query> |
Поиск в истории разговора |
/security |
Запуск сканирования уязвимостей зависимостей |
/side <question> |
Задать быстрый вопрос без влияния на разговор |
/skill [subcmd] |
Список, инспекция, установка и поиск навыков |
/spawn <task> |
Запустить задачу в дочернем агенте (--parallel, --bg, --model) |
/stash |
Сохранить разговор и начать заново |
/status |
Показать дашборд сессии (модель, режимы, цель, наблюдение, изменения) |
/teach [on\|off] |
Переключить режим обучения — объясняет рассуждения по ходу работы |
/test |
Автоматическое обнаружение и запуск тестов проекта |
/think [level] |
Показать или изменить уровень размышлений |
/tips |
Контекстно-чувствительные предложения по функциям |
/todo [subcmd] |
Ведение задач (добавить, выполнено, удалить, очистить, доска) |
/tokens |
Показать использование токенов, окно контекста и разбивку по категориям |
/tree [depth] |
Показать дерево директорий проекта |
/undo |
Отменить изменения последнего хода, все несохранённые или последний коммит |
/update |
Обновить до последней версии |
/version |
Показать версию, метаданные сборки и целевую платформу |
/watch |
Автоматический запуск линтинга + тестов после изменений файлов |
/web <url\|search> |
Загрузить веб-страницу или выполнить поиск в интернете |
| ## Выращивайте своего агента |
Хотите создать собственного саморазвивающегося агента? Клонируйте этот репозиторий, отредактируйте два файла, и вы сможете запустить:
IDENTITY.md (цели, правила) и PERSONALITY.md (голос, тон)ANTHROPIC_API_KEY, APP_ID, APP_PRIVATE_KEY, APP_INSTALLATION_ID)Остальное определяется автоматически. Подробности см. в полном руководстве.
src/ 77 modules, ~115,000 lines of Rust
main.rs Entry point, CLI flags, run modes (REPL / single-prompt / piped)
agent_builder.rs AgentConfig, build_agent, MCP collision detection, provider fallback
cli.rs · cli_config.rs CLI parsing, Config, constants, system prompt
dispatch.rs · dispatch_sub.rs REPL /command routing + bare `yoyo <subcmd>` routing
commands*.rs 30+ focused modules — one cluster of slash commands each
(git, info, project, search, skill, map, bg, goal, session, …)
repl.rs Interactive REPL: tab completion, multi-line input, auto-continue
prompt.rs Prompt execution + streaming (prompt_retry / prompt_utils / prompt_budget)
tools.rs Builtin tools; tool_wrappers.rs decorators; smart_edit.rs fuzzy edit recovery
format/ Rendering: mod, diff, output, highlight, cost, markdown, tools (7 modules)
hooks.rs Hook trait, registry, AuditHook, tool wrapping
context.rs · memory.rs Project context loading; cross-session project memory
watch.rs Watch mode (lint → fix → test → fix) + post-prompt auto-fix loop
rtk.rs · safety.rs · update.rs · providers.rs · config.rs RTK, bash safety, self-update, providers, config
tests/
integration.rs 89 subprocess-based integration tests
docs/ mdbook source (book.toml + src/)
site/ gitignored build output (built by the Pages workflow)
scripts/
evolve.sh Evolution pipeline (plan → implement → respond)
skill_evolve.sh Autonomous skill evolution (refine / create / retire its own skills)
social.sh Social session (discussions → reply → learn)
extract_trajectory.py Trajectory awareness — recent outcomes injected into planning
format_issues.py · format_discussions.py · yoyo_context.sh · refresh_sponsors.py · build_site.py
memory/
learnings.jsonl · social_learnings.jsonl Append-only archives (source of truth, never compressed)
active_learnings.md · active_social_learnings.md Synthesized prompt context (regenerated daily)
skills/ 14 skills — 7 core (immutable): self-assess, evolve, communicate, research,
skill-evolve, skill-creator, analyze-trajectory
+ social, family, release, blindspot, synthesis, explore-codebase, yopedia
Более 5,400 тестов (модульные + интеграционные), охватывающие флаги командной строки, разбор команд, качество ошибок, коды завершения, форматирование вывода, краевые случаи, обнаружение проекта, нечеткое оценивание, операции с Git, управление сессиями, рендеринг Markdown, расчет стоимости, логику разрешений, потоковое поведение и многое другое.
yoyo также использует мутационное тестирование (cargo-mutants) для поиска пробелов в наборе тестов. Каждый выживший мутант — это строка кода, которая не покрыта тестами.
cargo install cargo-mutants
cargo mutants
См. mutants.toml для конфигурации и docs/src/contributing/mutation-testing.md для полного руководства.
yoagent — минимальный цикл агента на Rust. Библиотека, которая делает это возможным.
Если вы используете yoyo-evolve в научной статье, пожалуйста, цитируйте нашу работу следующим образом:
@misc{yoyo2026yoyoevolve,
title = {yoyo-evolve: A Coding Agent That Evolves Itself},
author = {Yuanhao and {yoyo}},
year = {2026},
howpublished = {\url{https://github.com/yologdev/yoyo-evolve}},
note = {Open-source self-evolving coding agent}
}
💎 Основатели-спонсоры:
🚀 Спонсоры: