- Дата публикации
llm-coding-agent 0.1a0: простой Python-агент, который сам пишет и чинит код
Что нового
Simon Willison выкатил первую «грязную» альфу llm-coding-agent 0.1a0 — это отдельная Python-библиотека, построенная на его фреймворке llm, который сейчас больше похож на агентную платформу.
Главное:
- Новый агент
llm codeдля автоматизации рутинной разработки. - Пакет уже доступен на PyPI как slop-alpha (0.1a0).
- Агент умеет читать, искать, редактировать и создавать файлы, а также запускать shell-команды.
- Есть и CLI, и Python API.
- В README заложены готовые «рецепты» вроде
llm code --yoloи более безопасные сценарии с whitelisting команд. - В Python API используется класс
CodingAgent(model="gpt-5.5", root="/path", approve=True).run("Fix the failing test in tests/test_parser.py").
Цифр по скорости, цене токена или размеру контекста автор не приводит: акцент на функциональности и рабочем прототипе.
Как это работает
llm-coding-agent — это надстройка над библиотекой llm, которая превращает LLM в «кодового агента» с инструментами. Агент получает доступ к файловой системе проекта и shell, но все операции идут через ограниченный набор инструментов.
Набор инструментов, которые библиотека регистрирует внутри llm:
-
Редактирование файлов
CodingTools_edit_file(path: str, old_string: str, new_string: str, replace_all: bool = False) -> strАгент заменяет точное вхождение строки в файле.
old_stringдолжен совпадать с содержимым байт-в-байт (включая пробелы и переносы). Еслиreplace_all=False, строка должна встречаться единожды. Возвращается diff, чтобы человек мог проверить изменения. -
Запуск команд
CodingTools_execute_command(command: str, timeout: int = 120) -> strАгент запускает shell-команду в корне сессии. Возвращает stdout и stderr, а в конце добавляет строку с кодом выхода. Таймаут в секундах, максимум 600. При превышении таймаута процесс и его дочерние процессы убиваются.
-
Список файлов
CodingTools_list_files(pattern: str = '**/*', path: str = '.') -> strАгент выводит список файлов по glob-шаблону, отсортированный по времени изменения (новые сверху). Пропускает скрытые директории,
node_modules,__pycache__и всё, что игнорирует.gitignore. Максимум 200 путей, относительных к указанной директории. -
Чтение файлов
CodingTools_read_file(path: str, offset: int = 0, limit: int = 2000) -> strАгент читает текстовый файл и возвращает его с нумерацией строк в стиле
cat -n. Пути — относительно корня сессии.offset— номер первой строки (0-базный),limit— максимум строк за раз. Это позволяет постранично читать большие файлы. -
Поиск по содержимому
CodingTools_search_files(pattern: str, path: str = '.', glob: str = None, max_results: int = 100) -> strАгент ищет регулярное выражение по содержимому файлов. Формат результата:
path:line_number:line. Не большеmax_resultsсовпадений. Параметрglob(например,"*.py") сужает поиск до нужных типов файлов. -
Запись файлов
CodingTools_write_file(path: str, content: str) -> strАгент создаёт или перезаписывает файл указанным содержимым. Недостающие директории создаются автоматически. Для изменения существующих файлов автор рекомендует использовать
edit_file, чтобы сохранять контроль через diff.
Сам проект автор запустил через свой шаблон python-lib-template-repository, а затем отдал разработку самому агенту Fable (Claude Code / Claude Mythos). Сначала агент написал spec.md с требованиями, затем выполнил серию TDD-коммитов: красный/зелёный цикл тестов, обновлённая документация и периодические ручные проверки через OpenAI API-ключ в окружении.
Что это значит для вас
llm-coding-agent — это инструмент для разработчиков, которые уже используют LLM в работе и хотят меньше переключаться между IDE, терминалом и браузером.
Где полезно:
-
Рефакторинг и поддержка кода
- «Почини упавший тест» в духе:
CodingAgent( model="gpt-5.5", root="/path", approve=True ).run("Fix the failing test in tests/test_parser.py") - Агент сам найдёт тест, прочитает связанный код, предложит правки и покажет diff.
- «Почини упавший тест» в духе:
-
Навигация по незнакомому репозиторию
- Быстрое сканирование структуры проекта через
list_files. - Поиск нужных участков кода по регуляркам с
search_files.
- Быстрое сканирование структуры проекта через
-
Рутинные правки
- Массовая замена строк с контролем через diff.
- Генерация новых файлов (конфиги, шаблоны, тесты) через
write_file.
-
Полуавтоматический TDD
- Агент может запускать команды вроде
pytest, анализировать вывод и предлагать точечные исправления.
- Агент может запускать команды вроде
Где лучше не полагаться на него вслепую:
- Безопасность: агент умеет выполнять shell-команды и писать файлы. Нужен строгий контроль контекста, прав и команд.
- Критичные системы: для инфраструктуры продакшена и финансовых систем лучше использовать его как помощника, а не как автономного исполнителя.
- Проекты без тестов: агенту тяжело оценивать, что он не сломал, если нет автоматической проверки.
Доступность:
- Пакет лежит на PyPI, так что его можно поставить из любой страны, где работает PyPI.
- Для работы нужен LLM-доступ (например, через OpenAI или Anthropic). Если выбранный провайдер блокирует Россию, придётся использовать VPN и обходные способы оплаты.
Место на рынке
llm-coding-agent ближе всего к «тонкому» кодовому агенту, который вы можете встроить в свой рабочий процесс. Это не IDE-плагин вроде GitHub Copilot, а Python-библиотека и CLI, которые вы контролируете сами.
По сравнению с крупными hosted-решениями:
- Он не привязан к конкретному облаку — вы сами выбираете модель (в README пример с
gpt-5.5). - Весь контекст работы — файлы, команды, diff — остаётся в вашей среде, а агент ходит к LLM только за рассуждениями.
- Управление инструментами явно описано: вы точно знаете, какие операции доступны агенту.
Прямых числовых сравнений с Copilot, Cursor или Claude Code автор не приводит. Фокус на том, что это лёгкий, прозрачный агент поверх уже существующей llm-библиотеки, а не конкурирующий монолитный продукт.
Установка
Пакет уже опубликован на PyPI как альфа-версия. Автор использует инструмент uv для запуска:
uvx --prerelease=allow --with llm-coding-agent llm code
Ключи здесь важны:
--prerelease=allow— разрешает ставить альфа-версию пакета.--with llm-coding-agent— подтягивает нужный пакет.llm code— запускает сам кодовый агент внутри экосистемы llm.
Перед запуском нужно:
- Установить и настроить
uv. - Установить базовую библиотеку
llm(нужна последняя alpha с PyPI). - Прописать в окружении ключи доступа к выбранной LLM (например, переменную
OPENAI_API_KEY).
Как запустить
CLI-сценарии
Автор приводит несколько «рецептов» в README, написанном агентом Fable. Среди них:
-
Агрессивный автопилот:
llm code --yoloПодразумевается, что агенту дают больше свободы для правок и команд. Использовать стоит только в изолированных ветках или тестовых репозиториях.
-
Более безопасный режим с whitelisting команд:
llm code --allow "pytest*" --allow "git diff*"В этом случае агент может запускать только команды, которые подходят под шаблоны
"pytest*"и"git diff*". Это сильно снижает риск неожиданных действий.
Python API
Пример из README, который агент добавил сам:
from llm_coding_agent import CodingAgent
agent = CodingAgent(
model="gpt-5.5",
root="/path",
approve=True,
)
agent.run("Fix the failing test in tests/test_parser.py")
Ключевые параметры:
model="gpt-5.5"— конкретная LLM, через которую идёт вся логика.root="/path"— корень проекта, в котором агент может читать и менять файлы.approve=True— режим, при котором агент может применять изменения без дополнительного подтверждения (используйте осторожно).
Дальше вы можете строить поверх этого свои сценарии: автопочинка тестов, полуавтоматический рефакторинг, миграции и т.п. Главное — держать под контролем права на запись и список разрешённых команд.
Кому это особенно зайдёт
- Python‑разработчикам, которые уже работают с LLM и хотят собрать своего «локального Copilot-агента» под свои правила.
- Тем, кто любит TDD и хочет, чтобы агент сам проходил цикл: упавший тест → правка → зелёный тест.
- Авторам библиотек и CLI, которые хотят быстро накидывать прототипы и сразу снабжать их тестами и документацией.
Если вы предпочитаете готовые IDE-плагины и не хотите возиться с Python-окружением, llm-coding-agent может показаться излишне ручным. Но если вам важен контроль над тем, какие файлы и команды доступны LLM, этот агент даёт именно такой уровень управления.