Skip to content

✨ feat: Add RHDH Store Manager agent with RAG knowledge base#16

Draft
durandom wants to merge 2 commits into
mainfrom
store-manager
Draft

✨ feat: Add RHDH Store Manager agent with RAG knowledge base#16
durandom wants to merge 2 commits into
mainfrom
store-manager

Conversation

@durandom

Copy link
Copy Markdown
Owner

Summary

Adds a new RHDH Store Manager agent that helps Red Hat Developer Hub users navigate the extensive plugin ecosystem using Retrieval-Augmented Generation (RAG).

Key additions:

  • Store Manager agent with comprehensive plugin knowledge base
  • RAG integration improvements for knowledge base persistence
  • Complete test suite with 477 test lines
  • Comprehensive documentation and testing guides

Changes:

  • Agent implementation (store_manager_agent.py, store_manager_agent_configurator.py): Full plugin system integration with RAG knowledge base
  • Knowledge management (knowledge/manager.py): Enhanced RAG system with better caching and persistence
  • Documentation: Agent guide, comprehensive test scenarios, and testing guide
  • Configuration: Updated proxy_config.yaml and pyproject.toml for new agent
  • Knowledge base structure: Reorganized to support per-agent knowledge directories

Test Plan

  • Unit tests for Store Manager agent (477 lines)
  • RAG knowledge base loading and querying
  • Plugin search and recommendation scenarios
  • Integration with LiteLLM proxy
  • Manual testing with OpenWebUI (run nox -s proxy and nox -s dev_local_proxy)
  • Test comprehensive scenarios from docs/agents/store-manager-comprehensive-test.md

Related

Part of RHDH agent ecosystem. Follows plugin architecture patterns from existing agents (GitHub PR Prioritization, Sprint Reviewer).

Introduces a comprehensive agent for Red Hat Developer Hub's plugin ecosystem management with extensive knowledge base integration and Jira toolkit support.

Features:
- Store Manager agent with 8 core use cases (discovery, migration, certification, lifecycle, support, releases, metadata, coordination)
- RAG knowledge base with 24 files (9 MD, 1 PDF, 14 CSV) covering plugin documentation, catalogs, and release schedules
- Jira toolkit integration for real-time issue tracking (RHIDP, RHDHPLAN projects)
- Comprehensive test suite with 10 validation scenarios covering knowledge retrieval, CSV parsing, and Jira integration
- Detailed documentation with 58+ test questions and testing guide

Technical implementation:
- AgentConfigurator pattern with JiraToolkitConfig for token management
- Knowledge base auto-loading via _get_knowledge_config()
- Hybrid search (vector + keyword) with LanceDB persistence
- Plugin system registration via pyproject.toml entry point

Documentation:
- docs/agents/store-manager.md - Agent overview and capabilities
- docs/agents/store-manager-test-questions.md - 58+ test questions across 8 use cases
- docs/agents/store-manager-comprehensive-test.md - Test execution guide
- docs/testing-guide.md - General testing best practices

Configuration:
- STORE_MANAGER_JIRA_API_TOKEN environment variable for Jira access
- knowledge/ directory added to .gitignore for local knowledge bases
Fixes missing knowledge bases in deployed containers by explicitly copying them during the container build process.

Changes:
- Containerfile: Add COPY commands for examples/ and knowledge/ directories
- .containerignore: Add explicit includes for knowledge directories (!examples/knowledge/, !knowledge/)
- .gitignore: Narrow exclusion from knowledge/ to knowledge/store-manager/ (allows demo agent knowledge to be tracked)
- Reorganize: Move demo agent knowledge from examples/knowledge/ to knowledge/demo-agent/

Technical details:
- Knowledge directories were git-ignored but needed in container runtime
- Total size impact: ~5.3 MB (demo: 72 KB, store-manager: 5.2 MB)
- LanceDB vector indexes are generated at runtime in /app/tmp/lancedb/
- Source documents (MD, PDF, CSV) are now bundled in the container image

This allows agents to access their knowledge bases:
- Demo agent: knowledge/demo-agent/ (3 MD files)
- Store Manager agent: knowledge/store-manager/ (24 files: 9 MD, 1 PDF, 14 CSV)
Copilot AI review requested due to automatic review settings November 25, 2025 16:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a comprehensive RHDH Store Manager agent to help Red Hat Developer Hub users navigate the plugin ecosystem using Retrieval-Augmented Generation (RAG). The agent provides guidance across 8 key use cases including plugin discovery, migration, certification, lifecycle management, support boundaries, release planning, metadata management, and team coordination.

Key Changes:

  • New Store Manager agent with RAG knowledge base and Jira integration
  • Enhanced knowledge management system with improved async event loop handling for LiteLLM proxy compatibility
  • Comprehensive test suite with 477 lines covering unit and integration testing
  • Complete documentation including agent guide, test scenarios, and testing guide

Reviewed changes

Copilot reviewed 12 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
uv.lock Added aiofiles and duckdb dependencies; removed beautifulsoup4 and requests (⚠️ breaking change)
pyproject.toml Added new dependencies and registered store-manager agent entry point
src/agentllm/agents/store_manager_agent.py New agent wrapper following established three-class pattern
src/agentllm/agents/store_manager_agent_configurator.py Comprehensive configurator with RAG, CSV tools, and optional Jira integration
src/agentllm/knowledge/manager.py Enhanced async document loading with thread pool support for LiteLLM proxy
tests/test_store_manager_agent.py Extensive test suite with 13 unit tests and 10 parametrized integration scenarios
proxy_config.yaml Added Store Manager model configuration with mode metadata
.env.secrets.template Added STORE_MANAGER_JIRA_API_TOKEN configuration with setup instructions
docs/agents/store-manager.md Comprehensive agent documentation covering all capabilities and troubleshooting
docs/agents/store-manager-test-questions.md 58+ test questions organized by use case
docs/agents/store-manager-comprehensive-test.md Detailed guide for running and interpreting comprehensive test scenarios
docs/testing-guide.md Quick reference for running parametrized test scenarios
src/agentllm/agents/demo_agent_configurator.py Minor formatting improvements (multi-line function calls)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

toolkits = []

# Add CSV toolkit for plugin metadata
csv_path = Path("knowledge/store-manager/store-manager-docs/marketplace plugin metadata_sheets/working_sheet.csv")

Copilot AI Nov 25, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The CSV path is hardcoded to a very specific location: knowledge/store-manager/store-manager-docs/marketplace plugin metadata_sheets/working_sheet.csv. This path contains spaces ("marketplace plugin metadata_sheets") and is deeply nested.

Consider:

  1. Using a configuration variable or constant at the module level to make this path more discoverable and easier to update
  2. Documenting this path requirement in the agent's setup documentation
  3. Adding a more informative error message if the file is not found, guiding users on where to place it

This will improve maintainability and make it easier for users to set up the agent correctly.

Copilot uses AI. Check for mistakes.
@durandom durandom marked this pull request as draft November 25, 2025 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants