大数跨境

为什么我们还需要再做一款代码智能体

为什么我们还需要再做一款代码智能体 苏哲管理咨询
2026-09-25
4
导读:现有代码 Agent 大多只是while 循环 + 工具,创新集中在状态、上下文、成本管控等非 Agent 内核;大模型、UI、开源均可复用,大厂第一方 Agent 成本优势正在衰减,部分能力必须原生


编者摘要:Diogo(TypeSafe CEO)认为现有代码 Agent 大多只是while 循环 + 工具,创新集中在状态、上下文、成本管控等非 Agent 内核;大模型、UI、开源均可复用,大厂第一方 Agent 成本优势正在衰减,部分能力必须原生架构实现。核心思想实验:假如没有 KV‑Cache,如何设计 coding agent,以此区分真正设计与 KV 缓存催生的补丁。

KV‑Cache 带来六大问题:①跨模型路由并不经济,小模型中转再切回大模型,重新加载上下文反而成本更高;②工具调用前置全量声明,高基数 + 离线策略调用模型表现差;③上下文压缩 compaction 默认假设未来共用一套状态,盲压缩远不如查询感知压缩;④子 Agent 并行受限,痛点是状态传递与结果合并;⑤会话重启是状态腐化的妥协,替代方案是按需加载历史状态;⑥“是否预装全套工具” 存在路线对立。

TypeSafe 核心方案:元注意力 Meta‑attention,抛弃静态上下文,每轮查询动态重建上下文,做成本感知决策(复用 KV Cache / 重建),上下文片段分级(隐藏 / 短摘要 / 长摘要 / 全文)。 解锁能力:成本感知模型路由、大规模子 Agent、按需加载工具 Schema 不污染上下文、条件化AGENTS.md常驻记忆。

前沿构想:结构化 Skills、递归语言模型 RLM、安全感知路由、后台只读任务(检索结果多任务共享摊薄成本)。实测数据:代码 Agent 读取 + 搜索占工具轮次 56.2%、主 Agent Token46.5%,结构化检索是最大效率杠杆,可集成 ast‑outline、ast‑grep、fastcontext 等工具。

10 个关键问题问与答

  1. Q:为什么要重新开发代码 Agent,现有 Agent 不够用吗?
    A:现有 Agent 大量特性是适配 KV‑Cache 的补丁;内核简单,但状态、上下文、成本管理创新不足,部分能力只有原生架构可以实现,插件模式无法做到。
  2. Q:KV‑Cache 带来最大的现实痛点是什么?
    A:跨模型切换需要重新完整加载上下文,带来额外 token 成本,让 “小模型预处理 + 大模型收尾” 的路由策略经常得不偿失。
  3. Q:模型路由为什么很多场景不省钱?
    A:KV‑Cache 按模型隔离。切回大模型时,全部上下文、中间工具输出要重新输入计费;长会话或者工具调用量大时总成本反高于全程大模型。
  4. Q:上下文压缩 (compaction) 的根本缺陷?
    A:它默认未来所有轮次共用同一套状态;盲压缩不知道后续查询目标,效果远弱于 “知道查询目标” 的查询感知压缩,还容易丢失关键信息。
  5. Q:现在子 Agent 很难大规模自动并行的瓶颈在哪?
    A:不是单纯推理算力,是状态管理:传给子 Agent 哪些上下文、子 Agent 返回哪些信息合并回主 Agent,状态搬运成本高。
  6. Q:Meta‑attention 元注意力核心是什么?
    A:不再把上下文当作静态固定集合;每收到用户查询,评估旧上下文价值,成本感知选择复用 KV 缓存或完全重建,上下文片段做四级粒度控制。
  7. Q:Meta‑attention 能解决哪些过去很难的事?
    A:真正经济可行的模型路由;大规模子 Agent;近乎零成本内置数百工具;条件化常驻记忆AGENTS.md,不会被压缩吃掉。
  8. Q:Skills/MCP 工具调用如何做第一性原理改进?
    A:不在系统提示词塞满全部 schema;只保留简短动作提示,需要时动态加载完整 schema,避免污染常驻上下文,实现海量工具低成本预装。
  9. Q:代码 Agent 最大的效率瓶颈是什么?
    A:观测轨迹显示:读取 + 搜索占全部工具调用轮次 56.2%,主 Agent token 消耗 46.5%;用 ast‑outline 这类结构化检索替代子 Agent 搜索是最高杠杆。
  10. Q:什么是安全感知路由与后台只读任务?
    A:安全路由:按任务触碰文件的安全等级,分配不同安全等级 / 成本的模型;后台只读任务:一次代码检索结果被多个后台任务复用,分摊开销,实现跨模型评审等能力。
