OpenCode AI编程助手如何添加Skills,优化项目!

关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言

AI时代Agent的出现,为AI规定了特定的角色,根据推理、理解完成对话内容。MCP则是为AI或者Agent提供了外部资源的一切可能。比如,你让Agent为你播报近7天的天气,它无法完成,但是MCP可以,Agent结合MCP为我们带来无限的可能。原本以为到这里已经结束了,但是随着Skills的横空出世,更是推动了AI Agent快速落地。

Skills的功能和MCP很类似但是却又不同,这一节我们将通过OpenCode了解最近爆火的Skills

02 Skills

2.1 简介

Skills是智能体的技能,是一种轻量级、开放的格式,用于通过专业知识和工作流程扩展人工智能智能体的能力。而其本质上就是教 AI 按固定流程做事的操作说明书,一旦写好,就能像函数一样反复调用。

我们可以把 Skills 看成把什么样的事情应该怎么去做。将Skills封装成一个可复用、可自动触发的能力模块,根据实际的场景选择不同的Skills更加专业的完成用户下发的命令。可以简单的理解为Skills就是一个个独立且可复用的工具包

Skills 以 Markdown 文件形式存在,不执行功能,而是通过按需、渐进式加载,实现高效且可复用的经验传递。

sh 复制代码
my-skill/
├── SKILL.md      # 必需:指令 + 元数据
├── scripts/      # 可选:可执行代码
├── references/   # 可选:文档资料
└── assets/       # 可选:模板、资源

地址:agentskills.io/home

2.2 Skills核心结构

Skills 的核心就是:一堆文件夹 + 一个 SKILL.md 文件。

其中SKILL.md最为重要,通过定义角色,场景等,让Agent直到什么时候调用什么东西。Skill.md基本模版:

markdown 复制代码
---
name: 你的Skill名称
description: Skill的相关描述以及什么时候使用
---

## 说明
具体描述如何使用

## 案例
- Example usage 1
- Example usage 2

其他文件夹可以规范AI的操作或者调用的脚本。scripts放置一些可执行的脚本以及自动化的逻辑,references存放一些说明文档或者参考资料,assets主要用来存放模板文件以及静态资源。

有了这些文件夹资料以及md的说明,让Skills更加具体。

2.3 Skills的配置

Skills的配置可以分为局部配置和全局配置。我们以OpenCode为例:

还有一种全局配置:~/.opencode/skills/<name>/SKILL.md

官网地址:opencode.ai/docs/zh-cn/...

03 自定义Skills

Skills的编写很简单,简单说就是提示词。但是如何写好,这个就另说了。我们简单定义一个打印的Skills,我们按照模板编写。

markdown 复制代码
---
name: print-test
description: skill 打印测试
---

## 角色定义

你是一个打印测试工具包

## 输出

当用户测试打印的时候,统一打印出:这是一个skill的打印测试

3.1 局部配置

配置位置:.opencode/skills/print-test/SKILL.md

验证方式可以通过斜杠或者直接问AI都可以。

斜杠

输入斜杠,就会提示当前的技能。

直接问

全局配置不在演示。

3.2 测试

我们需要测试自己定义的Skills是否有效。我们输入打印测试,看看回复是否是调用自定义Skills.

我们可以看到调用自定义的Skills.

04 优化项目

我们之前写了一个下载的页面,页面比较简单:

我们通过专业的Skills优化一下页面。使用ui-ux-pro-max优化。

Skills地址:github.com/nextlevelbu...

下载下来,将对应的包放在Skills即可,注意包的结构,本次使用全局配置。

4.1 全局配置

配置位置:~/.config/opencode/skills/<name>/SKILL.md

这里需要注意src的包也要放进来,因为skills下的datascripts路径需要。

src位置:

4.2 检查

使用/检查

4.3 优化

这里直接让AI优化,看下会变成什么。

我们发现已经调用ui-ux-pro-max了。

最后总结了优化的效果:

我们直接看看结果:

打完收工!

相关推荐
IT_陈寒11 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
小bo波12 小时前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
fliter12 小时前
最后一块拼图:用 bitvec 构造 IPv4 包,真正做出自己的 Ping
后端
fliter13 小时前
用 Rust 解析并生成 ICMP 包:checksum、nom 与 cookie-factory
后端
蝎子莱莱爱打怪13 小时前
XZLL-IM干货系列 03|消息 ID 设计:一个 UUID 搞不定的事,我用两个 ID 解决了
后端·面试·开源
fliter13 小时前
从 panic 到 Result:用 Rust 重新整理一个 ping 项目的错误处理
后端
森蓝情丶14 小时前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端
JensCS猿14 小时前
从 Spring Boot 回看 SSM 框架:手动挡与自动挡的驾驶哲学
后端
爱勇宝14 小时前
干了近 8 年,一夜之间被裁:AI 时代,程序员最该害怕的不是 AI
前端·后端·程序员
科米米14 小时前
嵌入式日志模块
后端