Skip to main content
在本教程中,你将创建一个技能,使 Agent 能够使用随机数生成器掷骰子。

前提条件

本教程使用 VS Code,但 Agent 技能是一种开放格式。相同的技能可在任何兼容的 Agent 中工作,包括 Claude Code 和 OpenAI Codex。

创建技能

技能是一个包含 SKILL.md 文件的文件夹。VS Code 默认在 .agents/skills/ 中查找技能。在你的项目中创建 .agents/skills/roll-dice/SKILL.md
.agents/skills/roll-dice/SKILL.md
---
name: roll-dice
description: 使用随机数生成器掷骰子。当被要求掷骰子(d6、d20 等)、掷骰子或生成随机骰子点数时使用。
---

要掷骰子,请使用以下命令生成一个从 1 到给定面数的随机数:

```bash
echo $((RANDOM % <sides> + 1))
```

```powershell
Get-Random -Minimum 1 -Maximum (<sides> + 1)
```

`<sides>` 替换为骰子的面数(例如,标准骰子为 6,d20 为 20)。
就是这样 —— 一个文件,不到 20 行。以下是各部分的作用:
  • name — 技能的简短标识符。必须与文件夹名称匹配。
  • description — 告诉 Agent 何时使用此技能。这是 Agent 决定是否激活它的方式。
  • 主体 — 技能激活时 Agent 遵循的指令。在这里,指示 Agent 使用终端命令生成随机数,并替换用户请求中的面数。

试一试

  1. 在 VS Code 中打开你的项目。
  2. 打开 Copilot Chat 面板。
  3. 从聊天面板底部的模式下拉菜单中选择 Agent 模式。
  4. 输入 /skills 以确认 roll-dice 出现在列表中。如果没有,请检查文件是否位于相对于项目根目录的 .agents/skills/roll-dice/SKILL.md
  5. 提问:“掷一个 d20”
Agent 应该会激活 roll-dice 技能。它可能会请求运行终端命令的权限 —— 允许它。它将运行命令并返回 1 到 20 之间的随机数。
工具使用的可靠性因模型而异 —— 有些模型会遵循技能指令并一致地运行命令,而另一些模型可能会尝试自行回答。如果 Agent 在没有运行终端命令的情况下响应,请尝试从模型下拉菜单中选择不同的模型。

工作原理

以下是幕后发生的事情:
  1. 发现 — 当聊天会话开始时,Agent 扫描了默认技能目录并找到了你的技能。它只读取了 namedescription,足以知道技能何时可能相关。
  2. 激活 — 当你询问掷骰子时,Agent 将你的问题与技能描述匹配,并将完整的 SKILL.md 主体加载到上下文中。
  3. 执行 — Agent 遵循主体中的指令,根据你请求中的面数调整终端命令。
此过程使用 渐进式披露 让 Agent 访问许多技能,而无需预先加载所有指令。有关更多详细信息,请参阅 技能如何工作

后续步骤

你已经创建了一个可工作的 Agent 技能。接下来:
  • 最佳实践 — 如何编写范围明确且有效的技能。
  • 优化技能描述 — 测试并改进你的技能描述,以便它在正确的提示下激活。
  • 规范SKILL.md 文件的完整格式参考。
  • 示例技能 — 在 GitHub 上浏览真实世界的技能。