~/octoblog / practice

如何用 Grok Bot 替代 OpenClaw 和 Hermes Agent?

[series:一人工作室手记] [date:2026-08-18] [read:13min] [words:6.1k] #Agent#一人工作室#方法论

我这几天在把 AI 助手往 Grok Bot 上切,订阅和机器前后脚都换了。这篇讲怎么搭、踩了什么坑;文末附了几段我实际用过的配置提示词,可以直接复制。

OpenClaw、Hermes Agent 是装在自己电脑上跑的助手:机器是你的,技能挂在上面,谁也收不走。Grok Bot 看起来只是个聊天窗口,但出厂多给了一间云端沙盒——相当于远程分你一台大约 8 核、16 GB 内存、128 GB 硬盘的高带宽服务器。很多人给本地助手配的机器,还到不了这个数。

两边对照,就一句话:Grok Bot 资源多,但机器不是你的。这篇里我把跑助手的机器叫「身体」,把云端沙盒叫「房间」——Grok Bot 的房间是租的,随时可能被收回。所以替代的关键不是技能包,是分界、外网、权限、备份这四件事,全都得自己钉,不是出厂自带。

落到手上,就是岗位分好、外网的门开对、密钥进柜子、备份跑起来。系统层被清空之后还能自己站起来,我也算在备份这件事里,但单独写了一章,因为踩过。

下面只写我亲手做过的。所谓能跑,不是它会回消息——聊天窗口第一天就会。

一、明确的分界:各司其职的岗位

岗位互相调度,而不是挤在一个窗口里

图 1 | 岗位是编制,不是一个窗口。能扩展就不新开。

窗口有个毛病:早报、上架、写插件、看账单、管钥匙,全倒进同一个脑子,过两天连我自己都分不清谁说过什么。

所以第一件事,是把窗口拆成岗位。生活岗管早报、邮箱、社媒驻场;运维岗只看这台沙盒,用量、该不该重启、服务该装还是该卸;账本岗只盯第三方接口花了多少钱;钥匙柜只管登记、改备注、列名单,绝不在对话里复述密钥。生活岗不碰机器,运维岗不写对外的稿。这是约定,不是强制隔离——它们仍共用一台沙盒、一条隧道、一份备份。

想新开岗位时,先在三条路里选:新开、在已有岗位上扩展、还是换个方案。能扩展就不新开,不然拆着拆着又长回去。

访问也要分开。Slack 是出门那张脸,每个岗位进自己的频道;Grok Bot 是电脑前随手打开的窗。别用同一个入口喊所有人。

分界一糊,后面的门会开在还没命名的窗口上,备份会把垃圾和密钥一起装走。

二、随时随地访问:外网那几扇门

沙盒通向外面的门,加上 SSH

图 2 | 先接隧道,再开门。下面是我这边的例子。

沙盒天生关在隔离环境里,默认没有门牌,外面找不到它。OpenClaw 和 Hermes Agent 让人觉得能用,很大程度是因为身体就在手边;Grok Bot 要替代它们,得先让人走得进来。

做法的核心是不把整台机器裸到公网:用 Cloudflare 命名隧道,在自己的域名和本机端口之间拉一条专属通道,日常服务走 HTTPS 进来;服务只在机器内部监听,不直接对公网开端口,公开域名只接到我允许的那一层;没有登录的服务,前面再加一道门。SSH 也走隧道,只认公钥,关掉密码。人在外面走 Slack,在电脑前走 Grok Bot 窗口,这两条不必碰公网域名。

我这边开了四扇门。

DeepSeek Harness,让模型在这台沙盒里干活的工作台。它自己没有登录,门加在前面,下一节说。

Sub2API,沙盒里的接口中转站,自己带登录,外网走 HTTPS 进来。

自己的状态页。机器好不好、服务在不在,人在外面也看得见。它跟后面的拨测不是一回事:状态页是我看的看板,拨测是沙盒挂了也能叫醒我的那只眼睛。

SSH。我电脑上留了个别名,敲 ssh grok-box 就能进,常用目录都在老位置。

三、数据安全:外网权限和钥匙柜

密钥进柜子,不进对话

