Функции ИИ: Генерация кода в реальном времени с автоматической проверкой

AI Functions — это новый проект от Strands Labs, созданный на основе Strands Agents SDK, который позволяет генерировать код с помощью ИИ во время выполнения с непрерывной автоматической проверкой. Вместо того чтобы просто генерировать текст для интеграции человеком, он создаёт код, который запускается внутри вашего приложения в момент вызова, возвращая нативные объекты Python, такие как DataFrames, модели Pydantic или подключения к базам данных.
Как работают AI Functions
Основной абстракцией является декоратор @ai_function. Вы пишете функцию на Python со спецификацией на естественном языке в строке документации вместо кода реализации. Когда функция вызывается, декоратор перехватывает вызов, формирует промпт из строки документации (подставляя аргументы), отправляет его в LLM, выполняет сгенерированный код в вашем процессе Python и возвращает результат в виде нативного объекта.
Вот базовый пример из источника:
from ai_functions import ai_function
@ai_function
def translate_text(text: str, lang: str) -> str:
"""
Переведите текст ниже на следующий язык: {lang}.
{text}
"""
result = translate_text("The quarterly results exceeded expectations.", lang="French")
Ключевое отличие: Автоматическая проверка
Критически важной особенностью являются постусловия — простые утверждения на Python, которые определяют, как должен выглядеть корректный вывод. Они выполняются при каждом вызове функции, а не только перед развёртыванием. Если проверка не проходит, система автоматически повторяет попытку, используя ошибку как обратную связь. Человек никогда не проверяет сгенерированный код; постусловия обеспечивают проверку каждый раз.
Концепция Software 3.1
Статья позиционирует это как «Software 3.1» — эволюцию по сравнению с фреймворком Андрея Карпати, где Software 3.0 — это «человек даёт промпты, LLM генерирует, человек проверяет». AI Functions представляют собой «человек задаёт спецификацию, LLM генерирует и выполняет, машина проверяет — во время выполнения». Модель выполнения принципиально отличается: LLM не создаёт текст для интеграции человеком, а код, который запускается непосредственно в вашем приложении.
Это одновременно меняет три аспекта: где ИИ используется в вашем программном обеспечении (во время выполнения, а не только во время разработки), что он производит (живые объекты, с которыми можно вызывать методы, вместо сериализованного текста) и как вы ему доверяете (непрерывная автоматическая проверка вместо единоразовой проверки человеком).
📖 Read the full source: HN AI Agents
👀 Смотрите также

Flotilla v0.5.0 перерабатывает фоновое выполнение, чтобы обойти лимиты кредитов Claude SDK
Flotilla v0.5.0 заменяет последовательное выполнение агентов неблокирующими параллельными циклами, тайм-аутами по 30 минут на агента и локальным делегированием для снижения расхода кредитов SDK.

Фейнман: Открытый Исследовательский Агент с Инструментом Аудита Кода и Научных Статей
Feynman — это CLI-агент с открытым исходным кодом для исследований, который параллельно запускает четыре под-агента для ответов на исследовательские вопросы и включает уникальный инструмент аудита, сравнивающий утверждения из статей с реальными кодовыми базами. Он отличается установкой одной командой, лицензией MIT, работает на pi для запуска агентов и использует alphaxiv для поиска статей.

VS Code Agent Kanban: Управление задачами на основе Markdown для ИИ-агентов программирования
VS Code Agent Kanban — это расширение, которое создаёт GitOps-совместимую канбан-доску внутри VS Code, используя файлы Markdown в качестве записей о задачах. Оно решает проблему «гниения контекста» в ИИ-агентах для программирования, сохраняя планировочные беседы, решения и детали реализации в версионируемых .md-файлах.

Через открытый универсальный слой интеграции подключает инструменты ИИ к общей контекстной шине
Via — это открытая универсальная интеграционная прослойка, которая объединяет Claude, Cursor, Windsurf, ChatGPT, LangChain и другие ИИ-инструменты в общую шину контекста, задач и памяти, позволяя работе следовать за пользователем между инструментами, сессиями и устройствами.