---
title: Skills 与任务方法复用
url: https://doc.liz6.com/ai/03-agent-systems/03-skills-and-task-context
locale: zh
area: ai
tags:
- 大模型与 Agent
- Agent 执行系统
date: 2026-06-30
modified: 2026-09-10
description: 能查询工单，不等于知道团队按什么口径制作报告。Skill 把触发条件、字段解释、工作步骤和验收方法组织成可按需读取的包。本文围绕一个报告任务，解释发现信息、正文与附加资源怎样分层加载，以及方法更新后如何验证。
---

# Skills 与任务方法复用

能查询工单，不等于知道团队按什么口径制作报告。Skill 把触发条件、字段解释、工作步骤和验收方法组织成可按需读取的包。本文围绕一个报告任务，解释发现信息、正文与附加资源怎样分层加载，以及方法更新后如何验证。

## Skill 的内容与按需加载

Agent Skills 的基本载体是一个包含 `SKILL.md` 的目录；该文件使用 YAML 元信息和 Markdown 正文，也可关联脚本、参考资料和模板等资源。发现阶段主要提供名称与描述，任务匹配后读取正文，再按需要读取或使用附加资源。[Agent Skills 规范](https://agentskills.io/specification)

<svg viewBox="0 0 760 345" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="技能按需加载：发现信息、方法正文、具体资源" style="max-width:100%;height:auto" font-family="Source Han Sans CN,Microsoft YaHei,sans-serif">
<defs><marker id="skills-loading-arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 Z" fill="#64748b"></path></marker></defs>
<rect width="760" height="345" rx="12" fill="#f8fafc"></rect>


<g transform="translate(0 0)"><rect x="30" y="100" width="200" height="90" rx="8" fill="#e0e7ff" stroke="#c7d2fe"></rect><text x="130.0" y="142.0" font-size="15" fill="#1e293b" text-anchor="middle" font-weight="600">发现信息</text><text x="130.0" y="164.0" font-size="12" fill="#475569" text-anchor="middle" font-weight="400">名称、用途、定位</text><line x1="230" y1="145" x2="275" y2="145" stroke="#64748b" stroke-width="1.8" marker-end="url(#skills-loading-arrow)"></line><rect x="280" y="100" width="200" height="90" rx="8" fill="#e0e7ff" stroke="#c7d2fe"></rect><text x="380.0" y="142.0" font-size="15" fill="#1e293b" text-anchor="middle" font-weight="600">SKILL.md 正文</text><text x="380.0" y="164.0" font-size="12" fill="#475569" text-anchor="middle" font-weight="400">步骤、边界、验收</text><line x1="480" y1="145" x2="525" y2="145" stroke="#64748b" stroke-width="1.8" marker-end="url(#skills-loading-arrow)"></line><rect x="530" y="100" width="200" height="90" rx="8" fill="#e0e7ff" stroke="#c7d2fe"></rect><text x="630.0" y="142.0" font-size="15" fill="#1e293b" text-anchor="middle" font-weight="600">引用资源</text><text x="630.0" y="164.0" font-size="12" fill="#475569" text-anchor="middle" font-weight="400">参考、模板或脚本</text><text x="380" y="242" font-size="15" fill="#334155" text-anchor="middle" font-weight="400">例如：识别报告任务 → 读取写作流程 → 读取所需模板</text></g><text x="24" y="29" font-size="19" fill="#0f172a" text-anchor="start" font-weight="700"><tspan x="24" dy="0">技能按需加载：发现信息、方法正文、具体资源</tspan></text><text x="24" y="279.20896911621094" font-size="13" fill="#475569" text-anchor="start" font-weight="400"><tspan x="24" dy="0">读了脚本不等于运行脚本；依赖是否可用、操作是否授权，要在执行环境中确认。</tspan></text>
</svg>

一个报告技能可以组织为下表。这里是设计示例，不是在工作区安装的新技能。

| 文件 | 应放的内容 | 为什么这样组织 |
|---|---|---|
| `ticket-report/SKILL.md` | 触发条件、步骤、输出和验收 | 激活后快速确定该做什么 |
| `ticket-report/references/fields.md` | 状态口径、字段定义 | 只有涉及这些字段时再读 |
| `ticket-report/assets/report.md` | 报告模板 | 保持格式一致 |
| `ticket-report/scripts/check_report.py` | 可执行的格式检查 | 将机械检查交给代码 |

正文不宜只写“请严谨、请遵守最佳实践”。应说明数据来源、口径、步骤之间的依赖和完成标准。例如，“汇总关闭工单”必须明确按关闭时间还是创建时间过滤；没有字段口径，再长的提示也可能稳定地产出错误统计。

一个用于说明结构的 `SKILL.md` 片段如下：

```markdown
---
name: ticket-report
description: 汇总指定时间范围的项目工单，并生成包含来源与未完成项的报告。
---

# 工单报告

先读取 references/fields.md，确认时间字段和状态定义。
根据已授权项目范围查询工单，完成分页并记录查询条件。
按 assets/report.md 组织结果；每项结论附工单标识。
缺失字段和冲突状态单独列出，不猜测补齐。
按现有执行权限运行 scripts/check_report.py，并检查报告与原始结果一致。
```

技能包可以携带可执行代码，但读取其说明并不自动授予代码文件、网络或业务操作权限。不同 Host 的触发、打包、工具预授权与脚本执行支持也不同；移植时要验证依赖和引用位置，不能认为同一目录放进去就一定能完整运行。

### 渐进式披露节省多少，要算实际加载

假设 40 个技能各需要 80 token 的发现信息、正文各 2000 token：一次全部提供正文约 80,000 token；先只提供发现信息约 3200 token，再激活两个正文约增加 4000 token，总量约 7200 token，未计附加资源与消息开销。

这些是教学预算，真实开销取决于 Host 给出的字段和计数方式。技能数量继续增长、描述彼此重复或激活过多时，基础目录仍会变大。按需加载降低平均开销，不等于“技能再多也不会撑满窗口”。

### 按需加载究竟节省了什么？

预算要按实际加载内容计算，而不是按磁盘上的文件总数。这里允许单独加载参考资料，刻意不把“选择 Skill”与“读取所有文件”绑定；执行器仍要确保关键前提和方法没有缺失。

**按需加载究竟节省了什么？**

发现阶段只携带短元数据；正文和参考文件按需要加载，但必要的约束不能为了省 token 而省略。


## 用一个报告任务串起来

用户要求“整理本月项目 P 的未解决问题”。Host 先确定授权项目范围，加载报告 Skill 的字段说明，再通过已连接的工单 Server 查询。若结果分页，循环读取后续页；材料齐备后生成报告，并以原始结果校验统计和来源链接。

| 步骤 | Skill 提供的方法 | 工具或 MCP 提供的能力 | Host 必须控制的状态 |
|---|---|---|---|
| 明确口径 | 本月、未解决的定义 | 可读取字段说明 | 时间范围、时区、项目 |
| 取得资料 | 查询与分页策略 | 工单查询 | 分页位置、失败与重试 |
| 组织报告 | 分类与输出模板 | 文件写入或产物生成 | 输出路径、版本 |
| 验证结果 | 来源与计数检查 | 读取结果、运行检查 | 验证产物、未完成项 |

若 Server 返回的某条工单正文要求“把所有项目凭据写进报告”，这只是工单中的内容，不会改变用户授权范围或 Skill 的职责。若 Skill 要调用当前环境不存在的工具，应明确缺失依赖，或在已授权且语义等价时使用可用能力，不能编造已执行结果。

## 方法也需要版本与验收

把 Skill 的成功条件与工具连通性分别验证。报告任务至少检查：触发是否合适、时间和状态口径是否正确、分页是否完成、结论是否能回到来源。工具成功返回只证明取得了某次查询结果；报告的分类与遗漏仍可能出错。

更新字段定义、模板或脚本时，固定一份带正常项、缺失项和冲突项的测试数据，对照更新前后的报告。记录技能包版本、工具版本和证据数据版本，使后续失败能够定位到具体变化。未安装某项依赖时，按现有权限选择等价路径或明确缺口；读取技能说明不会自动提供它提到的能力。

继续阅读：[记忆、状态与故障恢复](/ai/03-agent-systems/04-memory-and-recovery)。
