Moltis 个人代理服务器
在自有硬件上运行的持久化个人助手,隔离执行工具并连接多种消息渠道。
按维度查看评分与理由
证据显示有沙箱执行、secrecy::Secret、SSRF防护、钩子门控、最小权限原则(unsafe_code deny)等,但用户确认机制仅提及BeforeToolCall钩子可阻止调用,未明确默认确认流程;数据流透明度仅描述架构图,未提供具体数据流文档;敏感数据处理有加密存储和零化,但未展示完整生命周期;依赖安全有锁文件、补丁和CI,但未提供漏洞扫描证据;外部影响有沙箱和网络过滤,但未展示所有外部交互;回滚仅有自动检查点,未提供恢复工具细节;来源归属有签名和attestation,但发布者未验证。
自洽性:README与Cargo.toml一致,但版本号0.1.0与README中提到的v0.1.0一致;依赖可用性:有锁文件和CI,但未展示依赖可用性测试;失败消息:未提供错误处理示例。
受众和场景:明确面向个人代理服务器,支持多种部署;能力边界:有工具注册和沙箱,但未明确权限边界;触发精度:有钩子事件,但未详细说明触发条件;环境适配:支持多种平台和部署方式,但未提供配置示例。
信息架构:有清晰的crate地图和文档链接;安装说明:提供多种安装方式;命名稳定性:版本0.1.0,但未说明命名约定;示例和FAQ:有快速入门,但无FAQ;已知限制:未明确列出;许可证:MIT;版本变更日志:有CHANGELOG guard,但未提供内容;维护责任:有贡献指南,但未明确维护者。
输出可用性:有Web UI和API,但未展示输出格式;边际价值:功能丰富,但未与现有方案对比;成本效益:单二进制,但未提供性能数据。
声明可追溯:README中的声明未全部链接到代码;跨来源佐证:有CI和测试,但未独立验证;事实与推断分离:未明确区分。
- 发布者身份未验证,需谨慎对待供应链风险。
- 用户确认机制不明确,默认可能自动执行工具调用,需配置钩子。
- 数据流透明度不足,建议查看文档或代码以了解数据流向。
- 依赖安全未提供漏洞扫描证据,建议使用cargo audit。
- 回滚机制仅提及检查点,未提供恢复工具细节。
这个 Agent 能做什么,适合哪些场景?
Moltis 是用 Rust 编写的本地优先持久化个人代理服务器,以单个二进制程序运行。它通过 Gateway Server 提供 HTTP、WebSocket 与认证入口,并由 Chat Service、Agent Runner、Tool Registry 和 Provider Registry 协同处理对话与工具调用。会话以 JSONL 持久化,记忆使用 SQLite,并支持向量与全文混合检索及跨会话召回。工具执行可在 Docker 或 Apple Container 的每会话隔离环境中完成,另有 WASM 工具路径。它可部署在 Mac Mini、Raspberry Pi 或自有服务器上,并提供 Web UI、消息渠道、语音和 MCP 接入。
用户从 Web UI、Telegram、Signal、Microsoft Teams、Discord、Nostr 或 API 发送消息后,Gateway Server 经 WebSocket/HTTP 接收请求,Chat Service 调用 Agent Runner 组装提示词并流式调用 Provider Registry 中的模型提供方。Agent Runner 可通过 Tool Registry 调用工具;命令在 Docker 或 Apple Container 沙箱中执行,MCP 服务器可通过 stdio 或 HTTP/SSE 接入。系统写入 JSONL 会话和 SQLite 记忆,支持定时任务、生命周期钩子、检查点与恢复;moltis acp 可通过 stdio 向 ACP 客户端提供 Moltis,同时可驱动 codex-acp、claude-agent-acp 和 Cursor 等外部 ACP 代理。
- 希望把个人助手运行在 Mac Mini、Raspberry Pi 或自有服务器上的个人用户,可用它保存会话状态并从网页或聊天渠道继续对话。
- 需要让代理执行命令但不希望直接在宿主机运行的开发者,可使用 Docker 或 Apple Container 的每会话沙箱。
- 同时使用 Telegram、Signal、Discord、Microsoft Teams 或 Nostr 的团队或个人,可把这些渠道接入同一持久化代理服务。
- 希望从多个会话中找回历史信息的知识工作者,可使用 SQLite、全文搜索和向量记忆进行跨会话召回。
- 已有 ACP 工作流的开发者,可使用
moltis acp作为 stdio 服务,或让 Moltis 驱动codex-acp、claude-agent-acp与 Cursor。
这个 Agent 有哪些优点和局限?
- 单一 Rust 二进制提供持久化代理服务,部署边界明确,不依赖 Node.js、npm 或运行时。
- 工具调用可使用 Docker、Apple Container 或 WASM 路径,并采用每会话隔离。
- 内置 JSONL 会话、SQLite 记忆、向量加全文检索和跨会话召回,不需要另行拼装这些基础能力。
- 同时覆盖 Web UI、多个聊天渠道、语音、MCP 和 ACP,且可使用多提供方模型。
- 安全措施包含 WebAuthn passkey、API key、加密 vault、SSRF 防护、跨域 WebSocket 验证和工具调用前钩子。
- 源码构建明确需要
just与 Node.js 来生成 Web UI 的 Tailwind CSS,即使运行目标是单一 Rust 二进制。 - 隔离命令执行依赖 Docker 或 Apple Container;Docker 部署示例还挂载了 Docker socket。
- 首次无人值守配置需要密码、提供方选择和
MOLTIS_API_KEY,具体模型服务的账户与费用并未说明。 - 完整功能面较广,包含 59 个 Rust workspace crate;受限设备需要使用
lightweight特性组合,意味着功能可能有所取舍。
如何安装或部署这个 Agent?
macOS 或 Linux 可运行:curl -fsSL https://www.moltis.org/install.sh | sh;也可运行 brew install moltis-org/tap/moltis,或拉取镜像:docker pull ghcr.io/moltis-org/moltis:latest。从源码构建时需要 just 和 Node.js:克隆仓库后执行 just build-css、just build-release,再执行 cargo run --release --bin moltis。完整 WASM 沙箱构建可改用 just build-release-with-wasm。
如何使用这个 Agent?
启动后打开 https://moltis.localhost:3000;首次启动会在终端打印设置码,用它在 Web UI 设置密码或注册 passkey。Docker 可映射端口并挂载配置和数据卷;无人值守首次启动前设置 MOLTIS_PASSWORD、MOLTIS_PROVIDER 和 MOLTIS_API_KEY,然后访问 https://localhost:13131 完成使用。受限设备可使用 --no-default-features --features lightweight。
这个 Agent 与同类方案有什么区别?
仓库将 Moltis 与 OpenClaw 和 Hermes Agent 对比:Moltis 的定位是带模块化 Rust crate 的持久化个人代理服务器,运行时为单一 Rust 二进制;OpenClaw 以 TypeScript 与配套应用为主,Hermes Agent 以 Python、TypeScript TUI/Web 为主。README 还列出 Moltis 的 Docker/Podman、Apple Container 与 WASM 沙箱路径,以及 SQLite + FTS + 向量记忆。
常见问题
密钥会被发送到 Moltis 服务器之外吗?
secrecy::Secret、输出脱敏与零化处理。模型提供方自身如何处理请求不在给定材料的说明范围内。是否必须使用 Docker?
怎样防止工具执行产生破坏性操作?
BeforeToolCall 钩子检查或阻止,系统还有 destructive command guard、自动检查点和恢复工具;这些是控制机制,不等于自动保证所有操作安全。能否接入 Codex 或 Claude Code?
codex-acp 和 claude-agent-acp 等 ACP 代理;moltis acp 也能通过 stdio 为 ACP 客户端提供服务。