LinuxAgent - 基于LLM大模型的Linux运维助手

LinuxAgent - 基于LLM大模型的Linux运维助手

LinuxAgent Logo

📌 简体中文

LinuxAgent是一个智能运维助手,通过接入DeepSeek API实现对Linux终端的自然语言控制,帮助用户更高效地进行系统运维工作。

更新日志

v2.0.5 (最新版本)
  • 🔧 优化:移除了Windows特有的代码,提高在Linux系统下的兼容性
  • 🚀 改进:简化流式输出逻辑,消除滚动功能带来的终端状态问题
  • ✨ 增强:修复了AI回答完成后无法继续输入的bug
  • 🛠️ 重构:优化代码结构,删除无用的平台检测逻辑
  • 🔄 增强:改进了AgentMode和ChatMode的模式切换功能,提供更流畅的交互体验
v2.0.4
  • 🚀 增加了流式输出功能,使AI回答更流畅
  • 🎨 新增自定义主题功能,支持多种界面风格切换
  • 📚 添加了交互式教程,帮助新用户快速上手
  • 🔄 优化了多轮对话体验
v2.0.3
  • 🔧 添加自动模式与手动模式切换功能
  • 💬 增强了自然语言理解能力
  • 🛡️ 增强安全检查机制

版本特性对比

特性v1.4.1v2.0.3v2.0.4v2.0.5 (最新)
自然语言理解
智能命令执行
安全控制机制
多轮对话支持✓+✓+
自动/手动模式切换
流式输出回答
自定义主题
交互式教程
Linux专属优化
输入阻塞问题修复
终端状态恢复

LinuxAgent 功能详解

LinuxAgent是一个基于LLM大模型的Linux运维助手,通过自然语言处理技术实现对Linux终端的智能控制,帮助用户更高效地进行系统运维工作。
在这里插入图片描述

核心功能

1. 自然语言理解

LinuxAgent能够理解用户的自然语言指令,无需记忆复杂的Linux命令语法。用户只需用日常语言描述需求,系统会自动解析意图。

  • 支持多种自然语言查询形式
  • 能够理解复杂的多步骤请求
  • 根据上下文自动补充命令参数
    在这里插入图片描述

2. 智能命令执行

将用户的自然语言意图精准转换为Linux命令并安全执行。

问答意图
执行意图
安全
不安全
确认
拒绝
用户输入
意图分析
聊天模式
命令生成
安全检查
命令执行
用户确认
取消执行
结果分析
反馈结果

3. 安全控制机制

内置多层安全检查机制,防止执行危险操作。

  • 命令白名单和黑名单过滤
  • 风险命令执行前的二次确认
  • 敏感操作权限检查
  • 系统资源使用限制

4. 多轮对话支持

支持上下文相关的多轮对话,系统会记住之前的交互内容,使得连续操作更加自然流畅。

  • 保持对话上下文记忆
  • 支持指代消解(“它”、"这个文件"等指代词)
  • 根据历史交互调整响应策略
    在这里插入图片描述

5. 模式切换功能

提供多种工作模式,满足不同场景需求。

chat命令
agent命令
auto mode命令
auto mode命令
agent mode命令
chat mode命令
自动模式
聊天模式
命令执行模式
  • 自动模式:根据输入内容自动判断是执行命令还是进行聊天
  • 聊天模式:专注于问答交互,不自动执行命令
  • 命令执行模式:专注于命令生成和执行
    在这里插入图片描述

6. 流式输出功能

采用流式输出技术,使AI回答更加流畅自然。

  • 实时展示AI思考和生成过程
  • 长文本分段流式输出,避免卡顿
  • 避开终端30行临界点,防止屏幕冻结
    在这里插入图片描述

7. 自定义主题功能

支持多种界面风格切换,个性化视觉体验。

  • 默认主题:专业清晰的界面风格
  • 暗色主题:减轻眼睛疲劳,适合夜间使用
  • 亮色主题:高对比度,适合明亮环境
  • 复古主题:怀旧终端风格
  • 海洋主题:蓝色调柔和界面

8. 交互式教程

