Reddit 用户 GapNew4766 用同一个本地 Qwen3.5-4B 量化模型,测试十种 Agent 运行框架。每种框架执行五个小任务,每题一次;使用 M5 MacBook Pro(32GB 内存)、Q4_K_M 量化和 llama-server,64K 上下文设置固定,任务文件每次重置,由脚本判通过与否。因此“50 次”是十乘五的组合,既不是五十个独立任务,也不足以给框架排稳定榜单。
作者最意外的是,日志里没有找到畸形工具调用,失败却出现在工具语义与工作细节:跨三文件改函数名时,旧文本漏了一个空行,精确替换失败,模型原样重试五遍;另一次修补只照顾可见测试,隐藏字符串仍处理错误;日志计数把 43 行数成 40 行。还有答案写对但放错目录的情况。
评论者 porkminer 说自己改用按函数名与新定义替换的工具,减少逐字复述旧文本的要求;作者随即追问重名和重载,评论者承认尚未遇到,必要时应加文件或作用域信息。enternoescape 则提醒,读文件工具附加的行号有时也会干扰替换。这些意见给出了可检查的接口原因,并没有证明所有精确替换失败都来自模型能力不足。
可信度 65 · 重要性 76 · 新颖度 76
技术与主题
Agent 系统 · AI 编程 · 评测与基准 · Tool Calling · Code Editing · Local Inference
GapNew4766
原帖作者在固定本地模型与机器上的探索性比较。
忠实转述(非原句):他原先预期小模型主要会生成坏掉的工具调用,查日志后却没有找到这种失败。最让他困扰的是模型知道该改什么,却没能逐字重现旧文本;失败后还重复同一个编辑。速度差距很大,他猜测与提示词大小及多余步骤有关,但明确说尚未测量原因。没有破坏性命令也不能说明安全:这些任务本来就没有诱导危险操作。
porkminer
回应原帖:u/GapNew4766
原帖评论区回应精确匹配失败;后续回复承认尚未遇到重名边界。
忠实转述(非原句):他在自己的测试里主要遇到精确匹配问题,于是让模型只发送函数名和新定义,由工具定位并替换。他还不开放任意命令行,把需要的操作包成工具。面对重载和不同文件中同名函数的追问,他说自己还没遇到,但应加入作用域或文件信息,必要时考虑语法树索引。
enternoescape
回应原帖:u/GapNew4766
同一评论区补充另一种可能的接口原因;未提供统一对照。
忠实转述(非原句):他指出读工具加上的行号有时会导致匹配问题;在他的经历中,能使用 shell 工具时有时第一次就成功。他也见过前沿模型编辑成功却漏掉细节、仍需再改,所以不把这类问题只归给小模型。
编辑评读
这份小样本的价值在于诊断,而非名次。工具调用能被解析,只表示指令格式正确;编辑器还要求目标文本存在,任务还要求修改满足隐藏条件。把这几个层次分开,能避免一遇到失败就换更大模型,也能避免工具返回成功后就提前宣布任务完成。
按函数替换降低了模型必须准确复制空白字符的负担,但把工作移到了定位器:它必须找对文件、作用域与目标定义。作者对重名的追问很重要,因为一个更“宽容”的编辑接口也可能更安静地改错位置。较好的比较应记录匹配失败、错误替换和最终任务通过,而不仅是编辑操作成功次数。
这与 HarnessAdapt-RL 的工具演化构成机制上的对照:前者是个人观察,后者有训练与消融,不能互称独立复现。共同可借用的是沿失败轨迹定位哪一步需要可靠程序。计数可以交给确定性工具,保存位置可以显式指定,是否实现完整需求仍要用适当测试判断。