20.05拆解更新于 2026年9月17日

个人常驻 Agent

OpenClaw、Hermes 等:常驻运行、多渠道接入、Skills 与本地执行。

20.05 · 课时讲解

产品拆解:个人常驻 Agent

一个在你自己机器上 24 小时运行的网关进程,权力几乎全交给了个人。

1 / 13

一句话理解:个人常驻 Agent 的本质是“一个在你自己机器上 24 小时运行的网关进程”——通过聊天软件接收指令、通过定时与心跳主动干活、通过 Skills 和记忆越用越顺手;它把几乎全部权力交给了个人,因此安全边界必须由配对、白名单、审批和沙箱自己守住。

前几课的产品都有一个共同点:你打开一个应用,给它布置任务。个人常驻 Agent 走了另一条路——它 一直在线,住在你的电脑、服务器或一台闲置的迷你主机上,你在 Telegram、WhatsApp、Slack、飞书里给它发消息,它也会在定时任务触发时主动来找你。

2026 年初,开源项目 OpenClaw 让这种形态迅速走红;Nous Research 的 Hermes Agent 则把“自我改进”——自动沉淀 Skill 与记忆——作为核心卖点。本课依据两者的官方文档(截至 2026 年 9 月)拆解这类产品。

先说明产品背景:

  • OpenClaw:此前先后使用过 Clawdbot、Moltbot 等名称。2026 年 2 月,创建者 Peter Steinberger 宣布加入 OpenAI,OpenAI CEO 表示项目将作为开源项目放在基金会中,并由 OpenAI 继续支持。官方文档显示项目采用 MIT 许可,由独立的非营利基金会维护。
  • Hermes Agent:由 Nous Research 开发的开源 Agent,官方文档将其描述为“自我改进的 AI Agent”,内置学习循环:从经验中创建 Skill、在使用中改进 Skill,并跨会话积累对用户的了解。

共同的架构:网关 + Agent 运行时

个人常驻 Agent 的共同架构:聊天渠道与定时任务进入常驻网关,网关完成身份校验、会话管理与调度后交给 Agent 运行时 Telegram WhatsApp Slack Discord 飞书 … 定时任务 / 心跳 Gateway · 常驻进程 身份校验 配对码 · 白名单 · 群聊需 @ 会话管理 按聊天、按发送者隔离 调度 cron 任务 · 心跳 Agent 运行时 模型 + 指令文件 会话开始加载 记忆 跨会话积累 Skills 可复用方法 MCP 工具 外部能力 终端 · 文件 · 浏览器 · 搜索 执行位置:本机,或 Docker / SSH 等沙箱后端
图 1 · 网关 + Agent 运行时:入口与调度在网关,推理与执行在运行时

两款产品都采用了这个结构。差异主要在记忆与 Skill 的“自我进化”程度,以及安全默认值。

用八个问题拆解

1. 它完成什么 Job?

“随叫随到的个人助理”:回复消息时顺手查资料、整理文件、跑脚本、管理日程,定时推送摘要,长期记住你的偏好。Job 是 开放式 的,这是它与业务 Agent 最大的区别——也是风险最大的地方。

2. 它能调用哪些工具?

  • OpenClaw:内置工具覆盖命令执行(exec)、文件读写与补丁、网页搜索与抓取、浏览器(browser)、消息发送、定时任务(cron)、子 Agent 与图像等媒体处理,并可通过插件与 ClawHub 扩展;iOS 与 Android 设备可以作为“节点”配对,提供相机与语音等能力。
  • Hermes Agent:终端与代码执行、文件读写与补丁、网页搜索、浏览器、记忆与 Skill 管理工具,并支持 MCP。

两者都通过 Skills 扩展方法。以本站的 Search Router 为例:把它克隆到 ~/.hermes/skills/research/search-router 之后,直接对 Hermes 说“搜索 XXX”,Agent 就会按任务类型在 Tavily、Serper、Exa、Brave 之间选择搜索渠道。这正是“Skill 由描述驱动触发”的日常体验(参见「Skill 如何被发现与加载」)。

3. 它拿得到什么上下文?

这是两款产品设计最有特色的部分。

OpenClaw:工作空间文件 + 分层记忆

  • 工作空间中的 AGENTS.md(操作指令)、SOUL.md(人设、语气与边界)、USER.md 等文件在会话开始时加载。
  • MEMORY.md 是精炼的长期记忆层,存放持久事实与决定,会话开始时加载。
  • memory/YYYY-MM-DD.md 是每日笔记,今天与昨天的笔记自动加载,更早的通过 memory_search(语义搜索)和 memory_get(读取指定文件或行)按需获取。
  • 官方文档描述了一个名为 dreaming 的后台整理机制:收集短期回忆信号、给候选内容打分,只把合格的条目提升到长期记忆中。

