Managing Plugins
Learn how to manage plugins and plugin packages to extend FoundationaLLM functionality.
Overview
Plugins extend FoundationaLLM with custom capabilities:
- Custom Workflows: Agent orchestration logic
- Custom Tools: Specialized agent capabilities
- Data Processing: Custom pipeline stages and extractors
Plugin Architecture
Plugin Types
| Type | Language | Purpose |
|---|---|---|
| Agent Workflow | Python | Custom orchestration workflows |
| Agent Tool | Python | Custom tools for agents |
| Data Source | .NET | Custom data source connectors |
| Pipeline Stage | .NET | Custom data pipeline processing |
| Text Extraction | .NET | Custom content extraction |
| Text Partitioning | .NET | Custom text chunking |
Plugin Packages
Plugins are distributed as packages:
| Package Type | Format | Platform |
|---|---|---|
| Python | ZIP (Wheel planned) | Agent workflows and tools |
| .NET | NuGet | Data pipeline components |
Managing Plugin Packages
TODO: Document the specific UI for plugin management in the Management Portal when available.
Viewing Available Plugins
- Navigate to plugin management (if available in UI)
- View list of installed packages
- Check plugin status and versions
Installing Plugin Packages
- Obtain the plugin package file
- Upload to the plugin storage location
- Configure package settings
- Enable the plugin
Updating Plugins
- Upload the new version
- Update configuration if needed
- Test with affected agents/pipelines
- Enable the updated version
Removing Plugins
- Verify no active resources use the plugin
- Disable the plugin
- Remove from storage
Using Plugins in Agents
Workflow Plugins
Reference in agent workflow configuration:
| Field | Description |
|---|---|
| Workflow Package Name | Python package name |
| Workflow Class Name | Class implementing the workflow |
Example:
- Package:
foundationallm_agent_plugins - Class:
FoundationaLLMFunctionCallingWorkflow
Tool Plugins
Reference in agent tool configuration:
| Field | Description |
|---|---|
| Tool Package Name | Python package name |
| Tool Class Name | Class implementing the tool |
Examples:
| Tool | Package | Class |
|---|---|---|
| Code Interpreter | foundationallm_agent_plugins |
FoundationaLLMCodeInterpreterTool |
| Knowledge Tool | foundationallm_agent_plugins |
FoundationaLLMKnowledgeTool |
Using Plugins in Data Pipelines
Data Source Plugins
Configure when creating data sources:
- Select the data source type
- Choose the appropriate plugin
- Configure plugin parameters
Pipeline Stage Plugins
Configure in pipeline stage settings:
- Add a pipeline stage
- Select the stage plugin
- Configure stage parameters
Text Processing Plugins
For content extraction and partitioning:
| Plugin Type | Use Case |
|---|---|
| Text Extraction | Extract text from documents |
| Text Partitioning | Split text into chunks |
| Image Description | Generate text from images |
Built-in Plugins
FoundationaLLM includes several built-in plugins:
Agent Plugins (Python)
| Plugin | Description |
|---|---|
FoundationaLLMFunctionCallingWorkflow |
Model agnostic function calling |
FoundationaLLMCodeInterpreterTool |
Python code execution |
FoundationaLLMKnowledgeTool |
Knowledge base search |
Data Pipeline Plugins (.NET)
TODO: Document specific built-in .NET plugins for data pipelines.
Custom Plugin Development
Python Plugins
For agent workflows and tools:
- Implement the required interface
- Package as a Python wheel or ZIP
- Deploy to the plugin storage
- Reference in agent configuration
.NET Plugins
For data pipeline components:
- Implement the required interface
- Package as a NuGet package
- Deploy to the plugin storage
- Configure in pipeline settings
Note: See developer documentation for detailed plugin development guides.
Plugin Configuration
Environment Variables
Some plugins use environment variables:
| Variable | Description |
|---|---|
PLUGIN_STORAGE_PATH |
Location of plugin packages |
PLUGIN_CONFIG_PATH |
Plugin configuration files |
Plugin Settings
Configure plugin-specific settings in:
- Agent configuration (workflow/tool parameters)
- Pipeline configuration (stage parameters)
- App Configuration (global settings)
Troubleshooting
Plugin Not Loading
- Verify package is in correct location
- Check package format is valid
- Review logs for loading errors
Plugin Errors in Execution
- Check plugin dependencies are installed
- Verify configuration parameters
- Review agent/pipeline logs
Version Conflicts
- Check for dependency version conflicts
- Ensure compatible package versions
- Consider isolated environments
Best Practices
Plugin Management
- Version plugins for traceability
- Test plugins in development before production
- Document plugin requirements and configuration
Security
- Review plugin code before deployment
- Limit plugin permissions appropriately
- Monitor plugin activity
Updates
- Test updates in non-production first
- Have rollback plans
- Document changes