评测报告:阿里云 OS Copilot 操作系统智能助手
评测人员身份:云计算售前架构师
日常工作:客户公有云、混合云治理方案设计,云原生架构改造调优。涉及云资源的运维与管理,OS层面特别是在linux操作系统(如Alibaba Cloud Linux、CentOS、Ubuntu)上进行自动化管理。
一、安装与配置过程
ECS实例配置:挑了一台海外设备,选择了 Alibaba Cloud Linux 3作为实验环境。
安装过程:按照官方文档步骤,我成功安装了 OS Copilot 组件并配置了相关环境。
依照文档执行没有遇到任何问题。偷懒使用AK/SK没有使用ram,生产环境强烈建议使用RAM。
二、功能体验
江湖规矩先从help上看看有哪些能力
[root@devops ~]# co --help
usage: co [-h] [-v] [-t] [-f FILE] [--notool] [prompt]
OS Copilot: An OS assistant using LLM technique
positional arguments:
prompt input the prompt (i.e., your query about Linux OS), or keep it empty to enter interactive
mode
optional arguments:
-h, --help show this help message and exit
-v, -V, --version show version info and exit
-t, -T, --tool activate this option to let llm use tools on demand
-f FILE, --file FILE prompt from a file
--notool activate this option to get raw llm response without tools, note that --notool will not take
effect if --tool is set as well
Notice: If you encounter any connection issues, please
export ALIBABA_CLOUD_ACCESS_KEY_ID="YOUR_KEY_ID"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="YOUR_KEY_SECRET"
Then, grant yourself the 'AliyunSysOMOSCopilotAccess' permisson at https://ram.console.aliyun.com/permissions.
If you need support, please join the DingTalk Group [71050008820].
首先看到了主要有两个主要参数 -t跟-f ,首先看看直接对话的效果
[root@devops ~]# co
Hello there! I am OS Copilot, your assistant for inquiries related to Linux OS. We can interact with different modes:
* [CHAT]: default mode for general chat, switch to this mode with newchat
* [CODEGEN]: follow instructions to automatically generate code, switch to this mode with newcodegen
* [CODESUM]: read local code segment files to analyze and summarize code, switch to this mode with newcodesum
* In mode [CODESUM], please enter the targeted language first, then enter the file path of your code.
* (Example: python#demo.py)
Feel free to end the conversion anytime with 'exit'.
If you need support, please join the DingTalk Group [71050008820].
[Copilot]:
How may I assist you this time? 您可以使用中文或英文与我进行沟通。
[CHAT]: 系统当前的状态
[Copilot]:
要检查系统当前的状态,可以使用多种命令来获取不同的信息。以下是几个常用的命令,可以帮助你了解系统的当前状态:
1. 查看系统基本信息
uname -a
2. 查看系统负载和运行时间
uptime
3. 查看系统资源使用情况
top
4. 查看内存使用情况
free -m
5. 查看磁盘使用情况
df -h
6. 查看网络连接和监听端口
netstat -tuln
7. 查看系统日志
journalctl -xe
8. 使用 sysak 工具进行系统监控
如果你已经安装了 sysak,可以使用以下命令来查看系统的详细监控信息:
sysak mservice -S
9. 查看系统服务状态
systemctl list-units --type=service --state=running
这些命令可以帮助你全面了解系统的当前状态。如果有特定的方面需要进一步检查,请告诉我,我可以提供更详细的命令和指导。
看来仅仅就是chat模式,是一个咨询。再来一个简单的运维日常
[root@devops ~]# co 查询现有系统的健康程度如何,主要是cpu、内存、磁盘情况
[Copilot]:
我需要执行一些命令来获取CPU、内存和磁盘的状态信息。
[Copilot]:
CPU使用率为0%,这表明CPU当前没有负载或非常低的负载。
[Copilot]:
内存总共有3581MB,已使用471MB,可用2240MB,缓冲区/缓存使用了1105MB,实际可用内存为3110MB。这表明内存使用情况良好,有足够的剩余空间。
[Copilot]:
系统的健康状况良好。CPU使用率为0%,表明CPU当前没有负载或非常低的负载;内存总共有3581MB,已使用471MB,可用2240MB,缓冲区/缓存使用了1105MB,实际可用内存为3110MB,这表明内存使用情况良好,有足够的剩余空间;磁盘总共有148GB,已使用4.3GB,可用137GB,使用率仅为3%,这表明磁盘空间充足,
没有出现空间不足的情况。
[root@devops ~]#
可以正常执行成功,这里明显是意会了我的意思看看是否要执行命令来回答我。
- -t 参数功能
体验过程:
我首先在不使用 -t 参数的情况下运行了 co 当前系统健康度 命令。OS Copilot 自动判断是否需要切换至 agent模式。在没有 -t 参数时,系统需要手动确认是否进入 agent 模式。
接着,我尝试使用了 co 当前系统健康度 -t 命令,系统立即进入了 agent模式,自动完成了任务。
效果评估:
使用 -t 参数简化了操作,节省了人工确认的时间,提升了工作效率。我认为此功能非常适合快速执行常见的系统健康检查任务。
[root@devops ~]# co -t 查询现有系统的健康程度
[Copilot]:
在Linux系统中,检查系统的健康状况通常包括检查CPU使用率、内存使用情况、磁盘空间、网络连接状态等。我们可以使用一些命令来获取这些信息。
[Copilot]:
I now know the final answer
[Copilot]:
系统的健康状况如下:
• CPU使用率:当前CPU使用率为0%,这表明CPU资源非常空闲。
• 内存使用情况:总内存为3581MB,已使用470MB,剩余2241MB可用,缓冲区/缓存占用1105MB,这表明内存资源充足。
• 磁盘空间:根分区大小为148GB,已使用4.3GB,剩余137GB,这表明磁盘空间足够。
• 网络连接状态:当前监听的端口包括22(SSH)、111(RPC)、22443、11443、1080等,没有异常。
总体来看,系统目前处于良好的运行状态,各项资源均未出现紧张的情况。
- -f 参数功能
体验过程:
我创建了一个名为 firstblood的文件,其中定义了一个较为复杂的任务——例如批量检查系统的磁盘使用情况。然后,我使用了命令 co -f firstblood -t 来读取文件并自动执行任务。
效果评估:
通过 -f 参数,我能够从文件中读取任务并自动执行,而无需手动输入复杂的命令。这个功能对我来说非常有帮助,特别是在需要频繁执行复杂任务时,可以显著提高效率。
[root@devops ~]# cat firstblood
1.检查一下系统的基础健康状态
2.检查一下systemctl管控的服务有哪些
3.检查一下443端口与80是否开启
执行后
[root@devops ~]# co -f firstblood -t
[Copilot]:
我需要执行一些命令来检查系统的健康状态、systemctl管理的服务列表以及443和80端口的状态。
[Copilot]:
系统已经运行了54天,当前负载较低,接下来检查systemctl管理的服务列表。
[Copilot]:
从输出可以看到,有许多服务正在运行,包括sshd.service、NetworkManager.service等。接下来检查443和80端口的状态。
[Copilot]:
看起来在尝试查找443和80端口的状态时没有找到匹配的行,这可能意味着这些端口当前没有监听。为了更准确地确认,我们可以使用netstat命令来检查。
[Copilot]:
netstat 和 ss 命令均未找到监听 80 和 443 端口的服务,这意味着这两个端口当前没有被任何服务监听。
I now know the final answer.
[Copilot]:
1 系统已经运行了54天,当前负载较低,系统基础健康状态良好。
2 系统中由 systemctl 管理的服务有很多,其中包括 sshd.service、NetworkManager.service 等关键服务。
3 443 和 80 端口当前没有被任何服务监听。如果您希望开启这些端口,请确保相应的服务(如 Web 服务器)已正确配置并启动。
- 管道功能 (| 参数)
体验过程:
我尝试了 cat /etc/security/limits.conf | co 尝试解释配置文档,如果没有别的提示回直接英文回复这里跟大多的LLM响应习惯是一直的,这里我们可以直接换用中文回复,我们试试。
效果评估:
管道功能让我们能够轻松地解释复杂的配置项,对于快速理解并优化系统参数非常有帮助。对于运维人员来说,尤其在处理大量配置文件时,管道功能无疑是提高效率的利器。
截图:
(此处插入截图,展示管道命令的输出,见附件截图)
三、总结与反馈
- 功能优点
高效性:通过 -t 和 -f 参数,co的能力是ok的,并不鸡肋,这是对与中高级运维工程师也是有很大价值的。
易用性:保留了linux运维得习惯。通过管道命令直接对配置文件进行解析和解释,简化了运维流程,对于快速理解系统配置非常实用。 - 待改进之处--我是谁
哈哈典型的我是谁,自己不知道自己。
[Copilot]:
How may I assist you this time? 您可以使用中文或英文与我进行沟通。
[CHAT]: 你的-t参数怎么使用
[Copilot]:
-t 参数在不同的命令中有不同的用途,您能具体说明一下您是在哪个命令中使用 -t 参数吗?这样我可以更准确地为您解答。例如,ssh 命令中的 -t 参数和 tar 命令中的 -t 参数功能是不一样的。
[CHAT]: 就是你的这个工具的co的-t参数使用
[Copilot]:
看起来您可能是指某个特定工具的 -t 参数,但是您的描述还不够具体。-t 参数可以用于很多不同的命令或工具中,每个命令中它的作用可能不同。能否告诉我您具体指的是哪个命令或工具的 -t 参数呢?例如,如果您是在说 git 的话,-t 参数可以用于 git clone 命令来指定一个模板目录。但如果是 curl,
那么 -t 并不是一个有效的选项。
如果您是指我作为助手的功能或使用方法,那么请注意,我并没有 -t 这样的参数。请提供更多的上下文信息,这样我才能更准确地帮助您。
[CHAT]: co 这个命令你熟悉吗
[Copilot]:
co 命令是 CVS(Concurrent Versions System)版本控制系统中的一个命令,用于从仓库中检出文件或目录。CVS 是一个较旧的版本控制系统,现在已经被 Git 等更现代的工具所取代,但在某些项目中仍然可能遇到它。
效果OK。
四、结语
作为一名云计算售前架构师,我认为 OS Copilot 是一款非常强大且高效的工具,特别是在自动化管理和运维方面。它不仅帮助我跟技术部的其他同学节省了大量时间跟需要不常用命令的记忆,尤其涉及到大量的管道类命令跟正则匹配等,还提高了任务执行的准确性和可靠性。整体来看,我非常推荐将其应用于日常的 Linux 系统管理和运维工作中。
附件:
此处附上相关截图,展示使用过程中的关键截图