hridesh-net/OpsIntelligence
GitHub: hridesh-net/OpsIntelligence
面向 DevOps 的多 Agent 自主智能平台,通过团队可配置的 Markdown 策略驱动 PR 审查、CI 监控、SonarQube 分流、事件响应和运维手册执行,可选仓库深度索引与语义搜索。
Stars: 7 | Forks: 0
OpsIntelligence
DevOps 判定,循环往复 —— 内置您的策略。
PR review · CI 信号 · Sonar 分流 · 事件 · 运维手册 · 可选的深度仓库记忆。
## 简述
| 您提供 | 它处理 |
|-----------|------------|
| `teams/
/` 下的 Markdown 文件 | PR/MR 审查,引用*您的*严重级别和样式规则 |
| 通过环境变量提供的 Token (`token_env:`) | GitHub、GitLab、Jenkins、Sonar —— 只读优先,写入前需确认 |
| 可选的 `repo_intel` + embeddings | **仓库智能**:学习仓库,构建调用图,通过**询问仓库**搜索(混合关键词 + 语义)索引源 |
**一句话总结:** 一个为**内部 DevOps** 量身打造的自主 Agent —— 不是通用聊天机器人,也不是自动部署机器人。它连接到您已经在运行的系统,遵守安全护栏,并在出现问题时附带证据进行上报。
## 这是什么
OpsIntelligence 监控着工程工作中枯燥但危险的环节:
- **Pull / merge requests** —— 根据团队策略进行审查,标记风险,提出修复建议。
- **CI** —— 跟踪 `main`(及相关分支),发现真正的回归,以怀疑的态度对待不稳定的测试。
- **SonarQube / SonarCloud** —— 质量门、问题、热点:根据您的规则决定阻止、标记还是忽略。
- **事件** —— 帮助值班人员进行分流,总结信号,起草事后复盘大纲。
- **运维手册** —— 在人工介入的情况下逐步执行。
一切都是**团队可配置**的:将 Markdown 策略文件放入 `teams//`,Agent 就会遵循*您的*“发布”或“暂缓”标准。
### 仓库智能 (可选,但功能强大)
当您在配置中启用 **`repo_intel`**(GitHub PAT、memory 目录、可选 embedder)时,您可以**注册仓库**(`opsintelligence repos add …`,或通过仪表板)。每次**同步**都会:
1. 获取受限制的树快照,用于 LLM 分析和提取工件。
2. 构建**调用图**和符号索引。
3. 可选地,将**大部分仓库**索引到混合存储(FTS + 向量)中,用于**范围搜索**和 Agent RAG。
仪表板提供**扫描**、**索引记忆**、**调用图**和**询问仓库**(基于该索引的自然语言 / 关键词搜索)功能。非常大的 GitHub 树可能会返回 `truncated: true`;UI 和 API 会显示警告,让您知道搜索可能是不完整的。
## 这不是什么
- **不是部署机器人。** 在 GitHub、GitLab、Jenkins、Sonar 和基于 MCP 的工具上,默认姿态是**只读**。写入需要在轮次中进行明确的人工确认。当 `devops.github` 配置了允许此操作的 PAT 时,可以发布**PR 评论**。
- **不是消费级助手。** 范围仅限于 DevOps 工作流、集成和操作员控制的策略。
**渠道:** 生产文档和默认配置以 **Slack** 和 **REST/WebSocket 网关**(应用、内部工具、仪表板)为中心。示例配置仍然显示了其他适配器的**注释存根**;仅启用您的安全团队批准的内容。
## 与 AssistClaw 的关系
OpsIntelligence 是 [AssistClaw](https://github.com/hridesh-net/AssistClaw) 的一个硬分叉。它保留了 Agent 循环、分层记忆、惰性技能图、工具、MCP、cron、webhooks、安全护栏和扩展 —— 并将面向消费者的默认值替换为一流的 **`devops.*`** 接口和**团队感知**的 Markdown 规则。
## 内置集成
| 平台 | 状态 | 读取内容 |
|---|---|---|
| **GitHub** (云和企业版) | 一流支持 | PRs、diffs、Actions 运行、组合状态 |
| **GitLab** (云和自托管) | 一流支持 | MRs、pipelines、jobs |
| **Jenkins** | 一流支持 | jobs、builds、queue 状态 |
| **SonarQube / SonarCloud** | 一流支持 | 质量门、issues、hotspots |
| **Slack** | 一流支持 | 入站 + 出站消息 |
| **其他所有** (PagerDuty、Datadog、Sentry、Jira, …) | 通过 **MCP** | 插入任何 MCP 服务器 |
在您添加 token 之前,每个集成都保持**关闭**状态。Token 存放在 **环境变量** 中,并通过 YAML (`token_env:`) 引用 —— 绝不会提交到配置文件中。
## 安装
**一行命令安装 (推荐 —— 拉取最新发布版二进制文件):**
```
curl -fsSL https://raw.githubusercontent.com/hridesh-net/OpsIntelligence/main/install.sh | bash
```
**固定特定版本:**
```
OPSINTELLIGENCE_VERSION=v0.3.50 bash install.sh
```
**从源代码构建** (Go 版本必须满足 `go.mod` 要求,目前为 **1.26+**):
```
git clone https://github.com/hridesh-net/OpsIntelligence.git
cd OpsIntelligence
FORCE_BUILD=1 bash install.sh
```
安装程序会将 `opsintelligence` 安装到 `/usr/local/bin`(或 `~/.local/bin`),搭建 `~/.opsintelligence/` 目录,并可以注册一个登录服务,以便在登录后启动网关。使用 `SKIP_SERVICE=1` 跳过此步骤。
### 锁定或受限制的客户端机器
1. 首选**带有标签的 GitHub 发布**工件:[Releases](https://github.com/hridesh-net/OpsIntelligence/releases)。使用 `OPSINTELLIGENCE_VERSION=v0.3.50 bash install.sh` 进行固定(根据需要调整标签)。
2. 要禁止意外下载 (clone, go.dev bootstrap, GGUF):设置 `NO_SOURCE_FALLBACK=1` 和 `OPSINTELLIGENCE_SKIP_GO_BOOTSTRAP=1` —— 只有当二进制文件(或本地 Go 工具链)已可用时,安装才会成功。
3. **离线 / IT 镜像:** 从可以访问 GitHub 的机器上复制 `opsintelligence` 和可选的 `skills/`,`chmod +x`,指向 `STATE_DIR` —— shell 安装程序是可选的。
常用环境变量开关:
| 变量 | 默认值 | 作用 |
|---|---|---|
| `OPSINTELLIGENCE_VERSION` | `latest` | 要安装的发布标签 |
| `INSTALL_DIR` | `/usr/local/bin` | 二进制文件存放位置 |
| `STATE_DIR` | `~/.opsintelligence` | 配置 + 数据存储根目录 |
| `FORCE_BUILD=1` | — | 即使存在发布二进制文件也从源代码构建 |
| `NO_SOURCE_FALLBACK=1` | — | 当发布资产 404 时不自动从源代码构建 |
| `OPSINTELLIGENCE_SKIP_GO_BOOTSTRAP=1` | — | 从源代码构建时不从 go.dev 下载 Go |
| `OPSINTELLIGENCE_BOOTSTRAP_GO_VERSION` | `1.26.2` | 引导 Go 版本 (必须满足 `go.mod`) |
| `SKIP_VENV=1` | — | 跳过工具沙箱的 Python venv |
| `SKIP_SERVICE=1` | — | 跳过 launchd/systemd 注册 |
| `WITH_MEMPALACE=1` | — | 安装后引导托管 MemPalace |
| `WITH_GEMMA=1` | — | 下载默认 Gemma GGUF 用于本地智能 |
**卸载:**
```
bash uninstall.sh # remove binary + service, keep state
bash uninstall.sh --purge # remove everything incl. ops.db
bash uninstall.sh --purge --keep-datastore # wipe state but preserve users/RBAC
```
`--keep-datastore` 在迁移主机时很有用:用户、角色、API 密钥和审计数据将为下次安装保留。
## 快速开始
```
# 安装(见上文)或在本地构建:
make build # -> ./bin/opsintelligence
# Onboard(写入 ~/.opsintelligence/opsintelligence.yaml)
./bin/opsintelligence onboard
# Seed 示例团队 policies
./bin/opsintelligence init # drops teams/example-team/ templates into state
# 验证 config 和可达性
./bin/opsintelligence doctor
# 运行 daemon(Slack + gateway + cron + webhooks)
./bin/opsintelligence start
```
引导过程收集:一个 LLM 提供商密钥、可选的 Slack tokens、可选的 GitHub / GitLab / Jenkins / Sonar tokens,以及活动团队名称。高级选项 (memory、MCP、cron、webhooks、**repo_intel**) 位于 YAML 或仪表板中。
完整注释参考请参见 [`.opsintelligence.yaml.example`](.opsintelligence.yaml.example)。
## 仪表板
启动网关后:
```
http://127.0.0.1:18790/dashboard/
```
首次访问会创建 **owner** 账户(datastore + RBAC)。之后您将获得:
- **概览** —— 任务、近期活动、健康状况。
- **任务** —— 实时 SSE 流和记录。
- **用户与角色** —— 邀请、角色 (`owner`、`admin`、`operator`、...)、受保护的删除操作。API:`/api/v1/users`、`/api/v1/roles`。详情:[`doc/users-apikeys-api.md`](doc/users-apikeys-api.md)。
- **API 密钥** —— 创建具有范围和过期时间的密钥;纯文本 `opi__` 仅显示一次。API:`/api/v1/apikeys`。
- **设置** —— 网关 (bind、TLS)、auth/OIDC、数据存储、LLM 提供商、MCP、通道、webhooks、Agent + DevOps 安全护栏、**仓库智能**(索引限制、调用图策略、embeddings)。编辑使用 **`If-Match`** 乐观并发控制。
- **仓库智能** (配置后) —— 每个仓库的扫描结果、学习到的记忆、**调用图**,以及基于混合索引的**询问仓库**搜索。
对于远程访问:将 `gateway.bind` 设置为 `lan` 或 `0.0.0.0`,添加 TLS 证书,可选择 OIDC —— 所有操作都可以在存在 owner 后通过“设置”完成。
仓库的 CLI 镜像:`opsintelligence repos list | add | sync | status | users | tui`。
## 配置团队
**团队**是一个包含 Markdown 文件的文件夹,在启动时会合并到 Agent 的系统提示词中:
```
~/.opsintelligence/teams/platform/
├── README.md
├── pr-review.md # severity, size limits, merge bar
├── sonar.md # quality gates, false-positive policy
├── cicd.md # required pipelines, flakes, rollback
├── secrets-and-safety.md # PII, tokens, approvals
└── runbooks/ # optional operator runbooks
```
从 [`teams/example-team/`](teams/example-team/) 开始,复制、重命名、编辑。Agent 应该指明是哪项策略促成了某项建议。
## DevOps 技能图
随附于 [`skills/devops/`](skills/devops/) —— 在需要时惰性加载:
- [`SKILL.md`](skills/devops/SKILL.md) —— 技能图分布。
- [`pr-review.md`](skills/devops/pr-review.md)、[`sonar.md`](skills/devops/sonar.md)、[`cicd.md`](skills/devops/cicd.md)、[`incidents.md`](skills/devops/incidents.md)、[`runbooks.md`](skills/devops/runbooks.md)。
复制到 `~/.opsintelligence/skills/devops/` 或在开发期间将 `agent.skills_dir` 指向该仓库。使用 `read_skill_node("devops", "")` 调用节点。
还有 [`gh-pr-review`](skills/gh-pr-review/SKILL.md) 可用于严格的 GitHub 审查流程 (checkout、本地 lint/test、行内评论、建议)。
## 智能提示词和链
复杂的 DevOps 回答使用通过 `chain_run` 工具公开的**命名链** (收集 → 分析 → 评判 → 渲染)。参见 [doc/smart-prompts.md](doc/smart-prompts.md)。
```
opsintelligence prompts ls
opsintelligence prompts show pr-review
opsintelligence prompts run pr-review --input pr_url=https://…
```
随附链包括 `pr-review`、`sonar-triage`、`cicd-regression`、`incident-scribe`。覆盖 `~/.opsintelligence/prompts/.md` 下的任何提示文件。
## 安全姿态
- **只读优先**集成;写入需要在相关轮次中进行明确的人工确认。
- 磁盘上**操作员所有的策略文件** (`POLICIES.md`、`RULES.md`、`policies/`) 不能被 Agent 通过文件工具编辑。
- **Secrets 存在于环境变量中**,而不是 YAML 中;`doctor` 会在启动前检查引用的变量。
- **具备 PII 意识的摘要** —— 尽量减少对 CI 日志或差异的逐字引用;绝不回显在内容中看到的 secrets。
## 命令
```
opsintelligence onboard # Interactive setup
opsintelligence init # State dir + seed templates
opsintelligence doctor # Config + reachability
opsintelligence start # Daemon
opsintelligence run "..." # One-shot agent turn
opsintelligence repos … # Repo Intelligence (add, list, sync, tui, …)
opsintelligence skills ls
opsintelligence tools ls # includes devops.*
opsintelligence prompts ls | run --input key=value
```
运行 `opsintelligence --help` 查看标志。
## 开发
```
make build # go build -tags fts5 ./cmd/opsintelligence
make test # go test ./...
make lint # gofmt + go vet
./bin/opsintelligence doctor --config .opsintelligence.yaml.example --skip-network
```
`go test ./internal/devops/...` 针对 `httptest` fixtures 运行 GitHub、GitLab、Jenkins 和 Sonar 客户端测试(无需真实 API)。
## 许可证
MIT —— 参见 [LICENSE](LICENSE)。标签:AIOps, API集成, ChatGPT, CI/CD流水线, CISA项目, CSV导出, DevOps工具, DevOps工具链, DevSecOps, EVTX分析, GitOps, Go语言, OpenCanary, Promptflow, PR审查, PyRIT, Runbook自动化, SRE, StruQ, 上游代理, 事后分析, 人工智能, 代码分析, 代码审查, 代码语义检索, 代码质量检测, 偏差过滤, 凭证管理, 动态代码分析, 可观测性, 基础设施管理, 多智能体系统, 安全合规, 工作流自动化, 平台工程, 开源框架, 异常检测, 持续交付, 持续集成, 日志审计, 智能运维, 用户模式Hook绕过, 知识库构建, 程序破解, 策略即代码, 系统运维, 网络代理, 聊天机器人安全, 自动化平台, 错误基检测, 静态代码分析