超过 256KB 的 @ 文件不再被悄悄丢掉
Claude Code 2.1.292 修复:用 @ 提及的文本文件超过 256KB 时,以前会不声不响地不发给模型。现在会告诉模型文件有多大,并让它分段读。说明没有写图片或 PDF 走同一条提示,也没有写小于这个大小的文本会被截断。

把一份日志或生成的 JSON 用 @ 丢进提示,模型却像没看见。Claude Code 2.1.292 写明了原因:@ 提及的文本文件超过 256KB 时,以前会被悄悄留下,不告诉你。claude code @ 文件 256KB 超过这个大小时,现在会告知模型文件大小,并让它分段读。说明没有写 256KB 是按磁盘字节还是按解码后的字符。也没有写二进制文件。
悄悄丢掉和「读不了」不是同一种失败
低于 2.1.292 时,没有报错。模型只是没有这份文件的内容,仍可能根据文件名编一段。升级后,它会收到大小,并被要求分段读。分段读走的是 Read 一类工具,不是把 256KB 以上整份塞进第一条用户消息。超限文件如果同时被拒绝规则挡住,分段读仍会碰那条规则。这句修复没有取消拒绝规则。
小于或等于 256KB 的文本,不在这句里。它们以前就会进提示。你觉得小文件也丢了,先看是不是路径没对上,或者 @ 被当成了普通文字。同一版修过:没有对应文件的 @ 词,在设了 Read 拒绝规则且工作目录在符号链接下时,会多出一句 “could not be examined”。那是空 @ 的提示,不是 256KB。
大文件仍不要整份贴进第一句
告知大小之后,模型应自己分段。说明没有保证它一定会读完,也没有写每段多少行。你要的是某一段,在 @ 后面写行号或关键词,比只丢一个超大路径更不容易读偏。PDF 的 pages 写成 "6,9,15" 这种列表时,Read 以前只返回第一项且不报错,同一版改成报错并要求分开读。那是 PDF 参数,不是 @ 的 256KB。生成物、锁文件和压缩前的日志经常超过这个大小。@ 它们的目的如果只是让模型知道路径,可以在句子里写路径,不必 @。@ 的含义是把文本内容带进提示。带不进去时,旧版沉默,新版改成分段读。分段仍会占用工具调用和上下文,超大文件更稳的是先截出你要的那一段再 @ 那个小文件。