技能与扩展
技能的核心概念
技能是 DeepAgents 生态中的知识模块,提供了一种系统化的方式来扩展代理的能力。每个技能包含特定领域的指导和必要的工具,代理可以在需要时加载和使用。
技能 vs 工具
| 维度 | 技能 | 工具 |
|---|---|---|
| 作 用域 | 宽泛,涵盖多个步骤 | 具体,单一功能 |
| 加载方式 | 延迟加载(按需) | 立即可用 |
| 内容 | 指导 + 工具 + 资源 | 仅是函数 |
| 重用性 | 跨项目共享 | 通常是本地的 |
技能的结构
每个技能是一个目录,包含以下内容:
skills/
├── research-toolkit/
│ ├── SKILL.md # 技能定义和指导
│ ├── arxiv_search.py # 辅助脚本
│ └── references/
│ └── top-papers.md # 参考资料
│
├── data-analysis/
│ ├── SKILL.md
│ ├── analysis_utils.py
│ └── templates/
│ └── report_template.md
│
└── web-automation/
├── SKILL.md
├── selenium_helpers.py
└── docs/
└── selector-guide.md
SKILL.md 文件格式
技能的核心是 SKILL.md 文件,遵循标准格式:
---
name: research # 技能名称
description: 进行学术和行业研究 # 简短描述
license: MIT # 许可证
compatibility: 需要网络访问 # 依赖说明
metadata:
author: langchain
version: "1.0"
category: information-gathering
allowed-tools: web_search, fetch_url # 允许使用的工具
---
# 研究技能 (Research)
## 概述
本技能提供了一套系统化的研究流程,包括:
- 多源信息搜索
- 信息验证和交叉引用
- 结构化报告生成
## 使用场景
当需要进行以下任务时使用本技能:
- 市场调研
- 竞争分析
- 技术趋势分析
- 政策研究
## 详细指导
### 1. 收集信息
使用 web_search 工具搜索关键信息源...
### 2. 验证信息
交叉引用多个来源以确保准确性...
### 3. 生成报告
组织信息并生成结构化报告...
## 工具使用
此技能使用以下工具:
- `web_search`: 搜索网络信息
- `fetch_url`: 获取完整页面内容
使用技能
基本用法
from deepagents import create_deep_agent
agent = create_deep_agent(
model="anthropic:claude-3-5-sonnet-20241022",
tools=[web_search, fetch_url],
skills=["/path/to/skills/research/"], # 指定技能目录
system_prompt="你是一个研究助手。使用提供的技能来进行深度研究。"
)
result = agent.invoke({
"messages": [{"role": "user", "content": "研究 GPU 市场的最新发展"}]
})
多个技能
agent = create_deep_agent(
model="anthropic:claude-3-5-sonnet-20241022",
skills=[
"/path/to/skills/research/",
"/path/to/skills/data-analysis/",
"/path/to/skills/report-writing/",
],
system_prompt="""你是一个专业分析师。
可用的技能:
1. 研究技能:收集和验证信息
2. 数据分析技能:处理和可视化数据
3. 报告写作技能:生成专业报告
根据任务需要使用这些技能。"""
)
创建自定义技能
步骤 1:创建目录结构
mkdir -p skills/custom-analysis
cd skills/custom-analysis
步骤 2:创建 SKILL.md
---
name: sentiment-analysis
description: 进行文本情感分析和情绪趋势追踪
version: "1.0"
author: your-org
compatibility: 需要 TextBlob 和 VADER
metadata:
domain: NLP
difficulty: intermediate
allowed-tools: analyze_text, save_results
---
# 情感分析技能
## 功能
本技能提供以下能力:
- 单个文本的情感分析
- 多文本情感聚合
- 情感趋势时间序列分析
## 使用指导
### 单文本分析
对单个文本进行情感分析,返回:
- 情感极性(正面/负面/中立)
- 置信度分数
- 关键词识别
使用示例:
分析这条推文:"我特别喜欢这个新产品!"
### 批量分析
对文本集合进行分析,返回:
- 整体情感分布
- 情感强度统计
### 趋势分析
追踪特定话题的情感变化...
## 工具参考
- `analyze_text(text, method)`: 分析文本情感
- `save_results(data, format)`: 保存分析结果