1- """
2- Demo Frontend Agent:内置 agent,负责在需要验证的节点调用前端 demo_frontend_tool,
3- 同一轮 run 内下发 function_call、等待前端回传结果并写入 session.state。
4- """
5-
61import logging
72import uuid
83from typing import AsyncGenerator
116from google .adk .events import Event
127
138from agents .matmaster_agent .constant import ModelRole
14- from agents .matmaster_agent .core_agents .base_agents . error_agent import (
15- ErrorHandleBaseAgent ,
9+ from agents .matmaster_agent .core_agents .public_agents . sync_agent import (
10+ BaseSyncAgentWithToolValidator ,
1611)
1712from agents .matmaster_agent .flow_agents .constant import (
1813 DEMO_FRONTEND_TOOL ,
1914 DEMO_FRONTEND_TOOL_RESULT_STATE_KEY ,
2015)
21- from agents .matmaster_agent .sub_agents .built_in_agent .demo_frontend_agent .constant import (
22- DEMO_FRONTEND_AGENT_NAME ,
23- )
2416from agents .matmaster_agent .sub_agents .built_in_agent .demo_frontend_agent .tool import (
25- demo_frontend_tool ,
2617 wait_for_frontend_tool_result ,
2718)
2819from agents .matmaster_agent .utils .event_utils import (
3324logger = logging .getLogger (__name__ )
3425
3526
36- class DemoFrontendAgent (ErrorHandleBaseAgent ):
37- """
38- 内置 agent:调用前端 demo_frontend_tool(message/title),
39- 同一轮 run 内 yield function_call → await 前端回传 → 写入 session.state。
40- """
41-
42- def __init__ (self ):
43- super ().__init__ (name = DEMO_FRONTEND_AGENT_NAME , tools = [demo_frontend_tool ])
44-
27+ class DemoFrontendAgent (BaseSyncAgentWithToolValidator ):
4528 async def _run_events (self , ctx : InvocationContext ) -> AsyncGenerator [Event , None ]:
4629 function_call_id = f"added_{ str (uuid .uuid4 ()).replace ('-' , '' )[:24 ]} "
4730 yield context_function_call_event (
@@ -59,7 +42,3 @@ async def _run_events(self, ctx: InvocationContext) -> AsyncGenerator[Event, Non
5942 yield update_state_event (
6043 ctx , state_delta = {DEMO_FRONTEND_TOOL_RESULT_STATE_KEY : demo_result }
6144 )
62-
63-
64- def init_demo_frontend_agent () -> DemoFrontendAgent :
65- return DemoFrontendAgent ()
0 commit comments