mirror of
https://github.com/EvolutionAPI/adk-python.git
synced 2025-12-18 11:22:22 -06:00
Support chaining for agent callbacks
(before/after) agent callbacks are invoked throughout the provided chain until one callback does not return None. Callbacks can be async and sync. PiperOrigin-RevId: 756359693
This commit is contained in:
committed by
Copybara-Service
parent
a61d20e3df
commit
d45084f311
@@ -86,6 +86,37 @@ async def after_model_callback(callback_context, llm_response):
|
||||
return None
|
||||
|
||||
|
||||
def after_agent_cb1(callback_context):
|
||||
print('@after_agent_cb1')
|
||||
|
||||
|
||||
def after_agent_cb2(callback_context):
|
||||
print('@after_agent_cb2')
|
||||
return types.Content(
|
||||
parts=[
|
||||
types.Part(
|
||||
text='(stopped) after_agent_cb2',
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
def after_agent_cb3(callback_context):
|
||||
print('@after_agent_cb3')
|
||||
|
||||
|
||||
def before_agent_cb1(callback_context):
|
||||
print('@before_agent_cb1')
|
||||
|
||||
|
||||
def before_agent_cb2(callback_context):
|
||||
print('@before_agent_cb2')
|
||||
|
||||
|
||||
def before_agent_cb3(callback_context):
|
||||
print('@before_agent_cb3')
|
||||
|
||||
|
||||
root_agent = Agent(
|
||||
model='gemini-2.0-flash-exp',
|
||||
name='data_processing_agent',
|
||||
@@ -127,8 +158,12 @@ root_agent = Agent(
|
||||
),
|
||||
]
|
||||
),
|
||||
before_agent_callback=before_agent_callback,
|
||||
after_agent_callback=after_agent_callback,
|
||||
before_agent_callback=[
|
||||
before_agent_cb1,
|
||||
before_agent_cb2,
|
||||
before_agent_cb3,
|
||||
],
|
||||
after_agent_callback=[after_agent_cb1, after_agent_cb2, after_agent_cb3],
|
||||
before_model_callback=before_model_callback,
|
||||
after_model_callback=after_model_callback,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user