用 Agent 的时间越长,我越在意几个看起来不那么起眼的问题:换一台设备,能不能接着交代事情?之前说过的要求,应该到哪个会话里找?想让它独立干活,又该给多大的权限?
这些问题逐渐变成了一个项目:Molr,一个可自托管的个人 AI 助理。它运行在自己的设备上,连接自己选择的本地或云端模型,通过持续对话接收委托,在后台推进任务,也由用户决定每位助理可以访问哪些资料、使用多少资源。

多设备协同
我用过的一些多设备方案,只同步聊天记录和上下文,模型请求仍然需要从当前设备发出。这意味着每台设备都要准备好模型连接和网络环境。另一种办法是通过 SSH 操作远程机器,但如果直接把账号能做的事情都交给 Agent,权限又太粗了。
我希望拿起哪台设备都能继续沟通,同时让 Agent 在有明确授权的前提下使用不同机器上的文件和计算资源。
为此,Molr 把用户界面、后台服务和沙盒分开:
| 组成部分 | 负责什么 |
|---|---|
| 用户界面 | 桌面客户端或 WebUI,用来对话、查看进展和处理授权 |
| 后台服务 | 管理助理、上下文、计划和模型请求,持续推进任务 |
| 沙盒 | 为助理提供文件访问和命令执行环境,按授权使用资源 |
后台服务是工作的中心。模型请求统一由它管理,客户端只需连接这套服务。手机也可以通过浏览器查看同一位助理的对话和结果,不必在手机上另配一套模型环境。
沙盒可以理解为 Agent 的电脑。单机使用时,后台服务已经内置本机沙盒;需要使用另一台机器上的资源时,再部署独立沙盒节点,由中心服务连接并授权。独立节点提供受控的操作入口,不负责管理助理和发起模型请求。
比如,可以把后台服务放在一台常开的设备上,通过笔记本或手机交代任务,再把另一台工作机接入为沙盒。这样,沟通入口、任务运行的位置和资源所在的位置就可以分别安排。
关闭网页或桌面窗口后,后台任务仍可继续。要让助理持续工作,运行服务的设备就需要保持开机、联网,相关模型和沙盒也需要可用。
按角色积累上下文
会话一多,管理会话本身就成了一项工作。
这很像有些公司喜欢大事小事拉个群。刚开始很方便,过了一阵子,IM 里堆着几十上百个群,再想找某个决定,就得先回忆当时在哪个群里讨论过。使用 Agent 时也一样:这个需求在哪个会话里?那个会话是不是已经太长了?新开一个以后,哪些背景还得再说一遍?
Molr 选择按角色组织上下文。你可以让一位助理负责开发,另一位负责资料整理,每位助理都有独立的持续对话、工作区、记忆、权限和预算。谁负责什么,相关的事情就继续找谁。
目前的交互从一对一私聊开始。先把与一位助理长期合作这件事做好,再考虑更复杂的协作形式。
持续对话也需要整理。值得长期保留的事实和偏好进入记忆,用户可以查看、编辑或遗忘;对话变长后,通过上下文压缩继续推进工作。我的目标是让此前的沟通能帮助下一次委托,减少反复交代背景的负担。
在执行方式上,Molr 使用事件驱动的 Agent Loop。收到用户消息、到了计划时间,都可以唤醒对应的助理;助理读取相关上下文,调用模型和工具,再把结果发布到对话中。定时任务有自己的触发来源,不需要伪装成一条用户消息。
这样,聊天负责沟通,计划负责保存时间安排和执行记录。你可以随时回来查看结果,而不需要一直守着一个正在生成回复的窗口。
权限随着信任逐步扩大
不知道有多少人最终会开着 Full Access 跑任务。
至少对我来说,一个常见原因是授权方式不够细:限制严格时,稍微超出工作区就要逐项审批;想省去打断,又容易直接给出很大的访问范围。设想自己带一个团队,如果下属每执行一个操作都要找你批准,恐怕很难留下时间做别的事。
Molr 的设计是让助理按需申请权限,并让授权有明确的范围和期限。
缺少权限时,助理会在对话中提交申请,说明用途、资源、操作、范围、额度和有效期。用户可以核对、修改后批准,也可以拒绝。已经有有效授权覆盖的操作,可以在该范围内继续执行;需要扩大范围、增加额度或延长时间时,再提出申请。
以整理资料为例,开始时可以只授权读取某个目录。如果后来需要把整理结果写回去,再增加相应的写入权限;如果这是一项临时工作,授权也可以在约定时间到期。文件访问、计算和网络资源,都可以按需要管理。
我希望这个过程接近人与人之间建立信任的方式:先交代一件范围清楚的事,观察结果,纠正理解上的偏差,再根据合作情况决定是否给出更广泛、更长期的授权。这里的信任由用户判断,权限扩张仍然需要用户批准。
积累上下文有助于助理理解要求,但具体能做什么,仍由系统执行授权检查。用户也可以修改或撤销权限;已经完成的文件写入等操作,则不会因为撤权而自动回滚。
自己选择模型和运行方式
Molr 可以接入本地模型,也可以连接云端模型服务,并按助理选择模型、设置预算。安装包本身不包含模型权重或推理服务,需要连接已有的模型服务后再使用。
对我来说,自托管的意义是能够自己安排这套系统:服务跑在哪里、资料存在哪里、模型请求交给谁,以及助理可以使用哪些资源,都有明确的配置入口。如果选择云端模型,提交给模型的上下文仍然会发送到对应提供商,自托管后台服务并不意味着所有处理都发生在本地。
技术栈目前是 Go、React / TypeScript 和 SQLite,桌面端使用 Electron。项目提供 Linux、macOS 和 Windows 桌面应用,也可以在常开设备上部署后台服务,再通过桌面客户端或浏览器连接。
试用与反馈
Molr 仍在持续开发,功能和交互还会调整。我希望先把日常使用里最基础的几件事做好:换设备能接着沟通,长期合作能积累上下文,授权能随着实际需要逐步调整。
如果你也在寻找这样的个人 Agent,可以从这里开始:
遇到问题,欢迎提 Issue。也欢迎分享自己的使用场景和希望改进的地方。如果觉得这个方向有意思,顺手给个 Star,十分感谢。