AGENT 读了一切的线程没有污点:撤掉按行染色之后

一次删掉「读过什么就染什么」的改动复盘:为什么污点追踪在什么都读的协调线程上只会制造误报,隔离为什么应该落在被读线程的读侧与内容本身的类别上,以及「这两份记录不许外复制」为什么必须是通道级的禁止而不是逐行标签。附迁移、代码与测试依据,以及这次交换仍然没解决的部分。
AGENT 提问是一条消息,不是一次等待:把 ask-wait 从 agent 回合里拆出去

MaxClaw 原来的 ask_user_question 让回合挂在工具调用里等人回答,为此要处理重启、插话、停止、崩溃、超时转交等一长串情形。这次改动把提问卡做成 assistant 消息上的交互组件:定义就是工具调用参数,状态存在 message_components 并镜像到 tool 行,人的回答作为他的一条新消息回来,回合照常结束。
AGENT 「做完了」不该由干活的人说:给主干配一个 Maintainer

一个能改自己的 agent 系统里,编码 agent 交上来的分支缺一个按事先意图验收的人。这次改动让派活时强制写下 why / done_looks_like,由一个隐藏的单线程 Maintainer 在落地前对照验收,并把失败按整合问题、成果缺陷、意图问题三路分流;落地通道仍是 main 唯一的写入者,派活的对话只在需求上线后收到一次结果。
AGENT 绕路 18 次,上报 0 次:自改进信号不该指望干活的 agent 自觉

MaxClaw 把「摩擦」和「用户对 agent 行为的评价」这两类自改进信号的采集,从 agent 自报改成影子线程从对话记录里读出来:搭在已有的影子调用上,不新增模型调用;写入口、证据门、按消息幂等、逐项失败都写死在代码和测试里;自报工具只留给对话记录里看不出来的情况。
AGENT 别替能看图的模型读字:删掉 OCR 的 1391 行

桌面观察工具曾用 OCR 把网页截图转成文字,再叠加去重、分栏启发式来省 token。一次改动把它整体删除,换成把多帧截图拼成一张的长截图:同样四屏内容,按图片计价只要 2091 token,而且没有识别错字。本文复盘这笔账和背后的取舍。