Knock 用虚拟文件系统和 bash 打造 AI 代理

Files over tools: how we built our agent with a virtual filesystem and bash

7cjbell💬 0
Knock 用虚拟文件系统和 bash 打造 AI 代理

2026 年 3 月,我们推出了 Knock Agent,一个能管理所有客户消息资源的 AI 代理。起初我们尝试为每个 API 功能单独设计工具,但很快发现这种方式无法扩展,会迅速撑爆上下文窗口。受 Vercel 启发,我们转而采用“文件优于工具”的策略:给代理一个包含账户内容的虚拟文件系统,并赋予它 bash 脚本能力。代理通过探索文件系统获取上下文,直接修改文件并调用 API 持久化变更。为了适配 Elixir 生态,我们将 Vercel 的 just-bash 移植到了 Elixir,构建了一个轻量级的虚拟 bash 解释器。相比完整的沙箱环境,这种内存中的虚拟文件系统方案性能更优,且完美契合我们本地优先的理念。

"我们遵循将双手与大脑解耦的原则,因此未来切换到真正的沙箱环境,只需将虚拟调用替换为真实调用即可。"