省 90% token!谷歌重磅指南教你用 Skill 构建 ADK 智能体

Type: article
Author: Google Developers Blog
Primary Topic: agents
Ingested: 2026-04-17

Summary

Google Developers Blog 发表了 Agent Development Kit(ADK)中的 SkillToolset 深度指南。核心亮点:渐进式披露(Progressive Disclosure)架构,让 AI Agent 按需加载领域专业知识,最多可将基础上下文消耗降低 90%。通过 Skill 工厂(Skill Factory)设计模式,Agent 可以在运行时动态生成全新的 Skill 定义,实现自我扩展。介绍了四种 Skill 构建模式:内联 Skill、文件型 Skill、外部导入 Skill 和元 Skill(Skill 工厂)。基于 agentskills.io 开放标准,支持跨平台复用(Gemini CLI、Claude Code、Cursor 等 40+ 产品)。

Key Concepts

核心问题

AI Agent 能执行指令,但能不能自己编写指令?

Google Developers Blog 发表了一篇面向开发者的深度指南,介绍了 Agent Development Kit(ADK)中的 SkillToolset 能力。

核心亮点

AI Agent 的知识膨胀难题

问题描述

典型场景

严重程度

问题影响

1. 成本增加

2. 响应质量下降

3. 功能丰富度 vs 响应准确性的艰难取舍

解决方案:渐进式披露(Progressive Disclosure)

核心思想

把知识加载拆分成三个层级,只在需要的时候才加载需要的知识。

类比

三层知识加载架构

L1 元数据层(约 100 token/Skill)

内容

作用

L2 指令层(通常不超过 5000 token/Skill)

内容

加载时机

类比

L3 资源层(完全按需加载)

内容

加载时机

类比

效果对比

传统方式

渐进式披露

实际案例

技术实现

ADK 通过 SkillToolset 类实现

自主决策

四种 Skill 构建模式

1. 内联 Skill(Inline Skill)

定位:便利贴,小而直接

实现方式

适用场景

典型例子:SEO 检查 Skill

seo_skill = {
    "name": "seo-checklist",
    "description": "博客文章 SEO 优化检查清单,涵盖标题标签、元描述、标题结构和可读性",
    "instructions": """
检查项:
1. 标题控制在 50-60 个字符之间且主关键词靠前
2. 元描述控制在 150-160 个字符且包含行动号召
3. H2/H3 层级结构合理且 2-3 个标题包含关键词
4. 第一段在前 100 个词中出现主关键词
5. 图片需要包含关键词的 alt 文本并经过压缩处理

对照每个检查项审查内容并给出改进建议。
"""
}

优点

局限

2. 文件型 Skill(File-based Skill)

定位:参考活页夹,按主题分门别类地存放专业知识

实现方式

目录结构

blog-writing-skill/
├── SKILL.md              # 指令入口
├── references/           # 参考资料
│   └── style-guide.md
├── assets/               # 素材
└── scripts/              # 脚本

SKILL.md 格式

---
name: blog-writing
description: 专业博客写作 Skill,遵循风格指南
---

# 博客写作指令

## 步骤
1. 分析主题和目标受众
2. 参考 references/style-guide.md 了解写作风格
3. 构建文章结构
4. 撰写内容
5. 审查和优化

知识分层

关键优势

1. 可复用性

2. 可维护性

3. 团队协作

3. 外部导入 Skill(External Skill)

定位:从社区仓库中找到并下载的现成 Skill

实现方式

类比

使用示例

# 从社区仓库下载 Skill
# 然后用和文件型 Skill 完全相同的方法加载
skill = load_skill_from_dir("./content-research-writer")

社区资源

跨平台兼容

4. Skill 工厂(Skill Factory)/ 元 Skill(Meta Skill)

定位:Agent 自我扩展的能力

核心能力

实现原理

1. 本质

2. 指令内容

3. 关键:resources 字段

工作流程

场景:用户说"我需要一个新 Skill,用来审查 Python 代码中的安全漏洞"

步骤

  1. Agent 调用 list_skills 浏览已有的 Skill 列表
  2. 发现没有匹配的安全审查 Skill
  3. 激活 skill-creator 元 Skill
  4. 调用 load_skill_resource 读取 agentskills.io 规范
  5. 了解 SKILL.md 的格式要求和命名规则
  6. 再读取 example-skill.md 学习一份成熟 Skill 的结构和写法
  7. 根据用户需求生成 Skill 定义
  8. 生成的 Skill 包含:
    • 合规的短横线命名(kebab-case)
    • 结构化指令(涵盖输入验证、认证机制、密码学安全等方面的检查流程)
    • 基于严重程度的报告格式

跨平台兼容

持久化

重要提醒

人工审核环节

审查重点

测试

组装完整的 Agent

代码示例

# 创建 SkillToolset 实例
skill_toolset = SkillToolset([
    seo_skill,                    # 内联 Skill
    load_skill_from_dir("./blog-writing-skill"),  # 文件型 Skill
    load_skill_from_dir("./content-research-writer"),  # 外部导入 Skill
    skill_creator                 # 元 Skill
])

# 创建 Agent
agent = Agent(
    model="gemini-2.5-flash",
    tools=[skill_toolset],
    system_instruction="""
你是一个博客写作助手,拥有专业 Skill。
- 加载相关 Skill 获取详细指令
- 用 load_skill_resource 访问参考资料
- 遵循每个 Skill 的步骤指令
- 始终解释正在使用哪个 Skill 以及为什么
"""
)

运行流程

场景 1:已知需求(审查博客的 SEO)

  1. Agent 调用 list_skills 浏览 L1 菜单
  2. 识别出 seo-checklist Skill 相关
  3. 调用 load_skill 加载 L2 指令
  4. 逐条执行检查

场景 2:全新需求(创建技术博客引言写作 Skill)

  1. Agent 激活 skill-creator 元 Skill
  2. 读取规范文档
  3. 生成新的 SKILL.md
  4. 保存后即可在后续会话中复用

设计原则

1. Skill 描述是决策的核心依据

好的描述

SEO 优化检查清单,用于博客文章,涵盖标题标签、元描述、标题结构和可读性

模糊的描述

一个有用的 Skill

原则

2. 从内联模式开始,按需升级

建议

避免过早优化

3. 生成的 Skill 需要审核和测试

原则

技术生态

agentskills.io 开放标准

基石

历史

支持产品(40+ 产品):

ADK 语言支持

已支持

第三方库

学习资源

快速开始

系统学习

核心洞察

AI Agent 的能力边界,正在从被动执行人类编写的指令,拓展到主动为自己编写新指令。

渐进式披露架构

Skill 工厂模式


标签: #GoogleADK #AgentSkills #渐进式披露 #SkillFactory #Token优化 #AI自我扩展