OpenClaw 2026.4.20 · 22 Apr 2026

Personal Infrastructure · Long-form Field Note

Yixiao 的 OpenClaw
多 Agent 个人系统

一个跑在本地 Mac 的、由 17 个 Agent 协作、近 20 个定时任务自动运转、把产出镜像到 Notion / Obsidian / 私有 Wiki 并通过 Telegram 单通道推送的个人 AI 操作系统。运行稳定近两个月,日均 10+ 次自动任务,日常零手动维护。

By the numbers · 2026-04-22 snapshot
18 Agents Core 8 · Optional 9 · Smoke 1
17 Cron Jobs Daily · Weekly · Monthly
59 Plugins Loaded 0 errors after upgrade
3 Sync Endpoints Notion · Obsidian · Git Wiki

为什么值得看

市面上大部分"多 agent"方案要么是云端黑盒,要么是一次性脚本。这个案例的不同之处:

  • 全本地运行Mac + Homebrew + Node,没有任何云部署
  • 自愈能力每日 2 次 Doctor 巡检 + 三级异常分级 + 自动修复
  • 防回退设计source → deploy → runtime 三层分离,live 修复必须回灌 source
  • 数据不锁定同一份真相同步到 Notion(协作)/ Obsidian(本地)/ Wiki(Git)
  • 渐进式审批全局默认放行 + 精细 allowlist 例外,既安全又不打断流
  • 版本化配置~/.openclaw/workspace/ 是 git repo,回溯每一次变更

系统总览

从 Telegram 单通道进入,经 Alice 路由到 17 个 agent 或 17 个 cron,全部产出通过每晚 23:47 的 Data Sync 汇总到三个终端。

Telegram 唯一入口通道 Alice (main) 路由 · 回显 Core Pack 8 agents · default coordinator · dev · reviewer · qa Optional Pack 9 agents · opt-in sage · ops · kb · briefing · … Cron 17 jobs · scheduled daily · weekly · monthly Wiki (共享 KB) Nova owner Data Sync 23:47 每晚 Notion 10 DB Obsidian Vault · Dataview Wiki Git private repo

Agent 设计

命名哲学:希腊女神

每个 agent 有一个希腊女神名字作为 identity,让多 agent 协作产出的日志/报告读起来像团队会议纪要,而不是匿名的 worker-01/02。

Core Pack 8 个·默认部署 α — θ
α
Alice
main
前台会话入口,路由和回显
Telegram·DM
β
Iris
coordinator
intake / 派发 / 恢复 / 全局编排
Alice 转发·cron
γ
Luna
general
调研 / greenfield 方案
Iris·派发
δ
Athena
dev
开发(Track A/B 混合引擎:Claude + Codex 跨模型审查)
Iris·派发
ε
Mira
reviewer
GitHub PR 审查
webhook·Iris
ζ
Vera
qa
深度 QA / 安全 / 回归审计
Iris·派发
η
Juno
acceptance
产品验收(浏览器 + CLI + API,独立工作流)
Alice·直接路由
θ
Hygeia
doctor
健康巡检 / 诊断 / 救活 agent
cron·Alice 直派
Optional Pack 9 个·按需启用 ι — ρ
ι
Vesta
ops
运维(版本检查、数据同步、安全扫描)
cron·Iris
κ
Clio
docs
文档维护
Iris·派发
λ
Nova
kb
Wiki 知识整理(owner)
cron·Iris
μ
Gaia
sage
个人任务管家 + 日报/周报/规划
cron·Iris
ν
Eos
briefing
AI 动态晨报
cron
ξ
Lyra
survey
定时调研 + landscape 维护
cron·Iris
ο
Diana
scout
资讯监控(只读 + 网络)
cron·Iris
π
Thea
evaluator
ROI 评估 + 评估 KB
Iris·手动查询
ρ
Metis
analyst
深度项目/资源分析 + 分析 KB
Iris·手动查询
Design Note 每个 agent 有独立 workspace 目录(~/.openclaw/workspace-<id>/),身份和工具权限由 IDENTITY.md + AGENTS.md + SOUL.md + TOOLS.md 四件套定义。

