AI-инжиниринг
Autonomous Agents: Devin, SWE-Agent, OpenHands - AI который пишет код сам
Цели урока
- Разобрать спектр автономности: от autocomplete до fully autonomous agents
- Понять task decomposition: Plan-and-Execute, replanning при ошибках
- Реализовать code generation loop: write → run → analyze → fix → repeat
- Изучить self-correction (4 уровня) и benchmark SWE-bench для оценки агентов
Март 2024. Cognition Labs показывает Devin: AI получает GitHub issue, открывает браузер, пишет код, гоняет тесты, открывает PR. Стоимость одной задачи - 5 долларов. Junior-разработчик за час делает то же самое за 50 долларов и в половине случаев лучше. Но именно та половина, что Devin решает сам, без единого вопроса к человеку, переписывает структуру AI engineering команд.
- Devin (Cognition Labs) - первый коммерческий fully autonomous agent: получает GitHub issue, открывает браузер, пишет код, гоняет тесты, создаёт PR. Без единого сообщения человеку
- SWE-Agent (Princeton) - open-source агент на основе Claude/GPT-4, 26% SWE-bench Lite. Его shell-интерфейс (ACI) стал шаблоном для десятков production систем
- OpenHands (бывший OpenDevin) - 53% SWE-bench Verified при среднем расходе 1.80 долларов на задачу. Используется командами как замена L3-задачам junior-разработчика
- GitHub Copilot Workspace - Microsoft интегрировал autonomous planning прямо в GitHub Issues: агент составляет план изменений, разработчик одобряет, агент реализует
От AutoGPT до Devin и SWE-agent
30 марта 2023 года Toran Bruce Richards выложил AutoGPT, одну из первых широко известных попыток сделать GPT-4 автономным: модель сама ставила подзадачи, вызывала инструменты и работала в цикле без участия человека на каждом шаге. AutoGPT часто застревал и уходил в петли, но показал саму идею агента, который сам ведёт себя к цели. В октябре 2023 года команда из Princeton (Carlos Jimenez, John Yang и коллеги) опубликовала SWE-bench, бенчмарк из реальных задач с GitHub: модели дают issue и просят прислать патч, который проходит тесты репозитория. Это дало индустрии честную метрику для агентов, пишущих код. В марте 2024 года Cognition Labs представила Devin как автономного AI-инженера, который получает issue, пишет код, гоняет тесты и открывает PR; на старте Devin закрывал около 13.9 процента задач SWE-bench, заметно выше прежних результатов. В апреле 2024 года Princeton выпустила SWE-agent: открытый агент с agent-computer interface, который обновил state-of-the-art на полном SWE-bench и стал базой для исследований. Работа позже вышла на NeurIPS 2024.
Предварительные знания
Autonomous vs Assisted: спектр автономности AI-агентов
AI coding assistants существуют в **спектре автономности** - от inline autocomplete, который предлагает следующую строку, до fully autonomous агента, который получает GitHub issue и через час создаёт готовый PR с тестами. Cursor Agent, Claude Code, Devin - это не просто разные продукты, а разные точки на этом спектре с принципиально разной архитектурой.
**Ключевое отличие Level 4 (Fully Autonomous):** агент работает в **sandbox** - Docker-контейнере с терминалом, файловой системой и браузером. Devin, например, запускает отдельный Linux environment на каждую задачу: клонирует репо, ставит зависимости, итерирует до зелёных тестов, открывает PR. Никаких прав на production-окружение нет по конструкции.
| Характеристика | Copilot (L0-1) | Cursor Agent (L2) | Devin / SWE-Agent (L4) |
|---|---|---|---|
| Контекст | Текущий файл | Весь проект | Проект + docs + web |
| Действия | Suggest code | Edit + run terminal | Edit + run + browse + git |
| Цикл | Один шаг | Multi-step (5-20) | Long-horizon (50-200 шагов) |
| Self-correction | Нет | Retry с ошибкой | Analyze → fix → retest |
| Sandbox | Нет | Терминал IDE | Docker container |
| Стоимость за задачу (USD) | 0.01 | 0.10-1.00 | 1-50 |
| SWE-bench Lite | N/A | ~20% | 26-49% |
**SWE-bench** - benchmark от Princeton для оценки autonomous agents. 2,294 реальных GitHub issues из Python open-source проектов. Агент получает issue description и должен создать patch, проходящий тесты. Лучший результат (2026): Claude Code - 72.0% на SWE-bench Verified.
Что принципиально отличает fully autonomous agent (Devin, SWE-Agent) от agentic IDE (Cursor Agent)?
Task Decomposition: как агент разбивает задачу на шаги
Autonomous agent не решает задачу за один LLM-вызов - это физически невозможно при работе с реальным codebase. Первый шаг всегда **task decomposition**: превратить размытый GitHub issue в последовательность атомарных действий. SWE-Agent использует ReAct (действие + наблюдение за результатом), Devin - Plan-and-Execute (сначала весь план, потом исполнение с replanning при ошибках), Claude Code - гибридный подход с динамическим деревом шагов.
**Replanning - ключ к качеству.** SWE-Agent без replanning решает 15% SWE-bench. С replanning (анализ ошибки → новый план) - 26%. С iterative replanning (до 5 попыток) - до 40%. Каждая итерация стоит 0.50-2.00 доллара в токенах.
Почему replanning (пересоставление плана после ошибки) критически важен для autonomous agents?
Code Generation Loop: write → run → fix → repeat
Сердце autonomous agent - **generation loop**: написать код, запустить в sandbox, разобрать ошибки, исправить, повторить. OpenHands тратит в среднем 60 итераций на задачу из SWE-bench, Claude Code - около 80. Это не один LLM-вызов, а длинная цепочка: каждый шаг видит историю предыдущих действий и их результаты, что и создаёт иллюзию понимания контекста.
**Context Window Management** - главный технический challenge. История из 100 iterations × 2000 chars = 200K chars. Стратегии: summarize old history, keep only last N actions + initial plan, compression через LLM.
Autonomous agent решает GitHub issue за 50 iterations. Каждая iteration - 1 LLM-вызов с ~3000 input tokens и ~500 output tokens. При стоимости 3 доллара за 1M input и 15 долларов за 1M output, какова примерная стоимость в долларах?
Self-Correction и SWE-bench: как оценивать autonomous agents
Self-correction - способность агента **обнаружить и исправить собственные ошибки** без подсказок извне. Именно здесь разрывается пропасть между L2 (Cursor Agent останавливается и спрашивает) и L4 (Devin анализирует стектрейс, трейсит зависимость, фиксит связанные файлы). Четыре уровня сложности этой коррекции принципиально отличаются по success rate.
**SWE-bench** - главный benchmark для autonomous coding agents:
| Agent | SWE-bench Verified (%) | Avg Cost/Task (USD) | Avg Steps | Year |
|---|---|---|---|---|
| Claude Code (Anthropic) | 72.0% | ~2.50 | ~80 | 2025 |
| OpenHands + Claude | 53.0% | ~1.80 | ~60 | 2025 |
| Devin (Cognition) | 48.4% | ~5.00 | ~120 | 2025 |
| SWE-Agent + GPT-4o | 26.0% | ~1.20 | ~40 | 2024 |
| RAG baseline | 4.8% | ~0.10 | 1 | 2024 |
**SWE-bench не равно реальная разработка.** Benchmark тестирует bug fixes в Python open-source. Реальные задачи сложнее: greenfield development, UI, infra, multi-repo. SWE-bench - полезный proxy, но не абсолютная метрика.
**Как безопасно внедрять autonomous agents в production:**
- **Начинать с well-defined tasks:** bug fixes с чёткими reproduction steps, не vague feature requests
- **Обязательный code review:** autonomous agent создаёт PR, человек ревьюит. Никогда auto-merge
- **Sandbox с ограничениями:** network access whitelist, no production credentials, time limit
- **Cost budget per task:** 5-10 долларов максимум. Если агент зацикливается - kill и escalate к человеку
- **Постепенное увеличение автономности:** сначала L2 (Cursor Agent), потом L3 (Claude Code), потом L4 - по мере роста доверия
Какой уровень self-correction самый сложный для autonomous agent?
Итоги
- Спектр L0-L4: не переходить к L4 (Devin, OpenHands) пока нет отлаженного code review процесса - автономность без ревью это технический долг в квадрате
- Replanning - не бонус, а необходимость: статичный план разбивается о реальный codebase. Без него SWE-bench score 15%, с iterative replanning - 40%+
- Generation loop считать итерациями, а не вызовами: 50 iterations × (3K input + 500 output tokens) = 0.83 доллара за задачу на Claude Sonnet
- Self-correction работает снизу вверх: compile-time (95%) решают все, cross-file reasoning (20-30%) - только топовые агенты с пониманием dependency graph
- SWE-bench - полезный ориентир, но тестирует только Python bug fixes. Greenfield, UI, multi-repo - агенты справляются хуже, чем цифры подсказывают
Что дальше
Autonomous agents генерируют код. Но чтобы этот код попал к пользователю - нужен правильный UX. Следующий урок - AI UX patterns: streaming UI, confidence indicators, human-in-the-loop.
- AI UX Patterns — Как проектировать интерфейсы для AI-продуктов - streaming, confidence, human-in-the-loop
- Multi-Agent Systems — Основы multi-agent архитектуры, на которых строятся autonomous agents
Связанные уроки
- aie-19-multi-agent — Автономные агенты строятся на multi-agent оркестрации
- aie-16-tool-calling — Агенты действуют через tool calls в песочнице
- aie-66-agent-sandboxes — Песочница безопасно изолирует автономное выполнение кода
- aie-31-evaluation — SWE-bench - это harness оценки агентов
- ml-48-rl-intro — Цикл plan-act-observe повторяет RL-цикл агент-среда
- alg-21-dp — Декомпозиция задач переиспользует структуру подзадач
- alg-37-a-star
- net-55-message-queues