抓住你的 AI 智能体
在它开始幻觉之前
与 AI 编程智能体的长会话很少会一下子崩掉。它先是悄悄跳过一条指令,再过一两轮,就编造出从未存在的文件、API 或决定。AgentsRoom 的 canary 会及早捕捉到这个上下文漂移的时刻,让你在幻觉抵达代码之前就行动。
它依靠的是你的智能体本就会产生的信号,所以无需配置,也无需记住任何事。Claude Code、Codex、Gemini CLI,以及 AgentsRoom 操纵的每一家厂商都被覆盖。

当 canary 沉默下来,AgentsRoom 会在智能体终端上方弹出这条警告:在干净的上下文里重启,或者压缩会话。
context rot 是长会话里那个沉默的杀手。每一轮,模型都会重读整段对话,从零重建它的理解。随着上下文窗口被填满,最先松动的就是对指令的遵守。模型听上去依旧自信,却已经开始丢掉它认为最不重要的约束来勉强跟上。
这就是 canary 背后的关键洞见。退化不是从幻觉开始的,而是从模型悄悄忽略一条小指令开始的。埋下一条唯一职责就是在消失时被你注意到的指令,你就得到了一根会在真正破坏出现之前触发的绊线。
AgentsRoom 早已把这条指令交给了每一个智能体。每个智能体在每轮结束时都会写一行状态,就是你在侧边栏和手机上看到的那段简短摘要。这次每轮的写入就是 canary。只要它还在更新,智能体就还在读、还在遵守它的指令。它消失的头几轮,就是你的提前预警。
为什么 canary 胜过盯着输出看
面对单个智能体,你可以读完每条回复,凭感觉察觉它何时漂移。面对一支并行工作的智能体队伍,没人能实时重读每条回复。canary 给你一个你绝不会错过的被动信号。
context rot 和 lost-in-the-middle 效应都有充分的文献记载:上下文越长,模型就越难可靠地遵守埋在其中的某一条指令。canary 把这种脆弱变成一声看得见的警报。
canary 走在幻觉前面。状态会在智能体开始编造之前一两轮就停止更新,而那正是你想要出手的窗口。
没有要跑的测试,没有要敲的命令。当你在另一个智能体或另一个项目上忙活时,检测会自己进行。
canary 如何工作
一个内置的提前预警闭环,架在每个智能体本就会报告的状态之上。
每个智能体都自动获得 canary
当你通过 AgentsRoom 启动一个智能体时,会话指令会被注入它的提示词里:在每轮结束时往它的会话文件写一行状态。你什么都不用加。canary 就是那条驱动侧边栏和移动端推送的同一份状态。
AgentsRoom 在每轮开始时为状态拍快照
一个智能体开始思考的那一刻,AgentsRoom 就记录下当前状态。这就是它在本轮结束后用来对比的参照。
等本轮平息后它会再查一次
本轮结束后留出一小段宽限延迟,AgentsRoom 再重读智能体的会话文件。这段时间足够智能体写入、也足够状态轮询器把它取到,所以一次写得慢的更新绝不会被误当成 canary 已死。
一次漏更会推高连击计数
如果状态没有变化,漏掉的轮次计数器就往上走。如果智能体写了一条新状态,计数器归零,任何警告都会清除。一轮安静还不足以报警,因为一个短促而正当的轮次可能让状态保持不变。
连续两轮安静才拉响警告
当智能体连续两轮跳过它的状态,那就是遗漏的清晰信号,而不是噪声。一条警告横幅会出现在那个智能体的终端上方:canary 已死,智能体很可能正在漂移。
干净重启,或者压缩,然后继续
横幅提供一键重启,它会杀掉智能体并在全新的上下文上重新拉起,外加一条压缩会话的提醒。当智能体重新开始报告状态时,警告会自己消失。
矿井里的 canary(金丝雀),为你的 AI 会话而设
矿工把 canary 带下井,是因为它对毒气的反应远早于他们。这里是同一个思路。
提示词里的 canary,是一条智能体本该每轮都遵守的微不足道的指令。只要它还在遵守,你就知道模型还在从头到尾读你的指令。第一条忘掉它的回复,就是你的绊线。
AgentsRoom 不会在你的智能体上硬塞一个单独的小花招。它复用每个智能体本就为侧边栏和手机通知写下的状态,所以 canary 不花任何成本,也不可能忘记去装它。
重点从来不是状态的文字,而是时机。一个带着精炼简报的干净上下文窗口,每次都胜过臃肿的那个。当 canary 死去时,你并没有丢掉进度,你是在甩掉一直拖累模型的累赘。
先做状态跟踪,再做漂移检测
大多数驾驶舱只告诉你一个智能体在干活还是干完了。canary 告诉你它开始走样了。
没有 canary
- : 只有当你读到一个幻觉出来的文件路径或一个错误的 API 时,才注意到智能体出了问题。
- : 到那时,最近几条回复早已可疑,你在调试智能体,而不是你的代码。
- : 同时跑好几个智能体时,那个正在漂移的会大大方方地藏在眼皮底下。
- : 你重启得太晚,糟糕的输出已经落地。
有了 AgentsRoom 的 canary
- : 智能体一停止报告状态,终端上方就立刻出现一条警告。
- : 你在幻觉开始之前一两轮就抓住漂移。
- : 你只重置那个走样的智能体,而不是整个项目。
- : 你在干净、简短的上下文上重启,智能体变得更犀利、更快。
用提前预警取代事后复盘。这就是 canary 的全部意义。
为什么一个全新的上下文能造就更好的智能体
你往一个智能体里堆的信息越多,它就越容易漂移、幻觉和变慢。一个大半都是过期探索、死胡同和已解决问题的上下文窗口,每一轮都在跟模型作对。
当 canary 死去时,解法很少是在同一条线上更使劲地推。停止信任最近那两三条回复,然后压缩会话或开一个新会话,只重新注入要紧的东西:你正在编辑的文件、目标,以及已经做出的决定。
压缩会总结会话,让智能体保留要点而不背负冗余。重启则给它一张白纸。两者都把你带回一份精炼的简报,那正是编程智能体表现最好的地方。AgentsRoom 的 canary 会告诉你哪个时刻才是对的。
这在设计上就与厂商无关。Claude Code、Codex、Gemini CLI 以及其他智能体都受同样的上下文限制,也都通过 AgentsRoom 报告状态,所以同一个 canary 守护着它们每一个。漂移检测活在 AgentsRoom 里,而不在任何单一的 CLI 里。
读完整的 canary 攻略
我们写了一篇关于 canary 技巧的深度文章:智能体为什么会跑偏,如何亲手在你的 CLAUDE.md 或 AGENTS.md 里埋下一个 canary,以及它死去的那一刻该做什么。AgentsRoom 把盯梢这件事自动化,覆盖你的整支队伍。
阅读 canary 文章FAQ
AgentsRoom 里的 canary 是什么?
它是一个针对上下文漂移的提前预警信号。每个智能体在每轮结束时都写一行状态。当一个智能体连续两轮停止更新该状态时,AgentsRoom 就把 canary 视为已死,并提醒你这个智能体很可能正在丢失上下文,通常是在它开始幻觉之前。
我需要配置什么吗?
不需要。canary 复用的是每个 AgentsRoom 智能体本就为侧边栏和移动端通知写下的、每轮的状态。启动一个智能体,检测就开着。没有什么要配置,也没有什么要记住。
什么是 context rot?
随着对话变长,模型每轮都重读一切,对指令的遵守开始退化。它先是悄悄丢掉一些小约束,然后开始幻觉:编造的文件、错误的 API、你已经否决的决定。与之相关的 lost-in-the-middle 效应意味着,埋在长上下文里的指令被遵守得更不可靠。
为什么要等两轮漏更而不是一轮?
单独一个短轮次完全可能正当地让状态保持不变,比如智能体只是读了个文件、简短作答。连续两轮安静,才是智能体确实停止遵守指令的清晰信号,这样能压低误报。
警告出现时我该做什么?
两条路。一键重启智能体,换来一个全新、干净的上下文;或者输入 /compact 来总结会话,保留要点而不背负冗余。两者都把智能体带回一份精炼的简报,那正是它表现最好的地方。
它能配合 Codex 和其他厂商用,而不只是 Claude 吗?
能。canary 只依赖每个 AgentsRoom 智能体都遵循的会话状态协议,无论底层是哪个 CLI。Claude Code、Codex、Gemini CLI 等等都被覆盖。检测活在 AgentsRoom 里,而不在任何单一厂商里。
警告会自己消失吗?
会。智能体一重新写下新状态,漏掉的轮次计数器就归零,横幅会自己清除。你也可以为该会话手动把它关掉。
我只跑一个智能体时它有用吗?
有用,但它在同时跑好几个时才真正出彩。面对单个智能体,你能读完每条回复。面对一支并行的队伍,没人能实时重读每条回复,所以一声被动的漂移警报,正是不让一个悄悄退化的智能体溜过去的关键。
canary 会拖慢我的智能体吗?
不会。它搭在智能体每轮本就会写的那一行状态上。没有额外的提示词,没有额外的模型调用,也不增加任何延迟。
为什么干净的上下文能让智能体更好?
一个智能体背的过期上下文越多,它就越漂移、越幻觉、越慢。重启或压缩会甩掉累赘,把智能体带回一份简短、聚焦的简报,那里正是编程智能体最可靠、最快的地方。
你可能还喜欢
在上下文漂移让你付出代价之前抓住它
在一个会在某个智能体开始走神时提醒你的驾驶舱里运行你的 AI 编程智能体。下载 macOS 版 AgentsRoom。
配套应用:随时随地监控你的 Agent
使用 Claude、Codex、Gemini CLI 或其他 AI 提供商。
把 Bug 和需求直接发送到您的公开待办清单。
AgentsRoom 实际运行一瞥。