内置交互式教程,帮助新用户快速上手。

  • 基础操作引导
  • 常用功能演示
  • 进阶技巧教学
  • 实时反馈和指导

9. Linux专属优化

专为Linux环境优化设计,解决常见问题。

  • 解决终端状态和键盘输入问题
  • 移除对Windows相关依赖
  • 针对Linux环境的性能优化
  • 与常见Linux发行版的兼容适配
    在这里插入图片描述

特色功能

1. 智能命令分析

执行命令后,系统会自动分析结果并提供易于理解的解释。

  • 命令输出结果解读
  • 错误和异常情况分析
  • 数据可视化和格式化展示
  • 提供进一步操作建议

2. 历史记录管理

完整记录所有操作历史,方便追踪和复用。

  • 会话历史浏览和搜索
  • 历史命令重新执行
  • 支持导出历史记录(Markdown、文本、脚本)
  • 历史会话统计分析
    在这里插入图片描述

3. 复杂命令拆分

对于复杂的多步骤命令,系统可以将其拆分为多个子命令分步执行。

复杂命令
命令解析
拆分为子命令
安全检查
顺序执行
步骤1执行
步骤2执行
步骤3执行
汇总结果
  • 多命令序列的智能拆分
  • 子命令执行状态监控
  • 出错时的自动中断和恢复建议
  • 执行结果的整合展示

4. 交互式命令支持

智能识别并支持交互式命令的执行。

  • 文本编辑器:vim, nano, emacs等
  • 系统监控工具:top, htop等
  • 数据库客户端:mysql, psql等
  • 终端多路复用器:screen, tmux等

5. API密钥管理

支持多种方式设置和管理API密钥。

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

6. 错误分析与修复建议

当命令执行失败时,系统会分析错误原因并提供修复建议。

  • 错误日志智能解析
  • 常见问题识别与解决方案
  • 提供修复命令建议
  • 引导用户进行故障排除

7. 数据导出功能

支持多种格式导出会话内容。

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

8. 性能监控与优化

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

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

常用场景

1. 系统信息查询

快速获取系统各项指标和状态信息。

示例命令:

  • “显示系统基本信息”
  • “查看当前系统负载情况”
  • “检查系统已运行时间和登录用户”

2. 文件操作管理

高效执行各类文件操作任务。

示例命令:

  • “查找/var目录下最近7天修改的大于100MB的文件”
  • “找出/home目录下权限为777的文件并列出”
  • “将/tmp目录下30天前的日志文件压缩”

3. 服务管理控制

便捷管理系统服务。

示例命令:

  • “查看所有正在运行的服务”
  • “检查nginx服务状态并确保它在启动时自动运行”
  • “重启MySQL服务并查看最近的错误日志”

4. 网络诊断分析

全面的网络状态监控和分析。

示例命令:

  • “检查网络连接状态”
  • “显示所有开放的网络端口和对应的进程”
  • “测试到百度和谷歌的网络连接”

5. 高级系统维护

执行复杂的系统维护任务。

示例命令:

  • “查找占用CPU最高的5个进程,并显示它们的详细信息”
  • “备份MySQL数据库,压缩备份文件,然后移动到/backup目录”
  • “创建一个cron任务,每天凌晨3点自动清理/tmp目录下的临时文件”

内置命令

LinuxAgent提供了一系列内置命令用于控制和配置系统。

基本命令

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

会话管理

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

设置管理

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

模式切换

  • mode:显示当前模式
  • chat mode:切换到聊天模式
  • agent mode:切换到命令执行模式
  • auto mode:切换到自动模式

学习辅助

  • tutorial:启动交互式教程

工作流程

LinuxAgent的整体工作流程如下:

聊天模式
命令模式
自动模式
问答意图
执行意图
安全
不安全
确认
拒绝
用户输入
特殊命令?
执行内置命令
当前模式?
调用LLM生成回答
生成Linux命令
意图判断
安全检查
执行命令
请求用户确认
终止执行
分析结果
展示结果
返回主循环

架构设计