自动化骨干:17 个 Cron 任务

设计原则

1
晚间只保留 1 条主动推送(日报),其他都静默 → 避免 notification fatigue
2
14/15 个 job 使用 lightContext → 降低启动成本
3
cron 复用 isolated session → 每次跑不污染主对话
4
失败单发 Telegram 告警,成功不打扰
Daily · 每天
08:00

Landscape Update

Lyra生态项目扫描(周一/四搜新项目)
silent
08:30

Morning Plan

Gaia晨间规划 (LightContext)
silent
08:35

Doctor Morning

Hygeia健康巡检
push
09:00

AI Daily Brief

Eos晨报 (AI 动态 + 项目状态)
push
09:15 · 14:15

Coordinator Sweep

Iris收件 + 任务生命周期 + 对账(合并 3 job)
silent
10:00

Update Check

VestaOpenClaw 版本检查
silent
19:15

Task Health Evening

Iris静默:任务推进 + 恢复,三级异常分级
silent
20:35

Doctor Evening

Hygeia静默:健康巡检(供 auto-remediate 消费)
silent
21:00

Evening Report

Gaia唯一晚间主动推送:日报 + Doctor 摘要 + 自动修复记录
primary
22:30

Nightly Task Cleanup

Iris积压任务自动清理 + spawn 归档 + 清理总结推送
push
23:47

Data Sync

VestaNotion + Obsidian + Wiki repo 三端同步(合并,成功不推送)
silent
Weekly · 周度·定期
时间JobAgent
周一 10:00Security ScanVesta
周日 10:00Docs CheckClio
周日 14:00KB ConsolidationNova
周日 22:00Weekly ReportGaia
每月 1 / 15 号 15:00Eval Rule SynthesisNova

三级异常分级

Doctor Evening 和 Task Health Evening 统一用以下分级处理异常:

Tier 01 01
自动恢复
停滞恢复 · session 重启 · 日志轮转
自动修复,写 auto-actions.jsonl,日报聚合。
Tier 02 02
等待确认
gateway 重启 · 配置变更 · 涉及凭证
先通知用户确认,等回复后修复。
Tier 03 03
紧急介入
多次恢复失败 · 数据异常
Urgent 通知用户,需人工介入。

数据流:三端同步,零锁定

每晚 23:47 Vesta 把一份产出同时同步到三个地方,再加一条事件驱动实时推送。

Source of Truth 本地 JSONL tasks.jsonl todos.jsonl worklogs/… sync-notion.mjs sync-obsidian.mjs sync-wiki.sh notion-push.mjs Notion 10 databases Obsidian Vault · Dataview Wiki Git private repo Telegram event-driven
目标脚本作用数据库 / 目录
Notionsync-notion.mjs团队协作视图10 个 DB:Tasks / Projects / Cron / Reports / Daily / Todos / Eval / Health / Inbox / Quality
Obsidiansync-obsidian.mjs本地知识库 + DataviewVault ~/Documents/Obsidian Vault/OpenClaw/ + Dashboard.md(合并在 23:47 Data Sync 内)
Wiki Gitsync-wiki.sh版本化知识备份~/.openclaw/wiki/ → private repo
Telegramnotion-push.mjs实时推送 (event)任务状态变更即时推,失败落 logs/notion-failed.jsonl
Key Insight 数据真相源在本地 JSONL 文件(tasks.jsonl / todos.jsonl 等),三端都是投影。Notion / Obsidian 挂掉不影响核心运行。

共享 Wiki 知识层

所有 agent 共享的知识库,独立 private git repo。三层结构:

  • SCHEMA.md — 约定(页面类型、frontmatter v2、supersedes 等)
  • 页面层 — concept / decision / lesson / project 四种类型
  • raw-sources/ — 原始素材

