Agent新技术分享-Forge论文已被ACM接受

Forge 五层准确率优化方案

模型基础准确率数据

  • 小模型:单步准确率90%,连续10步准确率30%左右

  • 大模型:单步准确率99%,连续10步准确率90%左右

Forge通过5层策略提高准确率

1. 救援解析层

问题:工具调用时,模型意图对了,但输出格式不对,模型输出了自由文本而不是结构化json

方法:三种抢救策略

  • 正则提取代码块包裹的JSON

  • 识别推理模型的「排练语法」

  • 识别Qwen的XML格式工具调用

2. 重试提示

问题:救援无效

方法

  • 注入纠正消息:「请用工具调用格式重试」

  • 工具不存在时列出可用工具

  • 预算限制:最多3次,超过就终止

  • 成功调用重置计数器

3. 步骤强制执行

问题:小模型爱跳步

  • 跳过中间步骤直接调终端工具

  • 前置依赖没完成就想出结论

方法:升级式纠正(分三次注入不同语气的纠正消息,三次后仍违规则报错终止)

  • 第1次跳步:礼貌提醒

  • 第2次跳步:直接要求

  • 第3次跳步:强硬命令

  • 之后跳步:报错终止

同时限制工具调用的前置条件。(如获取详情任务必须在搜索列表任务之后)

4. 错误恢复层

区分工具执行错误类型

  • 硬错误:代码 bug、权限不足等错误记入连续错误计数器,超两次则终止;

  • 解析错误:参数猜错等解析错误不记入计数器,仅引导模型换参数重试

区分原因:解析错误这种即使工具本身正常猜错三次也会终止,进行区分后这样可以防止系统过早放弃。

5. 上下文压缩

问题:多步的工作流会产生大量的上下文,包括每一步的工具调用,工具返回结果,推理过程,纠错信息。在消费级的GPU上,过长上下文会把模型从GPU挤到CPU,速度降低10~100倍。

方法:三阶段确定性压缩策略

  • 第一阶段:删除所有纠正消息,把旧的工具返回结果截断到前两百个字符。

  • 第二阶段:如果第一阶段不够,直接删除旧的工具返回结果。但保留模型的推理过程,

  • 第三阶段:如果还不够,删除推理和失败的文本回复,只保留工具调用的骨架。

Forge项目github链接:https://github.com/antoinezambelli/forge

视频讲解参考:https://v.douyin.com/j6Ty3rZnh_A/