写在开始
OS Copilot是阿里云基于大模型构建的操作系统智能助手,支持自然语言问答、辅助命令执行、系统运维调优等功能,帮助您更好地使用Linux系统,提高Linux的使用效率。其实2024年中旬,官方已经开展了这款助手的体验测评活动了,我也有幸参加并进行了分享,感兴趣的朋友可以前往查阅。操作系统智能助手OS Copilot体验评测
本次体验实际上是针对OS Copilot助手的新功能展开的,为引导体验者更好进行针对性的体验,官方本次也准备的很充足,不但有相应的文档参考,还友好配置了视频课程和实验教程。点击如下相关链接可直达:
使用操作系统智能助手OS Copilot解锁操作系统运维与编程
在正式开始体验前,我们有必要了解以下OS Copilot当前兼容的操作系统有那些:
相较于去年中旬刚发布那会,助手对于操作系统的兼容性得到了提升,涵盖了主流的Ubuntu和CentOS,这点值得肯定,同时也期待更多操作系统得到适配和支持。
功能体验
由于OS Copilot的使用当前需依托于ECS,所以这里为了方便体验,直接使用云起实验室提供的一键开启实操功能,这种方式对于新手用户来说非常高效便捷,免去了手动开通ECS资源和VPC的配置等操作,实现了开箱即用。
有了上述创建好的ECS后,接下来就可以开始安装OS Copilot智能助手的程序包了,对于不同的操作系统,安装方式有差异,如下:
#安装前查询下是否已经安装过
rpm -q os-copilot
#对于已经安装过助手,可通过如下命令进行更新
sudo yum update os-copilot
#如果你想卸载后再安装新版,可通过如下命令卸载
Alibaba Cloud Linux:
sudo yum remove -y os-copilot
Ubuntu/Anolis OS/CentOS:
sudo rm -f /bin/co /bin/copilot /etc/profile.d/os-copilot_fix_command_tool_config.sh
#Alibaba Cloud Linux安装助手
sudo yum install -y os-copilot
#Ubuntu/Anolis OS/CentOS安装助手
X86: curl -#S https://mirrors.aliyun.com/os-copilot/os-copilot-all-in-one-latest.sh | bash
aarch64:curl -#S https://mirrors.aliyun.com/os-copilot/os-copilot-all-in-one-arm-latest.sh | bash
为了智能助手可以更方便访问或者操作阿里的其他云服务资源,这里需要设置系统的环境变量。
export ALIBABA_CLOUD_ACCESS_KEY_ID=<AccessKey ID>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<AccessKey Secret>
完成上述操作后,就可以正式开始使用了,唤醒它的方式有三种,分别是单命令模式、问号模式和交互模式。
- 单命令模式
输入copilot
或者co
命令后,直接跟问题描述即可进入单命令模式
- 问号模式
在用户遇到命令执行错误的情况下,可以通过输入?
或why
命令来唤醒OS Copilot
这里遇到一点小问题,就是我不论以那种方式唤醒,都提示不支持。这里需要执行 source /etc/os-copilot/fix_command_config.sh 才可以开启问号模式的支持。
- 交互模式
直接使用copilot
或者co
命令即可进入单命令模式,从而唤醒智能助手
上面提到的三种唤醒助手的模式,大家根据使用习惯选用即可,下面开始本次测评的主角,OS Copilot智能助手新功能体验。
- -t
-t 参数决定是否进入agent
模式,进入则助手会自动调用注册工具完成任务;否则,将由大模型判断是否使用agent模式
比如,我问助手“当前系统健康度”,看使用-t参数前后的差异
从图上可以非常直观看出,不适用参数-t得到的结果完全取决于用户的选择,比如用户选择了查看端口监听情况,那么此刻就只显示端口使用情况,对于其他的系统资源使用情况,还得继续执行其他的命令来查看,非常不智能;而使用-t参数后,得到的答复就非常符合用户的需求,不仅针对当前系统资源使用情况来了一个概要的分类总结,还简明扼要地指出了当前系统健康度良好,而这就是用户期待的结果。
-f
从文件中读取复杂任务进行处理。简单地理解就是首先需要读取文件的内容,根据文件内容分别执行对应的任务,可能是一个任务,也可能是多个任务,好比Docker容器的编排文件dockerfile。
这里我就拿一个非常典型且常用的例子来阐述,对于一线业务运维来说,分析业务运行的日志非常有必要,尤其是当业务运行遇到瓶颈或者故障时,分析日志可能是第一时间需要去做的事情。
我定义的复杂任务如下,文件名称为task
执行co -f task -t指令后,可以看到很快便写好了脚本,内容如下:
从生成的脚本文件来看,质量还是非常高的,完全按照task文件中的提示写的,很高效。
我们再来看下实际的脚本运行结果,可以发现助手已经按照文档要求的回答方向进行了分类并给出了总结,非常好。
从上面的体验来说,作为智能助手可以将复杂任务处理成这个样子,还是非常优秀的,基本解决了运维或者维护人员不熟悉shell编程无法应对日常巡检或者分析排障的困扰。
- | 管道
智能助手还可以使用管道,就是将问题通过管道传送给助手。管道在shell编程中的应用非常广泛,智能助手可以扩展系统自带管道的功能还是非常期待的。比如我现在有一份mysql集群的my.cnf配置文件,对于如何更好地配置这些参数,作为新手的我实在无从下手,之前我可能需要去网络上搜索一番,现在我只需要把配置文件的内容交给助手就好了。如下:
直接通过 “cat my.cnf |co 解释下这些参数的含义”来实现
可以非常直观看到助手分类别对各个参数进行了说明,并针对存在风险的参数设置进行了建议和说明,不得不感叹,这也太好用了。
其实还可以这么对助手提问,让其发挥地更好,比如将上面的题为修改为“cat my.cnf |co 解释下这些参数的含义并给出配置建议”
从结果来看,还是非常符合期望的,在日常工作中完全能够胜任参数优化的智能助手了。
体验总结
我是一位能源科技企业的产品经理,曾几何时我也是部分技术团队成员之一,经常穿梭于巡检和排障优化的工作中。以往对于操作系统层面的优化多见于某个配置文件的参数调优,这非常依赖于技术人员自身的能力和经验;对于业务运行的分析和排障优化则更多的时候是借助于第三方的监控工具或者研发人员的支持;而如今这些工作你都可以交给OS Copilot,它不但能够胜任,还能非常快速高效地完成。通过体验OS Copilot的三个新特性,可以非常直观地看到其效果很突出,对于一线运维和技术人员来说,就是一个难得的智能助手。通过-t,用户可以一键调用agent实现更精准更智能的答复;通过-f,用户可以更高效处理复杂任务了;而通过管道“|”,用户不再对各种配置参数感到畏难,甚至可以协助用户进行参数优化。这些将大大提升运维效率,从而为业务的稳定运行保驾护航。
但在实际体验中也发现了OS Copilot当下存在的一些不足,比如:
1、助手的稳定性和对于一些问题的理解还有待提高,明明是一个常用的命令,它却去找插件来帮忙,甚至还出现了调用插件无响应的问题。(虽然这个提示跟是否设置AK/SK
方式认证有关,但这里可以忽略,我是写进了profile配置文件永久生效的)
当然针这个异常,助手还是给出了处理方式的,那就是加入钉钉群(71050008820),这点值得点赞。
2、助手的自动化能力还有待提到,比如下图的这段问答,虽然给出的答复很全面,但对于实际需求来说并不实用,因为用户需要的是立刻执行,而不是科普后询问以那种方式执行。
3、当助手给出的答复超出了当前屏幕时会出现短暂的卡顿,以三个点…显示等待中。
4、助手在执行自己给出的命令时会出现异常无法执行的情况,实际上命令单独执行是没有问题的。如下:
然而,对于操作系统智能助手OS Copilot,这里还有几点建议:
1、首先,就是老生常谈的适配问题,非常期待OS Copilot可以支持更多的操作系统。其次,就是扩展OS Copilot的自然语言处理能力,支持多种国际语言,来满足不同国家用户的需求。
2、从实际体验来看,需要优化命令执行的准确性和效率,特别是对于复杂命令和长命令的支持;此外,还需要提供命令执行结果的实时反馈和错误分析功能,帮助用户快速定位和解决命令执行过程中的问题。比如,用户安装某个程序包遇到组件依赖问题,可以通过助手获得支持。
3、从目前体验效果来看,对于上下文的理解还是差点意思,建议深入优化自然语言处理算法,提高对用户问题的理解和回答的准确性。以及支持更复杂的自然语言表述,包括多轮对话和上下文理解,来提升用户体验。比如用户尝试安装或更新软件时,能够自动检查软件的兼容性,避免安装不兼容的软件导致系统问题。
4、可以与云服务诊断或者漏洞安全检测功能集成,能够自动检测系统中的常见问题,并提供一键修复功能。尤其是对于复杂的故障,提供详细的诊断报告和可能的解决方案,帮助用户快速定位问题。
5、目前OS Copilot助手是不支持自定义的,比如快捷键,希望提供配置导出和导入功能,方便用户在不同设备间进行OS Copilot的设置迁移。