Hermes Agent:有容量上限的记忆 + 全文检索

  • ~/.hermes/memories/ 下两个文件:MEMORY.md(Agent 的笔记,约 2,200 字符上限)与 USER.md(用户画像,约 1,375 字符上限)。
  • 会话开始时把记忆作为“冻结快照”注入系统提示词,会话中的修改立即写盘,但要到下一次会话才进入提示词——官方文档说明这样做是为了保护前缀缓存(参见「提示缓存」)。
  • 超出容量时,Agent 需要合并、替换旧条目,而不是无限追加。
  • 所有 CLI 与聊天会话存入 SQLite,并通过 FTS5 全文检索,Agent 可以用 session_search 找回几周前的对话。

两种设计代表了长期记忆的两个思路:OpenClaw 靠 分层 + 后台整理,Hermes 靠 硬容量上限 + 检索兜底。两者都在回答同一个问题:怎样让记忆有用,又不把上下文撑爆(参见「长期记忆」)。

把两种设计并排来看:

OpenClaw 与 Hermes Agent 的长期记忆设计对比:分层加后台整理,对比硬容量上限加检索兜底 OpenClaw 分层 + 后台整理 会话开始加载 AGENTS.md · SOUL.md · USER.md · MEMORY.md 每日笔记 今天与昨天的 memory/YYYY-MM-DD.md 自动加载 更早的笔记 memory_search 语义搜索 · memory_get 读取 dreaming 后台打分,只把合格条目提升到长期记忆 Hermes Agent 硬容量上限 + 检索兜底 两个记忆文件 MEMORY.md 约 2,200 字符 · USER.md 约 1,375 字符 冻结快照 会话开始注入,会话内修改到下次才生效 超出容量 Agent 合并、替换旧条目,而不是无限追加 会话检索 SQLite + FTS5 全文检索 · session_search 共同问题:怎样让记忆有用,又不把上下文撑爆
图 2 · 两种长期记忆设计:OpenClaw 靠分层与整理,Hermes 靠容量上限与检索

4. 它在哪里执行?

默认在 你自己的硬件 上运行,这是这类产品的核心卖点,也是最大的风险来源。

  • OpenClaw 的网关始终运行在宿主机上;开启沙箱后,只有工具执行被移入沙箱。沙箱模式默认为关闭,可以设为只对非主会话启用或全部启用;沙箱范围可以是每个会话、每个 Agent 或共享;后端包括 Docker、Podman、SSH 等。官方文档坦言这“不是完美的安全边界”,但能实质性地限制文件系统与进程访问。
  • Hermes Agent 提供多种终端后端:本地、Docker、SSH,以及 Daytona、Modal 等远程或无服务器环境。使用 Docker 后端时,容器默认丢弃全部 Linux capabilities、禁止提权并限制进程数量。

5. 它如何决定下一步?

对话触发时由模型在 Agent Loop 中决定。两款产品的特色在于 主动性:

  • OpenClaw 心跳:系统定期在主会话中运行一轮 Agent,让模型检查是否有需要提醒你的事情。默认间隔 30 分钟,可以关闭。旧版的 HEARTBEAT.md 任务文件已被弃用,周期性检查改为独立的自动化任务(cron jobs)。官方文档专门给出了降低心跳成本的配置,例如使用隔离会话、跳过启动文件或换用更便宜的模型。
  • Hermes cron:可以用自然语言创建定时任务,例如“每天早上 9 点查看 Hacker News 的 AI 新闻并发到 Telegram”;任务由网关守护进程调度,在隔离的 Agent 会话中运行,结果投递到指定的聊天平台。

主动运行的代价是 持续的 Token 成本 与 无人值守时的风险,这也是为什么两者都把调度放在网关层、并为无人值守场景单独设计审批行为。

6. 它如何验证结果?

个人 Agent 通常没有系统化的验证环节,主要依赖:

  • 在聊天中把结果回报给用户,由用户判断;
  • Skill 中写入的检查步骤(例如脚本执行后检查输出);
  • 定时任务在执行前校验配置是否可用——Hermes 的文档说明,配置有问题的任务会进入 blocked_config 状态,避免空耗 Token。

这是个人常驻 Agent 最薄弱的一环。把它用于重要事务前,最好自己在 Skill 里补上验证步骤(参见「各类动作的验证方式」)。

7. 什么时候需要人确认?

谁能给它下指令是第一道确认:

  • OpenClaw:未知发送者会收到配对码而不是被直接处理;私信支持配对、白名单、开放、禁用等模式;群聊默认需要 @ 才会响应。官方文档强调“一个网关对应一个信任边界”,不适合让互不信任的用户共用一个网关。
  • Hermes Agent:网关授权默认拒绝;未配置白名单时所有用户都被拒绝。未知用户会收到 8 位配对码,由主人在命令行批准。

