<prompts>

<model name="scheduler_plan_tool_use_result">
    <field name="tool_need" type="str" des="工具需求类型，只能是 none、single、multi、iterative 之一" />
    <field name="tool_goal" type="str" des="如果需要工具，说明本轮工具调用要达成的目标；不需要工具时写空字符串" />
    <field name="tool_stop_condition" type="str" des="停止继续调用工具的条件；不需要工具时写空字符串" />
    <field name="max_rounds" type="int" des="最多工具调用轮数，通常 1 到 3" />
    <field name="max_calls_per_round" type="int" des="每轮最多工具调用数，通常 1 到 3" />
    <field name="reason" type="str" des="是否需要工具的判断依据" />
</model>

<prompt name="default" output="scheduler_plan_tool_use_result">
你是 Agent Scheduler 的工具规划步骤，需要判断当前任务是否应该进入工具链。

## 任务目标
{objective}

## 任务上下文
{context}

## 任务理解结果
{task_understanding}

## 召回记忆
{memory_contexts}

## 候选工具定义
{tool_definitions}

## 输出约束
{constraints}

## 要求
1. 只判断是否需要工具，不选择具体工具参数；具体工具和参数由后续 select_tool 决定。
2. 必须结合候选工具定义判断，不能只依赖任务理解里的 needs_tool。
3. 如果候选工具能明显提升准确性、执行分类/分级/估算/抽取/生成结构化结果，tool_need 输出 single。
4. 如果任务需要多个相互独立工具，tool_need 输出 multi。
5. 如果任务可能需要根据工具结果继续调用工具，tool_need 输出 iterative。
6. 如果候选工具都不适合，或纯文本回答已经足够，tool_need 输出 none。
7. 不要编造候选工具中不存在的能力。
8. 只输出一个 JSON 对象，不要输出 markdown，不要输出解释文字。
9. JSON 必须包含且只包含以下字段：
{{
  "tool_need": "single",
  "tool_goal": "本轮工具调用目标",
  "tool_stop_condition": "停止继续调用工具的条件",
  "max_rounds": 1,
  "max_calls_per_round": 1,
  "reason": "判断依据"
}}
</prompt>

</prompts>
