sandyArt/DevGuardian-AI
GitHub: sandyArt/DevGuardian-AI
基于 Azure OpenAI 和 Semantic Kernel 的自动化事件响应系统,通过四阶段 Agent 流水线实现从日志诊断到代码修复的全闭环处理。
Stars: 0 | Forks: 0
# DevGuardian AI
## 架构
```
POST /api/agents/run
│
▼
WorkflowEngine
│
┌────┴────────────────────────────────────┐
│ SpecLoader (YAML) │
└────┬────────────────────────────────────┘
│
┌─────▼──────┐ ┌───────────────┐ ┌──────────┐ ┌────────────┐
│ Monitoring │→ │ RootCause │→ │ Fix │→ │ Deploy │
│ Agent │ │ Agent │ │ Agent │ │ Agent │
└────────────┘ └───────────────┘ └──────────┘ └────────────┘
│ │
└── Diagnostics Plugin ── GitHub Plugin
```
**核心设计原则**
| 原则 | DevGuardian 如何实现 |
|-----------|------------------------------|
| 规范驱动 (Spec-driven) | Agent 行为在 YAML 中定义 – 添加 Agent 无需修改代码 |
| MCP 兼容 (MCP-compatible) | `/mcp/tools/*` 端点将每个 Agent 作为可发现工具公开 |
| 可组合 (Composable) | 每个 Agent 的输出是下一个 Agent 的输入(思维链 pipeline) |
| 可观察 (Observable) | 每个 Agent 阶段的结构化 JSON 输出 |
## 项目结构
```
DevGuardianAI/
├── DevGuardianAI.sln
├── specs/ ← YAML agent specifications
│ ├── monitoring-agent.yaml
│ ├── rootcause-agent.yaml
│ ├── fix-agent.yaml
│ └── deploy-agent.yaml
└── src/
├── DevGuardian.API/ ← ASP.NET Core host + Swagger + MCP endpoints
│ ├── Controllers/
│ │ ├── AgentsController.cs
│ │ └── McpController.cs
│ ├── Models/ApiModels.cs
│ ├── Program.cs
│ └── appsettings.json
├── DevGuardian.AgentRuntime/ ← Core spec-execution engine
│ ├── Models/
│ │ ├── AgentSpec.cs
│ │ └── AgentTool.cs
│ ├── AgentRuntime.cs
│ ├── KernelFactory.cs
│ ├── SpecLoader.cs
│ └── WorkflowEngine.cs
└── DevGuardian.Tools/ ← Semantic Kernel plugins
├── DiagnosticsTool.cs
├── GitHubTool.cs
└── PluginRegistrar.cs
```
## 前置条件
- [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
- 拥有 **gpt-4o** 部署的 Azure OpenAI 资源
- (可选)用于创建 PR 的 GitHub Personal Access Token
## 快速开始
### 1 – 配置凭据
编辑 `src/DevGuardian.API/appsettings.Development.json`:
```
{
"AzureOpenAI": {
"Endpoint": "https://.openai.azure.com/",
"Key": "",
"Deployment": "gpt-4o"
},
"GitHub": {
"Token": "",
"Owner": "your-org",
"Repo": "your-repo"
}
}
```
或使用环境变量:
```
set AZURE_OPENAI_ENDPOINT=https://...
set AZURE_OPENAI_KEY=...
set AZURE_OPENAI_DEPLOYMENT=gpt-4o
```
### 2 – 还原并运行
```
cd DevGuardianAI
dotnet restore
dotnet run --project src/DevGuardian.API
```
Swagger UI 可通过 **http://localhost:5000** 访问。
## API 参考
### 完整 Pipeline
```
POST /api/agents/run
Content-Type: application/json
{
"logs": "2024-03-12T10:05:01 ERROR PaymentService.cs line 210 NullReferenceException..."
}
```
**响应**
```
{
"incident": "{ ... monitoring agent JSON ... }",
"rootCause": "{ ... root cause JSON ... }",
"fix": "### EXPLANATION\n...",
"deployPlan": "{ ... deploy JSON ... }"
}
```
### 单个 Agent(临时)
```
POST /api/agents/invoke
Content-Type: application/json
{
"agentName": "monitoring-agent",
"input": ""
}
```
### Agent 目录
```
GET /api/agents/catalogue
```
### MCP 工具发现
```
GET /mcp/tools
```
### MCP 工具调用
```
POST /mcp/tools/monitor
POST /mcp/tools/rootcause
POST /mcp/tools/fix
POST /mcp/tools/deploy
```
所有 MCP 端点的请求体:
```
{ "input": "" }
```
## 添加新 Agent(无需编码)
1. 创建 `specs/security-agent.yaml`
2. 定义 `name`、`description`、`inputs`、`prompt`
3. 重启 API(或实现热重载)
4. Agent 将自动在 `/api/agents/invoke` 和 `/mcp/tools` 上可用
```
name: SecurityAgent
description: Scan for OWASP Top-10 vulnerabilities in generated code
inputs:
- fix
max_tokens: 1500
prompt: |
You are a security engineer. Review the provided C# fix for vulnerabilities.
...
```
## 黑客马拉松演示流程(2分钟)
请参阅 [DEMO_SCRIPT.md](DEMO_SCRIPT.md) 获取分步演示指南。
## 评分标准契合度
| 评委标准 | DevGuardian 实现 |
|-----------------|---------------------------|
| Agentic AI | 4 阶段自主 Pipeline,无需人工干预 |
| 规范驱动 / MCP | YAML 规范 + `/mcp/tools` 端点 |
| A2A 互操作性 | 任何 MCP 客户端均可调用 DevGuardian Agent |
| 可扩展性 | 新 Agent = 仅需新的 YAML 文件 |
| Azure OpenAI | Semantic Kernel + Azure OpenAI gpt-4o |
| 现实价值 | 事件 → 根本原因 → 修复 → PR 全流程 < 30 s |
## 许可证
MIT
标签:AIOps, API集成, ASP.NET Core, GitHub集成, LLM, MCP协议, Unmanaged PE, YAML配置, 人工智能, 可观测性, 工作流引擎, 插件化架构, 智能运维, 根因分析, 用户模式Hook绕过, 自动修复, 自动化事件响应, 自动驾驶运维, 软件开发