mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-08 23:58:34 +00:00
75 lines
1.6 KiB
Python
75 lines
1.6 KiB
Python
"""Type protocols for OpenAI agents modules."""
|
|
|
|
from collections.abc import Callable
|
|
from typing import Any, Protocol, TypedDict, runtime_checkable
|
|
|
|
from crewai.tools.base_tool import BaseTool
|
|
|
|
|
|
class AgentKwargs(TypedDict, total=False):
|
|
"""Typed dict for agent initialization kwargs."""
|
|
|
|
role: str
|
|
goal: str
|
|
backstory: str
|
|
model: str
|
|
tools: list[BaseTool] | None
|
|
agent_config: dict[str, Any] | None
|
|
|
|
|
|
@runtime_checkable
|
|
class OpenAIAgent(Protocol):
|
|
"""Protocol for OpenAI Agent."""
|
|
|
|
def __init__(
|
|
self,
|
|
name: str,
|
|
instructions: str,
|
|
model: str,
|
|
**kwargs: Any,
|
|
) -> None:
|
|
"""Initialize the OpenAI agent."""
|
|
...
|
|
|
|
tools: list[Any]
|
|
output_type: Any
|
|
|
|
|
|
@runtime_checkable
|
|
class OpenAIRunner(Protocol):
|
|
"""Protocol for OpenAI Runner."""
|
|
|
|
@classmethod
|
|
def run_sync(cls, agent: OpenAIAgent, message: str) -> Any:
|
|
"""Run agent synchronously with a message."""
|
|
...
|
|
|
|
|
|
@runtime_checkable
|
|
class OpenAIAgentsModule(Protocol):
|
|
"""Protocol for OpenAI agents module."""
|
|
|
|
Agent: type[OpenAIAgent]
|
|
Runner: type[OpenAIRunner]
|
|
enable_verbose_stdout_logging: Callable[[], None]
|
|
|
|
|
|
@runtime_checkable
|
|
class OpenAITool(Protocol):
|
|
"""Protocol for OpenAI Tool."""
|
|
|
|
|
|
@runtime_checkable
|
|
class OpenAIFunctionTool(Protocol):
|
|
"""Protocol for OpenAI FunctionTool."""
|
|
|
|
def __init__(
|
|
self,
|
|
name: str,
|
|
description: str,
|
|
params_json_schema: dict[str, Any],
|
|
on_invoke_tool: Any,
|
|
) -> None:
|
|
"""Initialize the function tool."""
|
|
...
|