Skip to content

Commit ded0a6b

Browse files
authored
Merge pull request #64 from halfline/Update-README
README.md: Let LLM rewrite README.md
2 parents 4720faa + ed8901b commit ded0a6b

File tree

1 file changed

+132
-31
lines changed

1 file changed

+132
-31
lines changed

README.md

Lines changed: 132 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,155 @@
1-
# AI workflows, driven by Goose AI
1+
# AI Workflows Platform
22

3-
For Goose AI to be able to access Jira tickets you need an MCP Server.
4-
In this workflows we are using [MCP server for Atlassian tools](https://github.com/sooperset/mcp-atlassian).
3+
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.
54

6-
## Configure
5+
## 🏗️ Architecture Overview
76

8-
Secrets such as tokens are managed in the form of environment files. The templates for those files can be found in the `./templates` directory. To configure the deployment, run `make config` first to copy the files to the `.secrets` directory where you can manually edit the files to add your tokens and more. This step also sets up a .env file in the toplevel directory.
7+
This platform consists of several integrated components:
98

9+
### AI Agents
10+
- **[Goose AI](./goose/)** - Driven by human language instructions that call out to tools backed by MCP servers and the shell
11+
- **[BeeAI Framework](./beeai/)** - Driven by python scripts that call out to tools backed by MCP servers
12+
- **[ADK Workflows](./adk-workflows/)** - Also driven by python
1013

11-
- `GOOGLE_API_KEY`: take it from Google Cloud -> API & Services -> Credentials -> API Keys -> show key)
12-
- `JIRA_PERSONAL_TOKEN`: create PATs in your Jira/Confluence profile settings - usually under "Personal Access Tokens"
13-
- `GITLAB_TOKEN` with read permissions (read_user, read_repository, read_api). Forking and writing to a repository requires the `write_api` and `write_repository` scope. Please be aware that granting any write access to an agent creates a risk of data loss and should only be done in a test environment. However, you can avoid writing to the repository by using [dry run](beeai/README.md#dry-run-mode) mode.
14-
- `TESTING_FARM_API_TOKEN`: required and can be generated from https://testing-farm.io/tokens/.
14+
### MCP (Model Context Protocol) Servers
15+
- **Atlassian MCP Server** - Jira/Confluence integration for issue management
16+
- **Testing Farm MCP Server** - Integration with Testing Farm for running packaging tests
1517

16-
If you need to change the llm provider and model, they are stored in the Goose config file: `goose-container/goose-config.yaml` (`GOOSE_PROVIDER`, `GOOSE_MODEL`)
18+
### Package Analysis Tools
19+
- **[Package Dependency Analyzer](./scripts/find-package-dependents.py)** - Script for finding reverse dependencies
1720

18-
## Build
21+
### Automation Recipes
22+
- **[Goose Recipes](./goose-recipes/)** - Predefined workflows for common tasks
23+
- **Issue Triage** - Automated analysis and routing of RHEL issues
24+
- **Package Rebase** - Automated package version updates
25+
- **Backport Management** - Automated patch application workflows
26+
- **Reverse Dependency Testing** - Automated testing of select reverse dependencies based on context
1927

20-
- `make build` This builds the goose image using an officially released goose binaries
21-
- `make debug-build` This builds the goose image using a rebuild of goose from git. `*.patch` in `goose-container/` are applied to the git tree before building.
22-
## Run Goose - interactively - with the MCP Atlassian server
28+
## 🚀 Quick Start
2329

24-
To run goose interactively, don't be tempted to run `podman compose up` or similar, because input from your terminal might not be directed to the Goose container. Instead use:
30+
### Prerequisites
31+
- Podman
32+
- Make
33+
- API tokens (see Configuration section)
2534

26-
1. `make run-goose` (Requires enabling the [Generative Language API](https://console.developers.google.com/apis/api/generativelanguage.googleapis.com/) or another LLM provider and configuring the environment variables as described in the [configuration docs](https://block.github.io/goose/docs/guides/config-file#global-settings).)
27-
2. Type *List all In Progress issues at https://issues.redhat.com/projects/LD* and wait for the output.
28-
3. `make clean`
35+
### Initial Setup
36+
1. **Configure environment:**
37+
```bash
38+
❯ make config
39+
```
40+
This copies template files to `.secrets/` for manual configuration.
2941

30-
You can further manually run test and run the Goose recipes which are mounted into the container at `/home/goose/recipes`.
42+
2. **Set up API tokens:**
43+
- `GOOGLE_API_KEY` - From Google Cloud Console
44+
- `JIRA_PERSONAL_TOKEN` - From Jira profile settings
45+
- `GITLAB_TOKEN` - With appropriate read/write permissions
46+
- `TESTING_FARM_API_TOKEN` - From https://testing-farm.io/tokens/
3147

32-
## Run local Goose recipes
48+
3. **Build the platform:**
49+
```bash
50+
❯ make build
51+
```
3352

34-
The recipes are defined in `goose-recipes/`. If you want to run `goose-recipes/<recipe>.yaml`, run the following:
53+
### Running Different Components
3554

36-
1. `make <recipe>`
37-
2. `make clean`
55+
#### Interactive Goose AI Session
56+
```bash
57+
❯ make run-goose
58+
```
59+
60+
#### BeeAI Automated Workflows
61+
See beeai/README.md
62+
63+
#### ADK Package Automation
64+
See adk-workflows/README.md
65+
66+
#### Goose Recipe Execution
67+
```bash
68+
# Run specific automation recipes
69+
❯ make triage-issue
70+
❯ make backport-fix
71+
❯ make rebase-package
72+
❯ make test-reverse-dependencies PACKAGE=systemd CHANGE='Fix bug in hostnamed that caused avahi to crash'
73+
```
74+
75+
## 📋 Available Workflows
76+
77+
### Package Management
78+
- **Issue Triage** - Automatically analyze JIRA issues and determine resolution path
79+
- **Package Rebase** - Update packages to newer upstream versions
80+
- **Backport Fixes** - Apply specific patches to packages
81+
- **Dependency Analysis** - Package dependency mapping
82+
83+
### Development Automation
84+
- **Repository Management** - Automated Git operations and merge requests
85+
- **Testing Integration** - Automated testing via Testing Farm
86+
- **Documentation Generation** - Automated documentation updates
87+
88+
### Monitoring & Observability
89+
- **Phoenix Web Interface** - beeai agent tracing at http://localhost:6006/
90+
- **Redis Commander** - beeai queue monitoring at http://localhost:8081/
3891

39-
## Development
92+
## 🔧 Configuration
4093

41-
This project uses [pre-commit](https://pre-commit.com/) hooks. To set up:
94+
### LLM Provider Configuration
95+
Edit `goose-container/goose-config.yaml` to configure:
96+
- `GOOSE_PROVIDER` - Your preferred LLM provider
97+
- `GOOSE_MODEL` - Specific model to use
4298

99+
### Dry Run Mode
100+
Enable safe testing without actual changes:
43101
```bash
44-
pip install pre-commit
45-
pre-commit install
102+
export DRY_RUN=true
46103
```
47104

48-
## Container Images
105+
## 📁 Repository Structure
106+
107+
```
108+
ai-workflows/
109+
├── goose/ # Goose AI agent framework
110+
├── beeai/ # BeeAI framework with specialized agents
111+
├── adk-workflows/ # Google ADK automation workflows
112+
├── goose-recipes/ # Predefined automation workflows
113+
├── scripts/ # Utility scripts and tools
114+
├── templates/ # Configuration templates
115+
├── goose-container/ # Container configuration for Goose
116+
└── compose.yaml # Docker Compose orchestration
117+
```
118+
119+
## 🤖 Agent Capabilities
120+
121+
### BeeAI Agents
122+
- **Triage Agent** - Analyzes JIRA issues and routes to appropriate resolution
123+
- **Rebase Agent** - Automatically updates packages to newer versions
124+
- **Backport Agent** - Applies targeted fixes and patches
125+
126+
### Goose AI Integration
127+
- Check JIRA tickets for rebase requests
128+
- Get details of JIRA issues
129+
- Analyze JIRA ticket to decide what automation (if any) is appropriate
130+
- Backport fix from upstream
131+
- Test package in testing farm
132+
- Test reverse dependencies of package in testing farm
133+
134+
## 🚢 Production Deployment
135+
136+
### Container Images
137+
Available at [jotnar organization on quay.io](https://quay.io/organization/jotnar)
138+
139+
### OpenShift Deployment
140+
- **Namespace**: `jotnar-prod` on Cyborg OpenShift cluster
141+
- **Access**: Members of `jotnar` LDAP group have admin access
142+
- **Monitoring**: Integrated observability and logging
143+
144+
## 📖 Documentation
145+
146+
- [BeeAI Framework Details](./beeai/README.md)
147+
- [ADK Workflows Guide](./adk-workflows/README.md)
148+
- [Goose AI Documentation](./goose/README.md)
149+
- [Package Analysis Tools](./scripts/README.md)
49150

50-
Container images are available at the [jotnar](https://quay.io/organization/jotnar) organization on quay.io.
151+
## 🤝 Contributing
51152

52-
## Production
153+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
53154

54-
This project is deployed in the `jotnar-prod` namespace on the Cyborg Openshift cluster. Members of `jotnar` LDAP group have admin access to it.
155+
**Merging Policy**: Prefer rebase-merging over merge commits unless preserving branch history is necessary.

0 commit comments

Comments
 (0)