OpenOcta(八爪鱼) ,中国版的OpenClaw、国产开源智能体,专为运维而生,旨在为每一位运维人打造一批7*24h工作的数字员工。
区别于OpenClaw的Node.js开发语言,OpenOcta 采用 Go 语言完全重写后端,更轻、更快、更安全,安装部署只需一条命令、无需任何依赖。采用Go+ 内嵌前端的轻量化架构,原生适配无桌面服务器环境,通过 AI Agent 能力为运维团队提供 7*24 小时智能化运维支持,解放运维生产力。
一、现象级开源项目:OpenOcta 是什么?
2026 年初,国内开源社区迎来了一款重磅产品 ------ OpenOcta(八爪鱼) 。这是国内首款专为运维场景深度优化的开源 AI 智能体,被业界称为"中国版 OpenClaw"。
但与 OpenClaw 的通用型设计不同,OpenOcta 从诞生之初就瞄准了运维、可观测性、自动化运维这三大核心场景,旨在为每一位运维工程师配备一批 7×24 小时不间断工作的数字员工。
🎯 核心定位
| 维度 | OpenClaw | OpenOcta(八爪鱼) |
|---|---|---|
| 目标用户 | 通用开发者、个人用户 | 运维工程师、SRE、DevOps 团队 |
| 核心场景 | 个人助理、自动化办公 | 服务器运维、监控告警、故障自愈 |
| 架构设计 | Node.js + 多进程 | Go 语言单二进制 + 内嵌前端 |
| 运行环境 | 需要桌面环境 | 原生支持无桌面服务器 |
| 部署方式 | 复杂依赖安装 | 单一二进制,一键启动 |
🔥 为什么选择 Go 语言重构?
OpenOcta 团队基于 OpenClaw 的 Gateway 通信协议与 Control UI 进行了全量重写 :
- 单二进制文件:无需 Node.js 运行时,单个可执行文件即可运行
- 内嵌前端:Web UI 直接编译进二进制,无需单独部署前端服务
- 无桌面依赖:原生兼容无桌面 Linux 服务器,完美适配云服务器场景
- 性能提升:Go 的并发模型比 Node.js 更适合高并发运维任务处理
二、核心架构解析:为运维而生的设计哲学
2.1 一体化轻量化架构
scss
┌─────────────────────────────────────────┐
│ OpenOcta Single Binary │
│ ┌─────────────┐ ┌───────────────┐ │
│ │ Go Backend │◄──►│ Embedded Web │ │
│ │ (API/WS) │ │ Frontend │ │
│ └──────┬──────┘ └───────────────┘ │
│ │ │
│ ┌──────┴──────┐ ┌───────────────┐ │
│ │ AI Agent │ │ Ops Skills │ │
│ │ Engine │ │ (Built-in) │ │
│ └─────────────┘ └───────────────┘ │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ External Systems │
│ Zabbix │ Prometheus │ Grafana │ K8s │
│ Docker │ Jenkins │ GitLab │ CMDB │
└─────────────────────────────────────────┘
2.2 专为运维设计的核心能力
| 能力模块 | 功能描述 | 典型应用场景 |
|---|---|---|
| 智能告警分析 | 自动解析告警内容,关联历史事件,生成处置建议 | P0 故障 30 秒响应 |
| 自动化巡检 | 定时执行巡检脚本,生成可视化报告 | 每日 200+ 台服务器健康检查 |
| 故障自愈 | 基于规则引擎自动执行修复操作 | 磁盘满自动清理、服务宕机自动重启 |
| 变更辅助 | 审核变更方案,预测风险点,生成回滚策略 | 发布窗口风险评估 |
| 知识问答 | 基于内部运维知识库的智能问答 | 新人上手、故障排查指导 |
三、安装部署指南:3 分钟打造你的数字员工
3.1 环境准备
系统要求:
- Linux: CentOS 7+/Ubuntu 18.04+/Debian 10+
- Windows: Windows 10/Server 2016+
- macOS: 11.0+
- 架构: x86_64 / ARM64
依赖:
- 无需 Node.js、无需 Python、无需 Docker
- 仅需一个可执行文件(约 50-80MB)
3.2 一键安装(推荐)
Linux/macOS:
bash
# 使用官方安装脚本
curl -fsSLk https://116.62.136.121:10443/install.sh | bash
# 或手动下载最新版本
wget https://github.com/openocta/openocta/releases/latest/download/openocta-linux-amd64 -O openocta
chmod +x openocta
sudo mv openocta /usr/local/bin/
Windows:
powershell
# PowerShell 一键安装
iwr -useb https://www.openocta.ai/install.ps1 | iex
# 或手动下载
# 访问 https://github.com/openocta/openocta/releases
3.3 快速启动
openocta gateway run
4. 查看运行状态
openocta gateway status
启动后访问 http://127.0.0.1:18900 即可进入 Web 控制台。
四、实战案例:
mcp 接入prometheus为例,演示接入prometheus后对指标的NL自然语言问数,设置定时任务巡检,以及对告警的处理和推送等作业场景 OpenOcta 可以使用npx,docker,uv等方式启动mcp server,或者直接连接远程mcp server,以便Agent通过标准协议调用外部工具,比如Prometheus / ElasticSearch 等存储引擎。
OpenOcta 对外暴露三个webhook endpoint ,提供了一个alert告警端口,允许接入第三方的信息。
配置样例:
可以使用配置快速拉起该演示样例,注意替换对应的APIKey,appId,appSecret等配置内容
json
{
"mcp": {
"servers": {
"prometheus_test": {
"enabled": true,
"command": "npx",
"args": [
"prometheus-mcp@latest",
"stdio"
],
"env": {
"PROMETHEUS_URL": "http://192.168.50.59:9090"
}
}
}
},
"env": {
"vars": {
"KIMI_API_KEY": "sk-......",
"KIMI_BASE_URL": "https://api.kimi.com/coding/"
}
}
}
01
启动OpeOcta进行对话
这里简单输入之后,可以看到已经开始调用工具进行查询指标,然后开始分析

