Skip to main content

什么是技能

技能(下称 Skill)是一种轻量的开放格式,可以通过专业知识和工作流扩展 Agent 的能力。本质上来说,每个 Skill 都是一个包含SKILL.md文件的文件夹,该文件包含元数据(如name和description)以及告诉 Agent 如何执行特定任务的指令。 对于复杂的 Skill,还可能包含脚本、参考资料、模板和其他资源。
暂不支持识别和导入 Skill 包内除 Markdown 以外格式的文件,Agent 亦无法执行命令、运行脚本。

启用 Skill

OpenFic 内置了许多 Skill,这些 Skill 大多基于 oh-story-claudecode 修改适配而来。 考虑到内置的 Skill 往往是针对特定场景而设计的且并不足够通用,也很难组合出某种完美的“最佳实践”,因此这些 Skill 都是默认关闭的,你需要进行一些配置并按需启用。
1

进入 Skill 面板

于左侧边栏底部打开设置面板,此处显示了所有可配置项。在左侧列表中找到技能后点击进入。
2

启用 Skill

在 Skill 列表中,找到你所需要使用的 Skill 并将开关调整为启用状态,所有的内置 Skill 默认均处于启用状态。在列表中,Skill 名称旁的数字代表着该 Skill 被多少个智能体(下称 Agent)所使用,默认情况下均为0。在选用 Skill 时,建议对 Skill 的内容做基本的了解,以免在 Agent 遵照 Skill 完成任务时出现与预期不符的行为。
3

装载 Skill

在上一步,我们已经启用了所需的 Skill,但是 Agent 仍然无法读取和使用它们,为此,你需要为不同的 Agent 装载 Skill。于左侧边栏底部打开设置面板,此处显示了所有可配置项。在左侧列表中找到智能体后点击进入。在这里列出了所有 Agent 的信息,包括内置和自定义的,此处不再赘述,要了解更多配置 Agent 的相关内容,请查阅 智能体。选定一个需要为其装载 Skill 的 Agent,在右侧详细面板中,可以找到技能一栏。默认情况下,此处没有勾选任何 Skill,这也就意味着 Agent 无法看到并自主调用任何 Skill。现在,你可以根据需要勾选对应的 Skill,然后滚动到最底部点击保存。同样的,对所要用到的所有 Agent 按需装配各自使用的 Skill 即可。

了解 Skill

内置的 Skill 往往不适合所有人,将自己的工作流内化为 Skill 以便后续复用是更推荐的使用方法。 在此之前,你应该先了解 Skill 组成的基本概念。 与标准的 Agent Skills 不同,OpenFic 中所使用的 Skill 是精简格式,这是因为 Agent 无法使用终端,因此脚本对于 Skill 而言是无意义的,对于导入 Skill 包的参考格式如下:
在 OpenFic 中,Skill 由以下几个部分构成:
  • 名称:Skill 的名称,是用于标识的唯一元素
  • 简述:描述 Skill 的作用,以及应该何时使用它
  • 内容:具体、详尽的指令,告知 Agent 如何有效、正确的完成特定任务
  • 参考文档:作为内容的补充
为了避免一次性暴露过多内容给 Agent,渐进式披露是必要的,这样的方式允许 Agent 能够逐步的根据需要掌握 Skill,并只在需要时才读取更多细节。 为此,你应该只在内容中存放最核心的指令,当 Agent 激活一个 Skill 时,会首先看到它们。 而对于详细的参考文档,分为不同的部分提供是更好的选择,只需要在内容中提醒 Agent 应何时参考即可。 在 Agent 激活 Skill 时,它也能够看到该 Skill 下所有的参考文档,并自由选择是否要读取它们。 而在设计 Skill 时,也应该充分利用渐进式披露的特性,以避免一次性注入过长内容带来上下文负担。

创建 Skill

在 Skill 列表上方,点击新建技能按钮,将会在列表底部追加并打开一个空 Skill,它目前没有填写任何内容。 不完整的 Skill 无法被启用和装载,其状态将会以待完善标签在列表项上加以标识,你需要完整填写除参考文档以外的全部内容之后,Skill 才会转为可用。 如果你想要基于现有的 Skill(无论是否为内置 Skill)进行修改,你可以右键列表项或是点击菜单按钮,在呼出的菜单中找到复制。 这会创建一个与原 Skill内容完全一致的原 Skill - Fork,以便于你在不影响现有 Skill的前提下修改它们。

导入 Skill

在 Skill 列表上方,点击导入技能按钮,将会打开导入面板,你可以拖入或点击打开文件选择器以上传文件。 对于导入 Skill,目前仅支持 .md 和 .zip 两种文件格式。 上面已经提到,OpenFic 中所使用的 Skill 是精简格式,这意味着那些包含脚本等额外文件的 Skill 包无法被完全识别。

.md 格式

对于单文件 Markdown,导入时不要求其文件名符合规范,也不限制其必须包含 Frontmatter 部分的元数据。 当导入一个不包含元数据的 Markdown 文档时,文件名将会作为名称,而整个文档将作为内容被导入。 这意味着在这种情形下,你仍需要手动完善简述部分以使 Skill 转为可用。 如果该 Markdown 采用了标准的 SKILL.md 格式,那么通常能够正确识别 Frontmatter 部分,并将其转换为不同部分正确导入。

.zip 格式

对于压缩包格式,通常应确保其采用了标准 Skill 包格式:
与单文件 Markdown 类似,SKILL.md 要求符合标准格式,包括包含 Frontmatter 部分的元数据。 其中,references 下的所有 Markdown 文档将会以参考文档的形式被导入。 如果压缩包内包含了任何非 .md 格式的文件,那么它们都不会被识别;因此对于非 .md 格式的文档文件,需要手动创建并写入参考文档中。