crates.io 上多了一个 zerostack 1.0.0。安装方式很直接:cargo install zerostack。
它的反常点不在“又一个 AI 编程代理”。而在于它选择了纯 Rust、轻量 CLI、Unix 风格。项目给出的数据是:约 7k 行代码、8.9MB 二进制、空会话约 8MB RAM、工作时约 12MB RAM,并宣称明显低于 opencode 等 JS-based agent。
这不是第三方评测。只能先当项目自述看。
但方向有意思。AI coding agent 这两年越做越厚,越做越像平台。zerostack 反着来:把工具做小,把权限写明,把控制权往开发者手里推回去。
它是什么:一个轻量 Rust coding agent,不是成熟替代品
zerostack 的定位很清楚:纯 Rust 写的轻量级 Unix 风格 coding agent。
它支持 OpenRouter、OpenAI、Anthropic、Gemini、Ollama,也支持自定义 provider。基础工具包括 read、write、edit、grep、find_files、list_dir。它也提供终端 UI、会话恢复、MCP、Exa 搜索、prompt 模式切换。
几个关键事实压成一张表:
| 变量 | zerostack 1.0.0 的信息 | 该怎么理解 |
|---|---|---|
| 发布载体 | crates.io | Rust 用户安装门槛低 |
| 安装方式 | cargo install zerostack | 更适合 CLI 和 Rust 工具链用户 |
| 代码与体积 | 项目称约 7k LoC、8.9MB 二进制 | 数据来自项目自述,不能当独立评测 |
| 内存占用 | 项目称空会话约 8MB RAM、工作时约 12MB RAM | 方向是低资源,但要看实际项目压力 |
| 模型接入 | OpenRouter、OpenAI、Anthropic、Gemini、Ollama、自定义 provider | 不被单一模型入口锁死 |
| 许可证 | GPL-3.0-only | 对闭源集成和企业采用可能有合规成本 |
| 实验能力 | loop system、git worktrees integration | 明确是 experimental,不能按成熟功能卖 |
这里要克制。
材料显示的是 1.0.0 包说明和功能列表。不能把它说成 Claude Code、Cursor 或 opencode 的成熟替代品。也不能把“更省资源”的项目自述,直接写成行业评测结论。
对个人开发者,它现在更像一个值得试装的轻量工具。尤其适合偏好 CLI、Rust、终端工作流、本地模型或多 provider 接入的人。
对工程团队,我会更保守。可以放进实验工具箱,让一两个人在非关键仓库里试。别急着迁移主流程,更别拿它替换已经跑通的团队 agent 工作流。
真变量:权限边界,而不是功能清单
AI 编程代理最危险的地方,不是它写错代码。写错代码还好查。
麻烦的是它开始读目录、改文件、跑命令、循环尝试、不断扩大动作范围。你以为它是助手,它以为自己是执行系统。
zerostack 最值得看的,是它把权限系统做成了主菜。
| 控制点 | 具体做法 | 影响对象 |
|---|---|---|
| 权限模式 | restrictive、standard、accept-all、yolo 四档 | 个人开发者可按风险切换 |
| 工具权限 | 按工具和 glob 配置 | 团队可限制读写范围 |
| 会话控制 | session allowlist | 临时授权,不必永久放权 |
| Bash 执行 | permission gating | 跑命令前多一道刹车 |
| 命令隔离 | 可选 bubblewrap sandbox | 只针对 bash 命令隔离,不能神化 |
| 循环防护 | doom-loop detection | 连续重复调用工具时提醒或拒绝 |
doom-loop detection 这个设计很朴素,但很真实。项目说明里提到,连续相同工具调用 3 次以上,会触发警告或拒绝。
这等于承认一件事:agent 会犯傻,而且会机械地犯傻。
这比很多“全自动开发”的叙事诚实。开发者不怕工具能力有限,怕的是工具装作没有边界。尤其是 bash 权限,跑错一条命令,代价可能不是一段代码,而是整个工作区。
bubblewrap 也要说清楚。它是可选依赖,主要用于 bash 命令隔离。它不是万能安全罩,更不是企业安全审计的替代品。
所以 zerostack 的价值不在“我替你全包”。它更像在说:我可以做事,但每一步你都能拦。
这对开源维护者和小团队更有现实意义。仓库权限复杂,自动化冲动很强,但维护成本有限。一个能限制读写、能分会话授权、能在循环调用时踩刹车的 agent,比一个默认大包大揽的 agent 更容易被信任。
我的判断:轻量不是复古,是对失控感的反拨
过去一年,AI coding agent 的主线很清楚:模型更强,产品更厚,集成更多,默认权限更大。
这条路有它的商业逻辑。工具越像平台,越容易锁住用户。集成越多,越容易解释订阅费。默认权限越大,演示时越像魔法。
“天下熙熙,皆为利来。”这句话放在 AI agent 上并不突兀。做厚不是工程师突然爱臃肿,而是平台化天然会奖励臃肿。
zerostack 走的是另一条线:小二进制、终端 UI、多模型接入、权限可配、worktree 工作流。
它有点像早期 Unix 工具对大型软件的反抗。历史类比不能拉满,今天的 AI agent 比 grep、awk 复杂得多。但重复的是同一种冲突:效率和控制权,常常不站在同一边。
轻量工具也有硬伤。
生态不够厚,团队维护不确定,IDE 集成有限,复杂项目体验未知。JS 系 agent 重,不全是坏毛病。跨平台 UI、插件体系、企业集成、生态包袱,都会把体积吃上去。
GPL-3.0-only 也会挡住一部分企业。开源用户可能没感觉,闭源集成团队就得认真看合规边界。这个许可证不能包装成“商业友好”。
所以我的判断很简单:zerostack 现在不该被捧成替代品。它更像一个信号。
AI 编程工具下一阶段,不只比谁更会写代码。还会比谁更会收手。
接下来最该看三件事:
- 项目给出的低资源数据,在真实中大型仓库里是否还能站住。
- experimental 的 loop system 和 git worktrees integration,能不能从演示能力变成稳定工作流。
- 权限系统能不能在团队场景里持续好用,而不是只适合个人折腾。
个人开发者可以试,成本不高。工程团队可以观望加小范围验证。企业如果有闭源集成计划,先看 GPL-3.0-only,再谈采用。
回到开头那个反常点:AI agent 都在变重,zerostack 偏要变轻。
这不是情怀。轻量是一种约束。约束越清楚,开发者才越敢把方向盘交出去一小段。
