Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.praison.ai/llms.txt

Use this file to discover all available pages before exploring further.

from praisonai.agents_generator import AgentsGenerator
from praisonai.framework_adapters import AutoGenAdapter
from praisonai.tool_registry import ToolRegistry

# Create AutoGen tools using the adapter
adapter = AutoGenAdapter()
agent_gen = AgentsGenerator("agents.yaml", "autogen", config_list=[{"model": "gpt-4o"}])
result = agent_gen.generate_crew_and_kickoff()
print(result)
ToolRegistry AutoGen methods remain available for backward compatibility, but new code should use the AutoGenAdapter class for cleaner separation of concerns.

Quick Start

Migrate from ToolRegistry AutoGen methods to AutoGenAdapter for better architecture separation.
1

Legacy (still works)

from praisonai.tool_registry import ToolRegistry

def search_tool(query: str) -> str:
    return f"Found results for: {query}"

registry = ToolRegistry()
registry.register_autogen_adapter("search", search_tool)
adapter = registry.get_autogen_adapter("search")
builtin_tools = registry.list_autogen_adapters()
registry.register_builtin_autogen_adapters()
2

Recommended (new code)

from praisonai.framework_adapters import AutoGenAdapter
from praisonai.tool_registry import ToolRegistry

def search_tool(query: str) -> str:
    return f"Found results for: {query}"

# Use AutoGenAdapter for AutoGen-specific features
adapter = AutoGenAdapter()

# Use ToolRegistry for general tool registration
registry = ToolRegistry()
registry.register_function("search", search_tool)

How It Works

The migration involves moving from ToolRegistry AutoGen methods to the dedicated AutoGenAdapter class.

Configuration Options

Both approaches support the same configuration patterns for AutoGen tool integration.
OptionTypeDefaultDescription
tool_namestrRequiredName identifier for the tool
adapter_functionCallableRequiredTool implementation function
registry_instanceToolRegistryNoneOptional registry instance
builtin_adaptersboolFalseWhether to include builtin adapters

What Changed

MethodStatusReplacement
register_autogen_adapter(tool_type_name, adapter)AvailableUse AutoGenAdapter from praisonai.framework_adapters
get_autogen_adapter(tool_type_name)AvailableUse AutoGenAdapter from praisonai.framework_adapters
list_autogen_adapters()AvailableUse AutoGenAdapter from praisonai.framework_adapters
register_builtin_autogen_adapters()AvailableUse AutoGenAdapter from praisonai.framework_adapters

Common Patterns

Tool Registration

# Legacy approach (still works)
from praisonai.tool_registry import ToolRegistry

def search_tool(query: str) -> str:
    return f"Searched for: {query}"

registry = ToolRegistry()
registry.register_autogen_adapter("search", search_tool)

# Recommended approach
from praisonai.framework_adapters import AutoGenAdapter

def search_tool(query: str) -> str:
    return f"Searched for: {query}"

adapter = AutoGenAdapter()

Listing Available Tools

# Legacy approach
from praisonai.tool_registry import ToolRegistry

registry = ToolRegistry()
autogen_tools = registry.list_autogen_adapters()
print(f"Available tools: {autogen_tools}")

# Recommended approach
from praisonai.framework_adapters import AutoGenAdapter

adapter = AutoGenAdapter()
# Use adapter's methods for AutoGen-specific functionality

Builtin Registration

# Legacy approach
from praisonai.tool_registry import ToolRegistry

registry = ToolRegistry()
registry.register_builtin_autogen_adapters()
print("Builtin adapters registered")

# Recommended approach
from praisonai.framework_adapters import AutoGenAdapter

adapter = AutoGenAdapter()
# AutoGen integration handled by adapter
print("AutoGen adapter ready")

Best Practices

Existing ToolRegistry AutoGen code continues to work without changes:
from praisonai.tool_registry import ToolRegistry

def web_search(query: str) -> str:
    return f"Search results for: {query}"

# This continues to work
registry = ToolRegistry()
registry.register_autogen_adapter("web_search", web_search)
print("AutoGen adapter registered successfully")
For new code, prefer the AutoGenAdapter class for better separation:
from praisonai.framework_adapters import AutoGenAdapter
from praisonai.tool_registry import ToolRegistry

def web_search(query: str) -> str:
    return f"Search results for: {query}"

# Recommended approach
adapter = AutoGenAdapter()
registry = ToolRegistry()
registry.register_function("web_search", web_search)
print("Tools registered using recommended pattern")
Gradually move from ToolRegistry AutoGen methods to AutoGenAdapter:
from praisonai.tool_registry import ToolRegistry
from praisonai.framework_adapters import AutoGenAdapter

def search_tool(query: str) -> str:
    return f"Found: {query}"

def analyze_tool(data: str) -> str:
    return f"Analyzed: {data}"

# Step 1: Keep existing registrations
registry = ToolRegistry()
registry.register_autogen_adapter("search", search_tool)

# Step 2: Add new tools using recommended pattern
adapter = AutoGenAdapter()
registry.register_function("analyze", analyze_tool)

# Step 3: Gradually convert when ready
Ensure compatibility by testing both legacy and recommended patterns:
from praisonai.tool_registry import ToolRegistry
from praisonai.framework_adapters import AutoGenAdapter

def test_tool(input: str) -> str:
    return f"Processed: {input}"

# Test legacy approach
registry = ToolRegistry()
registry.register_autogen_adapter("test", test_tool)
legacy_result = registry.get_autogen_adapter("test")

# Test recommended approach  
adapter = AutoGenAdapter()
registry.register_function("test", test_tool)
recommended_result = registry.get_function("test")

print(f"Both approaches work: {legacy_result is not None and recommended_result is not None}")

Framework Availability

Framework detection and availability checking

Thread Safety

Thread-safe tool registry operations