Files over tools: how we built our agent with a virtual filesystem and bash
2 days ago
- #Customer Messaging
- #Virtual Filesystem
- #AI Agent
- Knock Agent 是一款用于管理客户消息资源的 AI 代理,能够创建和更新工作流、模板、受众群体,对用户进行细分,并回答性能相关的问题。
- 该代理的构建采用了虚拟文件系统和 bash,灵感来源于 Vercel 的方法,使其能够通过文件系统探索和编写资源脚本,而非暴露大量的 API 工具。
- 开发了一个基于 Elixir 的自定义虚拟 bash 解释器,名为 just-bash,提供了一个轻量级的内存环境,避免了完整沙箱的性能开销。
- 该代理采用了基于 Oban 和 Postgres 的持久化工作流,将资源懒加载到文件系统中,并提供了 bash、read_file、edit_file、write_file 和 upsert_resource 等工具用于操作。
- 通过引入技能来教导代理资源特定的细节,并集成了一个 CLI(knock 命令)用于查询动态数据(如日志),减少了对额外工具的需求。
- 通过 OpenTelemetry 追踪到 Honeycomb 和 Braintrust 实现了可观测性,并使用基于 LLM-as-judge 的自建评估系统来测试和监控代理性能。
- 未来的改进包括更好的会话压缩、扩展的评估系统,以及探索用于聚焦任务的子代理,这些都将基于文件系统的基础来增强代理的能力。