by smol.ai (open source) Python, GPT, локальные модели через API
Первая библиотека, позволившая встраивать developer-агента в собственное приложение. Один из первопроходцев жанра автономных AI dev-агентов (от известного в AI-сообществе разработчика swyx).
AI-IDE от Codeium с концепцией "agentic IDE". Главная фича — Cascade: агент который понимает весь контекст …
SKILL.md-инструкция для AI-агентов: автоматическое закрытие GitHub issues. 6-фазный воркфлоу: фильтрация issues → проверка веток → параллельный …
SKILL.md-инструкция для AI-агентов: управление GitHub через CLI — создание PR и issue, работа с ветками, запуск …
SKILL.md-инструкция для AI-агентов: работа с Google Workspace из терминала — Gmail, Calendar, Docs, Sheets, Drive через …
# установка из репозитория git clone https://github.com/smol-ai/developer.git cd developer poetry install # install dependencies. pip install poetry if you need # или установка как библиотеки pip install smol_dev
Человекоцентричный и связный синтез целой программы aka ваш личный помощник-разработчик-новичок
Создавай то, что создаёт то!
smol devдля каждого разработчика в любой ситуации
Это агент-"новичок-разработчик" (aka smol dev), который:
Вместо создания и поддержки конкретных, жёстких, одноразовых шаблонов, таких как create-react-app или create-nextjs-app, это в некотором смысле является или помогает создать create-anything-app, где вы развиваете свой шаблон-запрос в tight loop с вашим smol dev.
После успешного начального запуска v0, smol developer был переписан чтобы стать ещё более smol-ler и быть доступным как библиотека!
# install
git clone https://github.com/smol-ai/developer.git
cd developer
poetry install # install dependencies. pip install poetry if you need
# run
python main.py "a HTML/JS/CSS Tic Tac Toe Game" # defaults to gpt-4-0613
# python main.py "a HTML/JS/CSS Tic Tac Toe Game" --model=gpt-3.5-turbo-0613
# other cli flags
python main.py --prompt prompt.md # for longer prompts, move them into a markdown file
python main.py --prompt prompt.md --debug True # for debugging
Это позволяет разрабатывать приложения с человеком в петле, как в оригинальной версии smol developer.
разработка с использованием подсказок, а не их настройка
Демо-пример в prompt.md демонстрирует потенциал AI-включённого, но всё ещё твёрдо человекоцентричного workflow:
main.py генерирует кодdebugger.py, который читает entire codebase для предложения конкретных изменений кодаПовторяйте, пока не достигнете счастья. Обратите внимание, что AI используется только так долго, пока он добавляет ценность — как только он начинает мешать, просто возьмите control над codebase от вашего маленького помощника без проблем и обид. (мы также можем заставить smol-dev взять control над существующей codebase и создать собственный запрос... но это Future Direction)
Таким образом вы можете использовать ваш собственный клон этого репозитория для прототипирования/разработки вашего приложения.
Это новая функция в smol developer v1! Добавьте smol developer в ваши собственные проекты!
pip install smol_dev
Здесь вы можете рассмотреть содержимое main.py как нашу "документацию" того, как использовать эти функции и запросы в вашем собственном приложении:
from smol_dev.prompts import plan, specify_file_paths, generate_code_sync
prompt = "a HTML/JS/CSS Tic Tac Toe Game"
shared_deps = plan(prompt) # returns a long string representing the coding plan
# do something with the shared_deps plan if you wish, for example ask for user confirmation/edits and iterate in a loop
file_paths = specify_file_paths(prompt, shared_deps) # returns an array of strings representing the filenames it needs to write based on your prompt and shared_deps. Relies on OpenAI's new Function Calling API to guarantee JSON.
# do something with the filepaths if you wish, for example display a plan
# loop through file_paths array and generate code for each file
for file_path in file_paths:
code = generate_code_sync(prompt, shared_deps, file_path) # generates the source code of each file
# do something with the source code of the file, eg. write to disk or display in UI
# there is also an async `generate_code()` version of this
Чтобы запустить сервер выполните команду:
poetry run api
или
python smol_dev/api.py
и затем вы можете вызвать API с помощью следующих команд:
Чтобы создать задачу выполните команду:
curl --request POST \
--url http://localhost:8000/agent/tasks \
--header 'Content-Type: application/json' \
--data '{
"input": "Write simple script in Python. It should write '\''Hello world!'\'' to hi.txt"
}'
Вы получите ответ вроде этого:
{"input":"Write simple script in Python. It should write 'Hello world!' to hi.txt","task_id":"d2c4e543-ae08-4a97-9ac5-5f9a4459cb19","artifacts":[]}
Затем чтобы выполнить один шаг задачи скопируйте task_id, полученный в предыдущем запросе, и выполните команду:
curl --request POST \
--url http://localhost:8000/agent/tasks/<task-id>/steps
или вы можете использовать библиотеку Python-клиента:
from agent_protocol_client import AgentApi, ApiClient, TaskRequestBody
...
prompt = "Write simple script in Python. It should write 'Hello world!' to hi.txt"
async with ApiClient() as api_client:
# Create an instance of the API class
api_instance = AgentApi(api_client)
task_request_body = TaskRequestBody(input=prompt)
task = await api_instance.create_agent_task(
task_request_body=task_request_body
)
task_id = task.task_id
response = await api_instance.execute_agent_task_step(task_id=task_id)
...
smol-plugin - запрос для ChatGPT плагина (твит, форк)Я активно ищу больше примеров, отправляйте свои PR!
извините за нехватку примеров, я знаю, что это раздражает, но я не был готов к такому количеству вас, лол
просим присылать альтернативные реализации и стратегии развертывания на других стеках!
Пожалуйста, подпишитесь на https://latent.space/ для более подробного обзора, инсайтов и размышлений
variable_names или целые ``` кодовые блоки)curl-запросы и ответыcat всей кодовой базы вместе с вашим сообщением об ошибке и получение конкретных рекомендаций по исправлению — особенно приятно!shared_dependencies.md, а затем требуем использовать его при генерации каждого файла. Это позволяет GPT «разговаривать с самим собой»...shared_dependencies.md иногда не охватывает все зависимости между файлами. Поэтому мы решали это, указав конкретное name в запросе. Сначала это казалось «грязным», но это работает, и в конце концов это просто чёткая, однозначная коммуникация.prompt.md для SOTA smol-dev запросовcurl и вставьте в запрос, лол.Пожалуйста, подпишитесь на https://latent.space/ для более подробного обзора, инсайтов и размышлений
Мы работали над Chrome Extension, который требует генерации изображений, поэтому добавили некоторые коды, специфичные для этого случая, чтобы не удалять/перегенерировать их. Мы ещё не определились, как это обобщить. Мы не имеем доступа к GPT-4 32K, но если бы у нас был доступ, мы бы изучили загрузку всей документации API/SDK в контекст.
Цикл обратной связи сейчас очень медленный (time говорит около 2-4 минут на генерацию программы с GPT-4, даже с параллелизацией благодаря Modal (время от времени превышая это)), но есть вероятность, что это улучшится с временем (см. также "будущие направления" ниже).
Вещи, которые стоит попробовать/с радостью обсудить в открытых задачах и принять pull requests:
popup.html.md и content_script.js.md и так далееprompt.md для существующих кодовых баз - написать скрипт, который читает кодовую базу и пишет описательный, точечный prompt, генерирующий егоsmol pm, но пока это не очень хорошо - с нетерпением жду сосредоточенной полировки/усилий, пока мы не получим квайн smol developer, который может генерировать самого себя lmaomodal run anthropic.py --prompt prompt.md --outputdir=anthropic чтобы попробовать