附录 为什么我们还需要再做一款代码智能体

Diogo(TypeSafe CEO):聚焦大模型代码智能体架构研究。他以 “如果 LLM 没有 KV‑Cache” 反事实思想实验切入,指出当下多数 Agent 特性只是 KV 缓存催生的工程补丁,主张以显式状态、Meta‑attention 元注意力、动态重建上下文重构 coding agent,探索子 Agent 规模化、成本‑安全感知路由等下一代智能体设计方向。

我有几条核心假设:

  • 代码智能体本身出奇的简单
    • 尤其是智能体循环那部分
  • 本质就是 while循环,搭配少量工具
    • 在非智能体内核模块上,真正有价值的创新寥寥无几
  • 我们可以复用现有代码智能体的优秀成果
    • 大模型底座当然可以复用 —— 通过 API 调用市面上所有顶尖模型
    • 甚至交互界面组件也可以借鉴
    • 有大量开源项目可供参考(不过 MCP 这类组件的鉴权复杂度尚不明朗)
  • 大厂第一方智能体的成本优势或许正在减弱
    • (推测)智能体的使用模式越来越偏向按使用量付费的 API 模式
  • 存在一些能力,只有原生自研架构才能实现
    • 也就是说,不能做成现有智能体的插件
  • 我经常向业内同行抛出一个问题:如果大模型完全没有 KV 缓存,你会如何设计代码智能体?
    • 这一思想实验可以引导我们走向以 TypeSafe 为核心的设计路线
    • 同时帮我们看清现有方案的局限,理解很多直觉上本该可行的方案为什么实际行不通

KV 缓存的 “桎梏” 催生了哪些怪异现象

现象一:模型路由策略实际并不划算

测算示例:

  • Opus:输入 5 / 输出 25
  • Sonnet:输入 3 / 输出 15

对比两套方案:

  1. 全程只用 Opus
  2. 先用 Opus,切到 Sonnet,再切回 Opus

变量定义:

  • X:上下文 token(百万)
  • Y:输出 token(百万)
  • Z:输出中额外生成的 token,例如执行命令、读取文件产生的 token

方案一(全程 Opus)成本:

  • Opus 生成内容:25 * Y
  • Opus 读取内容:5 * Z
  • 总成本:25Y + 5Z

方案二(Opus→Sonnet→Opus)成本:

  • Sonnet 加载上下文:3 * X
  • Sonnet 生成输出:15 * Y
  • Sonnet 读取内容:3 * Z
  • Opus 重新加载全部上下文:5 * (Y + Z)
  • 总成本:3X + 20Y + 8Z

在给定一组实际业务比例后测算,全程使用 Opus 的成本仅为这套路由方案的三分之二。

小结:先调用小模型处理,再切回大模型,成本反而更高;根源是切回大模型时,全部上下文需要重新走一遍计费处理。

现象二:工具调用是一种很别扭的权衡

工具必须在系统提示词中预先全部声明, 但并不是每一轮会话都会用到全部工具; 并且调用工具时还必须完整写明全部参数。

由此带来的问题:

  • 会大量消耗上下文 token;
  • 模型实际执行效果并不理想。

我的推测:模型并不擅长处理高基数 + 离线策略叠加的工具调用场景。 (这一点尚存争议,这也是 Skills 具备优势的原因,但 Skills 和普通工具、MCP 又有本质区别)

现象三:上下文压缩(compaction)的出现

上下文压缩成立的前提假设:智能体后续每一轮交互,都需要同一份共享状态。 但我们凭什么默认这个假设成立?

压缩要解决的难题本身有两大痛点:

  • 实现难度极高;
  • 效果大概率不如查询感知式压缩:如果你提前明确检索目标,压缩工作会简单得多。

现象四:子智能体体验差强人意

这一点我还没有十足定论,但让我意外的是,模型很难做到自动并行执行任务。 我怀疑瓶颈在于状态处理难题:

  • 哪些上下文片段要传给子智能体?
  • 子智能体执行完毕后,哪些上下文信息需要合并回主智能体?

现象五:会话重启功能

只有当智能体是有状态的,并且状态会慢慢劣化损坏时,重启功能才有意义。 但还存在另一种思路:当需要的时候,再即时加载全部相关历史状态。

现象六:“是否内置全套工具能力” 的行业争议

业内对于智能体是否应该预装全套工具能力一直争论不休。 参考推文:https://x.com/sudoingx/status/2061073944611029393

两边的取舍权衡:

  • 追求开箱即用:OpenClaw 是这一派的典型代表;
  • 面向高阶用户:代表为 Claude Code、Codex。

