← На главную
Гайды· 03.07.2026· 4 мин чтения

Саймон Уиллисон собрал coding agent за два промпта — и выложил его на PyPI

Саймон Уиллисон выпустил llm-coding-agent 0.1a0 — coding agent на Python поверх LLM-фреймворка. Как установить, запустить и что внутри инструмента.

Саймон Уиллисон собрал coding agent за два промпта — и выложил его на PyPI
Материал подготовлен с помощью ИИ и проверен редактором

Саймон Уиллисон (Simon Willison) выпустил llm-coding-agent 0.1a0 — минималистичный coding agent на Python, построенный поверх его же LLM-библиотеки. Сам автор называет релиз «slop-alpha», но инструмент уже умеет читать файлы, редактировать код и выполнять команды в оболочке — всё через стандартный интерфейс llm.

Зачем это нужно, если есть Claude Code и Cursor

Готовые инструменты вроде Claude Code или Cursor — чёрные ящики: нельзя посмотреть, как именно агент принимает решения, добавить свой инструмент или встроить логику в собственный Python-скрипт.

llm-coding-agent решает другую задачу: это референсная реализация, которую можно читать, форкать и расширять. Плюс — она работает с любой моделью, которую поддерживает llm (OpenAI, Anthropic, локальные через Ollama и т.д.). Если вы уже используете экосистему llm Уиллисона, агент встраивается в неё без лишних зависимостей.

Установка и первый запуск

Агент опубликован на PyPI как альфа, поэтому нужен флаг --prerelease=allow. Самый быстрый способ попробовать — через uvx без глобальной установки:

``bash uvx --prerelease=allow --with llm-coding-agent llm code ``

Если хотите установить постоянно:

``bash pip install --pre llm-coding-agent ``

После установки команда llm code становится доступна как субкоманда основного CLI llm.

Перед запуском убедитесь, что у вас настроен API-ключ нужной модели. Для OpenAI:

``bash llm keys set openai ``

Режимы запуска: от осторожного до «дай волю»

По умолчанию агент спрашивает подтверждение перед каждым действием. Для экспериментов это быстро надоедает, поэтому есть несколько режимов:

Полный автопилот — агент выполняет любые команды без вопросов:

``bash llm code --yolo ``

Разрешить только конкретные паттерны команд — агент автоматически выполняет только то, что совпадает с маской:

``bash llm code --allow "pytest*" --allow "git diff*" ``

Второй вариант удобен для CI-подобных сценариев: агент может гонять тесты и смотреть диффы, но не может, например, сделать git push без вашего ведома.

Что внутри: шесть инструментов агента

Набор инструментов можно посмотреть командой:

``bash uvx --prerelease=allow --with llm-coding-agent llm tools ``

Вот что реализовано:

`CodingTools_read_file(path, offset, limit)` — читает файл с нумерацией строк (как cat -n). Параметры offset и limit позволяют постранично обходить большие файлы; по умолчанию возвращает 2000 строк.

`CodingTools_write_file(path, content)` — создаёт или перезаписывает файл целиком. Родительские директории создаются автоматически. Для точечных правок лучше использовать edit_file.

`CodingTools_edit_file(path, old_string, new_string, replace_all)` — заменяет точную строку в файле. old_string должен совпадать с содержимым побайтово, включая пробелы. Возвращает diff изменения — агент может сразу проверить результат.

`CodingTools_execute_command(command, timeout)` — выполняет shell-команду в корне сессии. Таймаут по умолчанию 120 секунд, максимум 600. При таймауте убивается всё дерево процессов.

`CodingTools_list_files(pattern, path)` — листинг файлов по glob-паттерну, новые сначала. Пропускает скрытые директории, node_modules, __pycache__ и всё из .gitignore. Возвращает не более 200 путей.

`CodingTools_search_files(pattern, path, glob, max_results)` — поиск по содержимому файлов через регулярное выражение. Результат в формате path:line_number:line, максимум 100 совпадений. Параметр glob ограничивает поиск нужными типами файлов, например "*.py".

Python API: то, что автор не просил, но получил

Помимо CLI, агент реализовал Python API — Уиллисон признаётся, что не закладывал это в задание, но был рад увидеть в результате. Использование выглядит так:

```python from llm_coding_agent import CodingAgent

agent = CodingAgent( model="gpt-5.5", root="/path/to/project", approve=True ) agent.run("Fix the failing test in tests/test_parser.py") ```

Параметр approve=True включает интерактивное подтверждение действий. Это удобно для встраивания агента в собственные скрипты автоматизации — например, в хук после упавшего CI.

Где ломается

Точность `edit_file` — главная боль. Инструмент требует побайтового совпадения old_string. Если модель чуть изменила отступы или добавила пробел, замена не сработает, и агент уйдёт в цикл попыток. В реальных проектах с автоформатированием это случается часто.

`--yolo` в чужом репозитории — риск. Агент выполняет произвольные shell-команды без ограничений. Запускайте только в изолированных директориях или контейнерах, если не уверены в промпте.

Версия 0.1a0 — альфа без стабильного API. Уиллисон прямо называет релиз «slop-alpha». Интерфейсы могут измениться в следующих версиях без предупреждения. Не стоит строить на этом продакшн-пайплайны прямо сейчас.

Контекстное окно при больших проектах. list_files возвращает максимум 200 путей, read_file — 2000 строк за вызов. В монорепозиториях агент может не увидеть нужный файл с первой попытки и потратить токены на навигацию.

Что попробовать дальше

Исходный код лежит на GitHub в simonw/llm-coding-agent — там же spec.md, по которому Fable строил реализацию через TDD. Это редкий случай, когда можно проследить всю цепочку: от промпта до коммитов с тестами.

Если хотите расширить набор инструментов (например, добавить git commit или запрос к базе данных), точка входа — класс CodingTools. Архитектура намеренно простая: каждый инструмент — метод класса с типизированными аргументами, который llm подхватывает автоматически через llm tools.

Источники

Материал подготовил PLai AI — редакционный ИИ PLai.

Он же отбирает источники, пишет тексты и модерирует комментарии. Работает на PLGames AI — собственном шлюзе к языковым моделям.

Читайте также

Комментарии

Пока никто не написал. Будьте первым.

Комментарии проверяет AI-модератор PLai. По существу — публикуется сразу.

llm-coding-agent: запускаем coding agent за 5 минут — PLai