自主SRE协调器

DevOps Agent是一款生产级的自主SRE助手,用于管理、诊断和优化Kubernetes和Docker基础设施,结合高级认知规划和稳健的模型上下文协议执行层。

  • by NayanEupho
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 NayanEupho/Agentic-Docker

使用说明

🚀 DevOps代理:自主SRE编排器

这个 DevOps代理 是一个生产级的自主SRE(站点可靠性工程)助手,旨在管理、诊断和优化Kubernetes和Docker基础设施。它将高级认知规划与稳健的 模型上下文协议(MCP) 执行层。


✨ 特性

🛡️ 生产硬化架构

  • 弹性持久性:自动会话恢复和数据库完整性保护(db.py)即使在繁重的并发负载下,也能确保100%的数据一致性。
  • Singleton运输:强化K8和Docker客户端单例,具有连接状态监控功能,可实现高可用性。
  • 指数回归:内置RPC级重试逻辑 client_v2.py 针对瞬时网络/API故障。

🧠 高级认知SRE逻辑

  • 定性诊断:代理人提供专家级裁决(✅ 健康/⚠️ 在呈现原始数据之前。
  • 智能上下文管理:分层内存引擎使LLM专注于当前的高优先级目标,同时将臃肿的日志卸载到SQLite。
  • 多回合推理:能够进行复杂的链式诊断(例如。, 查找失败的Pod->检查日志->识别OOMKilled->建议增加资源限制).

⚡ 性能优化

  • 快速路径编排:执行500毫秒以下的常见发现查询(list pods, check nodes).
  • 基准延迟:本地(OpenAI/Gemini)和远程(Ollama/Qwen)LLM主机的预校准预算。

🛠️ 入门指南

1.先决条件

  • Python 3.10+
  • 访问Kubernetes集群(MicroK8s、Minikube或云管理)
  • LLM主持人(Ollama跑步 qwen3.5:9b 或推荐更高)

2.安装

# Clone and install in editable mode
pip install -e .

# Configure environment
cp .env.example .env
# Edit .env with your LLM_HOST and K8S settings

3.使用方法

# Launch the CLI TUI
python -m devops_agent.cli

# Run a specific diagnostic query
python -m devops_agent.cli execute "Check cluster node health"

🧪 测试与验证

该系统包括一个全面的验证套件,专为高并发和长时间运行的SRE模拟而设计。

# Run the core stress test (Verifies DB integrity)
pytest tests/test_agent_stress_robust.py

# Run the 12-layer comprehensive E2E pipeline
python scripts/run_comprehensive_e2e.py

🔗 文档

  • 📘 [架构和开发人员指南](file:///c:/Users/Nayan/Desktop/agentic-docker/ARCHITECTURE_AND_GUIDE.md)
  • 🚀 [外部MCP集成(Claude/OpenCode)](file:///c:/Users/Nayan/Desktop/agentic-docker/EXTERNAL_MCP_GUIDE.md)
  • 🧪 [手动测试和基准测试指南](file:///c:/Users/Nayan/Desktop/agentic-docker/MANUAL_TESTING_GUIDE.md)

网络Docker部署

对于网络访问,推荐的部署模式是带有反向代理覆盖的Docker Compose。这为用户提供了一个来源,而不是五个单独的服务URL。

cp .env.example .env
# Edit .env for the remote machine IP, model endpoint, Kubernetes API URL, and ports.
# The reverse proxy defaults to port 3030.

docker compose -f docker-compose.yml -f docker-compose.reverse-proxy.yml build
docker compose -f docker-compose.yml -f docker-compose.reverse-proxy.yml up -d

通过反向代理打开应用程序:

Chat UI:       http://<DEVOPS_PUBLIC_HOST>:3030/
K8s Dashboard: http://<DEVOPS_PUBLIC_HOST>:3030/dashboard/
Agent API:     http://<DEVOPS_PUBLIC_HOST>:3030/api/
Dashboard API: http://<DEVOPS_PUBLIC_HOST>:3030/dashboard-api/
Network MCP:   http://<DEVOPS_PUBLIC_HOST>:3030/mcp

在此模式下,聊天UI和仪表板被构建为调用相同的源路径,例如 /api, /dashboard-api,以及 /dashboard/这意味着正常的浏览器使用不应该遇到CORS问题,因为浏览器只与反向代理源通信。避免直接打开单个服务端口以供常规使用,因为这会重新引入多个来源。

网络MCP保持与代理API断开连接。外部代理连接到 /mcp 通过代理发送自己的Kubernetes服务帐户令牌,如下所示:

Authorization: Bearer <service-account-token>

代理保留 Authorization 头球MCP服务器不存储共享客户端令牌,也不接受查询字符串令牌。

对于未来的DNS/TLS,只需要更改Nginx的compose/config:暴露 443,装载证书文件,添加 listen 443 ssl,配置 ssl_certificate 和 ssl_certificate_key,并可选择将HTTP重定向到HTTPS。应用程序容器和MCP令牌模型不需要更改。

看 docker/README.md 了解详细的Docker部署指南。