32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
# Copyright (c) Microsoft. All rights reserved.
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from pydantic import Field
|
|
|
|
from semantic_kernel.agents.strategies.termination.termination_strategy import TerminationStrategy
|
|
from semantic_kernel.utils.feature_stage_decorator import experimental
|
|
|
|
if TYPE_CHECKING:
|
|
from semantic_kernel.agents.agent import Agent
|
|
from semantic_kernel.contents.chat_message_content import ChatMessageContent
|
|
|
|
|
|
@experimental
|
|
class DefaultTerminationStrategy(TerminationStrategy):
|
|
"""A default termination strategy that never terminates."""
|
|
|
|
maximum_iterations: int = Field(default=5, description="The maximum number of iterations to run the agent.")
|
|
|
|
async def should_agent_terminate(self, agent: "Agent", history: list["ChatMessageContent"]) -> bool:
|
|
"""Check if the agent should terminate.
|
|
|
|
Args:
|
|
agent: The agent to check.
|
|
history: The history of messages in the conversation.
|
|
|
|
Returns:
|
|
Defaults to False for the default strategy
|
|
"""
|
|
return False
|