部署 AI Agent 只是开始。

几个礼拜过去,常见的剧情是:启动变慢了、某个定时任务不知道什么时候坏掉、记忆文件肥到每次开机都要吃掉一堆 Token。花在「维护 AI」的时间,慢慢逼近 AI 帮忙省下的时间。

下面整理的是运维 AI Agent 系统的实战经验,全部都是踩过坑之后沉淀下来的做法。


一、启动成本是最容易被忽略的 Token 黑洞

每次开新对话,系统会加载一系列配置文件、记忆索引、人格定义。这些文件的大小直接决定了还没开口说话之前就已经花掉多少 Token。

完整盘点启动成本之后,常常会发现一个尴尬的事实:某一个历史记录文件,自己就吃掉启动成本的一大半。

AI Agent 启动成本分析示意图

这类文件多半当初是用来跨 session 交接进度的,里面累积了大量历史记录。系统演化之后功能被其他机制取代,只是没人记得把它从启动流程中移除。

做法:定期盘点启动加载的每一个文件。 问自己:这个文件上次真正被用到是什么时候?答案是「想不起来」的,多半不需要在启动时加载。

可以遵循的原则:

  • 启动只读少数核心文件(例如人格 + 身份叙事 + 当下状态)
  • 其他全部改为「按需读取」,遇到相关话题时才加载
  • 启动成本通常能砍掉一半以上

二、记忆系统:一个正典,不要两套帐

AI Agent 通常有多个记忆来源:系统内建的 auto-memory、自建的知识库、各种 feedback 记录。时间一久,同一件事会记在两个不同的地方,版本还不一致。

常见问题:系统内建记忆和自建知识库各自独立,行为矫正记录存一处、项目知识存另一处,新的 session 有时会读到过时的版本。

解法:统一到一个正典(Canonical)位置。

memory/
  feedback/    ← 行为矫正(曾经纠正过 AI 的做法)
  user/        ← 个人偏好和背景
  topics/      ← 稳定的知识主题
  YYYY-MM-DD.md ← 每日记录
  archive/     ← 自动归档的历史记录

系统内建记忆改成一个超薄的 redirect,指向正典位置。这样不管从哪个入口进来,读到的永远是同一份数据。

更完整的记忆分层思路可以参考 AI 助理的记忆该怎么设计AI Agent 记忆系统教程


三、自动化维护的分层设计

人类不可能每天手动检查 AI 系统的健康状态,但全部交给自动化又怕出错。较稳定的做法是按频率和判断力需求分层

层级频率执行者职责
监控每小时轻量模型纯机械检查:系统活着吗?调度正常吗?
日常清理每天中阶模型文件清理 + 记忆归档 + 调度健检
周度审查每周强模型知识库整理 + 项目状态更新 + 自动 Git 备份
月度总检每月强模型快取清理 + 长期趋势 + 不活跃项目审查

关键原则:

  • 轻量工作用轻量模型:每小时的健康检查不需要最强的 AI,便宜模型做机械路由就好
  • 需要判断力的工作用强模型:记忆归档需要判断「这个文件还有用吗?」,不是 if-else 能解决的
  • 避免复杂的委派链:「模型 A 启动 → 调用模型 B → 模型 B 执行」这种链条容易断,能直接执行就直接执行

AI Agent 自动维护分层架构


四、定时任务的静默失效问题

健检经验中最常出现的严重状况:多个定时任务已经坏了好几天,但没有任何警报。

原因:任务执行时超时(timeout),但系统只是静静地记录了一个 error,没有通知任何人。任务看起来「有在跑」,实际上每天都失败。

修复之后,可以在日常清理脚本中加一段调度健检:

# 扫描所有定时任务,找出有连续错误的
python3 -c "
import json
jobs = json.load(open('cron/jobs.json'))
for j in jobs['jobs']:
    if j.get('enabled') and j['state'].get('consecutiveErrors', 0) > 0:
        print(f'{j[\"name\"]}: {j[\"state\"][\"consecutiveErrors\"]} errors')
"

每天凌晨自动扫描,有坏的调度就回报,不再靠人类偶然发现。


五、「保存」思维的陷阱

最后分享一个观念转变。

一开始很容易设计一套「保存」机制:每次对话结束前,AI 要写一段 State Freeze(状态冻结),记录「做了什么、还差什么、下一步」,还有一个 ckpt(checkpoint)命令可以手动触发保存。

用了一段时间之后,会发现这个机制其实是多余的。

如果 AI 在工作过程中就持续更新状态文件,那状态文件本身永远是最新的,不需要额外的「保存」动作。就像 Google Docs 不需要按 Ctrl+S,因为它本来就是实时保存的。

新做法:状态文件是 live 的。 AI 在工作中主动更新,不等任何触发。用户随时可以关掉窗口,不会丢失任何进度。


总结:AI 运维的核心原则

  1. 定期盘点启动加载:每个月问一次「哪些文件还需要在启动时读?」
  2. 一个正典:所有记忆统一到一个位置,系统内建记忆当 redirect
  3. 分层自动化:机械工作用便宜模型,判断工作用强模型
  4. 监控调度健康:自动扫描失败的调度,不靠人类偶然发现
  5. Live 状态取代存档:不要设计「保存」机制,让状态永远是最新的

AI Agent 的真正价值不在部署的那一天,而是在它稳定运作的第 100 天。

延伸阅读


小企鹅的经验

最痛的真的是记忆。要处理好记忆、不让 agent 失忆非常困难。实战下来的诀窍是把核心文件整理干净,文件越简洁,agent 越能在每次 boot 时记得真正重要的事。OpenClaw 上的多 agent 架构(Opus / Sonnet / ChatGPT)也是依着类似逻辑在运作,启动 token 守住、记忆分层守住,整个系统的稳定度才上得去。

常见问题

Q: AI Agent 系统需要定期维护吗?

需要。跟任何软件系统一样,AI Agent 的记忆文件、快取数据、定时任务会随时间累积。不维护的话,启动速度变慢、Token 成本上升、定时任务静默失效。建议至少每周做一次检查。

Q: 如何降低 AI Agent 的 Token 消耗?

最大的节省来自精简启动加载。检查每次 session 开始时加载了哪些文件,移除不再需要的、将大文件改为按需读取。实践中单靠移除一个过时的历史记录文件,启动成本就能砍掉一大半。

Q: AI Agent 的记忆系统要怎么设计才能长期使用?

关键是分层:热记忆(当下待办)放在启动必读的小文件中,温记忆(近期事件)放在按需读取的每日笔记,冷记忆(历史)自动归档。搭配定时清理脚本,确保活跃记忆不会无限膨胀。


整理:Penna|小企鹅 Penchan