TypeSafe + 代码智能体

下面把可以实现的能力划分成不同类别介绍。

基础能力 —— 任意智能体都可以集成

权限与审批机制

  • 是否允许执行外部命令,对标 Claude 的自动模式;
  • 理想状态支持可编程规则,定义哪些行为允许、哪些禁止。
  • 更细粒度的权限管控:
    • 例如执行 Python、Bash 脚本前,预先读取脚本内容做安全校验。

MCP / 工具调用

  • 我们可以充当工具调用的路由中间层;
  • 输入一段高层自然语言描述任务目标,通过多次 TypeSafe 调用,筛选出最合适的工具,或者 Top N 候选工具。

高级能力 —— TypeSafe 原生独有特性

“元注意力 Meta‑attention”:智能上下文与相关性过滤

彻底抛弃「上下文是静态固定集合」的固有认知。 针对每一次用户查询,重新计算两件事:

  1. 原有历史上下文还有多大利用价值
    • 复用现存 KV 缓存本身是合理自然的;我们需要做成本感知决策:判断是复用现有缓存,还是直接从零重建上下文。
  2. 重新构建一份只包含全部相关信息的新上下文。

最简单的实现思路:给每一块上下文片段打标记,片段来源包括:

  • 工具的输入
  • 工具的输出
  • 模型内部推理过程
  • 甚至用户之间的对话交互

未来版本可以为每一个上下文片段设置分级标签:

  • 完全不展示
  • 展示简短摘要
  • 展示详细摘要
  • 展示完整原文

模型路由 + “子智能体”

拥有原生动态上下文能力之后,就可以把简单任务路由到更廉价、速度更快的模型。 整套调度逻辑必须同时兼顾成本与模型能力。

我的猜想:子智能体的大部分开销,来源于判断要传入哪些上下文。如果这一环节变得廉价、自动化,子智能体就能大规模落地使用。 同时还可以向用户开放调节选项:是多花钱换取更好更快的结果,还是保守控制开销。

基于第一性原理重构 Skills / MCP / 工具调用

我认为中间层应该存在一种新范式: 只保留简短的描述片段,告知模型有哪些动作可以调用。

如果模型完全不知道某类动作的存在,就不可能主动建议调用它,这点和 Skills 的设计思路类似。

但是不需要把全部信息塞进系统提示词,可以在需要的时候动态加载:

  • 真正要调用动作时,再加载动作的完整 Schema,类似工具检索能力;
  • 该机制不会污染常驻上下文。

这是前所未有的特性: 如果这套方案可行,我们几乎可以零成本内置海量工具。 近乎零成本地预装能力,既是产品杀手锏,也可以用作联合营销。 试想:内置数百个工具,数千份参考文档。

脑洞构想 —— 尚在构思,抛出来探讨

完善的内置工具生态

很多开源项目宣称可以赋能智能体,但实际落地效果很差。 举例:https://github.com/rtk-ai/rtk,一款上下文压缩工具。

我的推测:大模型本身并不能原生理解这类外部工具。 我们可以配套专属提示词,包装成原生子智能体或者 Skill,保证调用逻辑正确。 我们干净可控的上下文环境,可以动态加载这些工具,同时不会被乱七八糟的自定义逻辑污染。

持续集成当下热门项目,也可以帮助产品获取行业关注度。

补充想法:做一个开源项目作为造势载体,可以持续跟进领域最新热点。

条件化系统提示词 / AGENTS.md

根据不同运行条件,动态加载 AGENTS.md 的不同片段。 举例:

  • 当前任务是前端开发 → 自动加载前端代码风格指南;
  • 进入某个子代码目录 → 自动加载该目录踩坑避坑文档(说实话每个子目录都应该有一份踩坑文档)。

它和 Skills 有一定相似,但核心区别:Skills 偏向立刻执行某个动作;而这套机制是把信息常驻在记忆中。 另外,常驻记忆需要免疫上下文压缩过滤:普通 Skill 加载后,经过压缩轮次很容易被摘要丢失。

顺带一提,我非常希望聊天机器人也拥有这套能力:

  • 需要输出摘要?按 Org‑Markdown 格式输出;
  • 需要模仿我的写作风格?加载写作样例和禁忌要求;
  • 编写代码?不要生成大量断言,同时加载代码风格指南。

结构化 Skills

想法还不成熟。如果我们把运行执行框架做得高度可编程,Skills 就可以大幅度改变智能体行为。 对标 Claude Skill Hooks:https://code.claude.com/docs/en/hooks#hooks-in-skills-and-agents,但能力更强。 据我所知,现有的钩子一旦启用,会永久作用于整个会话。

