我们已经构建了视觉规则引擎(清晰的界面 + API 端点,帮助将输入数据映射到大量结果)一段时间了。最近我们有一个有趣的想法,想看看当我们将决策表用户界面与 Claude 的 PreToolUse 钩子结合使用时会发生什么。
结果是一个出乎意料的有用的政策/门控层——这些表格让您的团队能够:
- 编写多因素、友好的例外政策(例如,当使用 --force 时拒绝 rm -rf /;仅允许在 node_modules 中进行清理;在网络调用(如 curl/wget)时询问;阻止 kubectl delete 或 SQL DROP,每个操作都有明确的理由)
- 立即推出政策变更(在运行中,将一个风险操作从允许 → 询问;下一个开发者和代理的尝试会立即受到限制——无需 git pull、代理重启或协调)
- 采用轻量级治理,具有一定的代理无关性并能适应人员变动(MCP/技能等)——只需在新工具和元数据出现时添加列/规则
- 快速获取中心实用工具,以了解哪些工具正在使用,哪些工具被阻止的频率最高,以及原因
返回首页
最新
意思是将旧的SCSI硬盘连接到现代Mac上,而不是将固态硬盘(SSD)安装到旧的Mac上。
你好,Hacker News!我是马克。我正在构建Moru,一个开源的AI代理运行时,它在隔离的Firecracker微虚拟机中运行每个会话。它最初是E2B的一个分支,目前大部分底层的Firecracker运行时仍然来自上游。
Moru允许你在云中运行像Claude Code或Codex这样的代理框架,为每个会话提供独立的微虚拟机,并具备文件系统和命令行访问权限。
代码库地址是: [https://github.com/moru-ai/moru](https://github.com/moru-ai/moru)
每个虚拟机都是Docker构建的快照。你定义一个Dockerfile、CPU和内存限制,Moru会在Firecracker虚拟机中运行构建,然后暂停并保存确切的状态:CPU、脏内存页和更改的文件系统块。
当你生成一个新的虚拟机时,它会从该模板快照恢复。内存快照通过userfaultfd懒加载,这有助于沙箱在一秒内启动。
每个虚拟机在Firecracker上运行,采用KVM隔离和专用内核。网络使用命名空间进行隔离,并使用iptables进行访问控制。
从外部,你可以通过Moru CLI或TypeScript/Python SDK与虚拟机进行交互。在内部,它就是Linux。可以运行命令、读写文件,任何你在普通机器上能做的事情。
自从ChatGPT发布以来,我一直在构建AI应用。如今,当代理需要解决复杂问题时,我只需给它文件系统和命令行访问权限。这种方法效果很好,因为它(1)处理大数据而不需要将所有内容推入模型上下文窗口,并且(2)重用已经有效的工具(如Python、Bash等)。随着前沿模型在工具使用和多步骤工作流方面的能力增强,这种方法变得更加实用。
现在模型可以在实际任务上运行数小时。随着模型变得更智能,代理框架应该给予模型更多自主权,但要有安全的保护措施。我希望Moru能够帮助开发者专注于构建代理,而不是底层的运行时和基础设施。
你可以尝试云版本,而无需自己设置基础设施。它是完全自托管的,包括基础设施和仪表板。我计划像上游代码库一样保持其开放(Apache 2.0)。
欢迎试用:[https://github.com/moru-ai/moru](https://github.com/moru-ai/moru)
请告诉我你的想法!
我正在努力实现的下一个功能包括:
- 更丰富的流媒体:目前主要是stdin/stdout。这让我不得不重载print/console.log进行控制平面通信,这很快就变得混乱。我希望有一个单独的流媒体通道,用于结构化事件和与控制平面的协调(通常是应用服务器),同时保留stdout/stderr用于调试。
- 无缝部署:提供更接近Vercel/Fly.io的部署体验。
- 存储原语:保存和恢复会话,而不必总是手动同步工作区和会话状态。
我欢迎你的功能请求或建议。
我专注于使在隔离的虚拟机中部署和运行本地优先的代理框架(例如Claude Agent SDK)变得简单。如果你已经构建或正在构建这些,我非常感谢你提供关于缺失之处或优先事项的任何意见。