Files
skill-seekers-reference/docs/integrations/MULTI_LLM_SUPPORT.md
yusyus 4f87de6b56 fix: improve MiniMax adaptor from PR #318 review (#319)
* feat: add MiniMax AI as LLM platform adaptor

Original implementation by octo-patch in PR #318.
This commit includes comprehensive improvements and documentation.

Code Improvements:
- Fix API key validation to properly check JWT format (eyJ prefix)
- Add specific exception handling for timeout and connection errors
- Remove unused variable in upload method

Dependencies:
- Add MiniMax to [all-llms] extra group in pyproject.toml

Tests:
- Remove duplicate setUp method in integration test class
- Add 4 new test methods:
  * test_package_excludes_backup_files
  * test_upload_success_mocked (with OpenAI mocking)
  * test_upload_network_error
  * test_upload_connection_error
  * test_validate_api_key_jwt_format
- Update test_validate_api_key_valid to use JWT format keys
- Fix test assertions for error message matching

Documentation:
- Create comprehensive MINIMAX_INTEGRATION.md guide (380+ lines)
- Update MULTI_LLM_SUPPORT.md with MiniMax platform entry
- Update 01-installation.md extras table
- Update INTEGRATIONS.md AI platforms table
- Update AGENTS.md adaptor import pattern example
- Fix README.md platform count from 4 to 5

All tests pass (33 passed, 3 skipped)
Lint checks pass

Co-authored-by: octo-patch <octo-patch@users.noreply.github.com>

* fix: improve MiniMax adaptor — typed exceptions, key validation, tests, docs

- Remove invalid "minimax" self-reference from all-llms dependency group
- Use typed OpenAI exceptions (APITimeoutError, APIConnectionError)
  instead of string-matching on generic Exception
- Replace incorrect JWT assumption in validate_api_key with length check
- Use DEFAULT_API_ENDPOINT constant instead of hardcoded URLs (3 sites)
- Add Path() cast for output_path before .is_dir() call
- Add sys.modules mock to test_enhance_missing_library
- Add mocked test_enhance_success with backup/content verification
- Update test assertions for new exception types and key validation
- Add MiniMax to __init__.py docstrings (module, get_adaptor, list_platforms)
- Add MiniMax sections to MULTI_LLM_SUPPORT.md (install, format, API key,
  workflow example, export-to-all)

Follows up on PR #318 by @octo-patch (feat: add MiniMax AI as LLM platform adaptor).

Co-Authored-By: Octopus <octo-patch@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: octo-patch <octo-patch@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 22:12:23 +03:00

11 KiB

Multi-LLM Platform Support Guide

Skill Seekers supports multiple LLM platforms through a clean adaptor system. The core scraping and content organization remains universal, while packaging and upload are platform-specific.

Supported Platforms

Platform Status Format Upload Enhancement API Key Required
Claude AI Full Support ZIP + YAML Automatic Yes ANTHROPIC_API_KEY
Google Gemini Full Support tar.gz Automatic Yes GOOGLE_API_KEY
OpenAI ChatGPT Full Support ZIP + Vector Store Automatic Yes OPENAI_API_KEY
MiniMax AI Full Support ZIP Validation Yes MINIMAX_API_KEY
Generic Markdown Export Only ZIP Manual No None

Quick Start

Claude AI (Default)

No changes needed! All existing workflows continue to work:

# Scrape documentation
skill-seekers scrape --config configs/react.json

# Package for Claude (default)
skill-seekers package output/react/

# Upload to Claude
skill-seekers upload react.zip

Google Gemini

# Install Gemini support
pip install skill-seekers[gemini]

# Set API key
export GOOGLE_API_KEY=AIzaSy...

# Scrape documentation (same as always)
skill-seekers scrape --config configs/react.json

# Package for Gemini
skill-seekers package output/react/ --target gemini

# Upload to Gemini
skill-seekers upload react-gemini.tar.gz --target gemini

# Optional: Enhance with Gemini
skill-seekers enhance output/react/ --target gemini

Output: react-gemini.tar.gz ready for Google AI Studio

OpenAI ChatGPT

# Install OpenAI support
pip install skill-seekers[openai]

# Set API key
export OPENAI_API_KEY=sk-proj-...

# Scrape documentation (same as always)
skill-seekers scrape --config configs/react.json

# Package for OpenAI
skill-seekers package output/react/ --target openai