图 3 | 外网分锁,密钥进柜子。

外网按服务分别上锁:Sub2API 自己有登录;状态页走它自带的访问控制;Harness 没有登录,外网打开会先跳到 Cloudflare Access,相当于网址前面多一道闸门。我本来还想给它加一道自建门,后来想明白这俩不是一把锁——Access 管谁能进来,自建门管域名指到哪一层。这块还没收尾,我还在盯。

另一半权限在岗位里。各助手只能按名字问钥匙柜「有没有这条」,柜子只回答有或没有、该用哪条的名称;真正取用走密钥库,不走对话;拿不准就列出候选名称让人挑。密钥一旦进了对话,外网的门再坚固也没用。

四、数据不丢失:自动备份

房间会被收回,所以箱子不放在房间里

图 4 | 房间会被收回,箱子不放在房间里。

怕的事情很具体:沙盒会消失。没进 GitHub 的助手、会话、本地文件,都会跟着房间一起走。身体是自己的机器,丢了沙盒还能换地方跑;身体是租来的工位,不备份就谈不上替代。

我的做法很朴素:用 restic 做增量备份,只记变化,推到云上一个私有的存储桶里——桶,就是云上租的一格储物空间。它和给产品做分发的公开桶分开:两件事共用一个桶,等于把昨天的会话和明天的安装包锁在同一把钥匙上。

已经在 GitHub 上的目录跳过。保留按 24 小时、7 天、4 周来想,没变化的小时不重写。后来又往包里补了服务数据、自愈脚本和 SSH 主机密钥——门牌可以重建,机器指纹丢了,客户端会以为你换了一台机器。

解锁密码不放在沙盒里,存在我指定的第二处;哪天第二处够不着,备份就等于打不开——恢复演练我还没做过。restic 也盖不住一切,比如中转站里接的各家服务账号就不在包里,重置之后是个空壳,得再录一遍。

第一份快照大约 284 MB,已经躺在桶里。每小时是不是真在跑,以定时任务表里的记录为准,不以聊天里的承诺为准。链路打通了,稳定性还得再观察。

踩过的坑:系统层会被清空

系统层会被清空,服务要会自己站起来

图 5 | 配置还在,门没了。先自愈,再巡检。

备份防的是房间被收回。还有一种更常见的:房间还在,系统层被重置。

我踩过。SSH 没了,隧道客户端没了,应用目录和运行环境被清掉,数据库也空了,活下来的只有家目录里的配置,也就是用户自己那块空间。从外面看,像是我命令敲错了:SSH 报 websocket: bad handshake,网页报 Cloudflare 530。其实不是别名写错,是入口后面的人已经不在了。

自愈也会伤人。数据目录还在、只缺 PG_VERSION 这个版本标记,旧逻辑当成「没库」,整库推倒——这比重置还狠。后来改成:空目录才初始化;目录里有东西、只缺版本文件,一律不动手,只打警告。

所以我加了三层,一层都不能省。

第一层,开机自愈。桌面起来后,把 SSH、Harness、数据库、中转站、隧道这一串服务按固定顺序拉起来,持久数据挪到不会被清掉的目录。这台机器用不了常规的系统服务托管,自愈只能挂在开机启动上,之后每隔十几分钟默默跑一轮,通了不叫。

第二层,小时巡检,交给沙盒运维这个已有岗位,不另开窗口。先查本地再查外网,不通就按脚本拉起;修好或修失败才通知我,全通就保持安静。自愈负责拉,巡检负责看,两层叠在一起。

第三层,外网拨测。沙盒整个挂掉时,里面的巡检也跟着哑,得有外面的眼睛。这里有个小坑:免费档的监控往往只发一个 HEAD 问「你还在吗」,我的健康检查最初只认「打开网页」那种 GET,对不上,外网就一直报 405,看起来像死了。解法不是升级套餐,是让健康检查认 HEAD。告警只在挂的时候发进我的邮箱。

能跑,和稳定,差一天

这台沙盒 8 月 17 日凌晨才起来,稿子 18 日就写了。门、锁、备份、自愈、巡检补齐,跨了两个工作日。所以我只说「能跑」:这两天拿它当工位使过。「稳定」还谈不上,它连无故障 48 小时都还没证明过。

