Home
avatar

麒麟剑

7×24 不下班:用 /goal 与定时任务让数字员工自主干活

7×24 不下班:用 /goal 与定时任务让数字员工自主干活

前面 4 节,你把数字员工造出来了:会记忆(05)、会沉淀技能(06)、换脑子不疼(07)。但它还在”你问一句、它答一句”的状态。真正的”员工”不是客服,是你说一句”把这事办了”,它自己拆解、自己推进、自己交付,你睡一觉起来活干完了。

这一节讲两件事:会话内让它盯着一个长期目标自己循环(/goal),以及脱离会话让它定时上岗(cronjob)。这是从”工具”到”员工”的最后一步。

/goal:给 Agent 一个跨轮长期目标

Hermes 桌面版流式对话与文件工作流 ▲ Hermes 桌面版流式对话与文件工作流

/goal <text> 不是一次性指令,而是一个跨多轮对话的长期目标(简报 §3,Ralph 循环)。设下之后,Agent 会在每轮对话里围绕这个目标自主推进,默认预算 20 轮

子命令:

/goal 帮我搭好 v2.3 看板模块的前端骨架,含列表/卡片/拖拽
/goal status     # 看当前目标进度
/goal pause      # 暂停(你去忙别的)
/goal resume     # 恢复
/goal clear      # 清除目标

/subgoal <text> 向活跃目标追加一条”子标准”——相当于你中途补一句”对了,移动端也要适配”,它会被并入目标约束。

/goal 重写排产引擎,解决 500+ 工单超时
/subgoal 必须保留现有 API 契约不变
/subgoal 加压测脚本,复现超时再验证修复

它的工作方式(Ralph 循环):每轮先回顾目标 → 决定下一步动作 → 执行 → 检查是否达成 → 没达成继续,直到预算耗尽或目标完成。你不用一步步喂指令,给方向就行。

/heartbeat:空闲时定期”重入”

有些目标需要它主动想起来,而不是等你发消息。上 /heartbeat(别名 /hb):

/heartbeat every 300s 检查一下监控面板有没有新告警,有就告诉我
/hb every 600s 看看爬虫跑完没,跑完就汇总发我

最小间隔 60 秒。效果是:会话空闲时,按间隔周期性用指定 prompt 唤醒自己重入。适合”盯盘""盯日志""等某个异步任务完成”这类场景。别设太密,60s 是下限,频繁唤醒也烧 token。

cronjob:脱离会话的定时员工

/goal 还绑着你的会话。要”人不在、它也在”,用 cronjob 工具(简报 §6),子命令:create / list / update / pause / resume / run / remove

# 创建一个每天早上 9 点执行的任务
cronjob create --name daily-brief \
  --schedule "0 9 * * *" \
  --prompt "抓取过去 24 小时 AI agent 领域动态,写一份 5 条要点的行业简报,发到我的 Telegram"

cronjob list        # 看所有任务
cronjob pause <id>  # 暂停
cronjob run <id>    # 立即手动跑一次(调试用)
cronjob remove <id> # 删

--schedule 是标准 cron 表达式。cronjob 由 Hermes 调度器(cron/jobs.py + scheduler.py)常驻管理,配合 gateway 常驻(hermes gateway run)或 systemd 服务即可 7×24 运行。Bot Mode 的 Routines 本质就是 Hermes cron,命名 [bot:<name>] <routine>,结果落进该 Bot 聊天历史(hermes cron list 可见)。

自主执行 vs 人工审核的边界

Agent 能自己跑 cron、自己定目标,那它会不会自己干危险的事?Hermes 有边界控制(简报 §11),这一节先点概念,安全细节留到第 12 章深讲:

approvals:
  mode: smart            # smart | manual | off(默认 smart:辅助模型评估风险)
  cron_mode: deny        # deny | approve(cron 任务默认要审批)
  single_query_mode: deny

cron_mode: deny 意味着定时任务里的危险操作默认被拦,需要你批。个人本地环境可以放宽,但任何接了消息平台、能对外发消息或动生产数据的员工,先把审批开着。自主 ≠ 裸奔。

演示:一个”每天早 9 点发昨日行业简报”的员工

综合上面两套能力,给你一个能直接落地的写法思路。

方案 A:纯定时(cronjob,最省心,人不用在线)

cronjob create --name ai-news-brief \
  --schedule "0 9 * * *" \
  --prompt "用 web_search 抓过去 24 小时 'AI agent / LLM / 自动化' 重要动态,\
筛选 5 条最值得我关注的,每条给一句话结论 + 来源链接,\
整理成简报文本,通过 gateway 发到我的主频道"

要点:prompt 里写清”用什么工具抓、筛几条、格式、发到哪”。cronjob 自己会调 web_search、自己组织、自己通过已配好的平台发出去。

方案 B:目标驱动(/goal,适合需要多天迭代的复杂产出)

/goal 建一个行业情报收集流水线:每天自动汇总 AI agent 动态,存到 ~/briefs/,并推送
/subgoal 先确定 3 个稳定信息源
/subgoal 输出统一 markdown 模板

/goal 适合”造流程”,cronjob 适合”跑流程”。实务里常组合:用 /goal 把流水线搭好、沉淀成技能(第 06 章),再用 cronjob 每天定时触发这个技能。

⚠️ 避坑提示

  • 预算/失控风险/goal 默认 20 轮预算,自主循环可能跑偏、可能反复调贵模型。先在小范围、低成本任务上试,确认行为稳了再放大。别一上来就让自主 Agent 去动生产数据库。
  • cron 也要审批:接了平台、能外发的 cron 任务,留 cron_mode: deny,别一开就 off。自主发消息发错了比手动更尴尬。
  • heartbeat 别太密:最小 60s,但 60s 一轮也挺费。盯盘类设 5–10 分钟更合理。
  • 目标要可验证/goal 写”做个好看的看板”它没法判断完成;写”含列表/卡片/拖拽三块、能 npm run dev 起来”它才知道何时停。给验收标准 = 给它停下来的条件。
  • 长会话别切模型:接第 07 章,自主循环里若触发模型回退,前缀缓存重置、整段上下文全价重读,烧钱且可能中断。主模型锁死。

本节能造出什么数字员工

  • 每天定时上岗的情报员:cronjob 早 9 点发简报,你醒来就有料。
  • 盯盘不眨眼的运维兵/heartbeat 周期查告警,出事立刻叫你。
  • 自己推进项目的执行者/goal 给方向,它自己拆、自己干、自己交付,你来验收。

到这一节,“数字员工”的雏形齐了:记忆让它懂事、技能让它会干、模型无关让它便宜可换、目标与定时让它自己转。后面章节会讲多员工编排(Bot Mode / 多 profile)、安全加固、以及如何把它接进微信/飞书/钉钉真正上岗。

下篇预告

第 09 章起进入”军团管理”:多智能体编排与 Bot Mode——一个账号里养多个具名数字员工,各有专属记忆/技能/模型,群聊里 @ 互相协作。你会学到怎么用 profile 隔离出一整支队伍,以及跨机 peer 编排让多台机器上的 Agent 组队干活。


延伸阅读

Hermes Agent 数字员工 AI智能体 自托管 Nous Research 定时任务 cronjob 自主执行 /goal