Chirag0096/ShiftLog-Gym

GitHub: Chirag0096/ShiftLog-Gym

一个面向 SRE 值班事件响应的强化学习环境,用于训练和评估 LLM 在因果依赖图驱动下的记忆管理策略。

Stars: 0 | Forks: 0

# ShiftLog-Gym ShiftLog-Gym 是**一个特定领域的专业 RL 环境,用于具有因果事件依赖性和可验证结果奖励的内存管理**。 它训练并评估 LLM 在模拟的 SRE/值班事件响应过程中,是否学习到了有用的**内存策略**: - 编写高信号的结构化交接班日志事实 - 在处理关联事件之前检索正确的内存 - 避免自相矛盾或重复的内存写入 - 通过机器可查的根本原因和缓解措施解决事件 本仓库针对 OpenEnv Hackathon 的工作流进行了优化: - 符合 OpenEnv 规范的环境脚手架 - 使用 TRL/OpenEnv 的独立 Google Colab 训练笔记本 - 用于故障分析和叙事的可观测性产物 - README 语言与评判标准保持一致 ## 定位 使用以下确切声明: ShiftLog-Gym 是首个将可验证的 SRE 内存策略与因果依赖图相结合的 RL 环境。 **请勿**声称: - 首个 RL 内存系统 - 首个内存基准测试 - 已解决持久内存问题 需要致谢的相关先前工作: - Memory-R1: [huggingface.co/papers/2508.19828](https://huggingface.co/papers/2508.19828) - AgeMem / Agentic Memory: [huggingface.co/papers/2601.01885](https://huggingface.co/papers/2601.01885) - MemoryArena: [memoryarena.github.io](https://memoryarena.github.io/) - OpenEnv 文档: [meta-pytorch.org/OpenEnv](https://meta-pytorch.org/OpenEnv/) - TRL OpenEnv 集成: [huggingface.co/docs/trl/openenv](https://huggingface.co/docs/trl/openenv) ## 智能体的工作内容 每个回合都是一次模拟值班,涉及共享服务上的多个事件。智能体可以: - `read_shift_log(query, limit)` - `append_shift_log(entry_type, incident_id, service, fact, confidence)` - `update_shift_log(memory_id, patch, reason)` - `inspect_service(service)` - `inspect_dependency(service)` - `run_diagnostic(service, diagnostic)` - `apply_mitigation(service, mitigation)` - `resolve_incident(incident_id, resolution, root_cause)` - `handoff_summary()` 环境是部分可观测的。当前的症状是可见的,但早期的根本原因事实只能通过结构化的交接班日志来恢复。 ## 事件家族 V1 包含 4 个带有种子变体的场景家族: 1. 回滚后反复出现的 DB 连接池耗尽 2. 由陈旧路由或依赖饱和引起的 Auth 超时级联故障 3. 带有重复负载特征的内存 / OOM 回归 4. 带有延迟下游症状的特性开关或已弃用捆绑包回归 每个家族包含: - 产生高价值内存的前兆事件 - 奖励在采取行动前进行检索的后续关联事件 - 机器可检查的正确根本原因和缓解措施 ## 奖励设计 ShiftLog-Gym 采用稀疏优先的奖励设计,包含少量塑形组件: - `R_success`:成功正确解决后的终止奖励 - `R_recall`:在采取行动前检索因果相关内存的奖励 - `R_memory_write`:存储高价值可重用内存的奖励 - `R_memory_integrity`:对自相矛盾、糟糕的 schema 写入和重复项的惩罚 - `R_efficiency`:微小的单工具调用成本,用于代理 MTTR - `R_hallucination`:对捏造的缓解措施或无根据修复的惩罚 要展示的主要科学成果是: 学习到的内存策略提高了关联事件的解决率,同时减少了虚假操作。 ## 本地开发 ### 安装 ``` pip install -e . ``` 可选附加组件: ``` pip install -e .[train] pip install -e .[observatory] pip install -e .[openenv] ``` ### 运行服务器 ``` uvicorn shiftlog_gym.server.app:app --reload --port 7860 ``` ### 运行测试 ``` python3 -m unittest discover -s tests -v ``` ### 生成观测台产物 ``` python3 scripts/export_observatory_artifacts.py ``` ### 运行观测台 ``` streamlit run observatory/app.py ``` ## 仓库布局 ``` shiftlog_gym/ client.py simulator.py scenarios.py trl_env.py server/ train/ 01_env_smoke_test.ipynb 02_grpo_train_colab.ipynb observatory/ app.py tests/ scripts/ ``` ## 训练工作流 使用 `train/` 中的笔记本: - `01_env_smoke_test.ipynb` - 随机基线 - 脚本基线 - 可选的基于提示的基线 - 产物导出和首轮内存指标 - `02_grpo_train_colab.ipynb` - `unsloth/Qwen2.5-3B-Instruct-bnb-4bit` 默认配置 - `Qwen2.5-1.5B-Instruct` 备选配置 - 可选的 Stage A 引导 SFT - Stage B 短周期 GRPO - Stage C 完整的当前环境 GRPO - W&B 免费跟踪和本地产物导出 - `03_eval_publish_colab.ipynb` - 基础模型与训练后 adapter 在保留变体上的对比 - 为 README/博客/模型卡生成图表 - 用于 adapter 和评估产物的 Hugging Face 上传流程 ## 提交清单 - 在 Hugging Face Spaces 上托管环境 - 在本 README 中链接该 Space - 包含以下内容的图表: - 总奖励 - `R_recall` - 行动前检索率 - 关联事件成功率 - 矛盾 / 错误写入率 - 包含短视频、博客文章或幻灯片 - 保持演示专注于一次清晰的内存策略成功案例 ## 当前状态 本仓库包含: - 模拟器核心 - OpenEnv 风格的服务器脚手架 - TRL 环境包装器 - 观测台产物管道 - 针对 schema 完整性、矛盾、因果奖励归因和内存依赖性的单元测试 它被有意设计为单智能体模式,并针对 48 小时的黑客松提交进行了优化。
标签:AIOps, DLL 劫持, Google Colab, IaC 扫描, IT运维, Kubernetes, LLM微调, On-call, OpenEnv, RL环境, Socks5代理, SRE, TRL, 偏差过滤, 因果推理, 大模型Agent, 大语言模型, 强化学习, 强化学习训练, 故障缓解, 根因分析, 站点可靠性工程, 自动化运维, 记忆策略, 记忆管理, 运维AI, 逆向工具, 部分可观测环境, 黑客松项目