一 背景
在当今信息技术日新月异的背景下,AI代理(Agent)技术正日益成为实现云上资源和Linux系统内部操作的关键工具。通过AI代理,用户可以通过对话方式轻松查询和管理云上资源,如ECS实例、OSS桶和RDS数据库等,极大地简化了复杂的管理流程。这种基于对话的操作方式不仅提升了用户体验,还使得操作更加直观和便捷。同时,AI代理还能够解析用户输入的命令,转换为Linux系统可执行的命令,并安全地执行在目标主机上,确保操作的安全性和效率。通过整合AI技术,系统运维人员不再需要深入的技术背景,即可轻松进行系统管理和云资源操作,为企业和个人提供了更高效的IT运维解决方案。
二 SysOps Bot的构思
本文利用主要讲解Coze制作并发布了一款名为SysOps的个人系统运维助手,专为Linux系统执行助手(SysOps)设计。这款助手的核心功能是通过与用户交互,帮助其执行系统操作和云资源查询。用户可以通过简单的输入命令,如查询特定云资源或执行系统命令,SysOps将根据用户需求转换为相应的Linux可执行命令,并进入目标主机执行。其支持的云资源类型包括ecs_instance、oss_bucket、rds_instance等,通过内置的aliyun插件实现信息查询和详细画像生成。此外,SysOps还能根据用户提供的参数(用户名、主机IP、端口、密码等)进行操作,确保安全执行用户指令。通过综合分析和专家意见,SysOps不仅提供操作建议,还为用户提供全面的运维支持,旨在简化和优化个人及小型团队的系统管理工作流程。
三 技术实现
通过AI Agent实现的ChatOps运维逻辑,结合两个关键插件:云上资源查询和Linux系统登录,为用户提供了高效、智能的操作体验。首先,用户可以通过输入不同的云资源类型,例如ECS实例、OSS桶或者RDS数据库,系统智能识别并调用相应插件,快速获取详细的资源信息和性能数据。这种对话式的操作方式大大简化了用户与云资源的交互,提升了查询效率和精准度。
其次,针对系统内部操作,用户可以利用AI Agent将输入的命令转换为Linux系统可执行的指令,并安全地登录目标主机执行操作。这一过程不仅包括基本的系统管理命令,还能应对复杂的批量操作需求,如日常巡检或者故障排查。
整体流程中,AI Agent充当了中介角色,通过智能化的文本分析和命令转换,使得系统管理人员无需深入的技术背景,即可轻松完成多样化的运维任务。最终,Agent将执行结果经过语言模型的润色和加工,以清晰且易于理解的方式返回给用户,为企业和个人提供了高效、智能的ChatOps运维解决方案。
四 技术实现
4.1 云上资源查询插件
4.1.1 API编写及部署
再次省略API编写,可以利用LLM快速对应资源的查询接口,并利用阿里云serverless服务进行部署。
serverless上创建命令,本地代码打包
go get github.com/aliyun/fc-runtime-go-sdk/fc
GOOS=linux go build main.go
zip fc-golang-demo.zip main
创建函数
注入环境变量,阿里云ak认证信息
获取url
函数测试成功
为其添加API网关认证
- 创建后端服务
创建APP应用
在API列表中绑定应用
修改添加认证
测试可以正常访问
4.2 SysOps Bot创建
创建SysOps Bot,并开始创建插件。
编辑工具填写基本信息
配置输入参数
配置输出参数
可以看到调试内容已经通过,返回了两个主机信息。
至此我们已经完成两个主机的配置。
发布插件
4.3 整体Bot联调
安装server 系统操作插件安装
可以看整体SysOps配置信息,通过两个插件进行联合调用完成整个逻辑。
4.4 提示词
# 职位描述:Linux 系统执行助手(SysOps)
## 角色
我的主要目标是为用户提供需要查询的信息,我将其变为可以查看的命令,然后登录到主机上进展执行,并根据返回的结果进行分析处理,给出建议,也可以根据用户输入查询云上资源信息。
## 技能
### 技能1:根据用户的输入云类型,将其将其目前固定为支持的云类型,目前支持类型为: ecs_instance,oss_bucket,rds_instance,region,image,vpc,subnet,如果用户输入其他云资源类型,提升用户暂时不支持,后面会新增支持。 用户输入查询主机的region信息,将其格式化为 cn-具体地域,例如用户输入上海信息,将其格式化为:cn-shanghai
### 技能2:如何用户是查询云上信息,则使用 aliyun插件 查询云资源信息信息
### 技能3:使用LLM总结,利用 aliyun插件 查询的输出信息,对云资源进行详细画像,例如:cpu、内存,等根据你多年运维专家的意见给出详细信息。
### 技能4:根据用户的输入信息进行判断,需要参数,用户名:username,主机:host,ssh端口:port,执行的命令:command,该执行命令为你根据用户描述翻译为linux可执行命令,密码:password
### 技能5:使用 aliyun插件 查询云资源信息信息
### 技能6:使用LLM总结,利用 server插件 查询的输出信息,分析执行结果,给出客户详细内容。
## 工作流程
询问用户需要了解哪些AI信息,并按顺序执行以下分析:
1. 询问用户查询信息
- 根据用户的命令,如果是查询云上信息,则使用aliyun插件 相关功能,如果是询问系统信息,主要是登录linux操作系统的操作, 根据用户的命令,将其转换为linux 系统命令,并要求用户输入,用户名、密码、主机IP、命令等信息,
2. 获取系统信息
如何是系统类型操作<使用工具:'aliyun'>
- 获取由server插件检索的用户输入的关键信息,如果有多个命令,循环调用server插件,传入不同的参数,并记录输出结果,如果执行超时,请重试三次,注意针对与系统操作类型的命令,请再三要求用户确认,可能对系统造成不可逆的操作,请用户再三确认,例如rm、mv等高危命令,一定记得提醒用户。
<记录 1.2:记录分析结果获取日期和来源链接>
如果是查询云资源相关操作<使用工具:'aliyun'>
- 获取由aliyun检索的用户输入的关键信息。
3. 综合分析和结论:
- 根据server 的全部输出结果全面概括检索到的AI信息,你作为运维专家给出运维建议和意见,字数不限。
五 测试
通过询问云上资源,可以看出可以调用对应插件查询出来云资源信息。
查看系统内部信息,登录目标服务器,利用server插件,查询系统内部信息,并通过LLM优化整合给出结果。
给出了系统信息。
同样,还可以进行执行命令,例如安装软件等,均可以实现。
六 待提升项
目前测试可行性,后期可以丰富内容,支持更多云资源,或将云资源获取功能也作为一个agent,根据用户提供的云资源类型自动化生成云资源代码,需要探索,在资源获取情况下,可以更方便。
另外针对系统操作,需要进行安全限制,例如rm、mv等,高危命令进行限制,针对查询信息可以更加丰富的支持。
七 总结
在当今快速发展的技术环境中,工程师们的角色不再局限于传统的技术实施者,而是需要具备AI思维,利用人工智能工具来赋能业务和解决复杂问题。AI不仅仅是一种技术,更是一种变革的驱动力,能够在日常工作中发现和利用新的应用场景。通过AI的智能分析和自动化处理,工程师们可以更快速、精准地响应用户需求,优化运维流程,并创造出更高效的工作方式。通过使用Coze编写智能bot的过程让我深刻体会到其强大之处。Coze不仅仅是一个简单的聊天机器人工具,它更像是一个灵活而强大的AI代理,能够通过结合多个插件实现复杂的任务和操作。在开发智能bot的过程中,Coze的文本分析能力和命令转换功能让我可以轻松地将用户输入转化为具体的系统操作,无论是查询云上资源还是执行Linux系统命令。Coze的插件系统特别强大,可以根据不同的需求调用不同的插件,例如云资源查询插件和系统登录插件,使得bot能够涵盖广泛的应用场景。这种灵活性和扩展性极大地增强了Coze在实际运维和管理中的适用性,不仅提升了工作效率,还为用户提供了高度定制化的体验。因此,培养和运用AI思维已成为现代工程师必备的技能,是实现创新和持续发展的关键一步。
八 参考链接
- https://help.aliyun.com/zh/functioncompute/user-guide/compile-and-deploy-code-packages-2?spm=5176.fcnext.help.dexternal.1aa378c8mmlVFd
- https://www.coze.cn/docs/guides/multiagent
九 Bot信息
BotID: 7385885997285933067