
一个完全由 AI 编写的开源运维工具,支持中文交互,多模型自动切换
作为运维工程师,你是否遇到过这些场景:
现在,你可以直接问 AI:"服务器负载很高,帮我排查原因"
AI Shell Assistant (aiassist) 是一个基于大语言模型的智能终端工具,通过自然语言交互为运维人员提供诊断分析、方案建议和命令执行指导。
GitHub: https://github.com/llaoj/aiassist
自然语言交互 - 用人话提问,AI 给出专业诊断
智能命令建议 - 自动分析并给出最合适的 Shell 命令
连续对话分析 - 自动传递上一条命令的输出,支持最多 10 层递归诊断
管道模式 - 直接分析日志输出,支持 13,000 行 nginx 日志
多模型支持 - 通义千问、GPT-4 、DeepSeek 等,自动切换
安全可控 - 查询命令和修改命令差异化展示,严格确认机制
完美中文 - 支持中文输入、光标编辑、Ctrl+C 退出
$ aiassist "服务器负载很高,帮我排查原因" [AI] 让我们先检查系统负载和 CPU 使用情况: [查询命令] top -b -n 1 | head -20 是否执行此命令? (y/n, exit 退出): y [执行成功] top - 03:24:15 up 127 days, 5:32, 2 users, load average: 8.45, 7.23, 6.89 Tasks: 256 total, 3 running, 253 sleeping... PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 nginx 20 0 2.156g 1.234g 12.3m R 98.3 15.6 124:56 nginx [AI] 发现 nginx 进程 (PID 1234) CPU 占用 98.3%,内存使用 1.2GB 。 让我们查看 nginx 的连接状态: [查询命令] ss -ant | grep :80 | wc -l 是否执行此命令? (y/n, exit 退出): y [执行成功] 15234 [AI] 发现当前有 15,234 个活跃连接到 80 端口。建议检查是否遭受 DDoS 攻击... # 直接分析 nginx 访问日志 $ tail -1000 /var/log/nginx/access.log | aiassist "分析访问日志" [AI] 分析结果: 1. 发现来自 192.168.1.100 的异常请求:1 分钟内发起了 523 次请求 2. 路径 /api/login 被频繁访问,可能存在暴力破解 3. 建议执行: - 检查该 IP 的请求模式 - 临时封禁该 IP - 启用限流策略 # 分析 Docker 容器状态 $ docker ps -a | aiassist "帮我看看容器有什么问题" [AI] 发现 3 个容器处于 Exited 状态: - redis-cache (退出码: 137) - 内存不足被 OOM Killer 杀死 - app-worker (退出码: 1) - 启动失败,建议查看日志 - nginx-proxy (退出码: 0) - 正常退出 $ aiassist ??? 请输入问题: 为什么我的磁盘满了 [AI] 让我们先查看磁盘使用情况... [查询命令] df -h ??? 请输入问题: /var 目录占用最大 [AI] 让我们查看/var 目录下哪些子目录占用空间最大... [查询命令] du -sh /var/* | sort -hr | head -10 ??? 请输入问题: /var/log 占了 80GB [AI] 让我们查看具体是哪些日志文件... 支持最多10 层递归命令分析,AI 会:
# 配置文件按优先级排列 providers: qwen: # 优先使用 enabled: true gpt4: # Qwen 失败后切换 ```yaml # 配置文件按优先级排列 providers: qwen: # 优先使用 enabled: true gpt4: # Qwen 失败后切换 enabled: true deepseek: # 最后备选## 快速开始 ### 一键安装 ```bash curl -fsSL https://raw.githubusercontent.com/llaoj/aiassist/main/scripts/install.sh | bash aiassist config 按向导提示配置:
支持的模型:
# 交互式对话 aiassist # 单次问答 aiassist "服务器负载很高,帮我排查" # 管道模式 tail -f /var/log/nginx/access.log | aiassist "分析日志" docker ps -a | aiassist "检查容器状态" 这个项目有个特别之处:完全由 AI 编写。
从需求分析、架构设计、代码实现、文档编写,全部由 AI ( Claude )完成。这也从侧面证明了 AI 在代码生成领域的能力已经相当成熟。
技术栈:
运维工程师 - 快速诊断生产环境问题
SRE - 自动化故障排查流程
DevOps - CI/CD 环境调试
新手运维 - 学习 Shell 命令最佳实践
开发者 - 快速解决服务器问题
1 vodmaker 1 月 28 日 我也做了一个: https://github.com/YUHAI0/shex |
2 hmmmbiubiubiu OP @vodmaker 想到一块去了. 就是不知道各位运维老哥们是否喜欢这样的工具. |
3 hmmmbiubiubiu OP @vodmaker 你自己手撸的? |
4 hbytw1 1 月 29 日 PS D:\aiassist> .\aiassist-windows-amd64.exe Configuration file not found Please run: aiassist config PS D:\aiassist> aiassist config aiassist : 无法将“aiassist”项识别为 cmdlet 、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保 路径正确,然后再试一次。 所在位置 行:1 字符: 1 + aiassist config + ~~~~~~~~ + CategoryInfo : ObjectNotFound: (aiassist:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS D:\aiassist> .\aiassist-windows-amd64.exe aiassist config Configuration file not found Please run: aiassist config PS D:\aiassist> aiassist version aiassist : 无法将“aiassist”项识别为 cmdlet 、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保 路径正确,然后再试一次。 所在位置 行:1 字符: 1 + aiassist version + ~~~~~~~~ + CategoryInfo : ObjectNotFound: (aiassist:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS D:\aiassist> |
5 hbytw1 1 月 29 日 实际工作中,大部分运维工程师都是使用 windows 终端进行运维的,还得把 windows 兼容性做好才行。 |
6 vodmaker 1 月 29 日 @hmmmbiubiubiu cursor 做的 |
7 hmmmbiubiubiu OP @hbytw1 嗯 需要把 aiassist-windows-amd64.exe 修改为 aiassist ,并把目录加入 path |
8 hmmmbiubiubiu OP @hbytw1 嗯 谢谢兄弟提示 我感觉应该使用更快捷的安装方式 还需要完善文档 增加测试 |