9月21日消息,TypeSafe AI 创始人迪奥戈·阿尔梅达(Diogo Almeida),分享了一份标题为「[public] thoughts on a typesafe coding agent」的 Google 文档,正文写道:「分享一些关于 TypeSafe 编码代理的说明……我们可能再也(永远)没有时间亲自体验了,但希望社区能彻底疯狂起来(让我看起来像个天真的傻瓜)。」
文档分享了什么
入口是一个反事实提问:「如果 LLM 没有 KV cache,你会怎么设计 coding agent?」阿尔梅达说,这个提问既能逼出以 TypeSafe 为核心的设计,也能让人看清现有设计的局限——那些大家直觉上觉得该有效、却偏偏不工作的东西。
他列出的局限有六条。一是任务路由不划算:把任务先交给小模型再回到大模型,上下文要被大模型重新处理一遍;他按 opus 与 sonnet 的价位算过一笔账,长会话与多生成 token 的场景下,纯用大模型只要「先小后大」方案约三分之二的成本。二是工具调用必须提前写进系统消息、占据大量上下文,模型在高基数与「离线策略」调用场景下不够准。三是压缩假定后续所有轮次都需要同一份共享状态,而压缩本身极难做好。四是子代理的难点在决定传哪些上下文、再合并哪些回来。五是重启机制的存在前提是状态会腐化。六是「电池是否内置」的两难。
方案部分是把 TypeSafe 的判断层嵌进 agent 的各个决策点。最重的一条是「元注意力」:打破上下文是静态的这一假设,对每一条用户提问重新评估已有上下文的质量,再据此构造一份新的相关上下文——最简单的形式是给每一段内容打分,决定是不显示、给短摘要、给长摘要还是全量保留,打分本身可以是概率判断。其余几处分别是:做工具调用的路由器,用判断层挑出该用哪个工具;把 skills 与 MCP 的发现做成三层结构,能力描述按需动态加载、需要时再展开完整定义,且不污染上下文;把 AGENTS.md 做成条件加载,进前端目录就加载风格指南,进某个子目录就加载避坑文件,且这部分记忆不会被压缩掉。文档还提到安全感知路由——按子任务可能触碰的文件类型,决定要不要把请求送到更便宜的模型上。
这条线索他还在继续想。文档附录指向他9月18日的一条回复:如果把任务历史设计成一层层嵌套的标签,上下文就可以做成树搜索,「当上下文变成一次 log(n) 的查找,会一下子冒出一大堆新可能——为什么不在每个 coding agent 的上下文里放进你的历史?为什么不放进并行工作的其他 agent 的上下文、子代理的上下文?」这条回复收到 186 个赞。
可行性在哪里
把这份文档拆开看,可行性分三档。
最确定能做的是纯架构改动。条件加载的 AGENTS.md、skills 与 MCP 的三层发现、工具调用的路由器,都不需要模型能力突破,也不一定要等 TypeSafe 自己动手,任何 agent 团队都能照着改。文档自己也把这一层归进「可以集成进任何 agent」。
中间一档是核心赌注,也就是「元注意力」。它要成立,得先证明一件事:对每一段上下文打分的成本,低于把整段上下文压缩掉的成本。阿尔梅达在文档里绕过了这笔账。打分可以又快又便宜,Jev 的定位正是 70 至 500 毫秒、输出免费的决策调用,但量级会随上下文线性增长——长会话里 chunk 数以千计,每个都要一次调用。这是把压缩的成本换成了评估的成本,只有评估又便宜又准时才划算;而一旦打分打错,丢掉一个关键 chunk,代价不是多花钱,是任务失败。
最难的一档是依赖模型架构的部分。极端并行子代理要解决同步与写冲突,递归语言模型要模型本身改成显式状态变量,这两项不是 agent 层能决定的。阿尔梅达自己把它们归进「还没想清楚」的栏目。
文档里需要讨论的地方
「元注意力」是全篇最重的方案,也是开口最大的一个。给每段上下文打分、按分决定不显示还是给短摘要,听上去直接,但文档没有估这套机制自己的开销:打分要随每段内容跑一次,长会话里调用次数与 chunk 数同阶;而四档处置里的「短摘要」「长摘要」还得先把摘要生成出来。用一笔确定的生成开销,去换一笔不确定的压缩节省,账没有算完。
「路由与子代理」建立在猜测上。文档判断子代理的大头成本在「搞清楚上下文」而非「下简单命令」,这一判断写的是猜测而非测量;而它在前面点名的难点——该传哪些上下文给子代理、再合并哪些回来——在方案部分没有对应做法,只说一等公民的动态上下文会让路由更容易。
「Skills/MCP 三层」与「条件式 AGENTS.md」的机制都还没定。文档把「需要时展开完整定义且不污染上下文」标为「前所未有」,也就是尚未解决;小段提示什么时候加载、AGENTS.md 的条件由谁判定,都没有给出规则。文档在 auth 复杂度一处自己标了「不确定」。
「安全感知路由」与「极端并行」只有设想。前者要按子任务可能触碰的文件类型分流,但「可能性」怎么估、不同类型对应什么策略,文档没写;后者他自己说还要解决同步原语与通信,承认不知道怎么做。