# 标注输出形态

这个维度用于判断最终监督标签应该写成 function program、`Agent(tag="xxx")` 包装，还是特殊结构化输出。详细 object、function、intent 定义见 `../输出能力/`。

它和业务标签不同：

- 业务标签回答“query 属于哪个能力范围”。
- 输出形态回答“训练/评测数据里的 target 应该怎么写”。

## 输出能力目录

需要详细判断时，读取：

- `../输出能力/对象目录.md`
- `../输出能力/函数目录.md`
- `../输出能力/意图目录.md`
- `../输出能力/输出组合规范.md`

## 当前数据开发默认口径

在当前标签大师和数据开发链路里，最终 target 优先分成两类：

1. **Function 形式**：只有当某个能力已经有明确 function 定义和可用参数签名时，才输出 function program，例如 `QA()`、`CalendarQA(...)`、`Summarize(...)`。
2. **Agent 形式**：没有明确 function 定义、或只是旧 tag / intent 业务标签时，默认输出 `Agent(tag="xxx")`，例如 `Agent(tag="地图导航")`。

`intent` 名称可以作为业务标签名、拆分子句里的意图字段或兼容中间形态，但在当前数据开发默认口径下，不作为首选最终 target。除非用户明确要求“输出 intent 形式”，否则不要把 `intent = 地图导航` 和 `Agent(tag="地图导航")` 并列反问。

## 两层输出结构

最终输出先判断外层结构，再判断叶子 target：

| 层级 | 类型 | 说明 |
| --- | --- | --- |
| 外层结构 | 单意图 | 只有一个 query 和一个叶子 target。 |
| 外层结构 | 多指令 | 需要拆成多个子句，每个子句单独输出一条叶子 target，并按行组合。 |
| 外层结构 | 自动任务 | 需要输出 condition + querys，每个子任务再写自己的叶子 target。 |
| 叶子 target | function program | 已 function 化且签名明确的能力。 |
| 叶子 target | `Agent(tag="xxx")` | 未 function 化或旧 tag / intent 标签。 |

自动任务、多指令不是和 function / Agent 并列的叶子 target，而是包住 function / Agent 的结构化外壳。

多指令场景里，Agent 叶子 target 需要保留子句文本：

```text
Agent(query="退出导航",tag="地图导航")
Agent(query="打开后视镜加热",tag="车载控制")
```

## 基本原则

1. 已 function 化并且 function 签名明确的能力，优先使用 function program。
2. object 只作为 function 参数，不单独作为最终 target。
3. function 可以是多行 program，允许先构造 object 再调用 function。
4. 未 function 化或 function 签名不明确的旧 `tag标签` / intent 标签，默认使用 `Agent(tag="xxx")`。
5. Agent 字段表示承接方，是知识维度，不等于最终 target 里的 tag 名；不要写成 `Agent(tag="mapAgent")`。
6. 如果用户明确要求 function program，但对应卡片没有 function 签名，必须说明 function 待补充，不要臆造函数名和参数。
7. 对 QA 子类尤其要保守：`医疗问答`、`百科`、`美食问答` 等可能只是知识分类，最终输出可能是 `QA()`，不一定是 `Agent(tag="医疗问答")`。

## 常见 Function 形态

| 形态 | 例子 | 说明 |
| --- | --- | --- |
| 通用问答 | `QA()` / `QA（）` | 多个通用问答子类可能最终不区分子类，统一输出 QA。 |
| 图片问答 | `VisionQA` | 图片、拍照、屏幕问答等视觉理解类能力。 |
| 金融问答 | `FinanceQA()` | 股票、黄金、期货等金融查询。 |
| 时间问答 | `CalendarQA` / `timeDistance` | 日历、节假日、时间距离等时间工具能力。 |
| 文档总结 | `Summarize()` | 文档、URL 总结和问答。 |
| 天气问答 | `WeatherQA()` | 近期天气、温度、湿度、空气质量等。 |
| 翻译 | `Translate` / `TranslateQA` | 外语翻译、翻译问答、词典类能力。 |
| 垂域动作 | `SearchAction` / `ActivateAction` / `OpenAction` | 旧三级语义或 function 定义里经常出现，不等同于最终数据 target，但需要保留为候选。 |

## Agent 包装形态

当能力没有明确 function 定义，或者任务使用旧 tag / Agent 标签体系时，使用 Agent 包装形态。

例子：

```text
Agent(tag="地图导航")
Agent(tag="餐饮服务")
Agent(tag="设备控制")
```

如果用户只说“地图导航标签”，且没有明确要求 function program 或 intent target，在当前数据开发默认口径下推荐 `Agent(tag="地图导航")`。

## 推荐输出

做标签判断时建议输出：

```text
业务标签：地图导航
输出形态候选：
- 推荐：Agent(tag="地图导航")
- Function：当前知识库没有确认可用的地图导航 function 签名，不要臆造 Navigation(...)
```

做数据生成时，如果用户明确要求 function program，但对应标签没有可用 function 签名，必须先问：

```text
这批数据要求输出 function program，但当前标签卡片没有确认 function 签名。
是否先按 Agent(tag="地图导航") 生成，还是你补充地图导航 function 定义？
```
