零 Rust 经验,我用一个 while 循环在 24 小时内做了一个开源 Cowork

查看 7|回复 0
作者:adolsai   
我一开始真的对 Rust 一无所知,但有个很固执的想法:做一个 Agent ,不该依赖一大堆技术框架。
24 小时后,我做了一个 Rust 原生的 AI Agent 桌面应用,面向非开发者,编译后只有 16MB 的超小二进制文件。核心结构就是一个简单的 while 循环,支持 Skills 、支持 MCP 。更关键的是:BYOK(Bring Your Own Key),甚至还能跑本地模型。
你可以把它叫做技术极简主义:


The Stack:
-Rust (从零基础到一天内上线)
-长期记忆:直接用文件系统作为可持久、可查询的上下文
-主循环:一个 while 循环,负责协调 I/O 和工具调用
-工具:内置文件工具( read / write / bash )+ 符合 MCP 规范的 provider (可扩展)
-沙箱:用一个简单的 Docker 容器隔离大部分风险
Secret Sauce:
-状态全部保存在普通文件和目录中
-编排逻辑放在简单循环里,而不是复杂框架
-教会 AI 读写它自己的运行上下文(直接通过文件)
What I learnt:
1 )你并不需要一个 Agent Framework
所谓的 Agent 「框架」大多数时候只是过度抽象,反而增加复杂度。其实只要一个简单的 while 循环:
-Observe:读取输入、日志和任务文件
-Decide:让模型决定下一步最小原子动作
-Act:调用工具( MCP )或写入磁盘
-Reflect:把结果追加到本地日志中
2 )文件系统就足够
向量库和 RAG 集群当然很强,但很多时候只是推测性的开销。其实一切都是文件:任务、计划、diff 、决策、日志,全是纯文本或 JSON 。现代 RL 训练方式已经让模型非常擅长和 Linux 文件系统协作,用文件系统作为「长期记忆」,持久化天然成立,恢复路径也一目了然
3 )虽然听起来很超现实,但 AI 已经能自己复刻自己
我是用 AI Agent ( Claude Code )来帮我写代码的。Open Cowork 本质上就是一个 GUI ,背后跑着一个类似 CC 的 Agent 。最有意思的是,CC 居然能用 Rust 把自己的 claudecowrk 复刻子出来
4 )安全是一切的基础前提
Agent 很强,但没有边界的能力就是风险。它们可能遭遇恶意输入、Prompt Injection ,甚至普通 bug 。
对非开发者来说,安全不是一个附加功能,而是基础前提。通过硬隔离( Docker ),以及对系统命令和网络调用的严格白名单,可以确保 Agent 始终是工具,而不是对系统的威胁。
整个代码库,本质上可以被总结成下面这个循环:

当然,这还只是早期阶段,欢迎任何建议和讨论!
您需要登录后才可以回帖 登录 | 立即注册

返回顶部