CoPaw进阶:5分钟开发一个自定义Skill,让你的AI助理学会新技能

2026-07-15 16:46:54 0点赞 0收藏 0评论

前两篇我们部署了CoPaw、接入了钉钉飞书、配置了定时任务。但CoPaw真正强大之处在于Skills机制——你可以像给手机装App一样给AI助理添加新能力。今天手把手教你开发第一个自定义Skill,全程不需要写代码!

一、为什么要开发自定义Skill?

CoPaw内置了很多Skill:定时任务、PDF处理、Word/Excel/PPT操作、新闻摘要、文件阅读等。但实际使用中,你可能需要:

- 特定领域的专业知识(比如Linux运维、金融分析)

- 与内部系统集成(比如查询公司数据库)

- 自定义的工作流程(比如自动生成周报)

- 个性化的交互方式(比如特定的回复模板)

简单说:内置Skill是“出厂预装App”,自定义Skill是你自己开发的“专属App” 。

这篇文章的实操环境依然是那台 华纳云香港CN2服务器(1核1G / 2M CN2 / 198元/年),CoPaw已按前两篇教程部署完成。

二、两种Skill类型

CoPaw支持两种自定义Skill:

配置型Skill

特点:只需编写Markdown文件,定义能力和使用方法

适用场景:领域知识库、业务规则、工作流程指导、回复模板

需不需要写代码:不需要

编程型Skill

特点:需要编写Python代码,调用外部API或执行复杂逻辑

适用场景:与第三方系统集成、数据库查询、自定义数据处理

需不需要写代码: 需要

今天我们先学配置型——不用写一行代码,5分钟就能搞定。

 三、配置型Skill:5分钟快速上手

理解Skill的本质

在CoPaw中,一个Skill就是一个包含SKILL.md文件的文件夹。SKILL.md文件包含:

- YAML前置元数据:`name`(技能名称)、`description`(技能描述)

- Markdown正文:告诉AI这个技能怎么用、有什么限制

AI会读取这个文件,理解技能的用途和使用方法,然后在对话中按需调用。

创建第一个Skill:Linux运维知识库

假设你经常需要AI帮你排查服务器问题,但AI缺乏Linux运维的专业知识。我们可以创建一个“Linux运维知识库”Skill。

Step 1:进入Skills目录

cd ~/.copaw/customized_skills/

CoPaw的Skills分为两层:Skill Pool(共享池,`~/.copaw/skill_pool/`)存放所有可用技能;customized_skills存放你自定义但尚未启用的技能。我们先把技能放在`customized_skills`里。

Step 2:创建技能目录

mkdir linux-ops

cd linux-ops

Step 3:创建SKILL.md文件

vim SKILL.md

Step 4:编写SKILL.md内容

markdown

name: linux-ops

description: Linux服务器运维知识库,提供系统管理、故障排查、性能优化等专业知识

CoPaw进阶:5分钟开发一个自定义Skill,让你的AI助理学会新技能

Linux运维知识库

这个Skill为CoPaw提供Linux服务器运维领域的专业知识,帮助用户解决服务器管理中的常见问题。

1. 系统监控与性能分析

- CPU监控:使用 top、`htop`、`mpstat` 查看CPU使用率

- 内存监控:使用 free -h、`vmstat` 查看内存状态

- 磁盘监控:使用 df -h、`iostat` 查看磁盘空间和I/O

- 网络监控:使用 iftop、`nethogs`、`ss -tunlp` 查看网络连接

2. 常见故障排查

- 系统负载过高:先用 top 定位高CPU进程,再用 strace 追踪

- 磁盘空间不足:用 du -sh  | sort -rh | head -10 找大文件

- 内存不足:用 ps aux --sort=-%mem | head -10 找内存占用高的进程

- 网络连接超时:用 ping、`traceroute`、`telnet` 逐段排查

3. 安全加固建议

- SSH安全:禁用root登录、修改默认端口22、使用密钥认证

- 防火墙:使用 firewalldiptables 限制访问

- 日志审计:定期检查 /var/log/secure/var/log/messages

4. 常用命令速查

查看系统版本 :

cat /etc/os-release

查看内核版本

uname -a

查看运行时间

uptime

查看所有监听端口

ss -tunlp

实时查看日志

tail -f /var/log/messages

使用方法

在对话中直接提问即可,例如:

- "服务器负载很高,怎么排查?"

- "帮我看看这台服务器的内存够不够"

- "怎么加固SSH安全?"

 注意事项

- 本知识库适用于CentOS/Ubuntu/Debian等主流Linux发行版

- 具体命令可能需要根据系统版本调整

Step 5:启用Skill

将技能从`customized_skills`移动到`active_skills`(已启用技能存放处):

cd ~/.copaw

mv customized_skills/linux-ops active_skills/

或者在CoPaw Web控制台的「技能」页面中,找到该Skill并点击启用。

Step 6:测试

在CoPaw对话中问:

你:服务器负载很高,怎么排查?

CoPaw:(调用linux-ops Skill)服务器负载高通常由CPU、内存或磁盘I/O引起。建议按以下步骤排查:1. 用`top`查看负载和CPU使用率...(以下省略)

不需要重启CoPaw,技能实时生效。

 四、进阶:带Python脚本的编程型Skill

如果需要更复杂的功能(比如查询数据库、调用API),可以给Skill配上Python脚本。

实战案例:服务器状态查询Skill

让AI助理能直接查询这台华纳云服务器的实时状态(CPU、内存、磁盘、网络)。

Step 1:创建技能目录

cd ~/.copaw/customized_skills/

mkdir server-status

cd server-status

Step 2:创建SKILL.md

markdown

name: server-status

