Skip to content

Commit 6b423fc

Browse files
committed
refactor: consolidate error handling and improve job processing logic in SubmitCoreCalculationMCPLlmAgent
1 parent 24141ac commit 6b423fc

2 files changed

Lines changed: 64 additions & 50 deletions

File tree

agents/matmaster_agent/agent.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@
5757
logging.getLogger('google_adk.google.adk.tools.base_authenticated_tool').setLevel(
5858
logging.ERROR
5959
)
60-
logging.getLogger('_client').setLevel(logging.WARNING)
61-
logging.getLogger('urllib3').setLevel(logging.WARNING)
62-
logging.getLogger('requests').setLevel(logging.WARNING)
6360

6461

6562
class MatMasterAgent(HandleFileUploadLlmAgent):

agents/matmaster_agent/base_agents/job_agent.py

Lines changed: 64 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -609,55 +609,72 @@ async def _run_async_impl(
609609
and part.function_response.id
610610
in ctx.session.state['long_running_ids']
611611
and 'result' in part.function_response.response
612-
and not part.function_response.response['result'].isError
613612
):
614-
raw_result = part.function_response.response['result']
615-
results = json.loads(raw_result.content[0].text)
616-
logger.info(
617-
f"[SubmitCoreCalculationMCPLlmAgent] results = {results}"
618-
)
619-
origin_job_id = results['job_id']
620-
job_name = part.function_response.name
621-
job_status = results['status']
622-
if not ctx.session.state['dflow']:
623-
bohr_job_id = results['extra_info']['bohr_job_id']
624-
frontend_result = BohrJobInfo(
625-
origin_job_id=origin_job_id,
626-
job_name=job_name,
627-
job_status=job_status,
628-
job_id=bohr_job_id,
629-
agent_name=ctx.agent.parent_agent.parent_agent.name,
630-
).model_dump(mode='json')
631-
else:
632-
workflow_id = results['extra_info']['workflow_id']
633-
workflow_uid = results['extra_info']['workflow_uid']
634-
workflow_url = results['extra_info']['workflow_link']
635-
frontend_result = DFlowJobInfo(
636-
origin_job_id=origin_job_id,
637-
job_name=job_name,
638-
job_status=job_status,
639-
workflow_id=workflow_id,
640-
workflow_uid=workflow_uid,
641-
workflow_url=workflow_url,
642-
).model_dump(mode='json')
643-
644-
update_long_running_jobs = copy.deepcopy(
645-
ctx.session.state['long_running_jobs']
646-
)
647-
update_long_running_jobs[origin_job_id] = frontend_result
648-
yield update_state_event(
649-
ctx,
650-
state_delta={
651-
'long_running_jobs': update_long_running_jobs,
652-
'render_job_list': True,
653-
'render_job_id': ctx.session.state['render_job_id']
654-
+ [origin_job_id],
655-
'long_running_jobs_count': ctx.session.state[
656-
'long_running_jobs_count'
613+
if not part.function_response.response['result'].isError:
614+
raw_result = part.function_response.response['result']
615+
results = json.loads(raw_result.content[0].text)
616+
logger.info(
617+
f"[SubmitCoreCalculationMCPLlmAgent] results = {results}"
618+
)
619+
origin_job_id = results['job_id']
620+
job_name = part.function_response.name
621+
job_status = results['status']
622+
if not ctx.session.state['dflow']:
623+
bohr_job_id = results['extra_info']['bohr_job_id']
624+
frontend_result = BohrJobInfo(
625+
origin_job_id=origin_job_id,
626+
job_name=job_name,
627+
job_status=job_status,
628+
job_id=bohr_job_id,
629+
agent_name=ctx.agent.parent_agent.parent_agent.name,
630+
).model_dump(mode='json')
631+
else:
632+
workflow_id = results['extra_info']['workflow_id']
633+
workflow_uid = results['extra_info']['workflow_uid']
634+
workflow_url = results['extra_info'][
635+
'workflow_link'
657636
]
658-
+ 1,
659-
},
660-
)
637+
frontend_result = DFlowJobInfo(
638+
origin_job_id=origin_job_id,
639+
job_name=job_name,
640+
job_status=job_status,
641+
workflow_id=workflow_id,
642+
workflow_uid=workflow_uid,
643+
workflow_url=workflow_url,
644+
).model_dump(mode='json')
645+
646+
update_long_running_jobs = copy.deepcopy(
647+
ctx.session.state['long_running_jobs']
648+
)
649+
update_long_running_jobs[origin_job_id] = (
650+
frontend_result
651+
)
652+
yield update_state_event(
653+
ctx,
654+
state_delta={
655+
'long_running_jobs': update_long_running_jobs,
656+
'render_job_list': True,
657+
'render_job_id': ctx.session.state[
658+
'render_job_id'
659+
]
660+
+ [origin_job_id],
661+
'long_running_jobs_count': ctx.session.state[
662+
'long_running_jobs_count'
663+
]
664+
+ 1,
665+
},
666+
)
667+
else:
668+
# 提交报错同样+1,避免幻觉 card
669+
yield update_state_event(
670+
ctx,
671+
state_delta={
672+
'long_running_jobs_count': ctx.session.state[
673+
'long_running_jobs_count'
674+
]
675+
+ 1,
676+
},
677+
)
661678
# END
662679

663680
# Send Normal LlmResponse to Frontend, function_call -> function_response -> Llm_response

0 commit comments

Comments
 (0)