从“运行成功”到“任务完成”:一次 Coding Agent Runtime 的评测复盘
最近我用个人构建的 Navi-agent 在 Modal 云端 sandbox 中运行 Terminal-Bench 2.1,并把结果与此前的 BFCL 工具调用评测放在一起复盘。一个评测观察工具调用是否正确,另一个观察 Agent 是否能完成真实环境中的代码任务。 这个过程有价值的结论,不仅仅是Navi-agent benchmark 的分数,而是我们重新认识评测一个经常被忽略的问题: ...
最近我用个人构建的 Navi-agent 在 Modal 云端 sandbox 中运行 Terminal-Bench 2.1,并把结果与此前的 BFCL 工具调用评测放在一起复盘。一个评测观察工具调用是否正确,另一个观察 Agent 是否能完成真实环境中的代码任务。 这个过程有价值的结论,不仅仅是Navi-agent benchmark 的分数,而是我们重新认识评测一个经常被忽略的问题: ...
我正在构建 Navi Agent,一个主要受 Hermes 和 Codex 启发、当前聚焦评测与 Runtime 的轻量 Agent。过去我主要站在 Agent 工程一侧使用模型:设计提示词、调用工具、维护上下文、处理记忆与工作流。但当系统效果不稳定时,很多问题最终都会回到模型本身:token 是怎样形成的,模型为什么续写而不是“思考”,上下文为什么会丢失,微调究竟改变了什么? 为了建立更...
代码检索到底该怎么做:CodeGraph 与 CocoIndex 的一次实测 问题 Coding agent 的代码检索,应该依赖 grep/glob 这类关键字工具,还是依赖代码库图索引,向量索引?精确检索和向量检索组合后,能否在提高召回的同时控制误召回和上下文成本? 本文以个人coding agent xushun007/navi-agent repo 为输入,对 CodeGrap...
我一直是 AI Coding 的乐观主义者。 这不是今天才有的态度。ChatGPT 刚出来的时候,我就拿它写过 Chrome 插件。后来一路用过 GitHub Copilot、Cursor、OpenCode、Claude Code、Codex,也用它们做过一些并不在我原有技术栈内的 iOS App 和小程序,主流产品基本都订阅过,也深度阅读过几个开源的代码设计,一直在跟着它们的能力边界往前...
Introduction(引言) 你是一个开发者。你在用 Claude 和 Codex CLI,每天都在想:自己是不是把 Claude 或 Codex 的能力榨干了。偶尔你会看到它做出一些蠢到离谱的事,你无法理解:为什么有一群人看起来在造“虚拟火箭”,而你却连两块石头都堆不稳。 你以为是你的 harness、插件、终端环境之类的问题。你用 beads、opencode、zep,你的 CL...
背景动机 Gemini CLI 曾出现一个典型故障:WebSearchTool 遇到带未转义引号的 query,触发 JSON 解析异常,直接导致 CLI 崩掉。根因很简单:缺少输入校验与清洗。 在 Agent 系统里,这类问题会被放大。LLM 生成的 tool args 本质上就是外部输入。不经校验就进入 Shell、支付,结果就不只是报错,而是故障、甚至资损。 原理分析 系统稳不...
周六带小朋友去上了两堂武术体验课。老师评价很专业也很“扎心”:柔韧性不错(芭蕾底子在那儿),但力量不够。我想只要孩子持续参与应能改善。 晚上吃过饭,她像往常一样凑过来:“爸爸,我们玩 AI 吧!” 她说的“玩 AI”,其实是我们家最近的小传统:她负责出创意,我负责把创意落到代码里(通常用 Cursor),然后我们一起试玩,一边玩一边提需求、一边迭代。 那时我抽不开身,正和老婆研究两款奶...
背景动机 很多团队说“Agent 没记忆”,其实是把两类完全不同的问题搅在一起了:一类是“我现在正在做什么”(工作记忆),另一类是“我长期知道什么/偏好什么”(长期记忆)。你不把它们拆开,工程上就会出现三种典型事故:要么上下文越滚越长、成本和延迟失控;要么为了省 token 乱压缩、结果关键细节丢了;要么任务跑到第 30 次 tool call 开始漂移,忘了最初目标。Manus 的复盘把...
背景动机 很多团队把 Agent 的性能问题,归因到“模型慢 / 工具慢 / 网络慢”。但在生产里,最常见的真实元凶其实更朴素:你在重复喂同一段上下文,却每次都让模型从零开始做 Prefill。 Manus 的复盘把这事说得很直白:如果只能选一个指标,他们会选 KV-cache hit rate,因为它同时决定延迟与成本。Agent 的工作方式决定了它比聊天更“吃前缀”:每一步 tool...
背景动机 在互联网架构里,“重试”从来不是一句 retry(3) 能解决的事。你敢对支付接口无脑重试,资损就会来;你敢对网络抖动无脑重试,体验就会烂。重试的前提不是“失败了”,而是“失败属于哪一类”。 把这个问题搬到 AI Agent 上,会更糟:Agent 不只是“发一次请求”,它会在 ReAct 循环里连续调用模型、读写文件、跑命令、改代码、跑测试——一次失败可能发生在任何层,还可能...