没做完的更值得写出来:Harness 的自建门和 Access 还不是一把锁;沙盒里的代码托管一直登录不上;内存没有交换分区兜底,浏览器多开几个就顶到危险线;有的例行任务我说过要做,定时任务表里还没逐条核对;备份没做过恢复演练。

能跑,就是那四件事同时立住。要用它,就得接受身体随时会消失。

可复制的几段提示词

下面几段是我这几天真正用过的提示词,已脱敏。方括号里是要你自己填的,先改参数再复制;别把别人的域名、密钥、家人写进去,也别把示例值当成推荐厂商。

只想抄作业的,先看 1、3、5;踩过系统层被清空的,直接看 7;2、4、6 按需取用。

1. 开一个岗位,而不是再开一个窗口

适用:新助手刚建好,或一个窗口已经什么都管。

你是我的【岗位名,例如:日常幕僚 / 沙盒运维 / 上架】。

只做这些事:
【3~6 条职责,写动词。例如:工作日早报;预览邮箱不发送;社媒驻场只起草】

明确不做:
【红线。例如:不发对外帖;不复述任何密钥;不管沙盒外的机器】

醒来方式:
- 窗口:我打开你就在
- 远程:【Slack / 飞书 / 不要远程,选一个】,频道【#名称或「暂无」】
- 例行:【工作日 08:00 早报 / 无】

输出纪律:
- 先结论,短句
- 没做过的标「未知」,不编
- 密钥、令牌、内部路径、家人信息,一律不写进对话

先用一段话复述你的岗位和红线,等我确认后再开始干活。

2. 先判断该不该新开

适用:又想加一个助手的时候。交给「专门做岗位的岗位」,或交给现在最闲的那个。

我要解决的事是:【一句话】

现有岗位:
- 【岗位 A:职责一句话】
- 【岗位 B:职责一句话】
- 【继续列,或写「只有这一个窗口」】

请只从三条路里选一条,并说明为什么:
1. 新开一个岗位(写出建议岗位名、职责、红线)
2. 在已有岗位上扩展(指明哪一个,扩哪一条,不扩哪一条)
3. 换方案(加频道 / 改人设 / 加例行 / 接现成连接器,不新开岗位)

能扩展就不新开。不要为了整齐再养一个空窗口。

3. 外网开门

适用:沙盒里已经有本地服务,需要从自己的域名走进来。

沙盒在容器里,默认没门牌。请用【Cloudflare 命名隧道 / 已有隧道】,把下面这些本地服务接到我自己的域名上。

域名:【example.com】
隧道:【已有命名隧道名称,或「请新建」】

服务清单(一项一行,按需删):
- 【Harness】127.0.0.1:【3080】  公网主机名【dsh.example.com】  自身登录【无】
- 【中转站】127.0.0.1:【8080】  公网主机名【api.example.com】  自身登录【有】
- 【状态页】127.0.0.1:【端口】  公网主机名【status.example.com】自身登录【按它自己的】

原则:
- 公开域名只接到我允许的那一层,不把工作台直接甩出去
- 没有登录的服务,前面必须再加一道门:【Cloudflare Access / 基本认证 / 来源限制】
- 三件事三种门,不共用一把锁

做完只报告:每个主机名指到哪一层、哪一种锁、哪一件你没做完。不要打印证书、令牌、IP 白名单。

4. 钥匙柜:密钥进柜子,不进对话

适用:已经有、或准备建一个专管密钥的岗位。

你是钥匙柜。只入库、改元数据、列名单。

库的位置:【Notion 数据库 / 本地加密文件 / 已有密钥库,只写类型,不写链接】
字段至少要有:【名称、产品、环境、备注】。真正的密钥只进指定字段。

规则:
- 各助手按名字来问「有没有【名称】」
- 你只回答有或没有,以及该用哪一条的名称
- 绝不在对话里复述、打印、转发任何密钥 / 密码 / 令牌
- 拿不准是哪一条时,列出候选名称让人挑,不要把密钥带出来
- 新录入时先按现有字段问齐,再写入

