
Aegis aegis-v0.11.0-alpha
面向AI代理的操作系统级监控器:观察本地机器上的进程、文件访问和网络活动,并将每个事件归属到相应的代理实例。
AEGIS
面向 AI 编码代理的独立、操作系统级可观测性
从代理外部观察 AI 代理在你的机器上实际执行的操作——进程、文件、网络——无需任何钩子。
AEGIS 是一个面向 AI 代理的独立、操作系统级观察器。 无论代理是如何启动的,或者它是否配合监控,它都会观察代理进程、文件访问和网络活动——并将每一条观察结果关联到特定的代理实例,且该归属的证据会被明确记录在案。它基于 CommonJS JavaScript 监控引擎构建,渲染进程和共享类型使用 TypeScript。开源、本地化、无遥测——一切数据都保留在你的机器上。

演示录制于 v0.10.0-alpha;此后部分标签已重命名。
AEGIS 观察什么
| 层 | 方式 |
|---|---|
| 进程 | 110 个代理(262 个进程名称签名)、父进程链解析、IDE 宿主检测、WSL 和 IDE 扩展发现 |
| 文件 | 对敏感目录(.ssh、.aws、.gnupg、.env*、云配置)以及已知代理的已注册配置路径进行 chokidar 监视;在 Windows 上检测打开句柄和 Restart-Manager 读取 |
| 网络 | 每个代理进程的出站 TCP、正向确认的反向 DNS,以及每个端点的判定——allowlisted、unknown 或 flagged;未识别的端点绝不会显示为安全 |
| 行为 | 8 个类别中的 73 条检测规则(YAML,热重载)、滚动 10 会话基线、跨四个轴(网络 / 文件系统 / 进程 / 基线)的异常评分 |
| 本地 LLM | 对 Ollama 和 LM Studio 的运行时探测,包括已加载模型;其他运行时(如 vLLM 和 llama.cpp)通过进程签名检测 |
上述计数事实并非手工维护:npm run counts:check 在每次 CI 运行时都会从代码树中重新推导每个记录的计数器,并在文档中的数字与现实偏离时使构建失败。
证据图
AEGIS 与进程查看器的区别不在于传感器——而在于每个事件都关联到一个代理实例,并附带你可以审计的证据:
- 实例身份。 代理以
pid+ 操作系统出生时间(instanceId)作为键,因此被回收的 PID 是新实例,而不是旧实例历史的延续。身份缓存由见证者把关,CI 运行注入证明(npm run verify:gate,4 个变异体),如果身份可能从过期缓存中提供,该证明就会变红。 - 带明确证据的归属。 每条审计记录都带有
pid、instanceId和一个attribution对象,其状态有三种——confirmed、inferred 或 unattributed——并由一个封闭的证据代码注册表支持。当 AEGIS 不知道哪个代理接触了文件时,它会标注为 unattributed;它绝不会虚构所有者。 - 防篡改日志。 审计事件是哈希链式 JSONL(事件模式 v1),每日轮转、30 天保留期,并在写入缓冲区溢出时显式标记丢失。
- 实测而非断言。 身份机制在仓库内进行了基准测试:在两次记录的运行中,提供者的出生时间一致性对所有可比较进程都是精确的(542/542 和 419/419),进程快照辅助进程每次扫描约耗时 10 毫秒,而回退提供者则需要数百到数千毫秒。每次运行的表格、环境和已说明的差距见 docs/bench/。
证据:src/main/process-identity.js · src/main/attribution.js · 正确性审计 · 基准测试 2026-08-12 · 基准测试 2026-08-13
监控优先
AEGIS 是一台摄像机,而不是一名守卫。 它观察并记录——目前不会在操作系统层面阻止代理。没有内核钩子,也没有自动执行机制。进程控制(终止 / 挂起 / 恢复)仅限手动且由用户触发。主动阻止在路线图上,而非当前版本中。将 AEGIS 用于可见性、审计和异常检测——当你需要强制执行时,请将其与沙箱配合使用。
AEGIS 与代理内部监督的区别
大多数 AI 代理监督工具都是对代理本身进行插桩——例如 Claude Code 插件、IDE 扩展或 SDK 包装器。这种部署方式存在结构性盲区:代理只有在(或其用户)安装了钩子时才会出现。一个原始的 python autogpt.py、未包装的二进制文件或根本不配合的工具,对代理内部插桩来说是不可见的。
AEGIS 则位于操作系统层:它从代理外部观察进程、文件和网络活动,因此它所看到的内容不依赖于代理的配合——只取决于 AEGIS 自身的覆盖范围(见已知限制)。它并不是唯一在本地观察代理的工具——例如 AgentSight 在 Linux 上从 eBPF 层进行观察——而基于钩子的工具是互补而非竞争的:钩子能看到选择加入的代理内部的意图(提示词、工具调用),而 AEGIS 则能看到机器上运行的任何内容的实际效果(进程、文件、连接),并将其关联到代理实例,无需代理配合。
已知限制
无法校准的监控器是无法信任的监控器,因此限制在此明确列出,而不是事后才发现。此列表背后经过重新验证的发现(每条都带有 OPEN/CLOSED 状态)见正确性审计;简要版本:
- 覆盖范围基于签名和启发式规则。 检测从 110 个代理(262 个进程名称签名)加上启发式规则(WSL、IDE 扩展、本地 LLM 探测)开始。不匹配其中任何一项的代理二进制文件将无法被检测到。
- 轮询存在盲区。 在扫描间隔(约 10 秒)之间诞生并消亡的进程永远不会被观察到;基准测试页面明确说明了这一点。通过 ETW 的逐事件捕获在路线图上,静态侦察已在 docs/recon/kernel-file-etw.md 中完成。
- macOS/Linux 身份识别能力降级。 这些平台目前不提供操作系统出生时间,因此实例身份仅回退到 PID,在 PID 被重用时不安全。Token 成本跟踪仅限 Windows。
- UI 事件窗口会静默截断。 渲染进程保持有界的事件窗口,可能与总数不一致,且目前没有截断横幅。
- 传感器健康状态已跟踪但尚未显示。 主进程会记录文件系统和网络传感器的逐传感器健康状态,但 UI 目前无法区分静默的机器和失效的传感器,且进程扫描超时会被跳过而不计数。
- 审计丢失标记需要成功刷新。 如果进程在磁盘仍处于故障状态时被终止,被逐出的审计条目可能会丢失,且磁盘上没有标记。
我们刻意不做的主张
本 README 中出现的数字仅当它们从仓库中推导出来(并由 npm run counts:check 强制执行)或通过书面记录的方法测量时才会出现。有些人询问的一些数字尚不存在,因此我们不会陈述它们:
- 启动时间。 不存在启动基准测试;旧的“两秒以内”的说法已被移除,而不是保留为未测量的数据。
- 检测率或误报率。 存在一个带有独立判定基准的场景基准测试(
bench/,以 Sysmon/Procmon 为评分标准),但它仅限 Windows、只覆盖一个场景,且不在 CI 中运行——不足以作为比率的基础。 - 开销。 AEGIS 自身的 CPU/RAM 成本尚未通过书面记录的方法进行测量。
- 基准测试加速的标题数字。 在同一台机器上两天之间,实测的快照与回退之比从 193× 变为 51×;持久的主张是较弱的那一个——快照约 10 毫秒,回退为数百到数千毫秒——这也是此处引用的唯一形式。
- 逐事件置信度分数。 在存在真实基准测试之前,刻意不在产品中提供。
- 测试数量。 手工复制的套件数量会静默过期;套件会自行打印其数量,CI 在每次提交时都会运行它。
为什么需要独立监督
AI 代理对文件、凭据和 shell 命令拥有深度访问权限。风险并非假设性的:卡巴斯基关于 OpenClaw 案例的报告指出,2026 年 1 月的一次安全审计发现了 512 个漏洞,其中 8 个为严重级别,并认为更深层的问题是架构性的——特权本地访问与外部通信能力的结合(卡巴斯基,2026-02-10)。打补丁能修复 Bug,但不能让你了解代理在你的机器上实际做了什么。这种可见性正是 AEGIS 所增加的层次。
下载
Windows 安装程序
从 v0.11.0-alpha 开始,发布版本附带 Windows NSIS 安装程序——从最新发布下载 .exe。从 v0.13.0-alpha 起的发布版本还附带签名清单,因此下载内容可以针对本仓库中提交的公钥进行离线验证——见验证 AEGIS 发布。更早的发布版本不附带清单,无法以此方式验证。
从源码构建(所有平台)```bash
git clone https://github.com/antropos17/Aegis.git cd Aegis npm install npm start
> 需要 **Node.js 24.x**(`package.json` 中的 `engines`)。建议使用 Windows 10/11;macOS/Linux 为实验性支持([#37](https://github.com/antropos17/Aegis/issues/37))——参见[已知限制](#known-limits)。
### 无需 AI 代理即可试用
没有运行 AI 代理?演示模式可让你使用模拟数据探索完整仪表板——无需真实监控,无需真实进程。```bash
npm run dev
# then open http://localhost:5174
开发服务器承载演示场景引擎——vite.config.js 在命令为 serve 时启用它,因此模拟仪表盘无需单独的构建步骤或 Electron 即可渲染。如需静态、可共享的构建(无开发服务器、无 Electron),运行 npm run build:demo 并使用任意静态文件服务器托管生成的 dist/demo 目录(构建使用相对资源路径,因此任何主机均可工作)。
演示模式运行一个场景引擎,循环经历四个威胁阶段——平静 → 升级 → 危急 → 重置——并模拟多达 12 个 AI 代理(Claude Code、Copilot、Cursor 等)。文件访问事件、网络连接、异常评分和风险评估均实时生成,因此每个标签页和功能都完全可用。
使用它可在部署前评估 AEGIS、向团队演示 UI,或在无需实时 Windows 环境的情况下开发新功能。