Skills 是 Agent 的领域知识库,存储在 Markdown 文件中。
| 类型 | 加载位置 | 加载时机 | 文件位置 |
|---|---|---|---|
| Core Skill | System Prompt | Agent 启动时自动加载 | agent/skills/core.md |
| 普通 Skill | 对话消息 | 模型调用 skill 工具时 |
agent/skills/{name}/ |
核心系统功能,每个 Agent 都需要了解:
位置:agent/skills/core.md
加载方式:框架自动注入到 System Prompt
特定领域能力,按需加载:
位置:agent/skills/{name}/
加载方式:模型调用 skill 工具
---
name: browser-use
description: 浏览器自动化工具使用指南
category: web-automation
scope: agent:*
---
## When to use
- 需要访问网页、填写表单
- 需要截图或提取网页内容
## Guidelines
- 先运行 `browser-use state` 查看可点击元素
- 使用元素索引进行交互:`browser-use click 5`
- 每次操作后验证结果
Frontmatter 字段:
name: Skill 名称(必填)description: 简短描述(必填)category: 分类(可选,默认 general)scope: 作用域(可选,默认 agent:*)章节:
## When to use: 适用场景列表## Guidelines: 指导原则列表mkdir skills
创建 skills/browser-use.md 文件,按照上述格式编写。
Agent 在运行时可以调用 skill 工具:
from agent import AgentRunner
from agent.llm.providers.gemini import create_gemini_llm_call
import os
runner = AgentRunner(
llm_call=create_gemini_llm_call(os.getenv("GEMINI_API_KEY"))
)
async for event in runner.run(
task="帮我从网站提取数据",
tools=["skill", "list_skills", "bash"],
model="gemini-2.0-flash-exp"
):
if event.type == "conclusion":
print(event.data["content"])
Agent 工作流:
list_skills() 查看可用 skillsskill(skill_name="browser-use") 加载需要的 skillfrom tools.skill import list_skills, skill
# 列出所有 skills
result = await list_skills()
print(result.output)
# 加载特定 skill
result = await skill(skill_name="browser-use")
print(result.output)
skill 工具加载指定的 skill 文档。
参数:
skill_name (str): Skill 名称,如 "browser-use"返回:Skill 的完整内容(Markdown 格式)
list_skills 工具列出所有可用的 skills,按 category 分组。
返回:Skills 列表,包含名称、ID 和简短描述
可以设置默认 skills 目录:
# .env
SKILLS_DIR=./skills
examples/skills_example.pyskills/ 目录tools/skill.py