description: 查询Linux服务器的实时状态(CPU、内存、磁盘、网络)

服务器状态查询

 功能说明

这个Skill可以查询当前Linux服务器的实时运行状态,包括:

- CPU使用率

- 内存使用率

- 磁盘空间

- 网络连接数

- 系统负载

 使用方法

直接提问即可,例如:

- "服务器现在状态怎么样?"

- "帮我看看CPU和内存"

- "磁盘还剩多少空间?"

 技术实现

本Skill通过执行Linux系统命令获取实时数据,所有命令均为只读操作,不会修改系统配置。

Step 3:创建Python脚本 status.py

python

#!/usr/bin/env python3

import subprocess

import json

def get_cpu_usage():

    """获取CPU使用率"""

    result = subprocess.run(

        ["top", "-bn1"],

        capture_output=True,

        text=True

    )

    for line in result.stdout.split('n'):

        if "Cpu(s)" in line:

            return line.strip()

    return "无法获取CPU信息"

def get_memory_usage():

    """获取内存使用率"""

    result = subprocess.run(

        ["free", "-h"],

        capture_output=True,

        text=True

    )

    return result.stdout.strip()

def get_disk_usage():

    """获取磁盘使用率"""

    result = subprocess.run(

        ["df", "-h", "/"],

        capture_output=True,

        text=True

    )

    return result.stdout.strip()

def get_system_load():

    """获取系统负载"""

    result = subprocess.run(

        ["uptime"],

        capture_output=True,

        text=True

    )

    return result.stdout.strip()

def get_network_connections():

    """获取网络连接数"""

    result = subprocess.run(

        ["ss", "-tunlp", "|", "wc", "-l"],

        capture_output=True,

        text=True,

        shell=True

    )

    return f"当前网络连接数: {result.stdout.strip()}"

def get_server_status():

    """获取服务器完整状态"""

    status = {

        "cpu": get_cpu_usage(),

        "memory": get_memory_usage(),

        "disk": get_disk_usage(),

        "load": get_system_load(),

        "network": get_network_connections()

    }

    return json.dumps(status, ensure_ascii=False, indent=2)

if name == "__main__":

    print(get_server_status())

 

注意:生产环境中,建议将敏感命令(如涉及系统信息的)做安全限制,CoPaw内置了破坏性shell命令检测机制。

Step 4:在SKILL.md中引用脚本

在SKILL.md中说明该Skill可调用`status.py`脚本获取数据。CoPaw的Skills机制支持通过`@tool`装饰器将Python函数暴露为工具。

Step 5:启用并测试

cd ~/.copaw

mv customized_skills/server-status active_skills/

然后在对话中问:

> 你:帮我看看这台服务器现在的状态

> CoPaw:(调用server-status Skill)当前服务器状态:CPU使用率12.5%,内存使用率47%(已用487MB/1GB),磁盘使用率32%(已用16GB/50GB),系统负载0.8,网络连接数23个。

 五、更多实战案例

案例1:Docker管理Skill

让AI助理能通过自然语言管理Docker容器:

markdown

name: docker-manager

description: 管理Docker容器(查看、启动、停止、日志)

 

# Docker容器管理

 功能说明

这个Skill让CoPaw可以通过自然语言管理Docker容器。

 支持的操作

- 查看所有容器:`docker ps -a`

- 查看容器日志:`docker logs [容器名]`

- 启动容器:`docker start [容器名]`

- 停止容器:`docker stop [容器名]`

 使用方法

- "帮我看看有哪些容器在运行"

- "查看node-app的日志"

- "重启一下postgres容器"

 安全限制

- 禁止执行 docker rm、`docker rmi` 等危险操作

- 所有操作需用户确认后执行

 

案例2:Git仓库管理Skill

markdown

 

name: git-manager

description: 管理Git仓库(查看状态、提交、推送)

# Git仓库管理

 功能说明

帮助用户管理Git仓库,执行常见的Git操作。

 支持的操作

- 查看仓库状态:`git status`

- 查看提交历史:`git log --oneline -10`

- 查看分支:`git branch -a`

 使用方法

- "帮我看看当前Git仓库的状态"

- "最近的提交记录有哪些?"

- "有哪些分支?"

 限制

- 不执行 git push、`git reset --hard` 等危险操作

- 需要用户在项目目录下执行

六、从Skills Hub导入现成Skill

不想自己写?CoPaw提供了Skills Hub,可以直接导入社区分享的现成Skill。

1. 打开CoPaw Web控制台

2. 进入「技能」页面

3. 点击「从Skills Hub导入技能」

4. 输入Skill的GitHub仓库URL或Hub链接

5. 点击导入,自动下载并启用

目前Skills Hub已收录超过180种生产力级别的技能包。

 七 、这台服务器跑CoPaw Skills的性能表现

关于这台华纳云香港CN2服务器(1核1G / 2M CN2 / 198元/年)跑CoPaw + 多个Skills的表现:

- 同时启用5-8个Skill(含1-2个带Python脚本的),CoPaw服务内存占用稳定在350-450MB

- CPU空闲率保持在85%以上

- 香港CN2 GIA线路确保了钉钉/飞书消息的实时推送,延迟在40ms左右

> 华纳云(HnCloud)是2015年成立的香港老牌IDC,APNIC和ARIN正式会员,持有自有ASN号。如果你也想在自己的服务器上部署CoPaw,198元/年的入门款完全够用。

 九、下期预告

至此,CoPaw系列已经完成了部署→接入聊天软件→定时任务自动化→自定义Skills开发四个阶段。

下一期我们换个方向,聊聊CoPaw的多智能体协作——如何创建多个AI助理,让它们各司其职、互相配合完成复杂任务。

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松