news 2026/6/16 3:16:50

AI Agent—Tools Skill

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI Agent—Tools Skill

目录

二、Tool 与 Skill 的关联(四层关系)

1. Function Calling 层:模型指挥,工具执行

2. 标准化封装层:Skill 是 Tool 的“说明书 + 编排”

3. 安全沙箱层:Skill 在围栏内,Tool 受权限约束

4. 架构分层:业务 Skill 编排通用 Tool

三、Skill 总结

定义

核心特征

与 Tool 的关系(总图)

一句话总结

四、skill模板

1、Skill 目录结构模板

2、SKILL.md 结构模板

3、编写 Skill 的检查清单

五、Skill案列—基金当前状态分析

场景

目录结构

SKILL.md(完整案例)

输出模板


一、Tool 与 Skill 的本质区别

维度Tool(工具)Skill(技能)

定义

工具和接口,是可调用的功能

技能和能力,是能完成某件事的整套流程

粒度

原子能力(单个函数/API)

编排后的能力(多步流程)

类比

插头、模块、API

流程图、SOP、作业手册

职责

执行具体动作

判断意图、选工具、组织步骤、产出结果

一句话:Tool 回答“能做什么”,Skill 回答“遇到这类问题该怎么做”。


二、Tool 与 Skill 的关联(四层关系)

1. Function Calling 层:模型指挥,工具执行

用户提问 → 模型判断 → 生成调用指令 → 外部工具执行 → 结果回传 → 模型继续推理

  • 模型:指挥家,负责意图识别、选工具、组参数、整合答案
  • Tool:专家,负责查数据、算结果、跑脚本等“重活”
  • Skill:模型把上述闭环固化成可复用的流程能力

以“查深圳天气”为例:

步骤角色内容

1

用户

“今天深圳天气怎么样?”

2

Skill/模型

决定调用get_weather(city="深圳")

3

Tool

返回{"天气":"晴","气温":"28°C"}

4

Skill/模型

生成自然语言回答

Skill = 会选工具 + 会填参数 + 会解释结果;Tool = 真正拿到数据的函数。


2. 标准化封装层:Skill 是 Tool 的“说明书 + 编排”

Anthropic Agent Skills 的思路是:把 Tool 封装进标准化的SKILL.md

一个 Skill 通常包含:

组成部分作用

触发条件

何时启用(关键词、场景、问题类型)

执行步骤

先做什么、再做什么(解析 → 调用 → 处理 → 输出)

代码/脚本

底层 Tool 的具体实现

Tool(代码) ──封装──▶ Skill(SKILL.md)

↑ ↑

实现能力 调用逻辑 + 触发条件 + 执行步骤

价值:模块化、跨场景复用、降低 Agent 系统维护成本。


3. 安全沙箱层:Skill 在围栏内,Tool 受权限约束

┌─────────────────────────────────────┐

│ 主机系统 │

│ ┌─ Agent 执行区(Skill 运行) ─┐ │

│ │ 代码执行、流程编排 │ │

│ └──────────┬──────────────────┘ │

│ │ 白名单放行 │

│ 文件系统 / 数据库 / 外部网络(Tool) │

└─────────────────────────────────────┘

  • Skill:在隔离区内按流程执行
  • Tool:对外部资源的访问入口
  • 沙箱:用最小权限、资源上限、可观测与急停,保证 Skill 调用 Tool 时安全、稳定、可溯

4. 架构分层:业务 Skill 编排通用 Tool

以“缺陷分析 Skill 架构”为例:

Channel 层(业务 Skill)

desktop / recents / animation / performance / stability

Router Agent 层(路由代理)

defect-analysis-router:定义必要流程、解耦业务与底层

Common 层(通用 Tool/能力)

log-timestamp-location / 知识库检索 / 日志预处理 ...

层级角色示例

Channel Skill

面向业务的分析能力

流畅性分析、稳定性分析

Router

流程编排与路由

决定调用哪些通用能力、顺序如何

Common Tool

可复用的底层能力

日志定位、预处理、检索

业务 Skill 不直接绑死底层 Tool 名称,通过 Router 解耦,便于扩展和维护。


三、Skill 总结

定义

Skill 是一种标准化的、可复用的 Agent 能力单元,把“何时用、怎么用、按什么顺序做、如何输出”写清楚,并在安全边界内编排一个或多个 Tool 完成特定任务。

核心特征

  1. 流程性:不是单次函数调用,而是一套完整步骤
  2. 触发性:有明确的启用时机(关键词、场景、问题类型)
  3. 编排性:会选择、组合、串联多个 Tool
  4. 标准化:常用SKILL.md等形式,便于模块化与复用
  5. 安全可控:在沙箱内运行,遵循最小权限与可观测
  6. 分层解耦:业务 Skill 在上,通用 Tool 在下,Router 在中间

与 Tool 的关系(总图)

一句话总结

