# 技能与提示词

> 提示词是角色始终会读的说明；技能是打包好的做法，角色用到时才打开。怎么编写、导入和挂载它们。

**技能**和**提示词**是角色们共用的本事。提示词是 Agent 始终会读的文字，比如几个角色共有的做事方式或规矩。技能是一套打包好的做法，带着自己的文件；它在 Agent 的上下文里只是一张简短的卡片，等活儿用得上时才打开。

两者都在空间里，分别在**团队与工具 › 技能**和**团队与工具 › 提示词**（编辑页的标签是 **Skill** 和 **Prompt**），都通过[角色](./roles)交到 Agent 手里。

## 写成提示词，还是写成技能？ [#写成提示词还是写成技能]

常驻在 Agent 上下文里的文字，对它做的每件事都起作用，用不上的时候也一样。所以提示词只写对这个角色始终成立的东西：它是谁、怎么做决定、什么绝对不能错。只在某些活里用得上的做法写成技能，用到时才读。只属于某个模板里某条路线的说明，放进那个模板：写在节点自己的提示词或连线的移交说明里（[工作组模板](./working-group-templates)）。

## 提示词 [#提示词]

选**新建 Prompt**，填上**名称**，在**内容**里用 Markdown 写。名称会变成这段提示词的资源别名，`@profiles/<名称>.md`。

要用一段提示词，就把它挂到角色上：角色编辑页的**提示词 › 结构化 Prompt**。一个角色可以挂好几段，一段提示词也可以被许多角色挂着。比如官方空间里的每个角色都挂着共用的 `Agents' cognition`，整个空间的做事方式在一处就能改。

不必把所有内容塞进一段大提示词。小而通用的几段更容易组合，只属于某个角色的那部分，写在它自己的**附加 Prompt** 里。

![提示词编辑页](https://the-zeroth.com/docs-assets/images/0.5/zh/skills-and-prompts-prompt-editor.png)

## 技能 [#技能]

一个技能就是一个文件夹：里面有一个 `SKILL.md`，开头写着技能的 `name` 和 `description`，后面是具体做法；还有它需要的其他文件，比如脚本、参考资料或模板。格式遵循 [Agent Skills 规范](https://agentskills.io/specification)，所以为别的 Agent 工具写的技能，在这里也能用。

Agent 是这样用技能的：角色的每个技能，在它的上下文里都是一张折叠的卡片，只写着名字和描述。活儿用得上某个技能时，Agent 把它展开，正文、包的信息和文件列表才进入上下文；收起卡片，这些内容就退出去。所以一个角色带着很多技能也不费什么。技能会不会被打开，全看描述，所以描述要写成“什么时候该用它”，而不是一个标题。

要自己写一个，选**新建 Skill**。**Skill ID** 和 `SKILL.md` 里的 `name` 保持一致；**包内文件**列出文件夹里的文件，每个都能打开编辑。保存 `SKILL.md` 时，会按规范检查它的开头。

要把技能给角色，用角色编辑页的**能力 › Skills**：选**全部**就是空间里的每个技能（包括以后新加的），选**自选**就逐个挑。

插件也会带来自己的技能：把插件加给角色，它的技能就一起过来了（[插件与应用](./plugins)）。空间用到的插件所带的技能，也可能出现在列表里；它们属于插件，随插件更新，空间自己的技能不能和它们重名。

## 导入技能 [#导入技能]

**新建 Skill** 旁边的**导入 Skill** 按钮，把别人写好的技能装进这个空间。

1. 在**来源**里填一个 Git 仓库（以 `https://`、`ssh://` 或 `git@` 开头的地址），或者这台电脑上某个文件夹的绝对路径；也可以用**选择包**，选一个不超过 100 MB 的 `.zip` 或 `.skill` 文件。
2. 来源里有好几个技能时，在 **Skill（可选）**里写要哪一个，或者勾选**导入全部**。
3. 要替换同名的技能，勾选**覆盖已有**。然后点**导入**。

导入只下载、复制和解压，不运行包里的任何脚本；Git 来源只浅克隆一次，不拉子模块，也不运行钩子。每个 `SKILL.md` 都按规范检查：

* `name`：1 到 64 个字符，只能用小写字母、数字和连字符；不能以连字符开头或结尾，也不能连着两个连字符。
* `description`：最多 1,024 个字符，不能有 `<` 或 `>`。
* 只允许规范里的字段（`name`、`description`、`license`、`compatibility`、`metadata`、`allowed-tools`），再加上 The One 自己的 `plugins`。

只导入一个技能时，导入完直接打开它。勾选**导入全部**时，页面停在导入这里，显示**导入结果**：导入了哪些（点一下就打开），哪些**没有导入**，每个都写明原因：不符合 Agent Skills 规范、来源里前面已有同名的技能、空间里已有同名技能（勾选**覆盖已有**可以替换），或者空间没有收下，比如某个插件里已经有同名的技能。

比如某个技能网站给出这样一条命令：

```sh
npx skills add https://github.com/anthropics/skills --skill frontend-design
```

来源填 `https://github.com/anthropics/skills`，Skill 填 `frontend-design`。也可以不填 Skill，勾选**导入全部**，把这个仓库里的技能全部导入。

![用“导入全部”导入一个 Git 仓库](https://the-zeroth.com/docs-assets/images/0.5/zh/skills-and-prompts-import.png)

官方空间是只读的，不能导入，要先复制一份：页面上方的提示条里就有**复制一份以编辑**（[定义空间](./definition-spaces)）。

## 还有谁会写技能 [#还有谁会写技能]

* **夜间复盘**每晚看一遍 Agent 在真实使用中反复卡住的地方，没有新情况的晚上就跳过。它把反复出现的问题变成一条记忆里的教训，或者改好一个技能：一晚最多改三处，每一处都带着改动内容出现在第二天的晨报里，你可以在那里撤回。
* **进化实验室**：你让空间把自己的活干得更好时，它改出问题的最小一层：记忆、技能、角色、模板或代码。
* **主助手**和其他有编写工具的 Agent：遇到值得反复用的经验，会把它写成技能。

在只读的官方空间里，它们什么都改不了；主助手和进化实验室的发现只能留作提议。见[进化：实验室和夜间复盘](../evolution)。

Source: https://the-zeroth.com/zh/docs/the-one-app/capabilities/skills-and-prompts
