2024-10-22 19:23:02 +01:00
|
|
|
from typing import List
|
|
|
|
|
2024-10-30 10:27:57 -07:00
|
|
|
from autogen_core.components import FunctionCall, Image
|
2024-11-01 13:20:25 -07:00
|
|
|
from autogen_core.components.models import FunctionExecutionResult, RequestUsage
|
2024-10-22 19:23:02 +01:00
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
|
|
|
|
|
|
class BaseMessage(BaseModel):
|
|
|
|
"""A base message."""
|
|
|
|
|
|
|
|
source: str
|
|
|
|
"""The name of the agent that sent this message."""
|
|
|
|
|
2024-11-04 09:25:53 -08:00
|
|
|
models_usage: RequestUsage | None = None
|
2024-11-01 13:20:25 -07:00
|
|
|
"""The model client usage incurred when producing this message."""
|
|
|
|
|
2024-10-22 19:23:02 +01:00
|
|
|
|
|
|
|
class TextMessage(BaseMessage):
|
|
|
|
"""A text message."""
|
|
|
|
|
|
|
|
content: str
|
|
|
|
"""The content of the message."""
|
|
|
|
|
|
|
|
|
|
|
|
class MultiModalMessage(BaseMessage):
|
|
|
|
"""A multimodal message."""
|
|
|
|
|
|
|
|
content: List[str | Image]
|
|
|
|
"""The content of the message."""
|
|
|
|
|
|
|
|
|
|
|
|
class StopMessage(BaseMessage):
|
|
|
|
"""A message requesting stop of a conversation."""
|
|
|
|
|
|
|
|
content: str
|
|
|
|
"""The content for the stop message."""
|
|
|
|
|
|
|
|
|
2024-10-25 10:57:04 -07:00
|
|
|
class HandoffMessage(BaseMessage):
|
|
|
|
"""A message requesting handoff of a conversation to another agent."""
|
|
|
|
|
2024-10-29 08:04:14 -07:00
|
|
|
target: str
|
|
|
|
"""The name of the target agent to handoff to."""
|
|
|
|
|
2024-10-25 10:57:04 -07:00
|
|
|
content: str
|
2024-10-29 08:04:14 -07:00
|
|
|
"""The handoff message to the target agent."""
|
2024-10-25 10:57:04 -07:00
|
|
|
|
|
|
|
|
2024-10-29 09:45:57 -07:00
|
|
|
class ResetMessage(BaseMessage):
|
|
|
|
"""A message requesting reset of the recipient's state in the current conversation."""
|
|
|
|
|
|
|
|
content: str
|
|
|
|
"""The content for the reset message."""
|
|
|
|
|
|
|
|
|
2024-10-30 10:27:57 -07:00
|
|
|
class ToolCallMessage(BaseMessage):
|
|
|
|
"""A message signaling the use of tools."""
|
|
|
|
|
|
|
|
content: List[FunctionCall]
|
|
|
|
"""The tool calls."""
|
|
|
|
|
|
|
|
|
2024-11-01 04:12:43 -07:00
|
|
|
class ToolCallResultMessage(BaseMessage):
|
2024-10-30 10:27:57 -07:00
|
|
|
"""A message signaling the results of tool calls."""
|
|
|
|
|
|
|
|
content: List[FunctionExecutionResult]
|
|
|
|
"""The tool call results."""
|
|
|
|
|
|
|
|
|
2024-11-01 04:12:43 -07:00
|
|
|
InnerMessage = ToolCallMessage | ToolCallResultMessage
|
2024-10-30 10:27:57 -07:00
|
|
|
"""Messages for intra-agent monologues."""
|
|
|
|
|
|
|
|
|
2024-10-29 09:45:57 -07:00
|
|
|
ChatMessage = TextMessage | MultiModalMessage | StopMessage | HandoffMessage | ResetMessage
|
2024-10-30 10:27:57 -07:00
|
|
|
"""Messages for agent-to-agent communication."""
|
2024-10-22 19:23:02 +01:00
|
|
|
|
|
|
|
|
|
|
|
__all__ = [
|
|
|
|
"BaseMessage",
|
|
|
|
"TextMessage",
|
|
|
|
"MultiModalMessage",
|
|
|
|
"StopMessage",
|
2024-10-25 10:57:04 -07:00
|
|
|
"HandoffMessage",
|
2024-10-29 09:45:57 -07:00
|
|
|
"ResetMessage",
|
2024-10-30 10:27:57 -07:00
|
|
|
"ToolCallMessage",
|
2024-11-01 04:12:43 -07:00
|
|
|
"ToolCallResultMessage",
|
2024-10-22 19:23:02 +01:00
|
|
|
"ChatMessage",
|
|
|
|
]
|