Spaces:
Running
Running
from typing import Any, Generic | |
from .agent import Agent | |
from .run_context import RunContextWrapper, TContext | |
from .tool import Tool | |
class RunHooks(Generic[TContext]): | |
"""A class that receives callbacks on various lifecycle events in an agent run. Subclass and | |
override the methods you need. | |
""" | |
async def on_agent_start( | |
self, context: RunContextWrapper[TContext], agent: Agent[TContext] | |
) -> None: | |
"""Called before the agent is invoked. Called each time the current agent changes.""" | |
pass | |
async def on_agent_end( | |
self, | |
context: RunContextWrapper[TContext], | |
agent: Agent[TContext], | |
output: Any, | |
) -> None: | |
"""Called when the agent produces a final output.""" | |
pass | |
async def on_handoff( | |
self, | |
context: RunContextWrapper[TContext], | |
from_agent: Agent[TContext], | |
to_agent: Agent[TContext], | |
) -> None: | |
"""Called when a handoff occurs.""" | |
pass | |
async def on_tool_start( | |
self, | |
context: RunContextWrapper[TContext], | |
agent: Agent[TContext], | |
tool: Tool, | |
) -> None: | |
"""Called before a tool is invoked.""" | |
pass | |
async def on_tool_end( | |
self, | |
context: RunContextWrapper[TContext], | |
agent: Agent[TContext], | |
tool: Tool, | |
result: str, | |
) -> None: | |
"""Called after a tool is invoked.""" | |
pass | |
class AgentHooks(Generic[TContext]): | |
"""A class that receives callbacks on various lifecycle events for a specific agent. You can | |
set this on `agent.hooks` to receive events for that specific agent. | |
Subclass and override the methods you need. | |
""" | |
async def on_start(self, context: RunContextWrapper[TContext], agent: Agent[TContext]) -> None: | |
"""Called before the agent is invoked. Called each time the running agent is changed to this | |
agent.""" | |
pass | |
async def on_end( | |
self, | |
context: RunContextWrapper[TContext], | |
agent: Agent[TContext], | |
output: Any, | |
) -> None: | |
"""Called when the agent produces a final output.""" | |
pass | |
async def on_handoff( | |
self, | |
context: RunContextWrapper[TContext], | |
agent: Agent[TContext], | |
source: Agent[TContext], | |
) -> None: | |
"""Called when the agent is being handed off to. The `source` is the agent that is handing | |
off to this agent.""" | |
pass | |
async def on_tool_start( | |
self, | |
context: RunContextWrapper[TContext], | |
agent: Agent[TContext], | |
tool: Tool, | |
) -> None: | |
"""Called before a tool is invoked.""" | |
pass | |
async def on_tool_end( | |
self, | |
context: RunContextWrapper[TContext], | |
agent: Agent[TContext], | |
tool: Tool, | |
result: str, | |
) -> None: | |
"""Called after a tool is invoked.""" | |
pass | |