AI运维助手-LinuxAgent

news/2025/3/25 17:39:18/文章来源:https://www.cnblogs.com/qingfeng423/p/18788543

介绍

LinuxAgent是基于LLM大模型的智能运维助手,通过接入DeepSeek API实现对Linux终端的自然语言控制,可以实现高效的运维工作。目前已经更新到2.0.5版本。

LinuxAgent能够理解用户的自然语言指令,只要描述需求,系统自动解析意图并执行,支持中文、英语等,可以理解复杂的多步骤请求,根据上下文自动补充命令参数。

支持多种颜色主题,刚上手提供引导帮助,针对Linux进行优化。

https://gitcode.com/qq_69174109/LinuxAgent

智能命令执行

通过自然语言描述,分析后生成命令会对命令进行安全检查,安全比如ls查看则会直接执行,然后分析结果并反馈,如果不安全则需要交互是否进行。

内置多层安全检查机制,命令黑白名单过滤、敏感操作权限检查、系统资源使用限制

对于复杂命令,拆分为多个子命令分步执行,并对子命令执行状态进行监控,出错可终端并给出恢复建议

支持多轮对话

系统会记住之前的交互内容,使得连续操作更流畅‘,保持对话上下文记忆,支持指代消解(“它”、“这个目录”等指代词),根据历史交互调整响应策略

模式介绍

有多种工作模式,可满足不同的需求

  • 自动模式(auto mode):判断输入内容是执行命令还是进行聊天
  • 聊天模式(chat mode):问答交互,不自动执行命令
  • 执行命令模式(agent mode):专注于命令的生成和执行

API密钥管理

支持多种方式配置API密钥

  • 配置文件设置
  • 命令行传入
  • 运行时动态设置
  • 安全的密钥存储机制

数据导出

  • markdown:适合文档记录
  • 文本格式:纯文本日志
  • 脚本格式:提取可执行命令形成脚本

性能监控与优化

确保系统运行高效,内置了性能监控机制

  • API调用性能跟踪
  • 命令执行时间统计
  • 资源使用情况监控
  • 自动调整参数优化性能

架构设计

LinuxAgent采用模块化设计

  • 用户界面模块:处理用户输入和结果展示
  • LLM接口模块:负责与大模型API的通信
  • 命令执行模块:安全执行Linux命令
  • 分析引擎:分析命令执行结果
  • 安全控制模块:命令的白黑名单,安全策略和保护策略
  • 历史记录管理:保存和管理交互历史
  • 配置管理:处理系统设置和参数

内置命令

基本命令

  • help:查看帮助信息
  • exit/quit:退出程序
  • clear:清屏
  • history:显示历史记录
  • config:显示当前配置
  • stats:显示使用统计
  • analytics/dashboard:显示分析仪表板

会话管理

  • chat history:显示对话历史
  • clear chat:清空对话历史
  • save chat:保存对话历史
  • export char [format] [filename]:导出对话内容

设置管理

  • settings/set:进入设置菜单
  • set api_key YOUR_API_KEY:设置API密钥
  • theme:自定义主题设置
  • language [lang]:设置语言

切换模式

  • mode:显示当前模式

  • chat mode:聊天模式

  • agent mode:执行命令模式

  • auto mode:自动模式

学习辅助

  • tutorial:启动交互教程

安装

系统使用Rocky Linux 9.5和Python 3.8

1、克隆代码库

git clone https://gitcode.com/qq_69174109/LinuxAgent.git

2、进入代码库目录解决python依赖

pip install -r requirements.txt

3、配置大模型API密钥,可以使用DeepSeek,我这里使用的是阿里的千问模型。不同的模型官网都有获取API的帮助,写入到config.yaml配置文件中,文件中默认有中文说明,配置文件默认配置了deepseek的案例,使用千问模型只需修改base_url、api_key和provider

provider可随便写,只是在软件中提示使用的LLM

api:# LLM提供者: "deepseek"或"openai"provider: "qwen-plus"# DeepSeek API密钥api_key: "sk-b7182a5e1d1a469094821e38962b3a90 "# API基础URLbase_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"

4、运行主程序,在程序中有命令提示,类似在IDE中的代码补全

python linuxagent.py
python linuxagent.py -d # 调试
python linuxagent.py -c ./config.yaml #指定配置文件

使用案例

  • 通过chat mode查看内存信息

  • 查看登录的用户

  • 切换模式

  • 安装docker

提示

  • 在软件中使用ctrl +d 不能像shell中那样退出,必须使用exit或quit
  • 使用命令提示按tab

  • 交互式会根据输入的信息,显示之前交互过的信息,可使用ctrl+f或使用右方向键补齐

总结

软件确实可以帮助运维减少不少的麻烦,对于维护来说,对于Linux系统的复杂,可分析系统资源的使用情况,不用边看系统资源边查资料看参数说明了。

