skills.md 3.2 KB

Skills 使用指南

Skills 是 Agent 的领域知识库,存储在 Markdown 文件中。


Skill 分类

类型 加载位置 加载时机 文件位置
Core Skill System Prompt Agent 启动时自动加载 agent/skills/core.md
普通 Skill 对话消息 模型调用 skill 工具时 agent/skills/{name}/

Core Skill

核心系统功能,每个 Agent 都需要了解:

  • Step 管理(计划、执行、进度)
  • 其他系统级功能

位置agent/skills/core.md

加载方式:框架自动注入到 System Prompt

普通 Skill

特定领域能力,按需加载:

  • browser_use(浏览器自动化)
  • 其他领域 skills

位置agent/skills/{name}/

加载方式:模型调用 skill 工具


普通 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: 指导原则列表

使用方法

1. 创建 skills 目录

mkdir skills

2. 添加 skill 文件

创建 skills/browser-use.md 文件,按照上述格式编写。

3. Agent 调用

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 工作流

  1. Agent 接收任务
  2. Agent 调用 list_skills() 查看可用 skills
  3. Agent 调用 skill(skill_name="browser-use") 加载需要的 skill
  4. Skill 内容注入到对话历史
  5. Agent 根据 skill 指导完成任务

4. 手动测试

from 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 文档。

参数

  • skill_name (str): Skill 名称,如 "browser-use"

返回:Skill 的完整内容(Markdown 格式)

list_skills 工具

列出所有可用的 skills,按 category 分组。

返回:Skills 列表,包含名称、ID 和简短描述

环境变量

可以设置默认 skills 目录:

# .env
SKILLS_DIR=./skills

参考

  • 示例: examples/skills_example.py
  • Skill 文件: skills/ 目录
  • 工具实现: tools/skill.py