Simon Willison представил llm-coding-agent 0.1a0 — экспериментальную библиотеку на Python, превращающую LLM в полноценного агента по написанию кода. Проект построен на базе его же фреймворка llm и демонстрирует, как LLM может самостоятельно планировать задачи, редактировать файлы, запускать тесты и коммитить изменения в Git. Это не просто чат-бот, а инструмент с доступом к файловой системе и терминалу.
01Установка и запуск
Библиотека доступна в PyPI в статусе pre-release. Для установки рекомендуется использовать менеджер пакетов uv, который обеспечивает быструю установку зависимостей.
Базовый запуск агента через CLI:
uvx --prerelease=allow --with llm-coding-agent llm codeЭта команда запускает интерактивную сессию, где вы можете давать инструкции на естественном языке. Агента можно использовать как часть CI/CD пайплайна или для локальной разработки.
uvx — это позволяет запустить агента в изолированном окружении за секунды, не загрязняя глобальный Python.02Ключевые инструменты (Tools)
Сила агента заключается в наборе инструментов, которые он предоставляет LLM для взаимодействия с окружением. Вы можете увидеть доступные инструменты, выполнив:
uvx ... llm toolsНиже приведена таблица с описанием основных функций, которые агент использует для работы с кодом:
| Инструмент | Описание | Ключевые параметры |
|---|---|---|
edit_file |
Замена строки в файле. Требует точного совпадения текста. | path, old_string, new_string, replace_all |
write_file |
Создание или перезапись файла. Родительские директории создаются автоматически. | path, content |
read_file |
Чтение файла с нумерацией строк. Поддерживает пагинацию для больших файлов. | path, offset, limit |
execute_command |
Запуск shell-команд. Возвращает stdout, stderr и код выхода. | command, timeout (макс. 600с) |
list_files |
Поиск файлов по glob-паттерну. Игнорирует node_modules, __pycache__ и .gitignore. |
pattern, path |
search_files |
Поиск по содержимому файлов (regex). Ограничен по количеству результатов. | pattern, glob, max_results |
03Режимы работы и безопасность
Агент поддерживает несколько режимов выполнения, что критично для безопасности и контроля:
- Yolo-режим: Запуск с флагом
--yoloпозволяет агенту выполнять действия без подтверждения, что полезно для автоматизации, но требует доверия к модели. - Разрешенные команды: Флаг
--allowограничивает список выполняемых команд. Например,--allow "pytest*" --allow "git diff*"разрешает только запуск тестов и просмотр diff. - Ручное одобрение: В Python API можно включить режим
approve=True, при котором каждое действие агента требует подтверждения оператора.
execute_command дает агенту доступ к терминалу. Никогда не запускайте агента с правами root или в продакшен-средах без строгой фильтрации команд через --allow.04Python API для интеграции
Помимо CLI, библиотека предоставляет Python API для интеграции в другие проекты. Это позволяет создавать кастомные рабочие процессы, где ИИ-агент является частью более сложной системы.
Пример инициализации агента:
from llm_coding_agent import CodingAgent
# Инициализация агента с моделью GPT-5.5
agent = CodingAgent(
model="gpt-5.5",
root="/path/to/project",
approve=True # Требовать подтверждения действий
)
# Задача: исправить падающий тест
result = agent.run("Fix the failing test in tests/test_parser.py")Агент автоматически планирует шаги: читает тест, находит ошибку, вносит исправление, запускает тест и коммитит результат, если все проверки пройдены.
05Кому подойдёт / что запустится
- Разработчики Python: Идеально для автоматизации рутинных задач: рефакторинг, написание тестов, исправление багов.
- DevOps-инженеры: Можно использовать для генерации скриптов и проверки конфигураций в изолированных окружениях.
- Требования: Необходим доступ к LLM API (например, OpenAI, Anthropic). Требуется Python 3.9+ и менеджер пакетов
uv(или pip). - Железо: Работает на любом сервере с доступом в интернет к LLM-провайдерам. Локальное железо не требуется, так как вычисления происходят на стороне LLM.
Источник: Simon Willison ↗
