soloshun/lumis-sdk
GitHub: soloshun/lumis-sdk
面向数据、ML 和软件交付 pipeline 的确定性优先故障诊断与自愈恢复 SDK,将事件证据转化为结构化诊断报告并记录可审查的事件记忆。
Stars: 2 | Forks: 0
Lumis SDK
面向数据、ML 和软件 pipeline 的确定性优先、基于证据的故障恢复方案。
CI · Apache-2.0 · 架构 · 配置 · 实用指南 · 路线图
Lumis SDK 是一个开源的 Python 实现,作为伴随研究中所提出的**智能体恢复与事件响应**参考架构的配套工具。它提供了可重用的契约和本地参考 adapter,用于诊断数据、机器学习和软件交付 pipeline 中的故障,同时保持模型为可选组件,并确保后果性操作(consequential actions)受到明确控制。 Lumis SDK 从“诊断即代码”(Diagnosis-as-Code)开始:将本地事件证据转化为结构化、可审查的诊断、Markdown 报告和操作记忆记录。其发展方向是“修复即代码”(Healing-as-Code):涵盖检测、分流、诊断、规划、审批、修复、验证和学习的安全守护生命周期。 ## 研究与实现边界 | 产物 | 角色 | 仓库边界 | | --- | --- | --- | | **参考架构** | 智能体恢复与事件响应生命周期。 | 论文描述的技术灵活性设计。 | | **Lumis SDK** | Apache-2.0 框架和本地实现配套工具。 | 领域契约、应用服务、port、安全的参考 adapter、CLI、testkit 和实用指南。 | ## 设计原则 - **确定性优先。** 已知的特征签名和项目规则先于可选的模型推理运行。 - **基于证据。** 事实、证据、假设、置信度、矛盾和缺失的证据始终保持可区分。 - **模型可选。** 核心功能可在离线环境下工作;提供商集成实现了轻量级的 gateway port。 - **本地优先。** SQLite 和 Markdown 是可检查的默认选项,而非强制性的托管服务。 - **受保护的恢复。** 方案是加入白名单的建议;审批和验证具有明确的边界。 - **经过确认的记忆。** 模型输出绝不会被悄悄提升为已确认的操作真相。 - **厂商无关。** 领域和应用包不导入任何可观测性、编排、云或 agent SDK。 ## 架构 ``` flowchart LR subgraph USERS[Project entry points] CLI[Lumis SDK CLI] PY[Python application] end subgraph CORE[Lumis SDK framework] CFG[Strict project and rule configuration] APP[Application services] DOMAIN[Domain contracts] PORTS[Optional provider ports] end subgraph LOCAL[Local reference adapters] DET[Deterministic diagnosis] MEM[SQLite incident memory] REPORT[Markdown reports] REDACT[Evidence redaction] end CLI --> CFG CLI --> DET CLI --> MEM CLI --> REPORT PY --> APP APP --> DOMAIN APP --> PORTS APP --> DET CFG --> DET REDACT --> PORTS ``` 规范的包边界: ``` src/lumis_sdk/ ├── domain/ # strict vendor-neutral models ├── application/ # use-case orchestration ├── ports/ # replaceable provider interfaces ├── adapters/ # deterministic, SQLite, Markdown, and local adapters ├── config/ # versioned strict configuration ├── cli/ # command composition ├── security/ # redaction and evidence-safety utilities └── testkit/ # deterministic test doubles ``` 概念验证阶段的扁平化模块已被移除。新代码将导入上述显式的领域、应用、port、adapter、配置和安全包。 阅读[架构概述](docs/architecture/overview.md)、[SDK 参考](docs/LUMIS_SDK_REFERENCE.md)和[配置参考](docs/configuration.md)。 [结构化规则 API 指南](docs/python-api/structured-rules.md)涵盖了复合事件 字段、证据、fixture 测试以及从 `all_contains` 的迁移。 ## 当前功能 | 功能 | 当前行为 | | --- | --- | | 事件输入 | 本地日志归一化和类型化的厂商中立事件契约。 | | 确定性诊断 | 传统的有序文本规则,以及具有类型化比较、所需证据、排序和候选解释的结构化 `all`/`any`/`not` 规则。 | | 版本化配置 | 严格的 `lumis.dev/v1alpha1` 项目和规则集文档;未知字段会导致验证失败。 | | 报告 | 确定性的 Markdown,包含事实、证据、假设、置信度、审查要求和安全边界。 | | 本地记忆 | SQLite 记录、人工干预结果、可见的真实状态以及透明的词汇搜索。 | | 模型边界 | 显式的策略、预算、经过 schema 验证的输出、伪 CI gateway 以及确定性回退机制。 | | 受保护的生命周期 | 上下文、策略、审批、验证和审计 port,且核心不包含任何操作执行器。 | | CLI | 初始化、诊断、doctor、规则验证、报告、干预结果处理和记忆搜索。 | | 实用指南 | 包含可选 Agno/OpenRouter 路径的合成数据、ML 回归和软件交付调查。 | ## 快速开始 Lumis SDK 支持 Python 3.11+,并使用 [uv](https://docs.astral.sh/uv/)。 ``` git clone https://github.com/soloshun/lumis-sdk.git cd lumis-sdk uv sync --all-groups uv run lumis --help ``` ## 安装 Lumis SDK Lumis SDK 已发布到 PyPI,名为 `lumis-sdk`。使用 `uv` 将其添加到项目中: ``` uv add "lumis-sdk>=0.0.1,<0.1.0" ``` 或者使用 pip 将其安装到现有环境中: ``` pip install lumis-sdk ``` 为确保特定版本的可复现性,请锁定版本: ``` uv add "lumis-sdk==0.0.2" pip install "lumis-sdk==0.0.2" ``` 该仓库的 GitHub Actions 工作流通过 PyPI Trusted Publishing 发布经过审查的版本。 运行本地的确定性示例: ``` uv run lumis doctor \ --config cookbook/simple-log-diagnosis/lumis/lumis.yml uv run lumis diagnose \ --config cookbook/simple-log-diagnosis/lumis/lumis.yml ``` 该命令会读取合成的本地日志,生成 Markdown 报告,将未确认的事件记录(episode)保存到本地 SQLite 中,并打印其事件 ID。它不会发起任何网络或模型调用。 ``` uv run lumis report标签:AIOps, Python, 事故响应, 文档结构分析, 无后门, 模块化设计, 流水线, 自动化修复, 逆向工具, 防御加固