查询结果:

02
设置定时任务巡检
配置定时任务,并推送消息到飞书消息渠道:

点击定时任务 History → Open run chat 查看 对话过程

查看飞书消息推送内容,由于飞书对于文本内的表格等内容限制,OpenOcta统一使用文本推送消息。

03
配置Prometheus告警推送
由于Prometheus alert告警推送内容格式比较固定,可能缺乏对应的prompt,OpenOcta对外暴露了一个alert 的webhook endpoint ,允许直接推送告警信息。
3.1 配置Prometheus alert告警:
Prometheus Server 目录下创建:redis_alerts.yaml文件。这里配置内存,CPU,慢日志,三个常见告警规则
yaml
groups:
- name: redis-alerts
rules:
# Redis 内存使用率 > 80%
- alert: RedisMemoryHigh
expr: redis_memory_used_bytes / redis_memory_max_bytes > 0.8
for: 2m
labels:
severity: warning
annotations:
summary: "Redis memory usage is high on {{ $labels.instance }}"
description: "Redis is using more than 80% of its max memory ({{ $value | humanizePercentage }})."
# Redis CPU 使用过高(需 node_exporter 提供)
- alert: RedisCPUHigh
expr: rate(process_cpu_seconds_total{job="redis"}[5m]) * 100 > 80
for: 2m
labels:
severity: warning
annotations:
summary: "High CPU usage by Redis on {{ $labels.instance }}"
description: "Redis CPU usage is over 80% in the last 5 minutes."
# Slowlog 条目数在过去5分钟内新增超过5条(需 exporter 支持)
- alert: RedisSlowLogDetected
expr: increase(redis_slowlog_length[5m]) > 5
for: 1m
labels:
severity: critical
annotations:
summary: "Redis slow queries detected on {{ $labels.instance }}"
description: "More than 5 new slowlog entries in the last 5 minutes."
最终在prometheus server页面可以看到如下告警配置:

