hridesh-net/OpsIntelligence

GitHub: hridesh-net/OpsIntelligence

面向 DevOps 的多 Agent 自主智能平台,通过团队可配置的 Markdown 策略驱动 PR 审查、CI 监控、SonarQube 分流、事件响应和运维手册执行,可选仓库深度索引与语义搜索。

Stars: 7 | Forks: 0

OpsIntelligence

DevOps 判定,循环往复 —— 内置您的策略。
PR review · CI 信号 · Sonar 分流 · 事件 · 运维手册 · 可选的深度仓库记忆。

Go MIT Read-only by default

## 简述 | 您提供 | 它处理 | |-----------|------------| | `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绕过, 知识库构建, 程序破解, 策略即代码, 系统运维, 网络代理, 聊天机器人安全, 自动化平台, 错误基检测, 静态代码分析