Организация волонтерских команд

Я хотел бы создать общее пространство разработки, где бы мы могли ставить и видеть задачи, держать описания систем и исходный код, а также могли бы синхронизироваться с нашей платформой. Последнее особенно важно, чтобы ты мог бы более легким способом согласовывать и принимать работу разработчиков. В будущем я хотел бы создать целую экосистему разработки разных ИИ-агентов.

Сейчас я хочу организовать несколько команд, которые будут реализовывать несколько проектов:

  1. Интеграция клуба и Obsidian, чтобы увеличить популяризацию клуба за счет того, что база знаний в Aisystant может быть легко отдана в Obsidian, а из Obsidian можно было бы опубликовать пост в клубе.
  2. Аналог randomcoffee (бот в Телеграм) для встреч членов клуба. Вроде простой проект для старта, но далее хотелось бы сделать ИИ-агент, который бы максимизировал бы горизонтальные связи.
  3. Бот-ассистент: вывести нашего Aisystant в телеграм и перевести его на gpt-4, загрузить курсы личного развития, научить его генерировать и проверять задачи.

Эти проекты пока можно было бы реализовать независимо от Aisystant, но хотелось бы на их примере провести развитие нашей среды разработки, чтобы в будущем увеличить количество команд и обеспечить координацию. В связи с этим, я по наводке Андрея и с участием ChatGPT 03-mini-high подготовил инструкцию для участников различных команд, использующих GitHub и сервис Smith от LangChain для координации действий, хранения кода и ведения общего бэклога (с возможностью разделения по командам).

1. Общая организация проекта

Необходимо обеспечить централизованное хранение кода, прозрачное управление задачами и эффективное прототипирование цепочек логики для ИИ-агентов и Telegram-ботов. Для этого используются следующие инструменты:

  • GitHub: для хранения кода, управления версиями, проведения code review и ведения бэклога (Issues/Projects).
  • Smith от LangChain: для прототипирования, визуализации и отладки логики (chain flows) ИИ-компонентов.
  • Telegram: для чатов и оперативного обсуждения или встреч.

2. Настройка и регистрация

  • GitHub:
    • Убедитесь, что у всех участников есть аккаунты на GitHub.
    • Создайте центральный репозиторий для каждого проекта или используйте монорепозиторий с разделением по компонентам (например, /agent, /telegram-bot).
  • Smith:
    • Зарегистрируйтесь и обеспечьте доступ всем членам команд к Smith.
    • Проведите краткий обучающий вебинар или подготовьте инструкцию по работе с сервисом для новичков.
  • Telegram:

3. Структура репозитория и организация веток

  • Рекомендуемая структура репозитория:
/docs — документация, включая диаграммы и схемы из Smith
/src — исходный код приложения
/tests  — тесты и сценарии автоматизированной проверки
README.md — описание проекта и инструкция по работе
.gitignore — список исключаемых файлов
LICENSE — информация о лицензировании
  • Ветвление и рабочий процесс:
    • Основные ветки:
      • main (или master): стабильная версия кода для релиза.
      • develop: интеграция новых фич и исправлений.
    • Фича-ветки:
      Для каждой новой функциональности или исправления ошибок создавайте отдельные ветки с именованием вида:
feature/<название-функциональности>
bugfix/<описание-ошибки>
  • Pull Request (PR):
    После завершения работы в фича-ветке создавайте PR в ветку develop с подробным описанием изменений, ссылками на соответствующие задачи (Issues) и ссылками на схемы из Smith (если применимо).

4. Управление задачами и бэклогом

  • GitHub Issues и Projects:
    • Создание задач (Issues):
      • Детально описывайте каждую задачу или баг.
      • Используйте метки (labels) для классификации (например, feature, bug, documentation).
    • Общий бэклог:
      • Организуйте бэклог с помощью GitHub Projects.
      • Создайте колонки (например, To Do, In Progress, Review, Done) и распределите задачи по этапам выполнения.
    • Разделение по командам:
      • Добавляйте в задачи метки или назначайте ответственных в зависимости от команды (например, team-agent, team-telegram).
      • Можно создать отдельные доски для каждой команды, если это удобнее для мониторинга.

5. Использование сервиса Smith от LangChain

  • Прототипирование и визуализация:
    • Разработка цепочек:
      Используйте Smith для быстрой разработки и тестирования логики взаимодействия (chain flows) ИИ-агентов — от обработки входящих сообщений до вызовов API и формирования ответов.
    • Отладка:
      Прототипируйте сложные цепочки в Smith, проверяйте их работоспособность и корректность на ранних этапах разработки.
    • Документация:
      • Экспортируйте полученные схемы и диаграммы или сохраняйте ссылки на них.
      • Размещайте их в папке /docs репозитория для общего доступа и обсуждения.
    • Интеграция с GitHub:
      • В описании задач в Issues указывайте ссылки на соответствующие прототипы в Smith.
      • После утверждения прототипа в Smith переходите к реализации в коде, фиксируя изменения в соответствующих ветках.

6. Совместная работа и коммуникация

  • Регулярные встречи и синхронизация:
    • Проводите оперативки (stand-up встречи) для синхронизации работы между командами.
    • Обсуждайте архитектуру и цепочки логики, используя диаграммы из Smith как общий ориентир.
  • Code Review и обратная связь:
    • Все PR должны проходить обязательное code review с проверкой на соответствие архитектурным решениям, описанным в документации и прототипах Smith.
  • Уведомления и интеграция:
    • Настройте уведомления GitHub в мессенджерах (например, Telegram или Slack) для оперативного информирования о новых PR, комментариях и изменениях в бэклоге.

7. Автоматизация и контроль качества

  • CI/CD:
    • Настройте GitHub Actions для автоматического запуска тестов, проверки стиля кода и сборки проекта при каждом PR.
  • Интеграция прототипов:
    • После успешного тестирования прототипов в Smith интегрируйте логику в основной код, сопровождая изменения подробными комментариями и обновлением документации.

8. Итоговый рабочий процесс

  1. Планирование и постановка задач:
  • Формулируйте задачи в GitHub Issues, распределяя их между командами и добавляя ссылки на соответствующие прототипы из Smith.
  1. Прототипирование:
  • Разрабатывайте и тестируйте цепочки логики в Smith, сохраняйте схемы и делитесь ими с командой через /docs репозитория.
  1. Реализация:
  • Создавайте фича-ветки в GitHub для разработки функционала, опираясь на утвержденные схемы и прототипы.
  1. Проверка и слияние:
  • Создавайте PR, проходите code review, интегрируйте изменения в ветку develop, а затем в main после успешного тестирования.
  1. Поддержка и развитие:
  • Обновляйте бэклог, пересматривайте прототипы в Smith, вносите улучшения и документируйте изменения в CHANGELOG.md и другой документации.

Следование данной инструкции поможет обеспечить прозрачность процессов, повысить качество разрабатываемого продукта и облегчить коммуникацию между различными командами в рамках общего проекта.