3.2 配置Alert Manager 推送告警信息:
yaml
global:
resolve_timeout: 5m
route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
receiver: 'redis-webhook'
receivers:
- name: 'redis-webhook'
webhook_configs:
- url: 'http://192.168.50.230:18900/hooks/alert'
send_resolved: true
3.3 模拟告警
手动执行DEBUG SLEEP 1 ,制造SlowLog

3.4 查看 OpenOcta 告警分析
新增了一个sessionKey包含alert的key,点击后,可以看到接收告警后,调用工具,查询指标的分析对话内容


04
OpenOcta配置告警消息渠道-飞书
Prometheus alert告警格式比较固定,无法在发送的时候进行修改,无法在发送到OpenOcta的时候携带额外的发送渠道,使用模型,以及think程度等内容,这里可能需要对告警内容处理一下。
4.1 告警内容预处理
这里提供一个简单的python脚本对prometheus告警预处理,处理后进行转发到OpenOcta的/hooks/agent 接口
python
import uuid
import requests
from flask import Flask, request, jsonify
app = Flask(__name__)
# 目标 Webhook 配置
TARGET_URL = "http://localhost:18900/hooks/agent"
# OpenOcta Gateway 的 Webhook Token
TOKEN = "9fbe5742732ad7762201408cf22a97c559efc8106e616318"
@app.route('/alert', methods=['POST'])
def handle_alert():
# 获取 Prometheus 原始告警数据
data = request.get_json()
if not data:
return jsonify({"error": "Invalid request data"}), 400
# 构造 OpenOcta 接收的负载参数
session_key = f"hook:email:msg-{str(uuid.uuid4())[:8]}"
headers = {
"Authorization": f"Bearer {TOKEN}",
"Content-Type": "application/json"
}
payload = {
"message": data,
"name": "prometheus alert",
"sessionKey": session_key,
"wakeMode": "now",
"deliver": True,
"channel": "feishu",
"to": "oc_eaea5e4fdfaxxxxxx", # 飞书机器人会话ID
"thinking": "low"
}
# 转发告警至 OpenOcta
try:
response = requests.post(TARGET_URL, json=payload, headers=headers, timeout=10)
response.raise_for_status()
return jsonify({"status": "success", "data": response.json()}), 200
except Exception as e:
return jsonify({"error": str(e)}), 500
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
4.2 查看告警分析和消息推送
触发告警后,查看接收到告警后的分析过程会话:
' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)
分析完后,同步信息到飞书:
' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)
五、进阶玩法:打造你的专属运维智能体
5.1 自定义运维技能开发
OpenOcta 支持使用 Go 语言开发自定义技能插件:
go
// skills/disk_cleaner.go
package skills
import (
"context"
"fmt"
"os/exec"
"strings"
)
// DiskCleaner 磁盘清理技能
type DiskCleaner struct {
Threshold int // 磁盘使用率阈值
Paths []string // 要清理的路径
}
func (d *DiskCleaner) Name() string {
return "disk-cleaner"
}
func (d *DiskCleaner) Execute(ctx context.Context, params map[string]interface{}) (string, error) {
// 1. 获取当前磁盘使用率
usage, err := d.getDiskUsage()
if err != nil {
return "", err
}
// 2. 如果超过阈值,执行清理
if usage > d.Threshold {
freed := 0
for _, path := range d.Paths {
size, _ := d.cleanPath(path)
freed += size
}
return fmt.Sprintf("磁盘使用率 %d%%,已清理 %d MB", usage, freed), nil
}
return fmt.Sprintf("磁盘使用率 %d%%,无需清理", usage), nil
}
func (d *DiskCleaner) getDiskUsage() (int, error) {
cmd := exec.Command("df", "-h", "/")
output, err := cmd.Output()
if err != nil {
return 0, err
}
// 解析输出获取使用率...
return 85, nil // 示例
}
func (d *DiskCleaner) cleanPath(path string) (int, error) {
// 执行清理逻辑
cmd := exec.Command("find", path, "-mtime", "+7", "-delete")
cmd.Run()
return 1024, nil // 返回释放的空间(MB)
}
5.2 与现有运维体系集成
yaml
# 与 CMDB 集成
integrations:
cmdb:
type: "nacos" # 支持 nacos/consul/etcd
server: "http://nacos:8848"
# 与告警平台集成
alertmanager:
webhook: "http://openocta:8080/webhook/alerts"
# 与工单系统集成
jira:
url: "https://jira.company.com"
project: "OPS"
5.3 多智能体协作(Swarm)
yaml
# 配置多个专业智能体
agents:
- name: "network-doctor"
role: "网络专家"
skills: ["ping", "traceroute", "tcpdump", "iptables"]
- name: "db-guardian"
role: "数据库专家"
skills: ["mysql", "redis", "postgresql", "backup"]
- name: "k8s-pilot"
role: "Kubernetes 专家"
skills: ["kubectl", "helm", "prometheus", "istio"]
# 主智能体协调任务
coordinator:
- trigger: "database-connection-timeout"
workflow:
- assign: "network-doctor"
task: "检查网络连通性"
- assign: "db-guardian"
task: "检查数据库状态"
depends_on: "network-doctor.result == 'network-ok'"
- assign: "k8s-pilot"
task: "检查 Pod 资源限制"
depends_on: "db-guardian.result == 'db-overloaded'"
六、性能优化与生产环境建议
6.1 高可用部署
bash
# 使用 systemd 管理
sudo tee /etc/systemd/system/openocta.service > /dev/null <<EOF
[Unit]
Description=OpenOcta Ops Agent
After=network.target
[Service]
Type=simple
User=openocta
ExecStart=/usr/local/bin/openocta server
Restart=always
RestartSec=5
Environment="OPENAI_API_KEY=sk-xxx"
Environment="ZABBIX_PASSWORD=xxx"
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable openocta
sudo systemctl start openocta
6.2 安全加固
yaml
security:
# 启用 HTTPS
tls:
cert: "/etc/openocta/server.crt"
key: "/etc/openocta/server.key"
# 访问控制
auth:
type: "ldap" # 支持 ldap/oauth2/local
ldap_url: "ldap://company.com:389"
# 审计日志
audit:
enabled: true
retention: "90d"
storage: "/var/log/openocta/audit.log"
七、未来展望:AIOps 的终局形态
OpenOcta 团队公布的路线图 :
| 时间 | 里程碑 |
|---|---|
| 2026 Q2 | 发布 OpenOcta 2.0,支持多智能体协作(Swarm) |
| 2026 Q3 | 集成大模型微调能力,支持私有化模型部署 |
| 2026 Q4 | 发布运维行业知识图谱,覆盖 100+ 常见故障场景 |
| 2027 Q1 | 支持自然语言编排复杂运维工作流(NL2Workflow) |
八、总结:为什么运维人需要 OpenOcta?
| 传统运维 | OpenOcta 赋能 |
|---|---|
| 7×24 小时轮班,人力成本高 | 数字员工永不下班,人力释放到创新工作 |
| 故障响应靠经验,新人成长慢 | AI 辅助决策,知识沉淀为可复用的代码 |
| 告警风暴,疲于奔命 | 智能压缩与根因分析,聚焦关键问题 |
| 变更风险难预测,故障频发 | 变更前自动风险评估,事中实时监控 |
| 工具分散,数据孤岛 | 统一智能体平台,打通全链路数据 |
OpenOcta 不仅仅是一个工具,它是运维工程师的"数字分身" ------ 让每个人都能拥有一支 7×24 小时待命的专业运维团队。
🚀 立即开始
bash
# 一键安装
curl -fsSL https://www.openocta.ai/install.sh | bash
# 启动你的第一个数字员工
openocta init
openocta server
# 访问 http://localhost:8080 开始配置
项目资源:
- 官网:www.openocta.ai
- GitHub:github.com/openocta/op...
- 文档:docs.openocta.ai
- 社区:Discord / 微信群(官网扫码加入)
💡 互动话题: 你在运维工作中最希望自动化处理的场景是什么?欢迎在评论区分享,点赞最高的 3 位同学将获得《OpenOcta 企业级部署配置模板》+ 官方周边 T 恤!
如果这篇文章对你有帮助,请点个 👍 关注,持续追踪 AIOps 最新实战!