# Lagune vs. Deepsec：两种 AI 驱动的安全方案对比

> 一份参考资料，从工作方式、生命周期、检测、成本、发现项和结案几个方面，对比 Lagune 与 Vercel 的 Deepsec。

规范链接: https://lagune.ai/zh-CN/docs/references/deepsec
语言: zh-CN
原文: https://lagune.ai/docs/references/deepsec
最后更新: 2026-11-03

[Lagune](https://github.com/wellwelwel/lagune) 和 [Deepsec](https://github.com/vercel-labs/deepsec)（`v2.2.1`）是两种防御性方案，针对的是同一个问题：AI 辅助开发时代的安全。即使在机制上有重叠，两者的前提、从开始到结束的整个过程，以及在用户面前的呈现方式，都是有意设计得不同的。

**提示**

Lagune 是受 Deepsec 启发的吗？不是。Lagune 从零开始编写，灵感来自 Spec-Driven Development 和 Security Hardening。两个项目是各自独立开发的，这里的对比是为了帮助用户了解它们之间的差异。

## 速览

| 方面         | Lagune                                                                    | Deepsec                                           |
| ------------ | ------------------------------------------------------------------------- | ------------------------------------------------- |
| 类型         | 一套方法论（SDH），附带一个参考实现                                       | 一个产品：由智能体驱动的漏洞扫描器                |
| 核心         | 由安全原则和按需加载的知识驱动智能体，并以确定性 hook 为基础              | 大范围的正则表达式网为必需的 AI 调查提供输入      |
| 产出         | 加固后的代码、证明，以及一条可追踪的发现项链路                            | 一份按严重程度排序、经过研判的发现项报告          |
| 是否改动代码 | 是：`harden` 会编辑你的代码                                               | 否：只做静态分析，输出发现项和建议文本            |
| 运行方式     | 在你已经在用的智能体和模型上运行，任何档次的模型都可以                    | 运行自己的模型流水线，默认使用前沿级模型          |
| 快速开始     | 安装一个插件或运行 `npx skills add`，然后用日常语言驱动它，无需搭建新工具 | 搭建 `.deepsec/` 工作区，安装依赖，再添加模型密钥 |

## 工作原理

Lagune 以智能体为先：由智能体主导，根据代码的实际情况按需调入知识，并把能够确定判定的那部分交给确定性 hook。

Deepsec 以确定性为先：大范围扫描标记出候选项，告诉必需的模型该调查和判断什么。

| 方面             | Lagune                                                                  | Deepsec                                                 |
| ---------------- | ----------------------------------------------------------------------- | ------------------------------------------------------- |
| 顺序             | 安全原则和匹配到的知识引导智能体，智能体把一部分交给 hook，其余自己判断 | 匹配器标记候选项，模型逐一调查并判断                    |
| 确定性部分的作用 | 多语言 hook，给出判定结果或为智能体指明方向，并结合类别知识             | 匹配器标记候选项，交给必需的模型判断                    |
| 开发流程         | `/lagune` 在你写代码的同时安全地构建                                    | 它只审查代码，不编写代码                                |
| 审计流程         | `charter` → `detect` → `plan` → `harden` → `verify`                     | `scan` → `process` → `triage` → `revalidate` → `report` |
| AI 的任务        | 依据知识推理，应用修复，并证明修复确实有效                              | 调查每个候选项并报告发现项                              |

## 生命周期

Lagune 在代码编写之前、之中和之后都能发挥作用。Deepsec 则在代码写好之后审查仓库。

| 时机           | Lagune                                                     | Deepsec                                              |
| -------------- | ---------------------------------------------------------- | ---------------------------------------------------- |
| 代码还不存在时 | `charter` 根据你表达的意图制定安全策略                     | 从已有代码开始：`init` 需要一个目录                  |
| 开发过程中     | `/lagune` 在编写过程中按默认安全的方式构建，不留下任何产物 | 在开发完成后审查，而不是在开发过程中                 |
| 针对已有代码   | `detect` → `plan` → `harden` → `verify`                    | `scan` → `process`，即核心流程                       |
| 持续审查       | 按范围重新运行各阶段，没有现成的 CI 门禁                   | 增量重新扫描，用 `process --diff` 作为 CI 的退出门禁 |

## 检测层

两者的确定性层性质相反：一个负责判定，另一个负责标记。

| 方面     | Lagune                                                          | Deepsec                                                    |
| -------- | --------------------------------------------------------------- | ---------------------------------------------------------- |
| 组织方式 | hook 和专项，按类别分组                                         | 按模式或框架划分的匹配器                                   |
| 输出     | 明确的判定结果（finding / review / advisory），外加一个分类标签 | 不带判定结果的候选项（slug、行号、代码片段、匹配到的模式） |
| 调校方向 | 精确率：能识别注释，并带有占位符防护和窗口防护                  | 召回率：撒大网，之后由 AI 剔除误报                         |
| 深度     | 在两者都覆盖的问题类型上更深入                                  | 覆盖更广，但在两者都覆盖的问题类型上没那么深入             |
| 误报     | 从源头压低，再结合上下文判定                                    | 有意多报，再通过一轮 `revalidate` 削减                     |

## 知识与判断

两者都具备正则表达式无法承载的安全知识。区别在于这些知识放在哪里，以及谁能塑造它们。

| 方面         | Lagune                                                 | Deepsec                                                  |
| ------------ | ------------------------------------------------------ | -------------------------------------------------------- |
| 形式         | 可编辑的 Markdown 模块，其中一些有确定性 hook 作为支撑 | 一段简短的提示词加上按技术划分的要点，依靠模型自身的知识 |
| 选取方式     | 与代码匹配，只在相应场景存在时加载                     | 注入每个 AI 批次，再加上针对检测到的技术的要点           |
| 由谁编写     | 用户编辑模块，并用 `specialize` 添加新模块             | 提示词由维护者掌控，用户填写一份 `INFO.md`               |
| 判断由谁做出 | hook 负责判定基础层，其余由智能体依据知识判断          | 集中式：由一个 AI 处理器判断所有候选项                   |
| 复用         | 同一个模块同时指导 `detect` 和 `verify`                | 一段提示词驱动唯一的 `process` 阶段                      |

## 发现项与结案

两者分歧最大的地方，在于发现项解决之后会变成什么。

| 方面     | Lagune                                                    | Deepsec                                                                   |
| -------- | --------------------------------------------------------- | ------------------------------------------------------------------------- |
| 严重程度 | CVSS v4.0 评分，并根据暴露程度和利害关系调整              | 由 AI 给出的严重程度，外加按可利用性和影响划分的 P0 / P1 / P2 分级        |
| 判定结果 | Risk closed、Risk not closed 或 Cannot tell from the code | true-positive, false-positive, fixed, uncertain, accepted-risk, duplicate |
| 持久化   | 工作链路持续核对更新，已结案的发现项提炼成历史记录        | 按文件记录，只增不删                                                      |
| 最终状态 | 可结案：已证明的发现项会结案，链路可以进入静止状态        | 每个发现项都永久保留，解决后从视图中隐藏                                  |
| 历史详情 | 对风险本身的简要总结                                      | 完整的判定记录，包括它是如何修复的                                        |

## 成本

| 方面         | Lagune                                                                                                     | Deepsec                                                                                                                                                                                                 |
| ------------ | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 确定性基础层 | 免费：hook 无需 AI、无需密钥即可运行，并且已经会给出判定结果                                               | 免费：`scan` 无需 AI 即可运行，但本身不给出判定结果                                                                                                                                                     |
| 常见开销     | 包含在你已经在用的智能体里：用本地模型可低至 $0，否则就是你现有套餐的价格，或在基于 API 的使用中按迭代计费 | [每次运行 100 到 2,000 个文件约需 $25 到 $1,200，规模更大时更贵](https://github.com/vercel-labs/deepsec/blob/f75a16803ec5250938bacfe41571d929e8564f45/docs/getting-started.md#run-the-ai-investigation) |
| 最省钱的方式 | 任何模型都能走完整个循环，包括免费的本地模型                                                               | 有更便宜的付费档位，但要得到发现项，仍离不开付费的 AI 阶段                                                                                                                                              |

## 可扩展性与治理

一方开放的那一层，正是另一方保持封闭的。

| 方面         | Lagune                                   | Deepsec                                |
| ------------ | ---------------------------------------- | -------------------------------------- |
| 可以扩展什么 | 编辑模块，或通过 `specialize` 添加新模块 | 添加匹配器、智能体、通知器和代码归属   |
| 策略层       | 安全原则管辖每个阶段，并纳入版本管理     | 配置是运行层面的（匹配器、模型、路径） |
| 按名称覆盖   | 改进后的模块会覆盖同名的内置模块         | 匹配器 slug 冲突时，以你的匹配器为准   |

## 界面

Deepsec 为安全团队产出交付物。Lagune 则为运行它的人呈现实时视图。

| 方面         | Lagune                                           | Deepsec                                          |
| ------------ | ------------------------------------------------ | ------------------------------------------------ |
| 面向人的界面 | 一个本地实时仪表盘，用通俗的语言展示整条链路     | 报告、导出、指标和 PR 评论文件，外加一个文档站点 |
| 责任归属     | 列出相关文件和所应用的专项                       | 给出建议的负责人：值班人员、经理或提交者         |
| 可复现的证明 | `prove` 编写可运行的测试和一份用于披露的安全公告 | 按设计保持静态，从不执行目标代码                 |
| 工具自身防护 | 加固仪表盘上的本地写入 API                       | 加固自身的 AI 执行环境，防范不可信的目标代码     |

## 规模与部署

| 方面       | Lagune                                                       | Deepsec                                              |
| ---------- | ------------------------------------------------------------ | ---------------------------------------------------- |
| 安装       | 通过智能体的插件或 skills CLI 安装九个命令，不生成任何脚手架 | 一个 `.deepsec/` 工作区，带有自己的包和依赖          |
| 规模取向   | 可以限定到任意范围：某个场景，或从单个文件到整个项目         | 扫描整个仓库，最大可到大型 monorepo                  |
| 分布式运行 | 仅限本地，唯一的服务器绑定在回环地址上                       | 可选择分发到多台 Vercel Sandbox 工作虚拟机上并行执行 |

## 用户体验

两者各自如何面对使用者：第一次运行需要什么，以及操作者如何为它指定方向。

### 上手

Lagune 直接通过已经打开的智能体运行。Deepsec 则要先准备好自己的工作区和模型访问权限。

| 方面         | Lagune                                                                            | Deepsec                                                                             |
| ------------ | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| 第一条命令   | 安装插件或运行 `npx skills add wellwelwel/lagune`，然后在智能体中使用 `/lagune-*` | `npx deepsec init`，然后依次执行 `cd .deepsec`、`pnpm install`、`scan`、`process`   |
| 运行所需凭证 | 不需要额外的密钥，直接使用你当前的智能体                                          | 一个模型密钥（例如 AI Gateway、有效期 12 小时的 Vercel OIDC 令牌或 Anthropic 令牌） |

### 如何驱动

两者都接受指引。Lagune 在每个阶段都会识别输入的形式。Deepsec 则缩小同一套调查所覆盖的文件范围。

| 方面       | Lagune                                                           | Deepsec                                               |
| ---------- | ---------------------------------------------------------------- | ----------------------------------------------------- |
| 整个项目   | 不带输入运行某个阶段，就会扫描整个范围                           | `scan` 和 `process` 扫描整个仓库                      |
| 局部范围   | 任何阶段都可以限定到指定的文件或目录                             | 用 `--files`、`--files-from` 或 `--diff` 缩小运行范围 |
| 某个顾虑   | 阶段可以限定到你描述的某个担忧                                   | 调查用的提示词是固定的                                |
| 某个优先级 | `harden` 和 `verify` 可以限定到严重、高危、中危或低危            | 发现项在运行结束后才打上标签                          |
| 单个值     | hook 直接为单个代码片段、模式或 URL 评分（`--pattern`、`--url`） | 工作单位是文件                                        |

## 常见问题

### Lagune 和 Deepsec 有什么区别？

Lagune 以智能体为先，在代码编写之前、之中和之后都能发挥作用：写代码之前先制定策略，开发时在编写过程中直接加固，并对已经写好的代码进行审计、加固和验证。Deepsec 以确定性为先：大范围的正则表达式扫描为必需的前沿模型调查提供输入，这项调查会审查已有代码并报告发现项，但不会修改代码。

### 这两个工具能免费用吗？

Lagune 的完整流程可以在免费的本地模型上以 $0 运行，它的确定性 hook 完全不用 AI 也能给出判定结果。Deepsec 的扫描是免费的，但不给出判定结果，所以任何发现项都要依靠它付费的 AI 阶段。

### 它们会修改我的代码吗？

Lagune 会：harden 会把修复应用到你的代码中。Deepsec 不会：它只做静态分析，输出发现项和建议文本，由人或智能体另行应用。
