Connect with us

TechHype

Создание агента для написания кода на Swift

Опубликовано

/

     
     

Данная статья является первой в серии из восьми руководств, посвященных созданию собственного аналога Claude Code на Swift. Основной идеей проекта является демонстрация эффективности архитектурного подхода, основанного на минимальном наборе инструментов, тонкой оркестрации и максимальном использовании возможностей самой модели. В этой части автор закладывает фундамент проекта, уделяя особое внимание правильной структуре, которая позволит избежать рефакторинга в дальнейшем.

Проект начинается с инициализации Swift Package Manager (SPM). Вместо того чтобы помещать всю логику в один исполняемый файл, автор предлагает разделить проект на два модуля: библиотеку ‘Core’ для основной логики агента и исполняемый файл ‘cli’ в качестве точки входа командной строки. Такой подход обеспечивает возможность написания юнит-тестов для библиотеки ‘Core’ и повторного использования ее логики вне CLI-приложения.

Для реализации библиотеки ‘Core’ создается простой enum ‘Agent’ с статическим свойством ‘version’. Это временное решение, которое будет развиваться в полноценный класс в следующих частях. Исполняемый файл ‘cli’ использует атрибут @main для определения точки входа, которая объявлена как асинхронная (async throws) с самого начала, предвидя будущие асинхронные вызовы API.

Манифест пакета (Package.swift) настраивается для поддержки двух модулей. В качестве зависимостей для ‘Core’ выбирается ‘AsyncHTTPClient’ вместо стандартного URLSession из Foundation. Это обусловлено лучшей кроссплатформенной надежностью и согласованностью работы с асинхронной моделью Swift. Также указывается версия Swift Tools (6.2) для включения строгой проверки параллелизма, что поможет выявлять гонки данных на этапе компиляции.

С самого начала уделяется внимание тестированию. Создается тестовый модуль ‘CoreTests’ с использованием фреймворка Swift Testing, который поддерживает асинхронные тесты и работает как на macOS, так и на Linux. Первый тест проверяет корректность версии библиотеки ‘Core’, подтверждая правильность сборки и связывания всех компонентов.

Для функционирования агента потребуется API-ключ Anthropic. В статье предлагается использовать файл .env.example для документирования необходимых переменных окружения (API-ключ и идентификатор модели) и .gitignore для исключения конфиденциальных данных и артефактов сборки из системы контроля версий.

В заключение автор демонстрирует запуск проекта с помощью команд ‘swift build’, ‘swift run agent’ и ‘swift test’. Успешное выполнение этих команд подтверждает корректность инициализации проекта, разделения на модули, настройки зависимостей и готовность к дальнейшей разработке. Следующая часть серии будет посвящена первому вызову API Claude и созданию основного цикла агента.

Читать оригинал

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: