Welcome to the AgentMind Plugin Marketplace! This directory contains information about available plugins and how to create your own.
AgentMind supports the following plugin types:
- LLM Providers - Custom language model integrations
- Memory Backends - Storage backends for agent memory
- Tools - External tools and APIs agents can use
- Orchestrators - Custom orchestration strategies
- Observers - Monitoring and middleware plugins
- agentmind-plugin-openai - OpenAI GPT models integration
- agentmind-plugin-anthropic - Anthropic Claude integration
- agentmind-plugin-ollama - Local Ollama models (built-in)
- agentmind-plugin-litellm - LiteLLM unified interface (built-in)
- agentmind-plugin-redis - Redis-based memory backend
- agentmind-plugin-pinecone - Pinecone vector database
- agentmind-plugin-weaviate - Weaviate vector database
- agentmind-plugin-chroma - ChromaDB integration (built-in)
- agentmind-plugin-web-search - Web search capabilities
- agentmind-plugin-code-executor - Safe code execution
- agentmind-plugin-file-ops - File system operations
- agentmind-plugin-api-client - REST API client
- agentmind-plugin-langgraph - LangGraph compatibility
- agentmind-plugin-autogen - AutoGen-style orchestration
- agentmind-plugin-crewai - CrewAI-style workflows
- agentmind-plugin-langsmith - LangSmith tracing
- agentmind-plugin-wandb - Weights & Biases logging
- agentmind-plugin-prometheus - Prometheus metrics
Install plugins using pip:
pip install agentmind-plugin-openai
pip install agentmind-plugin-redisPlugins are automatically discovered via entry points. No additional configuration needed!
from agentmind import discover_plugins, load_plugin
# Discover all available plugins
plugins = discover_plugins()
print(plugins)
# {'llm': ['openai', 'anthropic'], 'memory': ['redis', 'pinecone'], ...}
# Load a specific plugin
OpenAIProvider = load_plugin('llm', 'openai')
provider = OpenAIProvider(api_key='your-key')
# Use with AgentMind
from agentmind import Agent, AgentMind
agent = Agent(name="assistant", llm_provider=provider)
mind = AgentMind(llm_provider=provider)agentmind-plugin-myplugin/
├── setup.py
├── README.md
├── LICENSE
├── agentmind_plugin_myplugin/
│ ├── __init__.py
│ └── plugin.py
└── tests/
└── test_plugin.py
# agentmind_plugin_myplugin/plugin.py
from agentmind.plugins.interfaces import LLMProvider, PluginMetadata
class MyLLMProvider(LLMProvider):
"""My custom LLM provider."""
def get_metadata(self) -> PluginMetadata:
return PluginMetadata(
name="myplugin",
version="0.1.0",
description="My custom LLM provider",
author="Your Name",
plugin_type="llm_provider",
)
async def initialize(self, config=None):
# Initialize your provider
pass
async def shutdown(self):
# Cleanup
pass
def health_check(self):
return True
async def generate(self, messages, **kwargs):
# Implement generation logic
return {
"content": "Generated response",
"model": "my-model",
"usage": {},
"metadata": {},
}
async def generate_stream(self, messages, **kwargs):
# Implement streaming
yield "chunk1"
yield "chunk2"
def get_model_info(self):
return {"name": "my-model", "max_tokens": 4096}# setup.py
from setuptools import setup, find_packages
setup(
name="agentmind-plugin-myplugin",
version="0.1.0",
description="My AgentMind plugin",
author="Your Name",
author_email="your.email@example.com",
packages=find_packages(),
install_requires=[
"agentmind>=0.2.0",
# Your dependencies
],
entry_points={
"agentmind.plugins.llm": [
"myplugin = agentmind_plugin_myplugin.plugin:MyLLMProvider",
],
},
classifiers=[
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
],
)# tests/test_plugin.py
import pytest
from agentmind_plugin_myplugin.plugin import MyLLMProvider
@pytest.mark.asyncio
async def test_plugin():
provider = MyLLMProvider()
await provider.initialize()
result = await provider.generate([
{"role": "user", "content": "Hello"}
])
assert result["content"]
assert provider.health_check()
await provider.shutdown()# Build distribution
python setup.py sdist bdist_wheel
# Upload to PyPI
pip install twine
twine upload dist/*AgentMind provides templates for all plugin types:
from agentmind.plugins.templates import (
ExampleLLMProvider,
ExampleMemoryBackend,
ExampleOrchestrator,
ExampleObserver,
print_plugin_template,
)
# Print full template
print_plugin_template()- Follow the interface - Implement all required methods
- Handle errors gracefully - Don't crash the main application
- Document thoroughly - Provide clear documentation and examples
- Test extensively - Include comprehensive tests
- Version properly - Use semantic versioning
- Declare dependencies - List all requirements in setup.py
- Validate inputs - Never trust user input
- Use sandboxing - For code execution plugins
- Respect permissions - Declare required permissions
- Secure credentials - Never hardcode API keys
- Audit dependencies - Keep dependencies up to date
- Async by default - Use async/await for I/O operations
- Cache when possible - Reduce redundant operations
- Batch operations - Group similar operations
- Resource cleanup - Properly close connections
- Monitor usage - Track resource consumption
Submit your plugin to be listed here! Create a PR with:
- Plugin name and description
- Installation instructions
- Link to repository
- License information
- Documentation: https://agentmind.readthedocs.io
- GitHub Issues: https://github.com/cym3118288-afk/AgentMind-Framework/issues
- Discord: [Join our community]
- Email: cym3118288@gmail.com
All official plugins are MIT licensed. Community plugins may have different licenses.