Что такое рабочий процесс ИИ-разработки?
Рабочий процесс ИИ-разработки — это повторяемый способ использовать ИИ на всех этапах программной задачи без отказа от инженерного суждения. Разработчик определяет, что считается успехом, и рассматривает каждое значимое изменение. Агент-программист сначала изучает проект и предлагает подход. После утверждения он может редактировать нужные файлы и запускать проверки проекта.
Почему неструктурированная работа с ИИ создаёт больше работы
Неструктурированная работа с ИИ кажется быстрой, потому что код появляется сразу. Скрытые издержки проявляются позже, когда разработчикам приходится разбираться с ошибочными предположениями или исправлять изменения, вышедшие за рамки исходного запроса.
Планирование и выполнение происходят одновременно
Когда запрос сформулирован нечётко, агенту приходится решать, как должна работать функция, уже в процессе написания кода. Эти решения могут не совпадать с тем, что имел в виду разработчик. Например, если вы просите «добавить переключатель тёмной темы», агент не знает, где именно должен располагаться переключатель и нужно ли сохранять выбор после закрытия приложения пользователем.
Большие запросы порождают изменения, которые сложно проверить
Широкий запрос побуждает агента за один проход изменить множество связанных частей проекта. Итоговый патч может оказаться слишком большим, чтобы разработчик мог уверенно его понять, даже если каждый файл по отдельности выглядит разумно. Например, запрос «сделай страницу настроек» может затронуть как интерфейс, так и способ хранения настроек.
Недостаток контекста приводит к шаблонному коду
Агент-программист не может следовать соглашениям проекта, которых он не видел. Без соответствующих файлов или инструкций репозитория он может ввести новую абстракцию там, где уже есть подходящая. Он также может использовать API, не соответствующий установленной версии зависимости.
Быстрая генерация скрывает стоимость последующей доработки
Время генерации — это не время доставки. Патч, созданный за минуту, всё равно может потребовать целого дня отладки. Более точный показатель — время от чёткого требования до проверенного изменения, которое команда готова поддерживать.
Рабочий процесс ИИ-разработки в общих чертах
Описанный ниже процесс оставляет решения за разработчиком, передавая агенту повторяемую работу по исследованию и реализации.
| Этап | Зона ответственности человека | Зона ответственности ИИ | Результат |
|---|---|---|---|
| Определение | Задать цель и ограничения | Выявить неоднозначности | Утверждённая спецификация |
| Изучение | Подтвердить объём работ | Изучить релевантные файлы и зависимости | Карта контекста |
| Планирование | Согласовать архитектуру и компромиссы | Составить упорядоченный план задач | Проверенный план |
| Реализация | Контролировать объём изменений | Внести точечные изменения в код | Проверяемый diff |
| Проверка | Определить ожидаемое поведение | Запустить тесты и изучить сбои | Результаты тестирования |
| Ревью | Принять итоговое решение | Выявить риски и несоответствия | Одобренное изменение |
| Развёртывание | Разрешить интеграцию | Подытожить сделанную работу и оставшиеся риски | Проверенное изменение с доказательствами релиза |
Kimi Code может поддерживать этот цикл, изучая файлы репозитория, внося утверждённые изменения и выполняя команды проверки проекта.
Шаг 1. Определите результат, прежде чем запрашивать код
Опишите желаемое поведение, прежде чем задавать способ реализации. Определите, на какого пользователя или систему это повлияет, обозначьте границы задачи и добавьте критерии приёмки, которые можно проверить после внесения изменений.
Рассмотрим простой пример. Допустим, вы хотите добавить тёмную тему в существующее веб-приложение. Можно дать агенту-программисту такой запрос:
Агент может выполнить его, но ему придётся самостоятельно домысливать недостающие требования. Он может разместить переключатель в неподходящей части интерфейса или применить тёмную тему только на одной странице. Сгенерированный код может технически работать, но при этом давать неправильный пользовательский опыт.
Более полезный запрос определяет результат до того, как агент начнёт вносить изменения:
Такая версия задаёт агенту чёткую цель и не позволяет ему незаметно принимать решения за продукт. Она также даёт разработчику конкретный способ проверить готовую работу. Вместо того чтобы гадать, «похоже» ли, что функция готова, вы можете сверить её поведение с заявленными требованиями.
Шаг 2. Выберите подходящий инструмент-«обвязку» и модель
Модель определяет, насколько хорошо ИИ понимает код и рассуждает о нём. Инструмент-«обвязка» определяет, может ли это рассуждение превратиться в проверенное изменение внутри вашего проекта. Выбор обоих на раннем этапе не даст вам выстроить рабочий процесс вокруг инструментов, которые не справятся с задачей.
Выберите обвязку, способную завершить цикл
Полезная обвязка для программирования должна делать больше, чем просто генерировать фрагменты кода. Ей нужен доступ к репозиторию, право на редактирование файлов и возможность запускать существующие команды проекта. Поддержка планирования и понятные механизмы утверждения также важны, когда задача затрагивает несколько файлов.
Подберите модель под задачу
Для быстрой правки может хватить и простой модели генерации кода. Сложная отладка или рефакторинг, затрагивающий несколько файлов, требует более сильного рассуждения и достаточного контекста, чтобы понять окружающий код. Модель также должна надёжно работать с инструментами, предоставляемыми harness.
Используйте Kimi Code с Kimi для программирования
Kimi Code предоставляет полноценный harness для разработки на уровне задач. Он может исследовать незнакомый репозиторий, составить план перед внесением правок, обновить нужные файлы и запустить тесты на реальном проекте. Использовать его можно из терминала, браузера или совместимой IDE.
Для сторонних инструментов программирования платформа Kimi Code предоставляет стабильную модель Kimi K3. Модель можно обновлять без изменения конфигурации клиента. Когда важна скорость итераций, модель highspeeed обеспечивает те же возможности программирования при более высокой скорости вывода.
Вместе Kimi Code и модель Kimi покрывают обе стороны рабочего процесса: модель отвечает за рассуждение о коде, а harness превращает это рассуждение в изменение, которое можно проверить.
Шаг 3: пусть агент по программированию изучит проект
Когда результат понятен, попросите агента найти код, который отвечает за текущее поведение. Исследование должно сузить задачу до того, как будут внесены какие-либо изменения в файлы.
Начните с инструкций репозитория
Сначала покажите агенту собственные указания репозитория. Они могут находиться в файлах вроде README.md, CONTRIBUTING.md или в файле с инструкциями для агента. Важны команды, которые реально используются в проекте, его соглашения по коду и действия, которые запрещены.
Используйте промпт вроде:
В ответе должны быть указаны файлы с инструкциями, которые агент прочитал, и приведены нужные команды. Если он предлагает команду, которой нет в репозитории, спросите, откуда она взялась, прежде чем её запускать.
Найдите нужный код перед тем, как его редактировать
Полезная карта контекста называет конкретные файлы и объясняет, почему важен каждый из них. Списка общих каталогов недостаточно. Если в ответе упущена общая вспомогательная функция, о которой вы знаете, что она задействована, скорректируйте карту до начала планирования. Агент должен проследить поведение от точки входа до модулей, от которых оно зависит. Он также должен найти существующие тесты и, если есть, похожую реализацию.
Добавляйте внешний контекст только при необходимости
Привлекайте внешнюю документацию, когда кодовая база не может ответить на вопрос. Укажите точный URL официальной документации или попросите агента найти официальный источник самостоятельно. Документация должна соответствовать версии, установленной в репозитории. Логи ошибок и описания issue также полезны, но перед вставкой в промпт удалите из них учётные данные или личные данные пользователей.
Перед тем как разрешать какие-либо правки, проверьте рабочее дерево и зафиксируйте существующие изменения. Полный процесс работы с системой контроля версий описан в шаге 8.
Шаг 4: отделите планирование от выполнения
Планирование и написание кода требуют разных вопросов при проверке. На этапе планирования вы решаете, подходит ли предложенное направление системе. На этапе реализации вы проверяете, было ли правильно соблюдено одобренное направление.
Используйте явный промпт для планирования без написания кода:
Прежде чем одобрять план, проверьте его. Убедитесь, что он использует уже существующие в проекте абстракции там, где это уместно. Ищите скрытые расширения задачи — особенно новые зависимости или изменения публичного API, которые не входили в требование. Проверьте, что предложенные тесты демонстрируют требуемое поведение, а не просто вызывают вновь написанные функции.
Результатом этого этапа является одобренный план. Он не «готов» просто потому, что агент дал развёрнутый ответ. Отредактируйте план сами или запросите пересмотр, пока предположения и границы затрагиваемых файлов не будут точными.
Шаг 5: разбейте план на задачи, которые можно проверить
У каждой задачи по реализации должна быть одна ясная цель и один способ проверить результат. Это делает изменение достаточно небольшим для проверки и упрощает поиск причины, если что-то пойдёт не так.
Например, функцию тёмной темы из шага 1 можно разбить на следующие задачи:
Изучить существующие цветовые токены и стили, связанные с темой.
Добавить настройку темы и сохранение выбора пользователя.
Применить тёмную тему к общим макетам и компонентам.
Добавить переключатель темы в меню настроек.
Добавить тесты для переключения и сохранения выбранной темы.
Проверить основные страницы на визуальные проблемы и проблемы доступности.
Проходите эти задачи по порядку, а не просите агента реализовать всю функцию сразу. Для одной задачи реализации используйте промпт вроде такого:
Ожидаемый результат — сфокусированное изменение кода, сопровождаемое тестами, которые были действительно выполнены. Проверьте и то, и другое, прежде чем переходить к следующей задаче. Если агент также добавил переключатель настроек или изменил не связанные с задачей компоненты, сначала отделите или откатите эти изменения.
Если агент раз за разом испытывает трудности с задачей, сделайте задачу меньше. Например, попросите его сначала добавить только настройку темы, без реализации сохранения. Более узкая задача уменьшает число предположений, которые должен делать агент, и даёт более ясную точку для проверки перед тем, как продолжить.
Шаг 6: реализуйте, тестируйте и проверяйте в коротком цикле
Когда план разбит на управляемые задачи, выполняйте их по одной. Проверяйте каждое изменение, пока его цель и объём ещё ясны.
Используйте следующий цикл для каждой задачи:
Начните с просмотра diff. Убедитесь, что агент изменил только файлы, необходимые для текущей задачи. Если патч включает несвязанный рефакторинг или работу, запланированную на более поздний шаг, удалите или отделите эти изменения перед запуском тестов.
Далее используйте команды проверки, уже определённые в репозитории. Обычно их можно найти в package.json, документации проекта или конфигурации CI. Например, проект на JavaScript или TypeScript, использующий npm-скрипты, может предоставлять такие команды:
Сначала запустите точечный тест, чтобы быстрее получить обратную связь. Если он проходит, переходите к более широким проверкам. Успешный запуск должен завершиться без ошибок:
Эти команды приведены только как пример. Не копируйте их в репозиторий без проверки того, какой менеджер пакетов и какие скрипты на самом деле используются в проекте. У проекта на Python или Go процесс проверки будет другим, и даже два проекта на JavaScript могут использовать разные имена скриптов.
Дополнительный совет: применяйте этот подход на практике с Kimi Code
Kimi Code работает на уровне задачи, а не только на уровне следующей строки. Опишите нужный результат — и он сможет найти соответствующий код, предложить план реализации, обновить необходимые файлы и запустить проверки проекта. Вы получаете точечное изменение для проверки, вместо того чтобы собирать все шаги вручную.
Быстрее разбирайтесь в незнакомой кодовой базе
Kimi Code может начать с точки входа и проследить поток выполнения через соответствующие модули. Он выявляет связанные тесты и уже существующие в проекте шаблоны, сокращая время, которое тратится на ручной сбор файлов или объяснение того, как работает репозиторий.
Передавайте в задачу не только код
Контекст разработки часто включает скриншоты ошибок, референсы дизайна, диаграммы или записи поведения. Kimi Code может использовать мультимодальные входные данные наряду с исходным кодом, помогая реализации соответствовать тем свидетельствам, которые изначально определили задачу.
Проверяйте изменения в реальном проекте
Kimi Code может запускать существующие в репозитории команды тестирования и проверки качества после внесения изменений. Если проверка не проходит, он читает фактический вывод об ошибке и работает на основе этой обратной связи, что даёт больше уверенности, чем изолированное предложение кода, которое никогда не выполнялось.
Превращайте удачные подходы в повторяемые процессы
Skills могут сохранять инструкции для повторяющихся задач, а Hooks запускают заранее заданные действия в важных точках. MCP подключает Kimi Code к инструментам, которые уже используются вашей командой, а Plugins позволяют объединить эти возможности в конфигурацию, которую проще повторно использовать и передавать другим.
Не давайте длинным задачам застояться
Для работы, которую нельзя завершить за одну короткую сессию, команда /goal задаёт Kimi Code конкретную цель и критерии её достижения. Она отслеживает прогресс в ходе последующих обращений, помогая задаче двигаться вперёд без необходимости заново формулировать всю цель каждый раз.
Шаг 7. Проверяйте сгенерированный ИИ код как ответственный за проект
Прежде чем принимать изменение, самостоятельно прочитайте итоговый diff. Проверьте, работает ли код так, как требовалось, и вписывается ли он в существующий проект.
Корректность
Соответствует ли код критериям приёмки? Проверьте обычный пользовательский сценарий и хотя бы один случай ошибки. Убедитесь, что тесты покрывают запрошенное поведение.
Архитектура
Соответствует ли код шаблонам, уже используемым в проекте? Логика должна быть размещена в подходящем модуле, без ненужных абстракций.
Безопасность
Убедитесь, что новые входные данные проверяются, а права доступа соблюдаются. Проверьте, что логи не раскрывают секреты или персональные данные. Проверьте любую новую зависимость перед её принятием.
Поддерживаемость
Код должен быть понятен без объяснений агента. Имена должны быть понятными, а комментарии должны объяснять только те решения, которые неочевидны из самого кода.
Область изменений
Убедитесь, что diff содержит только изменения, необходимые для текущей задачи. Удалите не связанный с ней рефакторинг, неожиданные изменения интерфейсов и ненужные правки форматирования.
Сгенерированное агентом резюме может помочь при проверке, но не заменяет чтение кода. Никогда не выпускайте код, который вы не можете объяснить.
Шаг 8. Используйте систему контроля версий на протяжении всей работы
Система контроля версий облегчает проверку и восстановление работы, выполненной с помощью ИИ. Хотя здесь это представлено как отдельный шаг, её защита начинается ещё до того, как агент изменит хоть один файл. Проверьте рабочее дерево в самом начале, чтобы можно было отделить уже существующую работу от изменений, внесённых в ходе задачи.
Выполните эти команды в терминале, открытом в корне репозитория:
git status --short
git diff --stat
git diffЧистое исходное дерево не даёт вывода при выполнении git status --short. Если файлы уже изменены, зафиксируйте это и скажите агенту не перезаписывать их. После каждой задачи снова проверяйте diff. Разработчик должен решить, готово ли проверенное состояние для контрольной точки в системе контроля версий.
Используйте отдельную ветку или worktree, когда эксперимент может затронуть много файлов. Параллельные агенты не должны редактировать один и тот же рабочий каталог. Дайте каждому потоку работы чёткое владение файлами, а объединяйте изменения только после прохождения проверок.
Не позволяйте кодовому агенту перезаписывать историю, отбрасывать локальную работу, выполнять force-push или публиковать изменения без явного одобрения. Эти действия имеют более широкий радиус последствий, чем обычные правки файлов, и требуют отдельного решения.
Шаг 9. Сохраняйте контекст между сессиями работы с кодом
Длинные задачи часто выходят за рамки одного разговора. Сохраняйте инженерное состояние в артефактах репозитория, а не полагайтесь на историю чата.
Ведите короткий документ по функциональности, включающий:
Утверждённую спецификацию
Одобренный план реализации
Выполненные задачи и текущий пункт TODO
Решения, изменившие первоначальный подход
Уже выполненные команды и их последние результаты
Известные риски или открытые вопросы
Начните новую сессию с промпта передачи контекста:
Ответ должен соответствовать документам и текущему состоянию репозитория. Устраните любые несоответствия до того, как просить новую сессию продолжить работу. Такая передача контекста снижает необходимость для ИИ-агентов, пишущих код, восстанавливать состояние проекта из неполной истории переписки.
Как работают мультиагентные ИИ-процессы разработки
В мультиагентных ИИ-процессах разработки отдельным агентам назначаются разные роли. Один агент может изучать репозиторий, а другой — проверять готовый diff. Ценность здесь в разделении ответственности, а не в том, что открыто несколько чатов одновременно.
Практичная настройка может включать такие роли:
Планировщик: сопоставляет требование с кодовой базой и предлагает упорядоченный план, не редактируя файлы.
Реализатор: выполняет узко ограниченную задачу в изолированном рабочем пространстве.
Тестировщик: проверяет критерии приёмки и самостоятельно воспроизводит сбои.
Рецензент: проверяет diff на корректность или скрытые риски, не считая реализацию заведомо правильной.
Человек-интегратор: одобряет решения, контролирует порядок слияния и проверяет итоговый результат.
Мультиагентные процессы работают лучше всего, когда задачи можно чётко разделить. Дайте каждому агенту одну и ту же согласованную спецификацию, назначьте ясную зону ответственности и используйте изолированные ветки или worktree, чтобы избежать конфликтов. Для небольшого исправления или задачи, зависящей от одного изменяемого файла, обычно эффективнее один агент.
Kimi Code может разбивать крупные задачи между суб-агентами с независимыми контекстами. С помощью Agent Swarm несколько суб-агентов могут параллельно работать над отдельными частями задачи, а затем передавать результаты в основной процесс для проверки и интеграции. Это сокращает время выполнения, при этом границы задач и итоговое одобрение остаются под вашим контролем.
Выбор процесса в зависимости от задачи
Не каждая задача по разработке требует одинакового объёма планирования. Простое исправление можно выполнить быстро, а сложное или рискованное изменение требует более тщательной проверки перед релизом.
Небольшое изменение: изучите соответствующий код, внесите одно точечное исправление, запустите связанный тест и проверьте diff.
Средняя по объёму функция: напишите короткую спецификацию, одобрите план реализации и выполните работу как несколько небольших задач. Перед проверкой запустите более широкий набор тестов.
Высокорисковое изменение: добавьте обзор дизайна и план отката. Изменения, связанные с аутентификацией, платежами или миграцией данных, могут также требовать проверки безопасности и поэтапного релиза.
Мультиагентный проект: дайте каждому агенту одну и ту же спецификацию и ясную зону ответственности за задачу. После объединения их работы повторно запустите весь набор соответствующих тестов.
Kimi Code может поддерживать каждый из этих процессов. Используйте лёгкий процесс для простых задач и добавляйте больше планирования и проверки, когда изменение сложнее отменить или оно с большей вероятностью повлияет на пользователей.
Универсальный промпт для ИИ-процесса разработки
Используйте этот шаблон с любым агентом для написания кода. Отправьте его агенту после замены каждого поля в скобках.
Вы можете использовать это как начальную инструкцию в Kimi Code. Обновляйте Current phase и Task по мере продвижения работы, а не пытайтесь охватить всю функцию одним промптом.
Заключение
Надёжный ИИ-процесс разработки не стремится максимизировать объём сгенерированного кода. Он раскрывает неверные предположения на раннем этапе и делает каждое изменение проверяемым. Kimi Code поддерживает этот процесс, читая и редактируя код, выполняя команды в оболочке, получая нужные веб-страницы и корректируя свои действия по мере развития задачи. Ответственность за архитектуру и итоговое решение о релизе остаётся за разработчиком. Начинайте с небольшой проверяемой задачи. Добавляйте больше процесса только тогда, когда этого требует риск проекта.
Вопросы и ответы
kimi, kimi web и kimi acp.