lambda-alpha-labs/Graphenium

GitHub: lambda-alpha-labs/Graphenium

一款面向 AI 编程代理的本地架构门禁工具,通过 AST 解析和 Datalog 策略引擎在代码变更落地前拦截架构边界违规。

Stars: 21 | Forks: 3

Graphenium Banner

**Graphenium 是一个用于 AI 编程代理的本地、预检 linter 和外部架构门禁。** 它通过机械性地拦截违反模块边界、绕过服务层或引入架构漂移的代码变更,对 AI 助手(如 Claude Code、 Cursor、 Aider 和 Grok)强制执行结构合规性。 标准的开发者工具帮助代理查找文件。而 Graphenium 则旨在防止代理制造架构债务。 ``` Without Graphenium (Vibe-Coding) With Graphenium (Containment) -------------------------------- ----------------------------- Agent edits files blindly Agent validates design pre-flight Agent ignores architectural layers Graphenium blocks direct boundary violations Constraints decay in long chats External Datalog engine enforces strict rules Reviewer hunts for bypassed layers Reviewer gets deterministic scope-creep audits CI checks only test passing CI fails on architectural drift ``` 二进制文件:`gm` Schema:`0.2.0` 状态:AST + Stack Graphs 解析器已稳定,预检策略引擎已稳定,遥测覆盖层为实验性功能 ## Graphenium 存在的意义:遏制缺口 AI 编程代理在局部修改方面效率极高,但它们存在**结构性盲目和上下文衰减**的问题。在长时间的聊天会话中,代理会忘记你的系统指令,并倾向于选择阻力最小的路径(例如,为了通过局部测试,直接在 HTTP controller 中编写原始的数据库调用)。 依赖像 `CLAUDE.md` 或系统 prompt 这样的“软性”防护栏来维护设计模式是行不通的。当上下文窗口爆满时,这些约束就会被丢弃。 Graphenium 建立了**外部工程治理**。它在 LLM 上下文之外运作,将架构边界视为严格的、已编译的契约。 ``` graph TD A[Agent Declares Design Spec] --> B[Graphenium Pre-Flight Check] B -->|Violation: Block| C[Reject with structural hints] B -->|Pass: Authorize| D[Agent Implements Code] D --> E[Graphenium Post-Edit Audit] E -->|Scope Creep| F[Fail Build / Block PR] E -->|Compliant| G[Approve for human review] ``` ## 核心技术生命周期:先设计后验证 Graphenium 对代理强制执行明确的三步编译器循环: 1. **声明意图(预检 Spec):** 在修改任何代码之前,代理会将其计划的修改(类、方法和依赖项)注册到虚拟规划工作区中。 2. **传递性策略求解:** Graphenium 的引擎运行本地的 Datalog 求解器来分析提议的虚拟 AST。如果设计绕过了中间架构层或使用了被禁用的 symbol,Graphenium 将拦截该计划并提供结构性反馈。 3. **事后合规审计:** 在代理编写完代码后,Graphenium 会解析物理修改,确保代理没有触碰声明范围之外的文件,没有引入计划外的依赖项,并且确实实现了其声明的 spec。 ## 快速开始 ``` # 初始化 workspace # 使用标准项目默认值生成 .grapheniumignore gm init # 构建本地 AST 和 Stack Graphs 索引(无需 LLM 密钥) gm run . --no-semantic --no-viz # 诊断 codebase 健康状况和 import resolution gm doctor --graph graphenium-out/graph.json --resolution # 分析结构邻域 gm query "authentication flow" --budget 2000 # 为 AI coding agents 启动 MCP server gm serve --graph graphenium-out/graph.json --watch ``` ## 安装说明 ``` # 从本地 checkout cargo install --locked --path . # 或使用平台安装程序 curl -fsSL https://raw.githubusercontent.com/lambda-alpha-labs/Graphenium/main/install.sh | sh ``` *需要 Rust 1.81 或更高版本。Tree-sitter 语法会被编译并打包。* ## 核心技术能力 ### 1. AST 验证的来源(事实与启发式) 大多数 AI 开发者工具使用 LLM 来猜测模块之间的依赖关系,这会导致幻觉。Graphenium 使用 Tree-sitter 和 Stack Graphs 建立了一个由编译器证明为真的索引。每个关系都带有明确的来源: * `EXTRACTED` **(AST 证明):** 由编译器支持的事实(import、类型继承、显式 call 签名)。 * `INFERRED` **(启发式):** 强制代理去验证的语义线索。 * `AMBIGUOUS` **(冲突):** 标识符冲突迫使代理停止并直接检查源文件。 ### 2. Datalog 驱动的策略求解 静态 linter 可以检查直接的 import,但它们对多跳架构绕过视而不见。Graphenium 通过将你的代码库结构编译为逻辑事实并运行嵌入式 **Datalog 推理引擎**(`src/analyze/query.rs` & `stdlib.dl`)解决了这个问题。 它使用一阶逻辑和不动点迭代,在无限数量的依赖跳转中从数学上证明边界违规。 ### 3. 声明式结构治理 在 commit 时或在 CI 中强制执行系统设计边界。你可以在仓库根目录的 `.graphenium/policy.json` 中声明规则: ``` { "rules": [ { "type": "forbidden_dependency", "from_pattern": "src/controllers/**", "to_pattern": "src/db/**", "reason": "Controllers must use services, not access DB directly" }, { "type": "strict_layering", "layers": [ "src/serve/**", "src/analyze/**", "src/extract/**", "src/model/**" ], "reason": "Respect tiered architecture: serve -> analyze -> extract -> model" } ] } ``` 使用 `gm check --plan --strict` 在 CI 中运行预检策略检查和事后合规审计。 ## 语言支持 Graphenium 支持包含 Rust、 Python、 Go、 JavaScript、 TypeScript、 Java、 C、 C++ 和 C# 的混合代码库。 C# 项目通过解析 `.sln` 和 `.csproj` 获得了构建边界感知能力,使 Graphenium 能够将 assembly、namespace 和项目引用建模为结构边界。 ## MCP 设置 将 Graphenium 直接集成到代理的执行循环中。对于从项目目录启动 MCP 的工具,请使用 `scripts/graphenium-mcp` 启动器(仅在缺少索引时重新构建,保持启动瞬间完成)。 ``` install -m 755 scripts/graphenium-mcp ~/.local/bin/graphenium-mcp ``` ### Claude Code ``` claude mcp add graphenium --scope user -- gm serve --graph /path/to/graphenium-out/graph.json --watch ``` ### Grok 在 `~/.grok/config.toml` 中配置: ``` [mcp_servers.graphenium] command = "/Users//.local/bin/graphenium-mcp" args = [] enabled = true ``` ### Cursor 添加到 `~/.cursor/mcp.json`: ``` { "mcpServers": { "graphenium": { "command": "gm", "args": ["serve", "--graph", "/path/to/graphenium-out/graph.json", "--watch"] } } } ``` ## 详细文档地图 | 文档 | 用途 | |---|---| | [`docs/GETTING_STARTED.md`](docs/GETTING_STARTED.md) | 安装、初始代码库索引和 MCP 设置。 | | [`docs/AI_SETUP.md`](docs/AI_SETUP.md) | 逐步的助手设置手册。 | | [`docs/AGENT_WORKFLOWS.md`](docs/AGENT_WORKFLOWS.md) | 遏制工作流:预检、编辑中规划和验证。 | | [`docs/CI_AND_GOVERNANCE.md`](docs/CI_AND_GOVERNANCE.md) | 在 CI pipeline 中强制执行架构策略。 | | [`docs/COMMAND_REFERENCE.md`](docs/COMMAND_REFERENCE.md) | 完整的 CLI 语法和配置参数。 | | [`docs/MCP_TOOLS.md`](docs/MCP_TOOLS.md) | MCP 客户端的行为规范。 | | [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | 索引 pipeline、C# 项目引用和 Datalog 评估。 | | [`docs/TRUST_MODEL.md`](docs/TRUST_MODEL.md) | AST 证明与启发式置信度的底层细节。 | | [`docs/BENCHMARKING.md`](docs/BENCHMARKING.md) | 性能指标:延迟、token 预算和扩展限制。 | | [`docs/COMPARISON.md`](docs/COMPARISON.md) | 为什么 Graphenium 不同于 grep、AST 工具和 GraphRAG。 | | [`docs/HARNESS_ADAPTER.md`](docs/HARNESS_ADAPTER.md) | 将 Graphenium 的结构引擎作为库嵌入。 | | [`docs/SECURITY.md`](docs/SECURITY.md) | 本地优先保证和机密排除规则。 | ## 联系与企业版 * Issue 和功能请求:[GitHub Issues](https://github.com/lambda-alpha-labs/Graphenium/issues) * 安全报告:security@graphenium.dev * 设计合作伙伴、企业试点和合作:hello@graphenium.dev ## 许可证 MIT。详见 [`docs/LICENSE.md`](docs/LICENSE.md)。
标签:AI代码审查, AI编程助手, IPv6支持, SOC Prime, 云安全监控, 代码规范, 可视化界面, 开发工具, 架构治理, 通知系统, 静态分析