三件套 CLI(wiki/bin/

# 查询(命中直接返回页面;MISS 累计埋点,Nova 周度补页)
wiki-query.sh --q "<keyword>" --agent <name>

# 补页(非 Nova 默认写 draft,Nova 每周 promote 到正式页)
wiki-ingest.sh --type <t> --slug <s> --title "..." \
               --tags "a,b" --agent <name> \
               --body-file <f> --source-kind <k>

# 健康检查 + rebuild _index.json / index.md
wiki-lint.sh --light | --full

Owner 模式

Nova(kb agent)是唯一 wiki owner:

  • 每日 07:55 light lint
  • 每周日 14:00 full lint + draft promote
  • 其他 agent(Alice / Luna / Athena / Thea)在各自 AGENTS.md 中已接入查询与补页流程

配置持久化:防止回退的三层设计

这是整个系统最精妙的部分。

三层分离

Layer 01 · 真相源
Source · git repo
~/.openclaw/workspace/config/
exec-approvals.json cron-jobs-patch.json5 openclaw-agents-patch.json5 repos.txt profile.json
deploy.sh · 模板变量替换 · cp
Layer 02 · 实际运行
Runtime
~/.openclaw/
openclaw.json exec-approvals.json cron/jobs.json agents/<id>/agent/
CLI 命令 · 实时编辑
Layer 03 · 热修复
Live Fix
CLI 直改 runtime
openclaw approvals allowlist add openclaw cron edit --timeout-seconds

反灌模式 · Source Backfill

问题:CLI 改的是 runtime,但下次跑 deploy.sh 会从 source 覆盖 runtime,live 修复就丢了。

解法:任何 live 修复必须回灌 source,单独 commit。commit message 固定格式:

回退防护:同步 <日期> <触发事件> 修复到 source

分析 deploy.sh 发现 <N> 处会回退今日修复:
- config/xxx.json:<变更摘要> + 原因
- config/yyy.json5:<变更摘要> + 原因

<不属于本 repo 范畴的问题记录去向>

这个模式让配置变更有版本历史,回溯成本低。2026-04-16 和 2026-04-22 的 commit 就是两次实战应用。

profile 模板化

deploy.shconfig/profile.json 做模板变量替换,示例:

{
  "user_name": "Yixiao",
  "user_full_name": "Wang Yixiao",
  "github_org": "Octo-o-o-o",
  "timezone": "Asia/Shanghai",
  "openclaw_home": "~/.openclaw",
  "projects_root": "~/WorkSpace",
  "telegram_chat_id": "86xxxxxxxx"
}

agent-templates/ 下的模板用 {{USER_NAME}} / {{GITHUB_ORG}} 等占位符。部署时 sed 替换。这让整套配置可以复用给其他人 —— 改一份 profile.json 就能跑起来。

安全设计:渐进式审批

默认策略

{
  "defaults": { "security": "full", "ask": "off" }
}

全局全权放行。理由:个人本地系统,所有 agent 都是可信的,逐一审批会把节奏打碎。

精细 allowlist 例外

遇到需要特定命令高频自动执行的场景(如 node scripts/sync-notion.mjs),加到 agent 级 allowlist:

openclaw approvals allowlist add --agent ops \
  "node ~/.openclaw/workspace/scripts/sync-notion.mjs"
Real-world Trigger 这个决策源自真实 bug:notion-daily-sync 曾连日 error,排查发现是 cron 被 /approve 卡住。一条 allowlist 规则解决。

敏感凭证分离

secrets.jsoncredentials/.env 类文件走 .gitignore,从不进 repo。通过 SecretRef 引用(如 Telegram bot token 走 file:secrets:/TELEGRAM_BOT_TOKEN)。

消息通道策略

Telegram
Primary
Alice 前台 + 所有 cron 推送
Discord
Enabled
@Alice(备用)
QQ Bot
Extension
extensions/openclaw-qqbot/
WeChat
Extension
extensions/openclaw-weixin/

为什么 Telegram 是主

  • Bot API 稳定、支持 Markdown、机器人无封号焦虑
  • 多设备同步、历史消息可搜、支持文件/图片
  • 对国内网络有 gap,但个人场景用 VPN 可接受

升级流程

标准命令

npm install -g openclaw@latest
openclaw doctor          # 诊断
openclaw doctor --fix    # 或手动修复
openclaw gateway restart
bash ~/.openclaw/scripts/post-upgrade-check.sh

已知坑(2026-04-22 版)

openclaw@2026.4.20 的 npm 包有 packaging bug:grammyacpx 等运行时依赖未在 package.json 声明,导致 telegramacpx 插件加载失败,阻塞整个 CLI。

Workaround(记录在 Claude memory)

# 补依赖到 package.json
cd /opt/homebrew/lib/node_modules/openclaw
# 手动在 dependencies 加上:grammy, acpx, @grammyjs/runner,
#   @grammyjs/transformer-throttler, node-edge-tts, playwright-core
npm install --ignore-scripts --omit=dev --legacy-peer-deps

升级自检

post-upgrade-check.sh 自动跑:

  1. 版本校验
  2. 配置验证
  3. binding 检查
  4. frontdesk-router 加载
  5. gateway 重启 + 健康检查
  6. 安全审计
  7. Alice 冒烟测试(4 类任务入口)

报告写到 memory/upgrade-checks/

可复用设计模式总结

给其他人想搭类似系统的 6 条可借鉴心法:

01
Agent Naming
用真人 / 女神名
好处:日志像团队会议纪要,给 agent 人格感,写 prompt 更自然。
02
Layered Config
Source → Deploy → Runtime 三层分离
任何 live 修复都要回灌 source,commit message 固定格式。这让配置变更有版本历史,不怕下次部署回退。
03
No Lock-in
数据多端同步,避免锁定
真相源在本地 JSONL,同步到 Notion / Obsidian / Git Wiki —— 每端挂掉都不影响主链路。
04
Trust Gradient
默认放行 + 精细例外 的审批策略
个人系统全权放行最流畅,精细 allowlist 只用于"cron 高频自动命令"。别用"全问一遍"把节奏打碎。
05
Pack Tiers
Core / Optional Pack 分层
Core 8 个是最小可用子集,Optional 9 个按需启用。让系统可以新手模式起步、老手模式全开
06
Alert Tiers
三级异常分级(Tier 1 / 2 / 3)
不是所有异常都要打断用户。Tier 1 自动修、Tier 2 等确认、Tier 3 紧急通知。Evening Doctor 默默干活,只有 Tier 3 才会吵醒你。

运行足迹

除 Hero 里的 18 / 17 / 59 / 3,这里是其余跑出来的实际留痕:

16
Sessions
留存的 agent session 记录
25+
Workspace Dirs
每个 agent 独立工作区
2
Private Repos
workspace · wiki,按需版本化
40+
Runtime Scripts
sync-* · post-upgrade · 等

关键路径

~/.openclaw/
├── workspace/              ← 配置真相源(git repo)
│   ├── config/             ← source patches
│   ├── agent-templates/    ← agent 身份四件套模板
│   ├── scripts/            ← 同步脚本 (sync-notion/obsidian/wiki)
│   ├── deploy.sh           ← 部署入口
│   └── CLAUDE.md           ← 给 AI 的项目指南
├── openclaw.json           ← 最终运行时配置
├── exec-approvals.json     ← 审批规则
├── cron/jobs.json          ← 定时任务
├── wiki/                   ← 共享知识库(独立 repo)
├── agents/<id>/agent/      ← 每 agent 的身份文件
├── workspace-<id>/         ← 每 agent 的工作区
├── scripts/                ← 运行时脚本(40+)
└── backups/                ← 备份归档