AI估计和13年左右提出的互联网+一样,将各行各业在洗刷一遍,生产力再一步提升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/904432.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务Elasticsearch

Elasticsearch中倒排索引 为什么查询效率高 比如说一个商品 在一百万条数据中 你如果要搜的话 他会从一百万条数据中去寻找 比如说你要搜小米手机 但是倒排索引是这样的 //倒排 { "小米": [1], "手机": [1,2,3,4], } 他在给定的文档范围内去搜索 比如说正…

20242825 2024-2025-2 《网络攻防实践》第四周作业

@目录一. 实验内容1.1 实验内容概述1.2 实验相关知识概述二. 实验过程2.1 ARP缓存欺骗攻击2.1.1 实验环境配置2.1.2 连通性测试2.1.3 继续实验实验亮点出现问题检查问题解决问题2.2 ICMP重定向攻击2.2.1 实验环境配置2.2.2 连通性测试发现问题检查问题解决问题2.2.3 继续实验…

论文解读-Advances in 3D Generation: A Survey

论文介绍 题目: Advances in 3D Generation: A Survey 发表年份是 2024年,综述性质的文章,是看到腾讯发布了混元3D大模型所以来看看这个论文主要贡献 论文主要根据当前研究领域内不同的3D资产的生成方法进行了一个分类,将3D生成算法分为:前馈生成,基于优化的生成,基于过…

大数据技术

Hadoop Hadoop是一个能够对大量数据进行分布式处理的软件框架 HDFS ​ HDFS(Hadoop Distributed File System,Hadoop的分布式文件管理系统),是Hadoop的两大核心之一,用于管理数据和文件 Hadoop安装 ​ Hadoop可以在Window系统上运行,但其官方支持的操作系统只有Liunx,所以…

User\main.c(7): error: #5: cannot open source input file ds18b02.h: No such file or directory

报错截图解决途径 复制报错信息上网搜索,一般的解决办法:在c/c++选项中的Include Paths中包含头文件,将移植过来的代码放到指定的文件夹里,在Floder Setup中设置新移植的文件路径。很可惜我确认过我包含了头文件,但仍然报同样错误。 最后发现我代码里面是 #include"d…

Bean注入几种方式 (放入Spring容器)

目录 1、XML方式注入set方式注入构造方法注入2、注解方式注入@Component + @ComponentScan@Configuration + @Bean + @ComponentScan@Import3、实现ImportBeanDefinitionRegistrar接口 4、实现FactoryBean 5、实现BeanDefinitionRegistryPostProcessor 一、XML方式注入 在现在这…

自然资源数据要素支撑场景建设

自然资源数据要素与场景建设是推动经济社会高质量发展的重要途径。随着数字经济的快速发展,自然资源数据已成为关键的生产要素,其价值挖掘和利用成为推动经济社会发展的关键。自然资源数据要素的重要性自然资源数据要素包括地理、土地、矿产、海洋等多源数据,是支撑经济社会…

C语言分支与循环基础应用编程

实验任务1#include<stdio.h> #include<stdlib.h> #include<time.h> #define N 5int main() {int number;int i;srand(time(0));for(i=0;i<N;++i){number=rand()%100+1;printf("20490042%04d\n",number);}return 0; }问题1:生成一个1~100的随机…

NSSCTF Round#28 Team web题解

真是让人操心,但是又无法转移视线ez_ssrf 很简单的ssrf,知识点在网上搜都能搜到 payload http://node3.anna.nssctf.cn:28658@127.255.255.254/flag ez_php 第一部分有个非预期,直接/file就能出flag is_numeric绕过和md5强比较,很简单的知识点,这里就不细说了 第二部分网上…

Netty源码—4.客户端接入流程

大纲 1.关于Netty客户端连接接入问题整理 2.Reactor线程模型和服务端启动流程 3.Netty新连接接入的整体处理逻辑 4.新连接接入之检测新连接 5.新连接接入之创建NioSocketChannel 6.新连接接入之绑定NioEventLoop线程 7.新连接接入之注册Selector和注册读事件 8.注册Reactor线程…

【Esp32】为 idf 定制本地 Arduino 组件

在开始今天的水文前,老周先要奉劝一下国内某些嵌入式砖家和穴者,不要看不起 Arduino,它不是一种开发板,而是一种规范。Arduino 的思想是正确的,把各种开发板封装为统一的 API,让许多开源库共享相同的基础代码,严重降低了移植成本。Arduino 本质上使用的是 C/C++ 开发,只…

编译原理第五次作业

2.2.1 1)S-> S S *-> S S + S *->a S + S *->a a + S *->a a + a * 2)3)L={由多个a,加号,乘号组成的后缀表达式} 2.2.2 1)L={0^n 1^n | n>=1} 2)L={由多个a,加号,减号组成的前缀表达式} 3)L={ε或任意排列,嵌套的括号} 4)L={ε或包含相同数量a,b的字符…