# Upload to OpenAI (creates Assistant + Vector Store)
skill-seekers upload react-openai.zip --target openai

# Optional: Enhance with GPT-4o
skill-seekers enhance output/react/ --target openai

Output: OpenAI Assistant created with file search enabled

Generic Markdown (Universal Export)

# Package as generic markdown (no dependencies)
skill-seekers package output/react/ --target markdown

# Output: react-markdown.zip with:
#   - README.md
#   - references/*.md
#   - DOCUMENTATION.md (combined)

Use case: Export for any LLM, documentation hosting, or manual distribution

Installation Options

Install Core Package Only

# Default installation (Claude support only)
pip install skill-seekers

Install with Specific Platform Support

# Google Gemini support
pip install skill-seekers[gemini]

# OpenAI ChatGPT support
pip install skill-seekers[openai]

# MiniMax AI support
pip install skill-seekers[minimax]

# All LLM platforms
pip install skill-seekers[all-llms]

# Development dependencies (includes testing)
pip install skill-seekers[dev]

Install from Source

git clone https://github.com/yusufkaraaslan/Skill_Seekers.git
cd Skill_Seekers

# Editable install with all platforms
pip install -e .[all-llms]

Platform Comparison

Format Differences

Claude AI:

  • Format: ZIP archive
  • SKILL.md: YAML frontmatter + markdown
  • Structure: SKILL.md, references/, scripts/, assets/
  • API: Anthropic Skills API
  • Enhancement: Claude Sonnet 4

Google Gemini:

  • Format: tar.gz archive
  • SKILL.md → system_instructions.md (plain markdown, no frontmatter)
  • Structure: system_instructions.md, references/, gemini_metadata.json
  • API: Google Files API + grounding
  • Enhancement: Gemini 2.0 Flash

OpenAI ChatGPT:

  • Format: ZIP archive
  • SKILL.md → assistant_instructions.txt (plain text)
  • Structure: assistant_instructions.txt, vector_store_files/, openai_metadata.json
  • API: Assistants API + Vector Store
  • Enhancement: GPT-4o

MiniMax AI:

  • Format: ZIP archive
  • SKILL.md -> system_instructions.txt (plain text, no frontmatter)
  • Structure: system_instructions.txt, knowledge_files/, minimax_metadata.json
  • API: OpenAI-compatible chat completions
  • Enhancement: MiniMax-M2.7

Generic Markdown:

  • Format: ZIP archive
  • Structure: README.md, references/, DOCUMENTATION.md (combined)
  • No API integration
  • No enhancement support
  • Universal compatibility

API Key Configuration

Claude AI:

export ANTHROPIC_API_KEY=sk-ant-...

Google Gemini:

export GOOGLE_API_KEY=AIzaSy...

OpenAI ChatGPT:

export OPENAI_API_KEY=sk-proj-...

MiniMax AI:

export MINIMAX_API_KEY=your-key

Complete Workflow Examples

Workflow 1: Claude AI (Default)

# 1. Scrape
skill-seekers scrape --config configs/react.json

# 2. Enhance (optional but recommended)
skill-seekers enhance output/react/

# 3. Package
skill-seekers package output/react/

# 4. Upload
skill-seekers upload react.zip

# Access at: https://claude.ai/skills

Workflow 2: Google Gemini

# Setup (one-time)
pip install skill-seekers[gemini]
export GOOGLE_API_KEY=AIzaSy...

# 1. Scrape (universal)
skill-seekers scrape --config configs/react.json

# 2. Enhance for Gemini
skill-seekers enhance output/react/ --target gemini

# 3. Package for Gemini
skill-seekers package output/react/ --target gemini

# 4. Upload to Gemini
skill-seekers upload react-gemini.tar.gz --target gemini

# Access at: https://aistudio.google.com/files/

Workflow 3: OpenAI ChatGPT

# Setup (one-time)
pip install skill-seekers[openai]
export OPENAI_API_KEY=sk-proj-...

# 1. Scrape (universal)
skill-seekers scrape --config configs/react.json

# 2. Enhance with GPT-4o
skill-seekers enhance output/react/ --target openai

# 3. Package for OpenAI
skill-seekers package output/react/ --target openai

# 4. Upload (creates Assistant + Vector Store)
skill-seekers upload react-openai.zip --target openai

# Access at: https://platform.openai.com/assistants/

Workflow 4: MiniMax AI

# Setup (one-time)
pip install skill-seekers[minimax]
export MINIMAX_API_KEY=your-key