LinuxAgent采用模块化设计,由以下核心组件构成:

  1. 用户界面模块:处理用户输入和结果展示
  2. LLM接口模块:负责与大模型API的通信
  3. 命令执行模块:安全执行Linux命令
  4. 分析引擎:分析命令执行结果
  5. 安全控制模块:执行安全策略和保护措施
  6. 历史记录管理:保存和管理交互历史
  7. 配置管理:处理系统设置和参数
用户
用户界面模块
核心代理
LLM接口模块
命令执行模块
安全控制模块
分析引擎
历史记录管理
配置管理
DeepSeek API
Linux系统

系统要求

  • Rocky Linux 9.4 或其他兼容系统
  • Python 3.8+
  • 网络连接(用于访问DeepSeek API)
  • DeepSeek API密钥

重要提示: 从版本2.0.5起,LinuxAgent已专门针对Linux环境进行优化,移除了Windows相关代码,解决了终端状态和键盘输入问题。如果您在之前版本遇到过终端输入阻塞或"msvcrt"模块相关错误,强烈建议升级到最新版本。

安装说明

  1. 克隆代码库
git clone https://gitcode.com/qq_69174109/LinuxAgent.git
cd LinuxAgent
  1. 安装依赖
pip install -r requirements.txt
  1. 配置DeepSeek API密钥
cp config.yaml.example config.yaml
# 编辑config.yaml,填入DeepSeek API密钥

详细使用指南