Tool 是 Agent 的“手和眼”(可调用的原子能力);Skill 是 Agent 的“脑和手顺”(知道什么问题该启动、按什么步骤调用哪些 Tool、如何安全地完成并交付结果)。
没有 Tool,Skill 无法触达真实世界;没有 Skill,Tool 只是零散接口,无法稳定、可复用地解决复杂任务。

四、skill模板

1、Skill 目录结构模板

skill-name/
├── SKILL.md # 必需 — 主流程与触发条件
├── reference.md # 可选 — 详细规范、关键词表
├── examples.md # 可选 — 输入/输出样例
└── scripts/ # 可选 — 底层 Tool 脚本
├── analyze.py
└── validate.sh

存放位置:参考cursor

类型路径作用域

个人 Skill

~/.cursor/skills/skill-name/

所有项目可用

项目 Skill

.cursor/skills/skill-name/

当前仓库共享

不要写入~/.cursor/skills-cursor/,该目录为 Cursor 内置 Skill 专用。

2、SKILL.md 结构模板

---
name: your-skill-name
description: >
[WHAT] 本 Skill 做什么(能力描述)。
[WHEN] 何时启用(关键词、场景、问题类型)。
建议第三人称,包含触发词,便于 Agent 自动发现。
disable-model-invocation: true
---

# Skill 名称

## 核心定位

- **输入**:……
- **输出**:……
- **约束**:安全边界、目录规范、禁止事项
- **Tool 依赖**:本 Skill 会调用的工具/脚本/MCP

## 激活条件(Trigger)

当用户指令包含以下任一情况时启用:
- "关键词 A"
- "关键词 B"
- 问题类型 = xxx

## 工作流程(Workflow)

按顺序执行,不可跳步:

### 步骤 1:信息收集
- 读取 xxx
- 若缺失 → 走分支 A;否则 → 步骤 2

### 步骤 2:Tool 调用
- 调用 `scripts/analyze.py` 或 MCP Tool
- 记录原始结果

### 步骤 3:结果整合
- 按输出模板生成结论
- 写入 `output/result.md`

## 条件分支(Conditional)

| 条件 | 动作 |
|------|------|
| 日志缺失 | 输出「审核不通过」,列缺失项 |
| 非本域问题 | 转派至 xxx Skill |
| 重复单 | 引用历史结论 |

## 输出模板(Output Template)

```markdown


# [标题]

## 结论
- 推荐操作:
- 核心原因:

## 详细分析
……

3、编写 Skill 的检查清单

  • name:小写 + 连字符,≤ 64 字符
  • description:含 WHAT + WHEN + 触发词,第三人称
  • 工作流程:步骤清晰,有分支与终止条件
  • Tool 依赖:脚本路径、参数、何时执行写清楚
  • 输出模板:固定格式,便于下游 Skill 消费
  • 示例:至少 1 组完整输入 → Tool 结果 → 最终输出
  • SKILL.md 正文 < 500 行,细节放reference.md
  • 路径用/,不用\

五、Skill案列基金当前状态分析

场景

用户问:「帮我看看易方达蓝筹精选这只基金现在怎么样?」

Agent 不应只凭训练数据猜,而应通过 Skill 规定:先取数 → 再算指标 → 再按模板出结论。


目录结构

fund-status-analysis/

├── SKILL.md

├── reference.md # 指标口径、风险等级定义

├── examples.md # 更多输入输出样例

└── scripts/

├── fetch_fund_data.py # Tool:拉取基金数据

└── calc_indicators.py # Tool:计算涨跌幅、波动等


SKILL.md(完整案例)

---

name: fund-status-analysis

description: >

分析单只或多只基金的当前状态,包括净值、涨跌幅、阶段收益、

最大回撤、风险等级与简要投资建议。

当用户询问基金怎么样、基金现状、净值分析、持仓诊断、

或提到具体基金名称/代码时使用。

---

# 基金当前状态分析 (Fund Status Analysis)

## 核心定位

- **输入**:基金名称或代码(如 `005827`)、可选对比基准(如沪深300)

- **输出**:`output/fund_status_report.md`

- **Tool 依赖**:

- `scripts/fetch_fund_data.py` — 获取净值、规模、经理等基础数据

- `scripts/calc_indicators.py` — 计算阶段收益、回撤、波动率

- Shell — 格式化与校验

- **约束**:

- 数据以 Tool 返回为准,不得编造净值

- 结论须标注数据日期

- 仅作信息分析,不构成投资建议(免责声明必写)

## 激活条件

- 「这只基金现在怎么样?」

- 「帮我分析一下 xxx 基金」

- 「005827 当前状态」

- 「对比这几只基金的表现」

## 工作流程

### 步骤 1:解析用户意图

提取:

- 基金代码/名称(必填)

- 分析维度(默认:近1周/1月/3月/1年 + 最大回撤)

- 对比对象(可选,默认无)

若未提供基金代码:

1. 先按名称模糊匹配

2. 若匹配到多只 → 列出候选,请用户确认

3. 若 0 匹配 → 终止,reason = `未找到对应基金`

### 步骤 2:调用 Tool 获取数据

```bash

python scripts/fetch_fund_data.py \

--code 005827 \

