AI 功能
Runixo 将 AI 深度融合到服务器运维中,支持自然语言操作、智能诊断和自动化工作流。
AI 模块概览
| 功能 | 说明 |
|---|---|
| 自然语言运维 | 用对话方式执行服务器操作 |
| 智能诊断 | AI 分析日志和指标,定位故障根因 |
| 命令生成 | 描述需求,AI 生成对应命令 |
| 工作流编排 | AI 规划多步骤操作并执行 |
| 插件工具 | 插件注册的 AI 工具自动可用 |
配置 AI
设置 AI 模型
在客户端 「设置」→「AI」 中配置:
| 配置项 | 说明 |
|---|---|
| 模型提供商 | OpenAI / Anthropic / 自定义 |
| API Key | 模型 API 密钥(安全存储在系统密钥链中) |
| 模型 | 如 gpt-4o、claude-3.5-sonnet |
| 自定义端点 | 兼容 OpenAI API 的自定义地址 |
密钥安全
API Key 使用 Electron 的 safeStorage 加密存储在系统密钥链中(Windows: DPAPI, macOS: Keychain, Linux: libsecret),不会以明文保存在配置文件中。
支持的模型
| 提供商 | 推荐模型 | 说明 |
|---|---|---|
| OpenAI | gpt-4o | 综合能力强,推荐 |
| OpenAI | gpt-4o-mini | 速度快,成本低 |
| Anthropic | claude-3.5-sonnet | 代码和分析能力优秀 |
| 自定义 | 任意兼容模型 | 支持 OpenAI API 格式 |
自然语言运维
在 AI 对话框中直接用自然语言操作服务器:
系统管理
用户: 查看服务器磁盘使用情况
AI: 正在执行 df -h...
文件系统 大小 已用 可用 使用% 挂载点
/dev/sda1 50G 32G 16G 67% /
/dev/sdb1 200G 180G 10G 95% /data
⚠️ /data 分区使用率 95%,建议清理空间。
需要我帮你查找大文件吗?服务管理
用户: nginx 好像挂了,帮我看看
AI: 正在诊断 nginx 状态...
1. 服务状态: inactive (dead)
2. 最近日志:
[emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
🔍 诊断结果: 端口 80 被其他进程占用
占用进程: apache2 (PID: 1234)
建议操作:
1. 停止 apache2: sudo systemctl stop apache2
2. 重启 nginx: sudo systemctl restart nginx
需要我执行吗?安全检查
用户: 帮我检查一下服务器安全状况
AI: 正在进行安全检查...
✅ 系统更新: 已是最新
✅ 防火墙: UFW 已启用
⚠️ SSH: 允许 root 登录(建议禁用)
⚠️ 开放端口: 22, 80, 443, 3306
→ 3306 (MySQL) 暴露到公网,建议限制访问
❌ 未配置 fail2ban
建议:
1. 禁用 SSH root 登录
2. 限制 MySQL 端口仅内网访问
3. 安装 fail2ban 防暴力破解智能诊断
当服务器出现异常时,AI 可以自动分析:
- 收集信息:系统日志、服务状态、资源使用率
- 关联分析:将多个指标关联,找出根因
- 给出建议:提供具体的修复步骤
- 执行修复:经确认后自动执行修复命令
MCP 工具集成
Runixo 的 AI 模块支持 MCP(Model Context Protocol),插件可以注册 MCP 工具供 AI 调用:
typescript
// 插件中注册 AI 工具
ctx.ai.registerTool({
name: 'query_database',
description: '查询数据库并返回结果',
parameters: {
type: 'object',
properties: {
query: { type: 'string', description: 'SQL 查询语句' },
database: { type: 'string', description: '数据库名称' }
},
required: ['query']
},
handler: async (params) => {
// 执行查询并返回结果
return await db.query(params.query)
}
})注册后,AI 会自动识别并在需要时调用这些工具。
安全限制
- AI 执行危险命令前会请求确认(如
rm -rf、reboot) - 所有 AI 操作都有审计日志
- 可在设置中配置 AI 的权限范围(只读 / 读写 / 完全控制)
- 环境变量传递给 MCP 工具时会最小化,不泄露敏感信息