MCPcopy
hub / github.com/IPADS-SAI/MobiAgent / analyze_task

Function analyze_task

runner/mobiagent/multi_task/planner.py:215–264  ·  view source on GitHub ↗

分析任务是单阶段还是多阶段 Args: task_description: 任务描述 planner_client: Planner客户端 planner_model: Planner模型名称 experience_results: 经验检索结果(可选) temperature: 采样温度 Returns: (is_multi_stage, reason): (是否多阶段, 原因说明)

(
    task_description: str,
    planner_client: OpenAI,
    planner_model: str,
    experience_results: str = "",
    temperature: float = 0.0
)

Source from the content-addressed store, hash-verified

213
214
215def analyze_task(
216 task_description: str,
217 planner_client: OpenAI,
218 planner_model: str,
219 experience_results: str = "",
220 temperature: float = 0.0
221) -> Tuple[bool, Optional[str]]:
222 """
223 分析任务是单阶段还是多阶段
224
225 Args:
226 task_description: 任务描述
227 planner_client: Planner客户端
228 planner_model: Planner模型名称
229 experience_results: 经验检索结果(可选)
230 temperature: 采样温度
231
232 Returns:
233 (is_multi_stage, reason): (是否多阶段, 原因说明)
234 """
235
236 # 判断多任务、单任务较简单,不使用经验
237 prompt = PLANNER_TASK_ANALYSIS_PROMPT.format(
238 task_description=task_description
239 )
240
241 logging.info(f"任务分析prompt: \n{prompt}")
242
243 response = planner_client.chat.completions.create(
244 model=planner_model,
245 messages=[{"role": "user", "content": prompt}],
246 temperature=temperature
247 )
248
249 response_str = response.choices[0].message.content
250 logging.info(f"任务分析响应: \n{response_str}")
251
252 try:
253 result = parse_planner_response(response_str)
254
255 # 解析task_type字段
256 task_type = result.get("task_type", "single")
257 is_multi = (task_type == "multi")
258 reason = result.get("reasoning", "")
259
260 return is_multi, reason
261 except Exception as e:
262 logging.error(f"解析任务分析响应失败: {e}")
263 # 默认返回单阶段
264 return False, None
265
266
267def generate_plan(

Callers 1

execute_taskFunction · 0.90

Calls 4

formatMethod · 0.80
infoMethod · 0.80
errorMethod · 0.80
parse_planner_responseFunction · 0.70

Tested by

no test coverage detected