zix-chen/agent-ops-lab
GitHub: zix-chen/agent-ops-lab
一个面向生产环境的 AI 事件响应模拟器,聚焦于 Agent 在工具故障、上下文恶意和操作高风险场景下的确定性防护机制。
Stars: 0 | Forks: 0
# Agent Ops 实验室
当一切正常运行时,Agent 的演示很容易给人留下深刻印象。本项目关注的是一个更难的问题:**当工具发生故障、上下文存在恶意,或者某个操作的风险过高而不适合自动化时,会发生什么?**
它只需一条 Go 命令即可在本地运行,且无需 API key。
## 为什么与众不同
- **幂等执行** — 重复的警报会返回原始的工作流运行结果。
- **有限重试** — 瞬态故障会进行重试,但不会演变成重试风暴。
- **熔断机制** — 严重的宕机会停止级联调用。
- **人工审批** — 高风险的流量变更绝不会在无人值守的情况下执行。
- **Prompt 注入防御** — 检索到的内容无法覆盖原有策略。
- **可审计性** — 每一个决策都会记录操作者、结果和证据。
- **回归评估** — 四个安全测试用例支持一键运行。
- **可选的真实 LLM** — 任何兼容 OpenAI 的 chat-completions API 都可以用来丰富诊断结果;确定性的控制逻辑依然具有决定权。
## 运行说明
环境要求:Go 1.24+
```
go run ./cmd/server
```
打开 [http://localhost:8080](http://localhost:8080)。
或者使用 Docker:
```
docker build -t agent-ops-lab .
docker run --rm -p 8080:8080 agent-ops-lab
```
## 五分钟演示
1. 运行 **Transient payment timeout**(短暂支付超时)并检查重试和审批关卡。
2. 点击 **Replay same alert**(重放相同警报),观察去重指标的增加。
3. 运行两次 **Provider hard outage**(提供商严重宕机);第二次运行会被短路。
4. 运行 **Runbook prompt injection**(Runbook 提示词注入),验证在拦截后没有工具被触发。
5. 点击 **Run evaluation suite**(运行评估套件)以执行四个安全回归测试用例。
## 可选的 LLM 增强
该实验室无需模型即可运行。如果希望通过兼容 OpenAI 的 endpoint 来丰富最终诊断结果:
```
export LLM_API_KEY="..."
export LLM_BASE_URL="https://api.openai.com/v1"
export LLM_MODEL="gpt-4.1-mini"
go run ./cmd/server
```
Key 仅从进程环境变量中读取。切勿将其提交到代码库。
## 架构
```
flowchart LR
Alert --> Normalize
Normalize --> Runbook
Runbook --> Telemetry
Telemetry --> Policy{Policy gate}
Policy -->|safe| Automate
Policy -->|risky| Approval
Policy -->|unsafe| Block
Telemetry -->|repeated failure| Breaker[Circuit breaker]
Automate --> Audit
Approval --> Audit
Block --> Audit
Breaker --> Audit
```
请参阅 [docs/architecture.md](docs/architecture.md) 了解信任边界和 API 的详细信息。
## 工程检查
```
make check
```
这将运行格式化、静态分析、开启了竞态检测的测试以及确定性的评估套件。GitHub Actions 会在每个 pull request 中运行相同的检查关卡。
## 面试探讨要点
- 为什么应该由模型提出诊断建议,而由代码掌握授权。
- 幂等性如何将重复交付从一场事故转化为一个可观测的指标。
- 为什么必须将重试预算和熔断器放在一起协同设计。
- 如何将 Agent 的异常场景转化为回归测试套件。
- 审计事件如何使人工审批和事后审查成为可能。
## 路线图
- 将运行记录和审批持久化存储到 PostgreSQL 中。
- 添加 OpenTelemetry traces 和 Prometheus metrics。
- 对工具调用请求进行签名,并支持作用域受限的凭证。
- 添加异步审批回调。
- 根据带有版本的故障数据集评估模型输出。
## 许可证
[MIT](LICENSE)
标签:AI智能体, EVTX分析, Go语言, Petitpotam, 安全防护测试, 容错机制, 日志审计, 程序破解, 请求拦截, 运维自动化