获取DeepSeek API密钥
  1. 访问DeepSeek官方网站(https://deepseek.com)注册账号
  2. 在个人设置或API页面申请API密钥
  3. 复制获得的API密钥
配置系统
  1. 编辑config.yaml文件:
vi config.yaml
  1. 将您的API密钥填入配置文件的相应位置:
api:
  api_key: "your_deepseek_api_key"  # 将此处替换为真实API密钥
  1. 其他配置项说明:

    • base_url: DeepSeek API的基础URL,默认不需要修改
    • model: 使用的模型名称,默认使用"deepseek-chat"
    • timeout: API请求超时时间,默认30秒
  2. 安全设置:

    • confirm_dangerous_commands: 是否确认危险命令(建议保持为true)
    • blocked_commands: 完全禁止执行的命令列表
    • confirm_patterns: 需要确认才能执行的命令模式
启动运行
  1. 直接运行主程序:
python linuxagent.py
  1. 使用调试模式运行(显示更多日志信息):
python linuxagent.py -d
  1. 指定配置文件路径:
python linuxagent.py -c /path/to/your/config.yaml

日常使用

  1. 基本交互方式

    • 启动程序后,您会看到提示符[LinuxAgent] >
    • 直接输入自然语言指令,例如:“帮我查看系统内存使用情况”
    • 系统会调用DeepSeek API分析您的指令并生成对应的Linux命令
    • 显示命令并执行,然后返回结果分析
  2. 内置命令

    • help: 显示帮助信息
    • exitquit: 退出程序
    • clear: 清屏
    • history: 显示历史记录
    • config: 显示当前配置
  3. 常用示例

    系统信息类:

    • “显示系统基本信息”
    • “查看当前系统负载情况”
    • “检查系统已运行时间和登录用户”

    文件操作类:

    • “查找/var目录下最近7天修改的大于100MB的文件”
    • “找出/home目录下权限为777的文件并列出”
    • “将/tmp目录下30天前的日志文件压缩”

    服务管理类:

    • “查看所有正在运行的服务”
    • “检查nginx服务状态并确保它在启动时自动运行”
    • “重启MySQL服务并查看最近的错误日志”

    网络操作类:

    • “检查网络连接状态”
    • “显示所有开放的网络端口和对应的进程”
    • “测试到百度和谷歌的网络连接”
  4. 高级用法

    • 管道和复杂命令:
      “查找占用CPU最高的5个进程,并显示它们的详细信息”

    • 多步骤任务:
      “备份MySQL数据库,压缩备份文件,然后移动到/backup目录”

    • 定期任务设置:
      “创建一个cron任务,每天凌晨3点自动清理/tmp目录下的临时文件”

  5. 设置功能

    • 主题设置:

      [LinuxAgent] > theme
      

      可选择不同的界面主题,包括默认、暗色、亮色、复古和海洋等主题风格。

    • 语言设置:

      [LinuxAgent] > language
      

      支持切换中文、英文等多种语言界面。

    • 模式切换:

      [LinuxAgent] > mode
      [LinuxAgent] > chat mode
      [LinuxAgent] > agent mode
      [LinuxAgent] > auto mode
      

      在聊天模式、命令执行模式和自动模式之间切换。

    • API密钥设置:

      [LinuxAgent] > set api_key YOUR_API_KEY
      

      在不修改配置文件的情况下,直接在程序内设置DeepSeek API密钥。

    • 教程启动:

      [LinuxAgent] > tutorial
      

      启动交互式教程,学习如何使用LinuxAgent。

    • 会话导出:

      [LinuxAgent] > export chat
      

      将当前会话内容导出为文档或脚本。

安全注意事项

  1. 命令确认机制

    • 对于潜在危险的命令(如删除文件、修改系统配置等),系统会要求确认
    • 确认提示格式为:“此命令可能有风险: [风险原因]。确认执行? [y/N]”
    • 输入y或yes确认执行,其他输入会取消执行
  2. 命令审查建议

    • 即使LinuxAgent有安全机制,仍建议您在执行前仔细审查生成的命令
    • 特别是在生产环境中使用时,确保理解命令的作用和可能的影响
  3. 权限控制

    • LinuxAgent继承您当前用户的权限执行命令
    • 建议使用普通用户运行,需要特权时手动确认sudo操作

疑难解答

  1. API连接问题

    • 确认网络连接正常
    • 验证API密钥正确且未过期
    • 检查base_url配置是否正确
  2. 命令执行失败

    • 查看错误信息和建议修复方法
    • 确认系统中已安装相关命令所需的程序
    • 检查用户权限是否足够
  3. 性能问题

    • 如果响应缓慢,可以调整timeout参数
    • 对于复杂任务,考虑拆分为多个简单指令
  4. 日志信息

    • 日志文件默认保存在~/.linuxagent.log
    • 使用-d参数启动可查看更详细的调试信息

联系方式

  • 作者QQ:3068504755
  • QQ群:281392454

许可证

MIT License

特性功能

  • 🚀 使用自然语言描述需求,自动转换为Linux命令
  • 🔍 命令执行前的安全检查和风险提示
  • 📊 命令执行结果的智能分析和解释
  • 🔄 多命令序列的拆分执行和状态跟踪
  • 📝 支持交互式命令的智能识别与执行(如vim、nano等编辑器)
  • ⏱️ 长时间运行命令的智能超时管理
  • 🎨 美观的终端用户界面

使用方法

基本用法

# 启动LinuxAgent
./linuxagent.py

输入自然语言命令,LinuxAgent会自动转换为相应的Linux命令并执行:

[LinuxAgent] > 查找最近7天内修改过的大于100MB的日志文件

特殊命令

  • help - 显示帮助信息
  • exitquit - 退出程序
  • clear - 清屏
  • history - 显示命令历史
  • config - 显示当前配置

交互式命令

LinuxAgent支持直接使用交互式命令或自然语言描述:

# 直接使用命令
[LinuxAgent] > vim /etc/nginx/nginx.conf

# 使用自然语言描述
[LinuxAgent] > 使用nano编辑apache配置文件
[LinuxAgent] > 编辑/etc/fstab文件用vim
[LinuxAgent] > 用htop查看系统资源占用

支持的交互式命令包括:

  • 文本编辑器:vim, vi, nano, emacs
  • 命令行工具:top, htop, less, more
  • 数据库客户端:mysql, psql, sqlite3
  • Shell程序:bash, sh, zsh
  • 网络工具:ssh, telnet, ftp, sftp

高级功能

命令拆分执行

对于复杂的多步骤命令,LinuxAgent可以将其拆分为多个步骤执行,提供更好的可控性:

[LinuxAgent] > 更新系统,安装nginx,并设置开机启动

系统会询问是否要将这个复杂命令拆分为多个步骤执行。

交互式编辑

可以通过edit命令直接编辑文件:

[LinuxAgent] > edit /etc/hosts vim

或者使用自然语言描述:

[LinuxAgent] > 使用nano编辑/etc/resolv.conf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一捧树苗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值