AI-Ops 是一个在本地或私有环境运行的“自动化运维修复”系统:它监听应用日志,检测错误后调用 Claude 进行代码修复,然后以 GitOps 的方式提交到代码托管平台(GitHub/GitLab),并通过邮件通知审核合并。
- 实时日志监听(Agent)
- 错误收集与去重(关键词触发 + 指纹)
- Claude 修复两种模式:
- code_blocks:输出结构化
<code_block>,由系统应用到文件 - agentic:Claude 直接在仓库工作目录内修改文件
- code_blocks:输出结构化
- GitOps 工作流:创建修复分支、提交、推送、PR/MR
- 邮件通知:发送修复摘要与 PR 链接
- 追踪存储:SQLite 记录 trace 与步骤状态
ai_ops/项目主包agent/agent.pyAgent 客户端server/http_server.py服务端(任务接收与编排)core/orchestrator.py修复流程编排monitoring/log_monitor.py日志监听integrations/Claude 与邮件vcs/Git 操作与 GitHub/GitLab 接口trace/trace_store.py追踪存储workspace/workspace_manager.py工作区管理
scripts/启动脚本server.py启动服务端agent.py启动 Agentlocal_monitor.py单机本地监控模式
examples/app.py示例应用(用于产生错误日志)doc/e2e-test.md端到端测试步骤
系统依赖:
- Python 3.10+
- Git
- Claude CLI(
CLAUDE_COMMAND对应的可执行命令) - 可选:
watchdog、python-dotenv、PyGithub
Python 依赖(示例):
pip install watchdog python-dotenv PyGithub支持 .env 或系统环境变量,关键项如下:
- 基础
CODE_HOST=github或gitlabLOG_FILE_PATH(本地模式使用)
- Claude
CLAUDE_COMMAND=claudeCLAUDE_FIX_MODE=code_blocks(默认)或agenticCLAUDE_ARGS=(附加 CLI 参数)
- GitHub
GITHUB_TOKEN(PAT,需 push/PR 权限)GITHUB_REPO(可选;server 会从repo_url自动解析)
- GitLab
GITLAB_BASE_URL、GITLAB_TOKEN、GITLAB_PROJECT
- Server
HTTP_HOST=127.0.0.1HTTP_PORT=8080SERVER_API_KEY(可选,启用 API 鉴权)
- 邮件
SMTP_SERVER、SMTP_PORT、SMTP_USER、SMTP_PASSWORDRECEIVER_EMAIL
- 启动服务端
python scripts/server.py- 启动 Agent(监听某个日志文件)
python scripts/agent.py `
--log-path "C:\Users\asta1\PycharmProjects\ai-ops-example\app.log" `
--repo-url "https://github.com/cxxCoolStar/ai-ops-example.git" `
--server-url "http://127.0.0.1:8080" `
--code-host github- 触发错误(写日志)
python examples/app.py- 查询任务状态
Invoke-RestMethod "http://127.0.0.1:8080/v1/tasks/<task_id>" | ConvertTo-Json更多细节:请见 doc/e2e-test.md
- code_blocks:稳定、可控、适合最小变更与审计
- agentic:Claude 直接编辑仓库,适合多文件联动与复杂改动 切换方式:
set CLAUDE_FIX_MODE=agentic- PR 422“没有共同历史”:校验
repo_url、token 权限、remote 配置;必要时在 clone 后fetch并 checkout 默认分支再切分支 - git push 128:检查 token 权限、网络连通性、本地 git 凭据冲突
- Claude 路径不正确:系统已做容错(剥离 workspaces/repo 等前缀,尝试候选相对路径),仍建议输出仓库内真实相对路径或直接文件名