递归语言模型 RLM

参考文章:https://alexzhang13.github.io/blog/2025/rlm/ 核心概括:引入更多变量,使用显式状态。 把状态处理为显式变量,整套架构会变得干净很多。

高级摘要能力

一个构想:为 grep 命令输出做相关性热力图,按需动态裁剪输出内容,视觉效果也很好。

大规模子智能体 + 任务并行

具体落地方式还不确定。依托上面的架构,批量启动大量任务会变得简单;但要处理很多棘手但必要的机制:同步原语、任务间通信。 例如多个子任务共享状态,通过锁机制解决写冲突。

安全感知路由

部分国产模型价格极低,但存在数据泄露风险(例如 DeepSeek V4 成本极低)。

设想方案:

  • 评估子任务、子智能体会访问哪几类文件;
  • 针对不同文件类型设置不同安全策略;
  • 低敏感任务路由到低成本模型。

进一步拓展:路由的判断依据不只有任务难度、成本。 举例:做大模型相关研究任务就不调用 Anthropic;安全敏感任务不使用 OpenAI、Anthropic。

附录

可集成、可优化的工具示例

  1. headroom
    https://github.com/chopratejas/headroom 上下文压缩工具 想法:增加分类器,校验压缩结果是否保留关键信息。
  2. rtk‑ai/rtk
    https://github.com/rtk‑ai/rtk 工具输出内容压缩工具。
  3. ast‑grep
    https://github.com/ast‑grep/ast‑grep 结构化检索工具 想法:遇到陌生工具时,可以临时加载工具手册,生成多条检索查询,再交由模型筛选查询的相关性。
  4. ast‑outline
    https://ast‑outline.github.io/ 另一款结构化代码解析工具 猜想:可以用于分层函数调用,让模型自主选择要探查的代码子树。
  5. fastcontext
    https://github.com/microsoft/fastcontext 用于代码库探索的子智能体 观测结论:在对 GPT‑5.4 运行轨迹分析中,读取与搜索占全部工具调用轮次的 56.2%,占主智能体总 token 消耗的 46.5%。 如果该结论具备普适性,优化这一块就能带来巨大效率提升。 两个优化方向:智能调度子智能体;使用结构化检索直接替代子智能体的搜索逻辑。
  6. fff
    https://github.com/dmtrKovalenko/fff 抗拼写错误的路径与内容检索、按访问频率排序文件、后台监听、轻量内存索引。在多次检索的长会话场景,速度远超 ripgrep、fzf 这类命令行工具。

其他想法:优化/goal目标机制,做显式的子目标去重。不确定会不会出现重复任务;但可以在启动子任务之前,把新子目标和历史子目标做去重校验。

SLOP:代码智能体子任务拆解清单从输入 token 占比视角来看:

  • 搜索任务:输出噪音大,有效信号少;
  • 堆栈信息、测试日志内容冗长;执行失败的规划记录。

如果需要针对不同子任务定制特殊逻辑,这份拆解清单可以作为很好的起点。

附录 2:后台处理 — 一种潜在的智能体工作范式

观察到近期一批热门智能体工作流:

  • https://x.com/xpasky/status/2073298979203211628:并行构建、更新 HTML 页面
  • https://x.com/geoffreylitt/status/2072522251300409556:“理解才是新的性能瓶颈”
  • https://x.com/samhogan/status/2071608749429858:后台生成评估用例
  • https://x.com/trq212/status/2090884854590382515:ELI5 通俗解释 Skill

它们的共性:

  • 全部是后台运行;
  • 作为普通编码工作流的后台扩展;
  • 大多是基于当前代码库状态的只读操作。

还有一类现成的模式也符合该范式:跨模型代码评审。 例如让 Codex 审查 Claude 产出的代码。

TypeSafe 在这里的定位

以 TypeSafe 为中心的代码智能体,核心前提:状态必须显式管理,全部纳入上下文体系。 借助精细化的状态管理,模型路由、子智能体等能力的效率会大幅提升。

这套架构和只读后台任务具备极高协同效应。 查找一次代码变更对应的相关信息本身开销不小; 如果这份检索结果可以被多个后台任务共享、分摊成本,就可以经济地大规模运行后台任务。

我认为显式区分状态的读、写权限,最终会释放巨大的能力

【声明】内容源于网络
0
0
苏哲管理咨询
为企业及组织提供AI+战略、数智化转型咨询及观点、建议等
内容 2245
粉丝 0
苏哲管理咨询 为企业及组织提供AI+战略、数智化转型咨询及观点、建议等
总阅读50.3k
粉丝0
内容2.2k