AI Agent 写代码最容易让人上头。头几天,功能像开闸一样往外冒;再过几天,项目里开始出现幻觉函数、错位依赖、循环引用、God 文件。不是模型突然变笨了,而是代码库本身开始失去结构。
Sentrux 值得看的地方,不是又多了一个静态分析工具,而是它试图给 Coding Agent 补一个反馈器官:在 Agent 动手前、动手中、动手后,都能看到代码库的结构健康度。
项目地址:https://github.com/sentrux/sentrux
它不是 lint,而是结构传感器
lint 更关心格式、语法、局部坏味道。Sentrux 更关心架构层面的变化:模块是否还像模块,依赖是不是开始打环,复杂度是不是集中到少数文件,重复和死代码有没有扩散。
它用 Tree-sitter 解析代码结构,把文件、import、调用关系抽成图,再给整个代码库算一个质量信号。这个分数不是为了好看,而是给 Agent 一个可以回读的反馈:这次改动让系统更健康,还是更乱。
为什么 Agent 需要这种信号
人类工程师改代码时,多少会有一点空间感:这个模块别碰太大,那个公共函数影响面很宽,某个文件已经快变成垃圾桶。Agent 没有这种直觉。它看到的是局部上下文、工具返回和当前任务目标。
所以它很容易完成眼前任务,同时破坏长期结构。
Sentrux 的闭环可以理解成这样:
Sentrux 扫描代码库
→ 输出质量信号和瓶颈
→ Agent 根据瓶颈制定修改计划
→ Agent 改代码
→ Sentrux 再扫描
→ 如果分数下降,回到修正阶段这比“让 Agent 自己反思一下”硬多了。反思是语言,质量信号是约束。
最小上手路径
macOS 可以直接装:
brew install sentrux/tap/sentruxLinux 可以走安装脚本:
curl -fsSL https://raw.githubusercontent.com/sentrux/sentrux/main/install.sh | sh也可以用 Rust 工具链从源码构建:
git clone https://github.com/sentrux/sentrux.git
cd sentrux
cargo build --release装完先别急着追求满分。更实用的做法是把它放进一个正在被 Agent 修改的项目里,先跑三件事:
sentrux check .
sentrux gate --save .
sentrux gate .第一条做规则检查,第二条保存 Agent 会话前的基线,第三条在会话后比较结构是否退化。
MCP 才是它最适合的位置
如果只给人看 GUI,Sentrux 是一个架构可视化工具;如果接进 MCP,它就变成 Agent 工作流的一部分。
Claude Code 可以通过插件方式安装:
/plugin marketplace add sentrux/sentrux
/plugin install sentrux其它 MCP 客户端可以按服务器方式配置:
{
"mcpServers": {
"sentrux": {
"command": "sentrux",
"args": ["--mcp"]
}
}
}这样 Agent 可以在修改前查询 quality signal、bottleneck、rules、session diff,而不是改完以后才由人发现“这坨又长歪了”。
分数不是目的,边界才是目的
任何单一分数都有误用风险。不要把 Sentrux 当成“分数越高越好”的游戏,也不要让 Agent 为了刷分做无意义重构。更合理的用法,是把它当质量闸门:不允许明显退化,不允许新增循环依赖,不允许 God 文件继续膨胀。
也就是说,Sentrux 不替你定义架构,它让架构变化变得可见、可检查、可回滚。
AI Coding 接下来不会缺生成能力,真正缺的是反馈回路。没有传感器,Agent 只是在黑屋里猛干;有了质量信号,它至少知道自己是不是把屋子拆歪了。