# 1. Scrape (universal)
skill-seekers scrape --config configs/react.json

# 2. Enhance with MiniMax-M2.7
skill-seekers enhance output/react/ --target minimax

# 3. Package for MiniMax
skill-seekers package output/react/ --target minimax

# 4. Upload to MiniMax (validates with API)
skill-seekers upload react-minimax.zip --target minimax

# Access at: https://platform.minimaxi.com/

Workflow 5: Export to All Platforms

# Install all platforms
pip install skill-seekers[all-llms]

# Scrape once
skill-seekers scrape --config configs/react.json

# Package for all platforms
skill-seekers package output/react/ --target claude
skill-seekers package output/react/ --target gemini
skill-seekers package output/react/ --target openai
skill-seekers package output/react/ --target minimax
skill-seekers package output/react/ --target markdown

# Result:
# - react.zip (Claude)
# - react-gemini.tar.gz (Gemini)
# - react-openai.zip (OpenAI)
# - react-minimax.zip (MiniMax)
# - react-markdown.zip (Universal)

Advanced Usage

Custom Enhancement Models

Each platform uses its default enhancement model, but you can customize:

# Use specific model for enhancement (if supported)
skill-seekers enhance output/react/ --target gemini --model gemini-2.0-flash-exp
skill-seekers enhance output/react/ --target openai --model gpt-4o

Programmatic Usage

from skill_seekers.cli.adaptors import get_adaptor

# Get platform-specific adaptor
gemini = get_adaptor('gemini')
openai = get_adaptor('openai')
claude = get_adaptor('claude')

# Package for specific platform
gemini_package = gemini.package(skill_dir, output_path)
openai_package = openai.package(skill_dir, output_path)

# Upload with API key
result = gemini.upload(gemini_package, api_key)
print(f"Uploaded to: {result['url']}")

Platform Detection

Check which platforms are available:

from skill_seekers.cli.adaptors import list_platforms, is_platform_available

# List all registered platforms
platforms = list_platforms()
print(platforms)  # ['claude', 'gemini', 'minimax', 'openai', 'markdown']

# Check if platform is available
if is_platform_available('gemini'):
    print("Gemini adaptor is available")

Backward Compatibility

100% backward compatible with existing workflows:

  • All existing Claude commands work unchanged
  • Default behavior remains Claude-focused
  • Optional --target flag adds multi-platform support
  • No breaking changes to existing configs or workflows

Platform-Specific Guides

For detailed platform-specific instructions, see:

Troubleshooting

Missing Dependencies

Error: ModuleNotFoundError: No module named 'google.generativeai'

Solution:

pip install skill-seekers[gemini]

Error: ModuleNotFoundError: No module named 'openai'

Solution:

pip install skill-seekers[openai]
# or for MiniMax (also uses openai library)
pip install skill-seekers[minimax]

API Key Issues

Error: Invalid API key format

Solution: Check your API key format:

  • Claude: sk-ant-...
  • Gemini: AIza...
  • OpenAI: sk-proj-... or sk-...
  • MiniMax: Any valid API key string

Package Format Errors

Error: Not a tar.gz file: react.zip

Solution: Use correct --target flag:

# Gemini requires tar.gz
skill-seekers package output/react/ --target gemini

# OpenAI and Claude use ZIP
skill-seekers package output/react/ --target openai

FAQ

Q: Can I use the same scraped data for all platforms?

A: Yes! The scraping phase is universal. Only packaging and upload are platform-specific.

Q: Do I need separate API keys for each platform?

A: Yes, each platform requires its own API key. Set them as environment variables.

Q: Can I enhance with different models?

A: Yes, each platform uses its own enhancement model:

  • Claude: Claude Sonnet 4
  • Gemini: Gemini 2.0 Flash
  • OpenAI: GPT-4o
  • MiniMax: MiniMax-M2.7

Q: What if I don't want to upload automatically?

A: Use the package command without upload. You'll get the packaged file to upload manually.

Q: Is the markdown export compatible with all LLMs?

A: Yes! The generic markdown export creates universal documentation that works with any LLM or documentation system.

Q: Can I contribute a new platform adaptor?

A: Absolutely! See the Contributing Guide for how to add new platform adaptors.

Next Steps

  1. Choose your target platform
  2. Install optional dependencies if needed
  3. Set up API keys
  4. Follow the platform-specific workflow
  5. Upload and test your skill

For more help, see: