如果在工具调用后我们需要使用不同的指令“重试”模型或停止代理,我们可以引发以下异常之一:
RetryAgentRun
:当您想使用不同的指令重试代理运行时,请使用此异常。
StopAgentRun
:当您想停止代理运行时,请使用此异常。
AgentRunException
:一个通用异常,可用于重试工具调用。
此示例展示了如何使用 RetryAgentRun
异常通过附加指令重试代理。
from agno.agent import Agent
from agno.exceptions import RetryAgentRun
from agno.models.openai import OpenAIChat
from agno.utils.log import logger
def add_item(agent: Agent, item: str) -> str:
"""将商品添加到购物清单。"""
agent.session_state["shopping_list"].append(item)
len_shopping_list = len(agent.session_state["shopping_list"])
if len_shopping_list < 3:
raise RetryAgentRun(
f"购物清单:{agent.session_state['shopping_list']}。购物清单最少需要 3 个商品。 "
+ f"请再添加 {3 - len_shopping_list} 个商品。",
)
logger.info(f"购物清单现在是:{agent.session_state.get('shopping_list')}")
return f"购物清单现在是:{agent.session_state.get('shopping_list')}"
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
# 使用空的购物清单初始化会话状态
session_state={"shopping_list": []},
tools=[add_item],
markdown=True,
)
agent.print_response("添加牛奶", stream=True)
print(f"最终会话状态:{agent.session_state}")
确保将 AGNO_DEBUG
设置为 True
以查看调试日志。
Responses are generated using AI and may contain mistakes.