盯着摄入跑
适合这样的你:摄入正在跑,你想知道它到底在忙什么——哪些成了、哪些挂了、一个跑了半天的运行是在推进还是真卡住了。OMem 把每一次运行都记进一张事件表里;下面这些命令读的就是它。
看当下的状态
Section titled “看当下的状态”omem ingest status 会把正在跑的那次运行(如果有的话)连同最近跑完的那次一起列出来:
那几个计数器(ingest / cache / recur / fail),就是每个条目最后会落进的四种结局——值得认一认:
| 计数器 | 结局 | 含义 |
|---|---|---|
ingest | ingested | 新的或改过的——完整处理了一遍,调了 LLM。 |
cache | curator_cache_hit | 上次之后没动过——没调 LLM,页面原样不动。重跑之所以便宜,就在这儿。 |
recur | recurated | 重新处理了,因为整理用的 prompt 版本变了。 |
fail | failed | 出错了——去看 omem ingest errors。 |
一次运行里大头是 cache,那是 OMem 在高效干活,不是在偷懒。
看跑过的运行
Section titled “看跑过的运行”omem ingest history 是一张表,一次运行一行:
实时盯一次运行
Section titled “实时盯一次运行”omem ingest watch 会一直跟着事件表走——每个条目的每个阶段一发生,就立刻打出一行,最新的在最底下(就像 tail -f)。按 Ctrl+C 停:
每一行的格式是 [时间戳] kind/source <阶段> <状态> <条目> <耗时>。你可以只盯某几个阶段(--phase parse,curate)或某一类(--kind mail),也能调轮询间隔(--poll 2)。想看清一个慢条目把时间耗在了哪一步,这是最好的办法——盯住哪个阶段那一行迟迟不出现就行。
omem ingest errors 会把挂掉的列出来,连带错误信息:
失败的条目会在下一次运行时自动重试——所以一阵子的小抖动(一次限流、一次偶发的读取失败)会自己消化掉,不用你做什么。
钻进单个条目——还不用重新摄入
Section titled “钻进单个条目——还不用重新摄入”omem ingest item <uri> 会把单个条目的来龙去脉追出来:
是卡死了,还是只是慢?
Section titled “是卡死了,还是只是慢?”要是一次运行看着像冻住了,先弄清楚是哪种,再动手:
omem ingest watch——还在不断有新事件冒出来吗?那它就是在干活,只是慢(一个大 PDF、qmd 模型冷启动在加载、一次慢吞吞的 Loop 拉取)。omem log tail -f——实时跟着日志走;加--grep <text>可以过滤。omem log errors --since 1h——跨所有运行、最近冒出来的错误。
把卡住的运行停掉
Section titled “把卡住的运行停掉”要是一次运行是真卡死了(不是单纯慢),把它停掉:
omem ingest cancel # 取消正在跑的那次(会让你确认)omem ingest cancel e8053467 # 按 id 前缀取消指定的某次omem ingest cancel --all # 取消每一个正在跑的运行cancel 会先发一个温和的停止信号(SIGTERM),必要时再退到硬杀(--force 跳过那段宽限期;--yes 跳过确认)。这么做是安全的:被取消的运行不会为没干完的活推进它的 cursor,所以下一次定时运行会精确地从它停下的地方接着干——什么都不会丢,也不会重复处理。当一次摄入正卡着你、你宁愿重来一遍时,就用这条命令。