Skip to content

v1.1.0

Latest

Choose a tag to compare

@baconroot baconroot released this 18 Dec 10:29
· 9 commits to main since this release

v1.1.0

We are excited to announce the release of Agent-Kernel v1.1.0! 🎉

This release enables users to define custom environment component types and plugins without modifying the core package.

What's New

Extensible Component

A new GenericComponent class and factory functions allow you to create custom environment components dynamically:

  • GenericComponent: A flexible base class that can be configured with any component name
  • create_component_class(): Factory function to dynamically create new component classes at runtime
  • get_or_create_component_class(): Smart factory with built-in caching to avoid duplicate class creation
from agentkernel_distributed.mas.environment.components.generic import (
    GenericComponent,
    create_component_class,
    get_or_create_component_class
)

# Option 1: Use GenericComponent directly
weather_component = GenericComponent("weather")

# Option 2: Create a dedicated component class
WeatherComponent = create_component_class("weather")

# Option 3: Get or create with automatic caching
EconomyComponent = get_or_create_component_class("economy")

Extensible Plugin

A new GenericPlugin class and factory function allow you to define custom plugin types:

  • GenericPlugin: Base class for creating custom plugin types by setting COMPONENT_TYPE
  • create_plugin_class(): Factory function to dynamically create new plugin base classes
from agentkernel_distributed.mas.environment.base.plugin_base import (
    GenericPlugin,
    create_plugin_class
)

# Option 1: Subclass GenericPlugin directly
class WeatherPlugin(GenericPlugin):
    COMPONENT_TYPE = "weather"
    
    def __init__(self, location: str = "default"):
        super().__init__()
        self.location = location
    
    async def get_weather(self) -> dict:
        return {"temp": 25, "condition": "sunny"}

# Option 2: Create a plugin base class dynamically
EconomyPlugin = create_plugin_class("economy")

class MyEconomyPlugin(EconomyPlugin):
    async def get_market_data(self):
        return {"price": 100}

Affected Packages

  • agentkernel-distributed: v1.0.0 → v1.1.0
  • agentkernel-standalone: v1.0.0 → v1.1.0

Upgrade Guide

Upgrade to v1.1.0 using pip:

# For the standalone version
pip install --upgrade agentkernel-standalone

# For the distributed version
pip install --upgrade agentkernel-distributed

This release is fully backward compatible with v1.0.0. Your existing code will continue to work without any modifications.