介绍
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年左右提出的互联网+一样,将各行各业在洗刷一遍,生产力再一步提升。