Files
zk-data-agent/skills/label-master/knowledge/输出能力/输出组合规范.md
T
2026-05-12 12:06:39 +08:00

168 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 输出组合规范
本文件说明如何把业务标签、输出能力和独立判断维度组合为最终 target。
## 基本结构
最终输出通常需要综合四类判断:
```text
业务标签:这句话属于哪个能力范围
输出能力:最终 target 写 function program 还是 Agent 包装
结构维度:是否多指令、是否自动任务
复杂度维度:是否输出 `complex=false` 或 `complex=true`
```
当前数据开发默认口径:
- 已 function 化且签名明确的能力,最终 target 写 function program。
- 未 function 化或只是旧 tag / intent 的业务标签,最终 target 写 `Agent(tag="xxx")`
- intent 名称可以作为业务标签名、拆分子句里的意图字段或兼容中间形态;除非用户明确要求 intent target,否则不作为首选最终 target。
- 多指令和自动任务是结构化外壳,不是和 function / Agent 并列的叶子 target。
## 两层组合方式
先确定外层结构:
- 单意图:直接输出一个叶子 target。
- 多指令:拆成多个子句,每个子句单独输出一条叶子 target,然后按行组合。
- 自动任务:输出 `condition``querys`,每个子任务有自己的叶子 target。
再确定叶子 target
- function program:例如 `QA()``Summarize()``CalendarQA(...)`
- Agent 包装:例如 `Agent(tag="地图导航")``Agent(tag="餐饮服务")`
## 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 与 Agent target
当返回类型是 `intent`,在当前数据开发默认口径下优先映射到 Agent 包装。
业务标签 / 中间 intent 名称:
```text
地图导航
餐饮服务
商品购买
```
Agent 包装形式:
```text
Agent(tag="地图导航")
Agent(tag="餐饮服务")
Agent(tag="商品购买")
```
除非用户明确要求输出 intent target,否则不要把 intent 名称作为首选最终 target。
## Agent 字段
`Agent` 字段表示承接方,例如:
```text
Agent: ToolsAgent
Agent: dialogAgent
Agent: lifeAgent
Agent: mapAgent
```
它是知识字段,不等于最终 target 必须写成 `Agent(tag="ToolsAgent")``Agent(tag="地图导航")`
## 多指令组合
如果 query 被拆成多个子任务,当前数据开发默认按“多行 target”输出:每个子句单独一条 `Agent(query="...",tag="...")` 或 function target。
complex 是独立维度,如果需要输出,作为单独一行放在最前面,不归属于某个子句。
示例:
```text
complex=true
Agent(query="退出导航",tag="地图导航")
Agent(query="打开后视镜加热",tag="车载控制")
```
再例如:
```text
Agent(query="关闭卧室的灯",tag="设备控制")
Agent(query="定一个明天下午四点的闹钟",tag="闹钟计时器")
```
## 自动任务组合
如果 query 包含条件触发结构,condition 和 querys 组合输出。
示例:
```json
[
{
"condition": "上车时",
"querys": [
{"subquery": "打开空调", "intent": "设备控制"}
]
}
]
```
如果 action 是 function,可以写 function
```json
[
{
"condition": "明天八点",
"querys": [
{"subquery": "提醒我说后天晚上去露营", "intent": "提醒"}
]
}
]
```
## 数据生成前的确认
如果用户要生成训练/评测数据,需要确认:
- target 是否要求 function program;如果没有明确 function 定义,默认使用 `Agent(tag="xxx")`
- object 是否需要展开进 function target。
- 多指令和自动任务是否需要输出结构化 JSON。
- complex 是否作为独立字段输出。