# 输出组合规范 本文件说明如何把业务标签、输出能力和独立判断维度组合为最终 target。 ## 基本结构 最终输出通常需要综合四类判断: ```text 业务标签:这句话属于哪个能力范围 输出能力:最终 target 写 function、intent 还是 Agent 包装 结构维度:是否多指令、是否自动任务 复杂度维度:是否输出 `complex=false` 或 `complex=true` ``` ## function program 当返回类型是 `function`,输出可以是单行或多行 program。 单行: ```text QA() FinanceQA(type="股票",name="喜临门") Summarize() ``` 多行: ```text x0=Location(country="美国",province="华盛顿",city="西雅图") CalendarQA(type="TIME",target_time="现在",location=x0) ``` 只有 function 参数需要 object 时才生成 object。 ## object 不单独输出 `Location`、`PersonalDate`、`Resource` 等 object 通常不单独作为最终 target。 错误: ```text Location(city="西雅图") ``` 正确: ```text x0=Location(country="美国",province="华盛顿",city="西雅图") CalendarQA(type="TIME",target_time="现在",location=x0) ``` ## intent target 当返回类型是 `intent`,可以直接输出 intent 名称,或按当前任务要求映射到 Agent 包装。 intent 形式: ```text 地图导航 餐饮服务 商品购买 ``` Agent 包装形式: ```text Agent(tag="地图导航") Agent(tag="餐饮服务") Agent(tag="商品购买") ``` 使用哪一种取决于当前训练/评测数据定义。没有明确说明时必须确认。 ## Agent 字段 `Agent` 字段表示承接方,例如: ```text Agent: ToolsAgent Agent: dialogAgent Agent: lifeAgent Agent: mapAgent ``` 它是知识字段,不等于最终 target 必须写成 `Agent(tag="ToolsAgent")` 或 `Agent(tag="地图导航")`。 ## 多指令组合 如果 query 被拆成多个子任务,最终结构可以包含多个 subquery,每个 subquery 有自己的 function 或 intent。 示例: ```json [ { "condition": null, "querys": [ {"subquery": "关闭卧室的灯", "intent": "设备控制"}, {"subquery": "定一个明天下午四点的闹钟", "intent": "闹钟计时器"} ] } ] ``` ## 自动任务组合 如果 query 包含条件触发结构,condition 和 querys 组合输出。 示例: ```json [ { "condition": "上车时", "querys": [ {"subquery": "打开空调", "intent": "设备控制"} ] } ] ``` 如果 action 是 function,可以写 function: ```json [ { "condition": "明天八点", "querys": [ {"subquery": "提醒我说后天晚上去露营", "intent": "提醒"} ] } ] ``` ## 数据生成前的确认 如果用户要生成训练/评测数据,需要确认: - target 使用 function program、intent,还是 `Agent(tag="xxx")`。 - object 是否需要展开进 function target。 - 多指令和自动任务是否需要输出结构化 JSON。 - complex 是否作为独立字段输出。