aps-agent/docs/spec/capability-description.md

68 lines
3.4 KiB
Markdown
Raw Permalink 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.

# 能力描述规范(一页)
> 模型选工具靠的是能力描述,不是猜。描述写不好,等于意图识别失败——这个锅不在引擎,在平台。
**一句话原则**:能力描述是写给模型看的接口文档,不是写给人看的注释。
## 1 七要素
| # | 要素 | 要求 |
| --- | --- | --- |
| 1 | 能力 id | 小写点分:`<系统>.<资源>.<动作>`,如 `aps.schedule.preview`。禁用 `do` / `handle` / `process` 这类含糊动词 |
| 2 | 一句话用途 | 「做什么 + 对什么对象」,40 字以内 |
| 3 | 何时不用 | 反例优先。同族能力之间必须写清分界(试排 / 正式排产 / 重排) |
| 4 | 参数 schema | 每个参数给类型、必填、枚举、单位、默认值。单位写进描述(分钟 / 台 / 件) |
| 5 | 业务黑话与同义词 | 现场怎么叫就写进去:换型、插单、交期承诺、能力池、抛料、试排 |
| 6 | 示例 | 一到两条自然语言问法 + 该调用什么 |
| 7 | 副作用与影响面 | 只读 / 草稿 / 写;影响哪些数据、能否回滚。写操作必须能被确认卡压成参数摘要 |
## 2 反例对照
| 反例 | 问题 | 改法 |
| --- | --- | --- |
| `doSchedule` | 动词含糊、无对象 | `aps.schedule.preview` |
| 「处理数据」 | 没说做什么 | 「按当前项目数据试排一版方案,不发布到 APS」 |
| 不写同义词 | 用户说「换型」,模型不认识 | 描述里带上 换型 / setup / 换模 |
| 枚举不给、默认值不写 | 模型乱填 mode | 枚举锁死 + 明确默认值 |
| 只说正例 | 模型不知道边界 | 「只读预览用这个;要落库请用 `aps.schedule.publish`」 |
## 3 近义能力的裁决规则
| 情况 | 规则 |
| --- | --- |
| 同一动作多个系统都有(查库存 ERP / EMS) | 不给模型二选一;要么提供一个检索类能力由用户选,要么按项目配置固定数据源 |
| APS 内部同族动作(试排 / 正式排产 / 重排) | 名称含区别词,描述第一句写分界 |
| 读与写成对出现 | 成对命名(`preview` / `publish`),描述互相指路 |
## 4 提交检查项
Provider 作者自检,评审逐条打勾:
1. id 符合 `<系统>.<资源>.<动作>`,无含糊动词
2. 一句话用途 ≤ 40 字,含对象
3. 写了「何时不用」,同族能力有分界
4. 参数都有类型、必填、枚举、单位、默认值
5. 含业务黑话与同义词
6. 至少一条示例问法
7. 副作用与影响面写清,写操作可压成参数摘要
## 5 示例
```yaml
id: aps.schedule.preview
用途: 按当前项目的订单与产能试排一版方案,只出结果不发布
何时不用: 要落库生效请用 aps.schedule.publish;只想看现有方案用 aps.schedule.query
同义词: 试排、排一下、跑一版、预排、模拟排产
参数:
project: 项目 id,必填,默认当前项目
horizon_days: 排产跨度,整数天,默认 30
strategy: 规则枚举 rule | cpsat | hybrid,默认项目配置
示例: 「按新订单试排一版看看」→ aps.schedule.preview
副作用: 只读;不写 APS,不产生版本
```
## 6 责任与落地
- Provider 作者写,平台评审;从 A5 首个真实 Provider 起强制执行
- 能力描述随 Provider 契约一起入库,纳入 CI 检查(七要素缺项即失败)
- 规范本身随 Provider 契约文档同步演进,位置:`docs/spec/capability-description.md`