SuperAPI AI 工具集

aegis

Aegis 是一个面向 LLM 驱动编码工作流的 MCP 服务器,用于在代理写入文件前提供“无判断”的事实观察。它不阻止、不警告、不评分,只输出关于拟议文件写入的发现(findings),包括语法、信号、安全和跨文件工作区结构等信息,供消费代理(LLM)自行决定如何处理。V2 版本采用仅 MCP 架构,提供单一工具 validate_file,首次调用时构建工作区索引,后续调用复用 mtime 缓存。它不替代 linter、SAST 或自动修复工具,主要价值在于让多轮重构中的回归、LLM 描述与实际工具调用偏差、结构规则侵蚀等问题变得可见。

访问官网

工具介绍

Aegis 是一个 MCP 服务器,用于在 LLM 驱动的编码工作流中,对拟议的文件写入提供事实性观察。它的核心理念是“描述事实,由代理决定做什么”。Aegis 不会阻止、警告、允许或做出任何判断,每个发现都是一条事实,例如“此正则在此处匹配”“此信号增加了 1”“此文件导入另一个文件,而后者又反向导入它”,并附带足够的结构化上下文,供消费代理(LLM)自行决定如何处理。

用途 Aegis 旨在让 LLM 系统在编码过程中容易出现的三类失败变得可见:多轮重构会静默累积回归;LLM 描述的操作与实际工具调用发生偏离;结构规则在无人察觉的情况下被侵蚀。Aegis 只确保这些数据被摆到桌面上,至于这些失败在当前上下文中是否可接受,则由代理或人类来判断。

主要能力 Aegis 通过两个基础设施层支撑一个 MCP 工具。第一层是解析层:每个文件调用一次 tree-sitter,并在所有发现生成器之间共享,即使语法损坏也始终返回语法树。第二层是 WorkspaceIndex:对每个文件的导入和公共符号建立反向索引,并带有 mtime 缓存,因此重复的 MCP 调用只会重新解析实际发生变化的文件。

发现分为四类:Syntax(语法)、Signal(信号)、Security(安全)和 Workspace(工作区)。每个发现都携带 file、可选的 range 和 snippet,以及一个结构化的 context 映射。所有发现都不携带严重性字段。

用户可以在同一行或上一行源码中使用 aegis-allow: <rule_id>(或 aegis-allow: all)来标记 user_acknowledged: true,匹配的发现不会被丢弃,而是让代理看到该确认并自行决定是否尊重它。

使用方式 V2 只发布一个二进制文件:aegis-mcp(MCP 服务器)。将支持 MCP 的客户端(如 Claude Code、Cursor 或你自己的代理)通过 stdio 指向 aegis-mcp 二进制文件即可。具体配置语法因客户端而异,服务器本身不接受任何标志。

唯一的工具是 validate_file。首次调用时传入 workspace_root 会构建工作区索引(解析每个受支持的文件一次);后续调用复用缓存,只重新解析 mtime 发生变化的文件。没有单独的“扫描”步骤。

支持的语言通过文件扩展名在运行时调度。添加一种语言需要一个 Cargo 依赖、crates/aegis-core/src/ast/languages/ 下的一个适配器文件,以及一个 .scm 导入查询,无需其他改动。

适用场景 Aegis 的边际价值在中等能力模型处理棕地(已有代码库)工作时最高,因为现有代码库存在约束(循环图、公共 API、已移除的调用方),代理否则可能会偏离这些约束。对于 GPT-5 级别或 Sonnet 级别的模型从零开始编写全新项目,它们通常会自动选择安全默认值,Aegis 的发现大多数时候为空。

限制 Aegis 是一个范围很窄的工具。它不是一个 linter,也不能替代 ruff、eslint 或 clippy;它只对 crates/aegis-core/src/{security.rs,signals/} 中显式编码的模式触发,没有这些模式的普通“坏代码”对它来说是不可见的。它也不是一个 SAST 套件;10 条 SEC 规则覆盖了众所周知的反模式(eval、硬编码密钥、弱随机数、关闭 TLS、CORS 配置错误等),但远不及 Bandit 或 Semgrep 的覆盖范围,应将其视为抽查而非完整审计。它也不是自动修复器:Aegis 只描述,代理决定;发现携带 severity_hint 字符串但没有强制执行,不会重试、重写或回滚。如果你想要一个发布裁决的关卡,应安装 linter、SAST 或 pre-commit 钩子;Aegis 是它们之下的那一层——只有事实,没有判断。

设计原则 描述事实,不做判断:发现没有严重性字段,由消费代理决定哪些发现重要以及如何反应。一次解析,共享语法树:每个发现生成器消费一个 ParsedFile,没有按信号创建 Parser::new(),没有临时文件往返。工作区引导是隐式的:首次调用传入 workspace_root 即构建索引,后续调用命中 mtime 缓存,没有单独的扫描工具或手动初始化步骤。没有自动学习,没有目标优化:Aegis 不跨调用跟踪成功/失败,不调整规则,不评分结果,状态只携带工作区缓存。一个 MCP 工具,窄接口:只有 validate_file,没有 retry、hint 或 explain,代理推理是代理自己的事。

Aegis 采用 MIT 许可证。V2 为仅 MCP 架构,管道、运行时、提供者、IR、决策等 crate 已被移除,判断逻辑位于消费代理中。