<!-- title: 别让AI代码裸奔进仓库：本周三道左移闸门 -->
<!-- domain: new-tools -->

# 别让 AI 代码裸奔进仓库：本周三道左移闸门

你是不是已经习惯了这样的工作流：让 Claude Code / Cursor / Codex 写一坨代码，它自己跑通测试、自己说"功能已实现、无已知问题"，然后你点头、`git commit`、合并进主干。看起来效率拉满，但有一个谁都不愿点破的漏洞——**让写代码的人（或 agent）自己给自己背书，等于没背书**。本周海外 Hacker News 的 Show HN 板块，集中冒出了一类国内几乎没人讨论的新工具：它们不帮你写代码、不帮你补全，专门干一件事——**在 AI 代码进仓库之前，给它装上三道独立的"信任闸门"**。这是典型的「认知差 + 方法差」信息差：工具就在那、还都开源免费，但 90% 的中国 agent 用户压根没意识到自己缺它。本文拆解本周热度最高、最值得立刻装上的三道闸。

## 一、为什么本周突然冒出这批"左移"工具

先给个冷知识背景。本周 HN 上一个热帖标题叫 [I measured the half-life of 41,301 Show HN launches. It's 7 hours](https://jonno.nz/posts/your-show-hn-dies-in-7-hours/)——作者抓了一整年 41301 条 Show HN，发现一条新工具的中位寿命只有 7 小时。同期还有个帖 [I built a website showing the likelihood of the AI bubble to pop](https://laurentiugabriel.github.io/is-ai-hype-cooling-down/)。两件事拼在一起，传递了一个清晰信号：**海外对"AI 能写代码"这件事的新鲜感已经过了祛魅期，注意力正在从"让 agent 写得更快"转向"让 agent 写的东西别闯祸"**。

安全圈有个老词叫 **Shift-Left（左移）**——把缺陷拦截在越靠左（越早）的阶段成本越低。补在测试阶段一块钱能搞定的 bug，跑到生产环境要花一百倍。这套理论过去是给人用的，现在被原样搬到了 agent 身上：与其等 agent 写完、上线、出事再回滚，不如在**写代码 → 引依赖 → 提交 diff**这条链路上提前插三道闸。下面这三把刀，就是本周补上的。

```mermaid
flowchart LR
    A["AI Agent 写代码"] --> G1["闸1 · slopo<br/>语义查重"]
    G1 --> G2["闸2 · deptrust<br/>依赖漏洞+Hook拦截"]
    G2 --> G3["闸3 · BlastRadar<br/>diff→生产风险分"]
    G3 --> M["merge / 进仓库"]
    M -.上线后.-> G4["延伸 · Morph Reflexes<br/>低成本行为监控"]
    style G1 fill:#ffe0b2
    style G2 fill:#ffccbc
    style G3 fill:#ffcdd2
    style G4 fill:#c8e6c9
```

## 二、第一道闸：slopo —— 用 embedding 抓"换了马甲"的重复代码

**工具**：[slopo](https://github.com/rafal-qa/slopo)（官网 [slopo.dev](https://slopo.dev/)）
**本周热度**：Show HN 90 分，是本周 AI 相关帖里最高的一档之一。
**价格**：开源免费，唯一成本是 embedding API 调用费（可接便宜模型，下面算）。

slopo 解决的是一个被严重低估的痛点：**AI 生成的代码，最容易产生"非精确重复"**。什么意思？同一个逻辑，agent 这次写成 `calculateTotal()`，下个项目写成 `computeSum()`，变量名换了、结构微调了一下，传统查重工具（基于文本匹配）抓不到，人眼也懒得跨几百个文件去对。但这些"长得不一样、干的活一样"的代码，正是技术债里最毒的那种——改一个忘了改另一个，bug 复制两份。

slopo 的做法很巧：给每个代码单元算一个 embedding 向量，然后找**向量距离近、但在代码库里物理距离远**的配对（跨模块、跨文件的相似代码）。它只盯最该被发现的——"写得像、隔得远"的那批。支持 Python / TypeScript / JavaScript / Java / Kotlin / C# / Go / Rust / PHP / Elixir 十种语言。

工作流是和 agent 配合的，这点设计得很现代：

```bash
uv tool install slopo      # 用 uv 一键装，隔离环境
slopo init                 # 生成配置模板
slopo index                # 索引代码
slopo embed                # 算 embedding
slopo analyze              # 出报告：相似代码聚成 cluster
```

报告里的 cluster 不直接判定"是重复"，而是**交给你的 AI agent 去二次确认**——确认是真重复就重构，不是就丢进 `slopo.ignore.txt`。这个 ignore 文件可以提交进 git，跨团队复用，新人一拉代码就知道"这些相似已经被审过了"。它还能增量重索引（只处理改动文件），大仓库也扛得住。

**为什么中国用户该关注**：国内团队用 AI 写代码已经一年多了，但绝大多数人还停在"能跑就行"。slopo 这种"语义查重 + agent 协同"的组合，国内同类工具基本空白（要找类似的得扯到 SonarQube 那种重型企业方案，价格和上手成本不在一个量级）。对一个动辄几千文件、AI 贡献率过半的现代代码库，slopo 是把"隐性技术债"变可见的最轻量入口。

## 三、第二道闸：deptrust —— 给 Claude Code / Codex 装上"依赖安全 Hook"

**工具**：[deptrust](https://github.com/clidey/deptrust)
**本周热度**：Show HN 23 分。
**价格**：开源免费，直接调公开的 registry 和 [OSV](https://osv.dev) / GitHub Advisory API，**没有托管服务**——也就是说你的依赖列表不会上传到任何第三方服务器，这点对敏感项目很关键。

deptrust 的诞生原因作者在 README 里写得明明白白，一句话戳中所有 agent 用户：

> This tool was born out of the frustration that is AI agents constantly using old versions.
> （这工具诞生于一个挫败感：AI agent 总是用旧版本的依赖。）

你一定遇到过——让 agent 加个依赖，它张口就 `npm install lodash@4.17.20`，根本不管这个版本有两个已知高危漏洞（CVE-2021-23337 命令注入）。deptrust 干的就是在 agent 真的执行安装前，拦下它。覆盖 **14+ 个包生态**：npm、PyPI、Cargo、Go modules、RubyGems、NuGet、Maven、Packagist、pub.dev、CocoaPods、Hex.pm、Hackage，甚至 **GitHub Actions**（这个尤其重要，agent 改 workflow 文件加 action 时也能查）。

它最有信息差的设计是**两种接入方式**：

1. **作为 MCP server**——`claude mcp add --transport stdio deptrust -- deptrust mcp` 一行接进 Claude Code，或 `codex mcp add`。之后 agent 在推荐/升级任何依赖版本前，会自动先查漏洞。MCP 返回的是**精简结构**（只给 recommendation、risk_score、漏洞计数），不把整坨 advisory 塞进上下文，省 token。

2. **PreToolUse Hook（杀手锏）**——装的时候用 `npx @clidey/deptrust install --all`，它会直接改写你的 `~/.claude/settings.json` 和 `~/.codex/hooks.json`，注册一个 **PreToolUse 钩子**。意思是：agent 每次要执行 `npm install` / 改 GitHub Action 时，钩子先跑 deptrust，只要返回 `review` / `block` / `unknown`，**直接阻断这次工具调用**。这不是建议，是物理拦截。

输出长这样，干净利落：

```text
npm lodash@4.17.20: 2 known vulnerabilities found
recommendation: block
risk_score: 80
```

还有个细节特别对当下供应链安全胃口：**最近 72 小时内才发布的版本会被自动标记 review**——防止 agent 闭眼装一个刚上线、可能被投毒的新包。在 npm 投毒事件频发的今天，这个信号比单纯查 CVE 更值钱。

**为什么中国用户该关注**：国内用 Claude Code / Codex 的人很多，但给 agent 装"依赖安全 Hook"的几乎没有。大部分人连 `~/.claude/settings.json` 里有 hooks 这个机制都不知道。deptrust 是把"软件成分分析（SCA）"这件事，从企业级付费工具，下沉成了 agent 原生的一行命令。小团队、独立开发者也能用上原本只有大厂才铺得起的安全护栏。

## 四、第三道闸：BlastRadar —— 粘个 diff，10 秒给你生产风险分

**工具**：[BlastRadar](https://blastradar.vercel.app/)
**本周热度**：Show HN 11 分，但定位最"轻"、最适合非安全工程师上手。
**价格**：免费网页工具，粘 diff 即用。

前两道闸偏"查重"和"查依赖"，BlastRadar 补的是最后一块：**这次改动本身，上线有多大风险？** 用法极简——把你这次 PR 的 Git diff 粘进去，10 秒返回一个生产风险评分（production risk score）。它本质上是个"PR 风险量化器"，把"这段改动碰了核心模块吗、改了认证逻辑吗、范围大不大"这些过去靠 senior 工程师凭感觉判断的东西，变成一个可比较的分数。

在 agent 大量自动提 PR 的时代，这个分数有两个直接用途：一是给 reviewer 排优先级——分数高的 PR 先看、重点看；二是做成 CI 门槛——风险分超阈值的 PR 不许自动合并，必须人工过。国内大多数团队现在的 PR review 还停在"人肉点一遍"的阶段，没有"diff → 风险分 → 闸门"这套工具化思维。BlastRadar 是把这件事做成网页即用的最低门槛版本，适合先体验、再决定要不要内化进自己 CI 的团队。

## 五、生态延伸：上线后的便宜"行车记录仪" Morph Reflexes

三道闸都管"进仓库前"，上线后呢？本周还有个 [Morph Reflexes](https://news.ycombinator.com/)（Show HN 14 分）值得提一句。它解决的是另一个信息差：很多人知道要监控 agent 行为，但用 GPT-4 / Sonnet 这种 frontier 模型去评判 agent 的每一轮 trace（循环、推理泄露、用户挫败），**太贵太慢**。Morph Reflexes 的思路是训了**多头轻量分类器**去替代，把"行为合规检测"的成本压到可规模化运行的程度。这是 agent 上生产后"可观测性"方向的早期玩家，思路和上面三道闸一脉相承——**别用最贵的脑子干最机械的活**。

## 六、信息差总结

| 环节 | 大多数人知道的 | 本周海外补上的（你该知道） |
|------|---------------|---------------------------|
| 代码重复 | 靠人肉 review、靠 SonarQues 这种重方案 | slopo：embedding 抓"换马甲"重复，10 语言，agent 协同，开源免费 |
| 依赖安全 | 等漏洞爆了再升级，或买企业 SCA | deptrust：MCP + PreToolUse Hook，agent 装 npm 前物理拦截，14+ 生态，无托管 |
| PR 风险 | senior 凭感觉、人肉点 review | BlastRadar：粘 diff 10 秒出生产风险分，可做 CI 门槛 |
| 上线后行为 | 用 GPT-4 逐轮评判（贵） | Morph Reflexes：多头轻量分类器，规模化跑得起 |
| 共同认知 | "agent 说没问题就没问题" | 左移三道闸：让独立工具背书，不让 agent 自证清白 |

## 七、行动指南（今天就能装）

1. **先装 deptrust（性价比最高、最无痛）**：在有 `claude` 或 `codex` CLI 的机器上跑 `npx @clidey/deptrust install --all`，它会自动配好 MCP 和 PreToolUse Hook。验证：让 agent 试着装一个有漏洞的旧版 lodash，看它是否被拦下。
2. **给主力仓库跑一次 slopo**：`uv tool install slopo` → `slopo init`（embedding 用 [Voyage AI](https://docs.voyageai.com/docs/embeddings) 512 维，一个中型仓库 embedding 成本通常几毛到几块人民币）→ `slopo index && slopo embed && slopo analyze`，看看你的代码库里藏了多少"换马甲"的重复。
3. **把 BlastRadar 纳入 PR 流程**：本周内挑 3 个 agent 生成的 PR，把 diff 粘进去打分，建立你团队对"风险分"的直觉基线，下一步再考虑自动化。
4. **统一心智**：把"agent 写完 → 它自检 → 我信了"这条链路，改成"agent 写完 → slopo / deptrust / BlastRadar 独立背书 → 我才信"。这一步改的是流程，比装任何工具都重要。

## 八、参考来源

- [slopo — GitHub](https://github.com/rafal-qa/slopo) / [slopo.dev](https://slopo.dev/)
- [deptrust — GitHub](https://github.com/clidey/deptrust)
- [BlastRadar](https://blastradar.vercel.app/)
- [OSV 漏洞数据库](https://osv.dev/)（deptrust 的数据源之一）
- [Show HN 半衰期只有 7 小时（本周背景帖）](https://jonno.nz/posts/your-show-hn-dies-in-7-hours/)

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护。
> 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
