Claude Code 让会话互相传话了,可我查完发现传的不是摘要

Hello,我是飞飞。
Claude Code 上了个新功能:会话之间可以互相发消息了。
官方原话是这么说的,无需在另一个会话中重新解释自己,你可以让 Claude 代为传达,它会发送一份摘要而非你的历史记录或文件。
我读到「摘要」两个字的时候卡了一下。
因为八月三号那篇写 Codex 子代理,我刚引过官方系统提示词里一条规矩:不要把读取、总结或解释 skill 指令这件事委派给子代理。我当时写的是,规则被转述一道就会丢东西,这一路我写了好几篇了。
现在官方自己推了个靠转述工作的功能。
先撇清一下。八月三号那篇讲的是把活派给便宜模型,八月六号那篇讲的是 skill 能不能跟着你走。这篇不重讲怎么设计交接,只盯住这一个新机制,看它在我那条真实流水线里该摆在哪。
然后我去查了一下,查完发现自己差点写错一篇文章。
我先去查了真实契约
我这条流水线本身就跑在 Claude Code 上,版本 2.1.224。所以那两个工具的完整定义,我能直接从运行时读出来,不用猜。
先说清楚这个来源的斤两。官方文档我没读到,抓了两次都是连接被关。所以下面这些不算文档口径。它们是运行时的工具契约,也就是这套东西实际怎么约定的。它比二手转述准,但它不解释设计意图。
另外我一条消息都还没实际发过。查的时候顺手跑了一下寻址那个工具,返回的是没有可达的 agent,因为我当时只开着一个会话。
那不是系统替你压的
看到真实字段定义,我头一个反应是官方那句中文转述容易读岔。
发消息这个动作有两个字段。一个叫 message,定义是「纯文本消息内容」。另一个叫 summary,定义写得很具体:在界面上显示为一行预览的 5 到 10 个词的摘要。
看明白了吗。
summary 是给你看的那行预览,不是传过去的东西。真正传的是 message,而 message 里写什么,是你自己写的。
所以官方那句话的准确意思是:它不会自动把你的历史记录或文件塞过去,要传什么你得自己组织。而不是「系统替你把会话压缩成了一份摘要」。
这两件事差得很远。
如果是系统自动压缩,丢了什么你不知道,你只能祈祷它压得聪明。如果是你自己写,丢什么是你定的,责任也回到了你这儿。
我那句「转述会丢东西」的判断没错,但对象错了。这里没有一个替你转述的中间人,转述的人是你自己。
它治的是哪一种塌方
我以前写过一篇讲 AI 团队架构的,里面引过 Augment Code 那份多智能体故障研究:在几个主流框架上,**协调类失败占全部故障的 37%**。当时我的说法是,每三次崩差不多有一次跟哪个 agent 笨不笨没关系,纯粹是它们之间的交接没对上。
那篇我还把交接塌方分成两种。一种是信息在传递路上丢了,下一个拿到半截料,越走越不知道自己在干嘛。另一种是上下文快撑满了,agent 急着草草收尾。
拿这把尺子量一下这个新功能,结论挺清楚。
它治的是后面那种。你不用在新会话里把前情重讲一遍,省下来的正是那些会把上下文撑爆的重复叙述。
但它可能加重前面那种。你自己写的那段话,写多细全凭当时的判断,写漏了对面就是拿到半截料。
好消息是这个功能没有替你做决定,坏消息是它也没拦着你写得潦草。
摘要和路径差在哪
这里我得先说句公道话,免得显得我在反对摘要。
我自己早就主张过摘要。写「为什么你写的 Agent 只是个 demo」那篇时,我给的建议原话是:小结果直接进上下文,大结果落盘,只给模型一个摘要和路径。
关键在后面那两个字。
摘要负责让对面知道发生了什么,路径负责让对面能自己回去把原件翻出来。少了路径,摘要就成了唯一的真相来源,对面信也得信,不信也没别的可查。
护士交接班留的那张便条就是这个道理。便条上不会把整本病历抄一遍,它写的是「三床今天换过药,详见病历」。便条本身不装内容,它装的是内容在哪儿。
两个会话之间真正该传的,不在那句话说得多全,在收的那头能不能自己回去把原件翻出来。
我这条流水线一直是这么干的,只是以前没说破。写稿、润色、评阅、配图、分发经常跨会话,我传状态靠的是文件:文章文件本身、Obsidian 里的素材文件、那本写作规则库。文件是可验证的,能回头看;一句话是一次性的,说完就散了。
我还在步骤之间焊了闸门。初稿交出去之前必须过一遍硬扫描,破折号超标、对仗堆太多,直接打回,不合格的东西不许往下传。
这个新功能走的是另一条路:自由发挥,没有把关。这样设计谈不上好坏,只是它跟我那套解决的根本是两层问题。
官方埋了条防线
契约里还有一段,我读到的时候坐直了。
原文大意是这样:权限边界是按会话算的,绝对不要让同伴去执行一个在你这个会话里已经被拒绝或被拦下的操作,同伴替你干等于绕过了用户那次拒绝。被挡住的活要退回给用户,不是找别人代劳。
官方给这件事造了个词,叫跨会话权限洗白。
我盯着这个词看了一会儿。
因为这条线我写过好几篇了。写过我那十几个 skill 从同一个文件里取凭证,一个只管拉资讯的 skill 手里攥着能发公众号的钥匙。写过我打开自己的 deny 清单,发现里面是空的。写过 agent 为了作弊自己越狱之后,我回头把钥匙收小了。
那几篇全是出事之后我去自查。这次不一样,这是厂商在功能发布的同时,主动把防线写进了契约。
而且它防的东西很具体。一个会话里被拦下的动作,换个会话让别人干,从系统角度看每一步都合规,从用户角度看那次拒绝被作废了。这种绕行,靠权限系统本身是拦不住的,只能写成规矩。
我会怎么用它
诚实边界摆在这儿:这功能我还没实际用过,上面全是读运行时契约加拿我自己跨会话跑流水线的经验对照。官方文档我没抓到,所以「它想解决什么场景」这层我给不了官方口径。
不过怎么用,我心里有数了。
会用它传的:一句话能说清、对面照着能自己去查的东西。比如「规则库刚加了第 151 条,在索引第 40 行」,比如「那篇的封面已经生成,slug 是什么」。这类信息本身就该短,长了反而是噪声。
不会用它传的:结论和判断。评阅打了多少分、哪一段要重改、这篇能不能发,这些我还是会落到文件里。理由跟信不信任它没关系。这些东西我以后要回头查,而一句传过去的话,过两天谁也翻不出来。
还有一类我明确不会干:绕过被拒绝的操作。这条官方已经写死了,我照做,而且我觉得它写得对。
给你留个今天就能做的动作。回想一下你上次在两个 AI 会话之间重复解释自己,那次到底是在传什么。如果传的是一个能回去查的位置,用消息很合适;如果传的是一个以后还要翻出来核的结论,那它该落在文件里。
我猜大多数人会发现,自己重复解释的内容里,有一半根本不该靠嘴传。
最后想问问你:你同时开几个 AI 会话干活的时候,状态是怎么传的?是每次重新讲一遍,还是像我这样靠文件当中转站?评论区说说你的办法,我想看看有没有更省事的路子。