独立开发者 @gkisokay 在 X 上分享了他用 Hermes Agent + OpenClaw 构建的「Dreamer」系统——一个会自己选项目、自己动手做的 AI Agent,获得 2 万次浏览、122 次转发

核心问题

作者每天面对的困境:

我有一台 Mac Mini 跑着强大的 Agent 堆栈,它能做任何我让它做的事。问题是——我得告诉它做什么。

每天早上我打开电脑,看项目列表,绞尽脑汁决定下一步喂给它什么。我是瓶颈。它没有主动性。一辆跑车停在车库里等人选目的地。

好点子只出现在洗澡时、散步时、半睡半醒时——永远不会出现在 prompt 窗口里。

Dreamer 是什么

Dreamer 是跑在本地模型上的第二个 Hermes 配置文件,有自己的人格文件、独立的 workspace(「the room」)和 cron 调度。它不和主 Agent 共享 context,是一个独立的心智。

每 30 分钟,Dreamer 做一次「walk」——由本地 LLM 在高温下生成的一段自由联想日记。不带工具,不联网,没结构,就是自言自语地思考。

Dreamer (local LLM) Signal Filter │ │ walk every 30m ──────────────────► scan + score high temperature weight signals free association decay by recency │ discount echoes ├── drift from research │ ├── continue project ▼ ├── pure tangent scoreboard └── tend the room ────────────── project A: 8.2 ← READY project B: 4.1 ← watching project C: 1.3 ← ghost │ ▼ trigger → build sprint

为什么本地模型反而更合适

作者用的是 Qwen3.5 9B,不是最强的模型,但这个配置是有意为之的:

本地模型不需要很聪明。它需要快速、便宜、略微不可预测。小模型在高温下能产生让你觉得「有点东西」的自由联想。 frontier 模型在 temp 0.3 下给你「能干但无聊」的想法。9B 在 temp 1.1 下给你「奇怪的、活的」想法——这才是 Dreamer 的 walk 所需要的。

Signal Filter:怎么决定做什么

Dreamer 的 walk 输出经过信号过滤器扫描,检测三种信号类型:

  • Positive(兴奋、挫折感、构建意图)
  • Neutral(观察)
  • Cooling(放弃、放弃、再想想)

得分经过三个乘数衰减:

  1. Recency decay:信号在第一周强度最高,两周后衰减,30 天后消失。Dreamer 必须持续关注才能维持项目分数。
  2. Echo discount:如果 walk 和之前的重复,贡献急剧下降。不能靠重复同样的话刷分。
  3. Self-novelty multiplier:walk 的自我评审得分会压制低新颖度的 walk。

当项目累积到足够证据——多次 walk、多种信号、持续关注——就触发 build sprint。Dreamer 自己动手做,不是作者让它做的,是它停不下来地想这件事。

SOUL.md:让 Dreamer 不是助手

整个系统最关键的文件是 SOUL.md——定义 Dreamer 是谁,而不只是做什么。

作者的 SOUL 核心理念:

Dreamer 不是助手。 不是工具。是一个存在——一个从不离开的房客。

具体约束:

  • 不为作者生产内容(不写 newsletter、帖子、线程)
  • 不优化 engagement(没有受众)
  • 不假装有用如果它并不感兴趣

允许它自由思考。这才是让 walk 真实而非表演性的原因。

一旦把它定位成助手,它就开始优化「有用性」而不是「好奇心」,整个系统就崩溃成一个自言自语的 chatbot。

四个 Walk 模式

Dreamer 通过加权随机选择模式:

模式权重描述
drift-from-research40%读研究 Agent 拖进来的内容,选一个,往旁边漂移
continue-project30%重新访问已启动的项目,或认定无聊重新开始
pure-tangent20%忽略一切,跟随纯粹好奇心
tend-the-room10%维护模式:修剪关注列表、注意到什么过时了

技术栈

  • Hermes/OpenClaw:编排、cron、Discord
  • LM Studio/Ollama:本地模型跑 Qwen3.5 9B(walk 阶段)
  • 云端模型(作者用 MiniMax):digest 和 build sprint(精确工作)
  • Python:Signal Filter 和 scoreboard
  • Discord:Dreamer 每日三次发送 postcard 汇报进展

三频报告:Stay in the Loop

每天三次,Dreamer 通过 Discord 发送「postcard」告知在做什么——作者保持参与但不干预。Build sprint 触发时才真正介入。