当前位置: 首页 > news >正文

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}

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

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

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

http://www.zskr.cn/news/1532644.html

相关文章:

  • 2026酒店除甲醛哪家靠谱?绿阳值得看 - 广州矩阵架构科技公司
  • 谷歌 GEO 是什么?出海营销从业者可了解的流量新方向
  • 告别臃肿与隐私困扰:Win11Debloat让你重新掌控Windows系统
  • 【水果分级】基于matlab图像处理技术自动水果质量检测与分级(香蕉 苹果 橙子)【含Matlab源码 15628期】
  • RK3566嵌入式芯片深度解析:架构、AI能力与开发实战
  • 别再让414错误卡住你的API!手把手教你调整Nginx/Apache的URI长度限制
  • 深入解析PowerPC e200z1寄存器模型:嵌入式系统开发实战指南
  • SpringBoot配置全解析:从基础语法到云原生实践
  • 如何用 gemini3.5 制作个人知识库分类目录?高效整理笔记教程与避坑指南
  • GT-POWER四缸汽油机一维仿真建模:从零搭建到性能分析实战
  • MPC8533E本地总线控制器:BRn与ORn寄存器配置实战指南
  • NXP Vision Toolbox:基于MATLAB的S32V234视觉算法快速部署指南
  • 直流伺服电机在火控系统中的核心任务、关键技术与发展趋势
  • Windows系统文件xactengine2_6.dll文件丢失找不到问题解决
  • 2026论文全流程终极榜单:10款AI智能降重工具,查重降重+降AIGC一次通关
  • 联邦学习实战:数据不动模型动的工程落地指南
  • 创业公司怎么省云钱:架构设计里的精算学
  • 混合储能驱动永磁同步电机全系统仿真模型(Simulink仿真实现)
  • Ubuntu系统实战指南:从桌面开发到服务器部署的全面解析
  • 医院钢制门排名
  • AI 功能的用户体验设计:从技术演示到产品价值,智能功能的体验闭环
  • 红外显微镜的价格与品牌选择指南
  • 终极鼠标悬停翻译指南:如何在浏览器中实现一键多语言翻译
  • FMQL:构建安全高效动态查询的声明式查询语言规范
  • 行测电子版教材|备考|刷题
  • Windows硬件信息深度伪装实战指南:EASY-HWID-SPOOFER内核级修改解决方案
  • Adabound优化器实战指南:工业级模型稳定收敛技巧
  • 终极RustDesk服务器一键部署:10分钟搭建免费远程桌面平台
  • 简历改了8遍没回应?测试开发私教老师一顿操作,学员:“原来我写了个寂寞”
  • Go channel 深入解析