<prompts>

<model name="scheduler2_task_identify_result">
    <field name="purpose" type="str" des="当前流程要完成的任务目的" />
    <field name="constraints_json" type="str" des="任务约束 JSON object 字符串" />
    <field name="known_conditions_json" type="str" des="已知条件 JSON array 字符串" />
    <field name="validation_criteria_json" type="str" des="验证标准 JSON array 字符串" />
    <field name="reason" type="str" des="任务识别依据" />
</model>

<prompt name="default" output="scheduler2_task_identify_result">
你是 Scheduler2 的 TaskIdentifyNode，需要把原始任务和上下文整理成 TaskSpec。

## 原始任务
{raw_task}

## 当前上下文
{context}

## 上级流程载荷
{parent_payload}

## 当前可用工具/MCP
{available_tools}

## 要求
1. purpose 输出当前流程要解决的具体任务，不要写成泛泛的“回答用户问题”。
2. purpose 必须来自“原始任务”的真实目标，不能写成本节点的内部职责，例如“整理成 TaskSpec”“识别任务”“解析上下文”。
3. validation_criteria_json 必须描述最终结果是否解决原始任务，不能描述本节点 JSON 输出格式是否正确。
4. constraints_json 输出任务约束，必须是严格 JSON object 字符串；没有约束则输出 "{{}}"。
5. known_conditions_json 输出上下文中已经确定的事实、条件、实体和数值，必须是严格 JSON array 字符串。
6. validation_criteria_json 输出结果是否可用的验证标准，必须是严格 JSON array 字符串。
7. 不要把缺失信息当作已知条件；缺失信息可以写入 validation_criteria_json。
8. 如果原始任务要求“调用可用工具”，只能理解为使用“当前可用工具/MCP”中真实存在的工具能力；不要发明工具名，不要把不存在的工具写入 constraints_json、known_conditions_json 或 validation_criteria_json。
9. 如果原始任务没有明确指定工具名称，不要生成 must_use_tool=get_quote 之类的具体工具名约束。
10. 只输出一个 JSON 对象，不要输出 markdown，不要输出解释文字。
11. JSON 必须包含且只包含以下字段：
{{
  "purpose": "任务目的",
  "constraints_json": "{{}}",
  "known_conditions_json": "[\"已知条件\"]",
  "validation_criteria_json": "[\"验证标准\"]",
  "reason": "识别依据"
}}
</prompt>

</prompts>
