Skip to content

owtaylor/ai-workflows

 
 

Repository files navigation

AI Workflows Platform

An AI automation platform that leverages multiple AI agent frameworks for Red Hat engineering workflows. This repository uses Goose AI, BeeAI, and ADK Workflows to provide automation for RHEL/CentOS package management, issue triage, and development workflows.

🏗️ Architecture Overview

This platform consists of several integrated components:

AI Agents

  • Goose AI - Driven by human language instructions that call out to tools backed by MCP servers and the shell
  • BeeAI Framework - Driven by python scripts that call out to tools backed by MCP servers
  • ADK Workflows - Also driven by python

MCP (Model Context Protocol) Servers

  • Atlassian MCP Server - Jira/Confluence integration for issue management
  • Testing Farm MCP Server - Integration with Testing Farm for running packaging tests

Package Analysis Tools

Automation Recipes

  • Goose Recipes - Predefined workflows for common tasks
  • Issue Triage - Automated analysis and routing of RHEL issues
  • Package Rebase - Automated package version updates
  • Backport Management - Automated patch application workflows
  • Reverse Dependency Testing - Automated testing of select reverse dependencies based on context

🚀 Quick Start

Prerequisites

  • Podman
  • Make
  • API tokens (see Configuration section)

Initial Setup

  1. Configure environment:

    ❯ make config

    This copies template files to .secrets/ for manual configuration.

  2. Set up API tokens:

    • GOOGLE_API_KEY - From Google Cloud Console
    • JIRA_PERSONAL_TOKEN - From Jira profile settings
    • GITLAB_TOKEN - With appropriate read/write permissions
    • TESTING_FARM_API_TOKEN - From https://testing-farm.io/tokens/
  3. Build the platform:

    ❯ make build

Running Different Components

Interactive Goose AI Session

❯ make run-goose

BeeAI Automated Workflows

See beeai/README.md

ADK Package Automation

See adk-workflows/README.md

Goose Recipe Execution

# Run specific automation recipes
❯ make triage-issue
❯ make backport-fix
❯ make rebase-package
❯ make test-reverse-dependencies PACKAGE=systemd CHANGE='Fix bug in hostnamed that caused avahi to crash'

📋 Available Workflows

Package Management

  • Issue Triage - Automatically analyze JIRA issues and determine resolution path
  • Package Rebase - Update packages to newer upstream versions
  • Backport Fixes - Apply specific patches to packages
  • Dependency Analysis - Package dependency mapping

Development Automation

  • Repository Management - Automated Git operations and merge requests
  • Testing Integration - Automated testing via Testing Farm
  • Documentation Generation - Automated documentation updates

Monitoring & Observability

🔧 Configuration

LLM Provider Configuration

Edit goose-container/goose-config.yaml to configure:

  • GOOSE_PROVIDER - Your preferred LLM provider
  • GOOSE_MODEL - Specific model to use

Dry Run Mode

Enable safe testing without actual changes:

export DRY_RUN=true

📁 Repository Structure

ai-workflows/
├── goose/                    # Goose AI agent framework
├── beeai/                    # BeeAI framework with specialized agents
├── adk-workflows/            # Google ADK automation workflows
├── goose-recipes/            # Predefined automation workflows
├── scripts/                  # Utility scripts and tools
├── templates/                # Configuration templates
├── goose-container/          # Container configuration for Goose
└── compose.yaml              # Docker Compose orchestration

🤖 Agent Capabilities

BeeAI Agents

  • Triage Agent - Analyzes JIRA issues and routes to appropriate resolution
  • Rebase Agent - Automatically updates packages to newer versions
  • Backport Agent - Applies targeted fixes and patches

Goose AI Integration

  • Check JIRA tickets for rebase requests
  • Get details of JIRA issues
  • Analyze JIRA ticket to decide what automation (if any) is appropriate
  • Backport fix from upstream
  • Test package in testing farm
  • Test reverse dependencies of package in testing farm

🚢 Production Deployment

Container Images

Available at jotnar organization on quay.io

OpenShift Deployment

  • Namespace: jotnar-prod on Cyborg OpenShift cluster
  • Access: Members of jotnar LDAP group have admin access
  • Monitoring: Integrated observability and logging

📖 Documentation

🤝 Contributing

See CONTRIBUTING.md for guidelines.

Merging Policy: Prefer rebase-merging over merge commits unless preserving branch history is necessary.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 94.1%
  • Makefile 3.9%
  • Dockerfile 1.7%
  • Shell 0.3%