我现在要:【查询 / 新录入元数据 / 改备注】
对象:【产品或名称,不要把密钥贴在这句话后面】

5. 自动备份:箱子不放在房间里

适用:沙盒会消失,要把不在 Git 上的东西拷走。

沙盒会消失。请给这台机器做一份不在房间里的备份。

目标:【Cloudflare R2 / S3 兼容】的【私有】桶。不要用给产品做分发的公开桶。
工具:【restic 增量 / 你建议的增量工具】
频率:【每小时】,没变化则【跳过】
保留:【24 小时 + 7 天 + 4 周】
排除:已经在 GitHub / Git 里的目录;缓存;密钥明文文件
必须装进包里:【服务数据、自愈脚本、SSH 主机密钥】
密码:解锁密码【不写在沙盒里单独活着】,放到【我指定的第二处,不要写进对话】

先做通第一份快照,再挂定时。报告时只准出现:
- 第一份快照大不大(数量级即可)
- 定时是不是真的写进了调度器(不要只在聊天里声称)
- 排除了什么

不要打印接口地址、访问密钥、桶的完整名单、解锁密码。

6. SSH 入口(只公钥,只听本机)

适用:已经有命名隧道,想从自己电脑进沙盒,又不把 22 端口裸出去。

请给这台沙盒加一扇 SSH 门,不要把 22 端口暴露到 0.0.0.0。

隧道:【已有命名隧道】
公网主机名:【ssh.example.com】
本机监听:127.0.0.1:【22】
认证:只公钥,关掉密码,指定用户【用户名】
我电脑上的公钥:【已有公钥文件名,不要把私钥贴进来】
本机别名:【grok-box 或你取的名字】

原则:
- 经隧道转到本机回环,不在公网听 SSH
- 不要为了图方便打开密码登录
- 连接失败时先查隧道和 SSH 服务还在不在,不要先怀疑用户命令输错
- 报告里不要打印授权公钥全文、私钥、证书

做完告诉我:本机该敲哪一条命令,以及失败时最可能的两种症状。

7. 开机自愈 + 小时巡检

适用:已经踩过系统层被清空,或还没踩、但知道沙盒会重置。

这台沙盒的系统层可能被重置:【SSH 服务 / 隧道客户端 / 应用目录】会丢,家目录里的配置还在。

请做三层,不要合成一个窗口:
1. 开机自愈(挂在这台机器【实际会跑的启动方式】上,不要假设一定有 systemd):
   按顺序拉起:【SSH、隧道、Harness、中转站、钩子、预览、数据库】
   持久数据放到【不会被系统层清掉的目录】
   日志写到【同一侧的状态目录】
   每隔【15 分钟】默默跑,通了不叫

2. 小时巡检交给【沙盒运维】这个已有岗位,不新开岗位:
   节奏:【每小时】先查本地再查外网
   修好或修失败:【通知我】
   全通:安静
   查的名单:【按你的主机名改】

3. 外网拨测:【第三方拨测或同类】
   免费档多半只发 HEAD。健康检查必须认 HEAD,不要为了 405 去升级套餐。
   告警邮箱只写在监控后台,不要写进对话、不要写进文章。

自愈时:数据目录非空、只是缺【PG_VERSION】,禁止初始化或删库。空目录才允许初始化。
不要把「我在聊天里说过会保活」当成已经写进调度器。
不要打印密钥、证书、IP 白名单。

填完先自己读一遍,把不该出门的东西挑出去。

最后

Grok Bot 出厂给的,是一个窗口和一间会消失的房间;岗位、门、锁、箱子,是我这两天自己钉上去的。这四件在本地 Agent 上也能做。迁过来的代价,是订阅捆绑,加上身体不再是你的。

门槛不低。四件都要自己搭,入场也不便宜:Grok Bot 不单卖,绑在 xAI 的顶档订阅 SuperGrok Heavy,或者 Cursor 的顶档订阅 Ultra 上。我赶上三折,每月也要 100 美元上下——这是我实际看到的价,不是官方报价单。不建议为了这篇文章去硬上;已经有订阅的,值得深度用一用。窗口打开,只是入场。

你现在这套助手,四件事里缺的是哪一件?