CoACT initialize (#292)
This commit is contained in:
46
mm_agents/coact/autogen/interop/interoperable.py
Normal file
46
mm_agents/coact/autogen/interop/interoperable.py
Normal file
@@ -0,0 +1,46 @@
|
||||
# Copyright (c) 2023 - 2025, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
from typing import Any, Optional, Protocol, runtime_checkable
|
||||
|
||||
from ..doc_utils import export_module
|
||||
from ..tools import Tool
|
||||
|
||||
__all__ = ["Interoperable"]
|
||||
|
||||
|
||||
@runtime_checkable
|
||||
@export_module("autogen.interop")
|
||||
class Interoperable(Protocol):
|
||||
"""A Protocol defining the interoperability interface for tool conversion.
|
||||
|
||||
This protocol ensures that any class implementing it provides the method
|
||||
`convert_tool` to convert a given tool into a desired format or type.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def convert_tool(cls, tool: Any, **kwargs: Any) -> Tool:
|
||||
"""Converts a given tool to a desired format or type.
|
||||
|
||||
This method should be implemented by any class adhering to the `Interoperable` protocol.
|
||||
|
||||
Args:
|
||||
tool (Any): The tool object to be converted.
|
||||
**kwargs (Any): Additional parameters to pass during the conversion process.
|
||||
|
||||
Returns:
|
||||
Tool: The converted tool in the desired format or type.
|
||||
"""
|
||||
...
|
||||
|
||||
@classmethod
|
||||
def get_unsupported_reason(cls) -> Optional[str]:
|
||||
"""Returns the reason for the tool being unsupported.
|
||||
|
||||
This method should be implemented by any class adhering to the `Interoperable` protocol.
|
||||
|
||||
Returns:
|
||||
str: The reason for the interoperability class being unsupported.
|
||||
"""
|
||||
...
|
||||
Reference in New Issue
Block a user