Antigravity Agent Skills(智能体技能)
技能是一种开放标准,用于扩展智能体的能力。一个技能是一个包含 SKILL.md 文件的文件夹,其中包含智能体在处理特定任务时可以遵循的指令。
什么是技能?
技能是可复用的知识包,用于扩展智能体能够执行的操作。每个技能包含:
-
如何处理特定类型任务的说明
-
需要遵循的最佳实践和约定
-
智能体可以使用的可选脚本和资源
当对话开始时,智能体会看到可用技能的列表及其名称和描述。如果某个技能看起来与您的任务相关,智能体会阅读完整的说明并遵循它们。
技能存放位置
Antigravity 支持两种类型的技能:
表格
<?XML:NAMESPACE PREFIX = “[default] http://www.w3.org/2000/svg” NS = “http://www.w3.org/2000/svg” />
位置
范围
<工作区根目录>/.agents/skills/<技能文件夹>/
工作区特定
~/.gemini/config/skills/<技能文件夹>/
全局(所有工作区)
工作区技能非常适合项目特定的工作流,例如您团队的部署流程或测试约定。
全局技能适用于所有项目。将这些用于您希望在任何地方使用的个人工具或通用工具。
注意:Antigravity 现在默认使用 .agents/skills,但仍保持对 .agent/skills 的向后兼容。
创建技能
要创建技能:
-
在其中一个技能目录中为您的技能创建一个文件夹
-
在该文件夹内添加一个 SKILL.md 文件
plain
.agents/skills/ └─── my-skill/ └─── SKILL.md
每个技能都需要一个带有 YAML 前置信息的 SKILL.md 文件:
yaml
--- name: my-skill description: 帮助完成特定任务。当您需要做 X 或 Y 时使用。 --- # 我的技能 给智能体的详细说明放在这里。 ## 何时使用此技能 - 当……时使用此技能 - 这对……有帮助 ## 如何使用 智能体应遵循的分步指导、约定和模式。
前置信息字段
表格
字段
必需
描述
name
否
技能的唯一标识符(小写,用连字符代替空格)。如果未提供,默认为文件夹名称。
description
是
清晰描述技能的功能以及何时使用。这是智能体在决定是否应用该技能时看到的内容。
提示:用第三人称编写描述,并包含帮助智能体识别何时使用该技能的关键词。例如:”使用 pytest 约定为 Python 代码生成单元测试。”
技能文件夹结构
虽然 SKILL.md 是唯一必需的文件,但您可以包含额外的资源:
plain
.agents/skills/my-skill/ ├─── SKILL.md # 主要说明(必需) ├─── scripts/ # 辅助脚本(可选) ├─── examples/ # 参考实现(可选) └─── resources/ # 模板和其他资源(可选)
智能体在遵循您技能的说明时可以阅读这些文件。
智能体如何使用技能
技能遵循渐进式披露模式:
-
发现:对话开始时,智能体看到可用技能的列表及其名称和描述
-
激活:如果某个技能看起来与您的任务相关,智能体会阅读完整的 SKILL.md 内容
-
执行:智能体在处理您的任务时遵循技能的说明
您不需要明确告诉智能体使用某个技能——它会根据上下文自行决定。但是,如果您想确保使用某个技能,可以提及技能的名称。
最佳实践
保持技能专注 每个技能应该做好一件事。与其创建一个”无所不能”的技能,不如为不同的任务创建单独的技能。
编写清晰的描述 描述是智能体决定是否使用您技能的方式。具体说明技能的功能以及何时有用。
将脚本视为黑盒 如果您的技能包含脚本,建议智能体先使用 --help 运行它们,而不是阅读整个源代码。这能让智能体的上下文集中在任务上。
包含决策树 对于复杂的技能,添加一个帮助智能体根据情况选择正确方法的章节。
示例:代码审查技能
以下是一个帮助智能体审查代码的简单技能:
yaml
--- name: code-review description: 审查代码变更中的错误、风格问题和最佳实践。在审查 PR 或检查代码质量时使用。 --- # 代码审查技能 审查代码时,遵循以下步骤: ## 审查清单 1. **正确性**:代码是否做了它应该做的事? 2. **边界情况**:是否处理了错误条件? 3. **风格**:是否遵循项目约定? 4. **性能**:是否存在明显的低效之处? ## 如何提供反馈 - 具体说明需要更改什么 - 解释原因,而非仅仅说明内容 - 尽可能建议替代方案
文章摘自:https://www.cnblogs.com/wintersun/p/20420891