--fields nav,scale,manager,industry \

> output/fund_raw.json

检查:

  • 若 API/数据源失败 → 重试 1 次
  • 仍失败 → 输出「数据暂不可用」,不生成分析结论

步骤 3:调用 Tool 计算指标

python scripts/calc_indicators.py \

--input output/fund_raw.json \

--periods 7d,30d,90d,365d \

> output/fund_metrics.json

计算项:

  • 各阶段涨跌幅
  • 近1年最大回撤
  • 近90日波动率(可选)
  • 同类排名(若数据源支持)

步骤 4:生成状态判断

按规则映射「当前状态标签」:

条件状态标签

近1月 > 0 且回撤 < 10%

偏强

近1月 < -5% 或回撤 > 15%

偏弱

其余

震荡

风险等级:

  • 回撤 ≤ 10% → 中低
  • 10% < 回撤 ≤ 20% → 中
  • 回撤 > 20% → 偏高

步骤 5:输出报告

写入output/fund_status_report.md,严格使用输出模板。

输出模板

# {基金名称}({基金代码})当前状态分析

> 数据日期:{data_date}

> 免责声明:以下内容基于公开数据整理,仅供参考,不构成投资建议。

## 一、核心结论

- **当前状态**:{偏强/震荡/偏弱}

- **最新净值**:{nav}({nav_date})

- **近1月涨跌**:{pct_30d}

- **近1年最大回撤**:{max_drawdown}

- **风险等级**:{risk_level}

## 二、关键指标

| 指标 | 数值 |

|------|------|

| 近1周 | {pct_7d} |

| 近1月 | {pct_30d} |

| 近3月 | {pct_90d} |

| 近1年 | {pct_365d} |

| 基金规模 | {scale} |

| 基金经理 | {manager} |

## 三、简要解读

{2~4 句自然语言解读:表现、波动、适合人群}

## 四、关注点

- {关注点1}

- {关注点2}

## 五、下一步建议(非投资建议)

- 若需深度分析:可补充「持仓行业分布」「与基准对比」

- 若需对比:可提供其他基金代码进行横向比较

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 3:14:51

零代码搭建物联网仪表盘:在5分钟内实现手机远程监控

&#x1f4a1; 阅读提示&#xff1a;本文面向完全零基础的物联网爱好者&#xff0c;手把手教你用ESP8266和Blynk平台&#xff0c;5分钟搭建一个手机可实时查看温湿度、远程控制继电器的物联网系统。全程不写一行代码&#xff08;或仅需复制几行&#xff09;&#xff0c;硬件成本…

作者头像 李华
网站建设 2026/6/16 3:14:02

选择专业冷暖空调安装公司的5个关键点

在考虑家用或商用冷暖空调系统时&#xff0c;安装环节往往决定了设备后续的能效表现与使用寿命。因此&#xff0c;筛选一家专业冷暖空调安装公司&#xff0c;是保证整个空气调节系统稳定运行的基础步骤。这类公司并非仅负责设备挂装&#xff0c;其核心价值在于提供从负荷计算、…

作者头像 李华
网站建设 2026/6/16 3:13:01

网络迷因传播机制解析:从deideiapuapu看病毒式内容生成

1. 项目概述&#xff1a;从“deideiapuapu”看当代网络迷因的生成与传播最近在社交媒体和短视频平台上&#xff0c;一个看起来毫无意义的词——“deideiapuapu”——突然开始频繁出现。它可能出现在评论区&#xff0c;也可能被用作某个搞笑视频的BGM&#xff0c;或者干脆就是一…

作者头像 李华
网站建设 2026/6/16 3:11:53

syscall 性能优化与开销分析:从系统调用到用户态绕过的工程路径

syscall 性能优化与开销分析&#xff1a;从系统调用到用户态绕过的工程路径 一、系统调用的隐藏成本&#xff1a;为什么一次 syscall 比函数调用慢 100 倍 系统调用&#xff08;syscall&#xff09;是用户程序请求内核服务的唯一入口。每次 syscall 都涉及用户态到内核态的上下…

作者头像 李华
网站建设 2026/6/16 3:11:52

AI 辅助的任务优先级排序:从直觉判断到数据驱动的项目管理

AI 辅助的任务优先级排序&#xff1a;从直觉判断到数据驱动的项目管理 一、任务优先级的决策困境&#xff1a;为什么"紧急"和"重要"总是冲突 项目管理中&#xff0c;任务优先级排序是最频繁也最困难的决策之一。传统的优先级矩阵&#xff08;紧急-重要四象…

作者头像 李华
网站建设 2026/6/16 3:08:49

中国367个城市空气质量优良天数数据集(2014-2024)

根据中国空气质量标准&#xff0c;空气质量指数AQI≤50为优级&#xff0c;AQI≤100为良好&#xff0c;AQI≤150为轻度污染&#xff0c;AQI≤200为重度污染&#xff0c;AQI≤300为重度污染&#xff0c;AQI&#xff1e;300为严重污染。该数据集为全国367个城市空气质量优良天数数…

作者头像 李华