diff --git a/apps/llm/function.py b/apps/llm/function.py index 89de7fe3526288c03fe535dd456c220ee4423e60..0d1fbf9a79c325d13831d8823d88544df88dae9a 100644 --- a/apps/llm/function.py +++ b/apps/llm/function.py @@ -42,7 +42,7 @@ class FunctionLLM: self._params = { "model": self._config.model, "messages": [], - "timeout": 10 + "timeout": 300 } if self._config.backend == "ollama": diff --git a/apps/llm/reasoning.py b/apps/llm/reasoning.py index bc84849047e746b69629a99926686e1636137a27..58c3fd715e2159194568b294983647c94c120513 100644 --- a/apps/llm/reasoning.py +++ b/apps/llm/reasoning.py @@ -145,7 +145,7 @@ class ReasoningLLM: temperature=temperature or self._config.temperature, stream=True, stream_options={"include_usage": True}, - timeout=10 + timeout=300 ) # type: ignore[] async def call( # noqa: C901, PLR0912, PLR0913 diff --git a/apps/routers/record.py b/apps/routers/record.py index ed994f6fe2e611562fa092db39265d1d57dfb9bc..663708b86b2dc57a0973c8b73a3d4cb02298b08b 100644 --- a/apps/routers/record.py +++ b/apps/routers/record.py @@ -96,7 +96,8 @@ async def get_record(conversation_id: str, user_sub: Annotated[str, Depends(get_ for flow_step in flow_step_list: tmp_record.flow.steps.append( RecordFlowStep( - stepId=flow_step.step_name, # TODO: 此处前端应该用name + stepId=flow_step.step_id, + stepName=flow_step.step_name, stepStatus=flow_step.step_status, input=flow_step.input_data, output=flow_step.output_data, diff --git a/apps/scheduler/executor/agent.py b/apps/scheduler/executor/agent.py index 743a052e7be5b97f5ede7716500a839ade22b015..eece51149706cf242d9dfdd784a02611403063f9 100644 --- a/apps/scheduler/executor/agent.py +++ b/apps/scheduler/executor/agent.py @@ -256,6 +256,7 @@ class MCPAgentExecutor(BaseExecutor): async def get_next_step(self) -> None: """获取下一步""" + self.task.state.retry_times = 0 if self.task.state.step_cnt < self.max_steps: self.task.state.step_cnt += 1 history = await MCPHost.assemble_memory(self.task) @@ -314,6 +315,7 @@ class MCPAgentExecutor(BaseExecutor): output_data={}, ) ) + self.task.state.tool_id = FINAL_TOOL_ID async def work(self) -> None: """执行当前步骤""" @@ -361,6 +363,7 @@ class MCPAgentExecutor(BaseExecutor): break elif self.task.state.step_status == StepStatus.ERROR: # 错误处理 + self.task.state.retry_times += 1 if self.task.state.retry_times >= 3: await self.error_handle_after_step() else: diff --git a/apps/schemas/record.py b/apps/schemas/record.py index b6b70dd6fbd5b89aafb06af5146b8feb1fb84862..7f0c79a9ef7a2d2457d8c789f60081a2b150a0dd 100644 --- a/apps/schemas/record.py +++ b/apps/schemas/record.py @@ -33,6 +33,7 @@ class RecordFlowStep(BaseModel): """Record表子项:flow的单步数据结构""" step_id: str = Field(alias="stepId") + step_name: str = Field(alias="stepName", default="") step_status: StepStatus = Field(alias="stepStatus") input: dict[str, Any] output: dict[str, Any]