Skip to content

Commit a5eba01

Browse files
committed
refactor:简化DemoFrontendAgent类结构和工具导入逻辑以提高可维护性
1 parent 621cbdc commit a5eba01

3 files changed

Lines changed: 16 additions & 28 deletions

File tree

agents/matmaster_agent/flow_agents/agent.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,13 @@
120120
UPLOAD_FILE,
121121
)
122122
from agents.matmaster_agent.sub_agents.built_in_agent.demo_frontend_agent import (
123-
init_demo_frontend_agent,
123+
DemoFrontendAgent,
124+
)
125+
from agents.matmaster_agent.sub_agents.built_in_agent.demo_frontend_agent.constant import (
126+
DEMO_FRONTEND_AGENT_NAME,
127+
)
128+
from agents.matmaster_agent.sub_agents.built_in_agent.demo_frontend_agent.tool import (
129+
demo_frontend_tool,
124130
)
125131
from agents.matmaster_agent.sub_agents.mapping import (
126132
AGENT_CLASS_MAPPING,
@@ -221,7 +227,12 @@ def after_init(self):
221227
instruction='',
222228
)
223229

224-
self._demo_frontend_agent = init_demo_frontend_agent()
230+
self._demo_frontend_agent = DemoFrontendAgent(
231+
name=DEMO_FRONTEND_AGENT_NAME,
232+
model=MatMasterLlmConfig.default_litellm_model,
233+
instruction='',
234+
tools=[demo_frontend_tool],
235+
)
225236

226237
self.sub_agents = [
227238
self.chat_agent,
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from agents.matmaster_agent.sub_agents.built_in_agent.demo_frontend_agent.agent import (
22
DemoFrontendAgent,
3-
init_demo_frontend_agent,
43
)
54
from agents.matmaster_agent.sub_agents.built_in_agent.demo_frontend_agent.tool import (
65
set_frontend_tool_result,
@@ -9,7 +8,6 @@
98

109
__all__ = [
1110
'DemoFrontendAgent',
12-
'init_demo_frontend_agent',
1311
'set_frontend_tool_result',
1412
'wait_for_frontend_tool_result',
1513
]
Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
"""
2-
Demo Frontend Agent:内置 agent,负责在需要验证的节点调用前端 demo_frontend_tool,
3-
同一轮 run 内下发 function_call、等待前端回传结果并写入 session.state。
4-
"""
5-
61
import logging
72
import uuid
83
from typing import AsyncGenerator
@@ -11,18 +6,14 @@
116
from google.adk.events import Event
127

138
from 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
)
1712
from 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-
)
2416
from agents.matmaster_agent.sub_agents.built_in_agent.demo_frontend_agent.tool import (
25-
demo_frontend_tool,
2617
wait_for_frontend_tool_result,
2718
)
2819
from agents.matmaster_agent.utils.event_utils import (
@@ -33,15 +24,7 @@
3324
logger = 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

Comments
 (0)