哪些动作需要批准是第二道确认:

  • Hermes Agent 的危险命令审批有三种模式:默认的 smart 用辅助模型评估风险,低风险自动批准、明显危险的自动拒绝、不确定的交给人;manual 每次询问;off 关闭审批(等同 --yolo)。即使关闭审批,rm -rf / 等灾难性命令仍被硬性拦截,用户自定义的 approvals.deny 规则也优先生效。在聊天中可以直接回复 /approve 或 /deny。
  • OpenClaw 通过工具策略的 allow/deny 控制可用工具;tools.elevated 是让 exec 跳出沙箱在宿主机执行的显式“逃生口”,可以用工具策略的 deny 永久关闭。

两道确认连起来,就是一条消息从进入网关到真正执行要经过的关卡:

个人常驻 Agent 的两道确认:先校验谁能下指令,再判断哪些动作需要批准,另有任何模式下都生效的硬性拦截 消息 第一道:谁能下指令 OpenClaw 配对码 · 白名单 · 群聊需 @ Hermes Agent 默认拒绝 · 8 位配对码 Agent 第二道:哪些动作要批准 Hermes Agent smart / manual / off OpenClaw 工具策略 allow / deny 执行 任何模式下都生效 Hermes:rm -rf / 等灾难性命令硬性拦截,approvals.deny 优先生效 OpenClaw:tools.elevated 逃生口可用 deny 永久关闭
图 3 · 两道确认:入口先验身份,动作再分级审批,底线清单永远拦截

8. 失败如何恢复?

  • Hermes 检查点:开启后,在写文件、打补丁以及 rm、mv、sed -i 等破坏性命令之前自动快照,可以用 /rollback 查看并恢复;官方文档注明该功能默认关闭,需要手动开启。
  • 隔离执行:Docker 等沙箱后端把失误限制在容器内。Hermes 文档指出,在容器中会跳过危险命令检查,因为“容器本身就是安全边界”——这意味着容器配置本身必须可靠。
  • 配置审计:OpenClaw 提供 openclaw security audit,检查暴露的端口绑定、错误的渠道配置与策略偏离。
  • 防注入:OpenClaw 对不可信输入做隔离包裹;Hermes 在把 AGENTS.md 等项目文件放入系统提示词前扫描注入内容,并过滤传给子进程的敏感环境变量。

可借鉴的设计决策

设计决策 产品中的做法 迁移到业务 Agent
入口即身份校验 配对码、白名单、默认拒绝、群聊需 @ 从 IM 或邮件触发的 Agent,先验证发起人身份与权限,再进入推理
记忆有上限、有整理 Hermes 硬容量上限;OpenClaw 分层与 dreaming 整理 长期记忆设置容量与失效机制,避免越积越乱
冻结快照保护缓存 记忆在会话开始时注入,会话内不变 把稳定内容放在上下文前部,变化内容放后部
主动性放在调度层 心跳与 cron 由网关调度,任务隔离运行 定时扫描类 Agent 用独立会话运行,并设置预算
审批模式可分级 smart / manual / off,外加不可关闭的硬性拦截 即使开放自动执行,也保留一份永远拦截的动作清单
第三方 Skill 视为代码 OpenClaw 文档要求把第三方 Skill 当作不可信代码先阅读 Skill 市场与内部 Skill 库需要审核与签名机制
坦诚说明信任边界 “一个网关一个信任边界”“沙箱不是完美边界” 在文档中写清楚产品 不 防什么

常见误区

  • “跑在自己机器上就是安全的。” 数据不出本机只解决了隐私问题;一个能执行终端命令、又能被聊天消息驱动的 Agent,本机恰恰是最有价值的攻击目标。
  • “开了 YOLO 模式效率更高。” 省下的是确认时间,承担的是整台机器的风险。更好的做法是用容器后端隔离,再在容器内放开。
  • “装的 Skill 越多越强。” 每个第三方 Skill 都可能包含脚本和指令,等于给 Agent 安装了新代码。只安装读过、可信的 Skill。

设计要点

  • 默认拒绝未知发送者,所有入口都要有身份校验。
  • 执行位置与信任边界写清楚,高风险工具默认在沙箱中运行。
  • 保留一份任何模式下都不可放行的动作清单。
  • 长期记忆设置容量、整理与失效机制,并让用户可查看、可修改。
  • 主动运行的任务单独计算成本,并设置频率与预算上限。

练习

如果你有一台可以常驻运行的机器,用 60 分钟尝试 Hermes Agent 或 OpenClaw(没有条件的话,只阅读文档完成设计部分):

  1. 接入一个聊天平台,并配置白名单或配对,确认陌生账号无法使用。
  2. 安装一个 Skill(例如 Search Router),用自然语言触发它。
  3. 创建一个每日定时摘要任务,估算它一个月的 Token 成本。
  4. 写下你会放进“永远拦截清单”的 5 条命令或动作。

延伸阅读

下一步

个人 Agent 追求“什么都能做”,而最容易算清价值的 Agent 恰恰相反。最后一课「垂直业务 Agent」会看客服、销售、财务、运维领域的 Agent 如何用窄而深的 Job 换取可靠性与商业价值。

试试:上下文、MCP、沙箱、Prompt 注入、外链