TrueForge开源框架帮LLM省三成以上Token
经过优化框架的大语言模型智能体,原理讲得明明白白!两个智能体可以在同一个任务上运行同一个模型,都顺利完成任务。但其中一个完成任务花费的 token 几乎是另一个的三倍。
额外的 token 消耗来自包裹智能体的外围框架,框架决定了每次调用中哪些内容会进入模型的上下文,以及一共需要调用多少次模型。
举个例子,假设某个工具在某一步返回了 50k token 的 JSON。如果这段内容一直留在上下文中,模型在之后每一步都会重新读取整段内容。工具定义也是同样的道理。
一台服务器可以开放 50 个工具,每个工具都有名称、描述、输入输出 schema。默认情况下,从第一次调用开始,所有工具定义都会一直留在 prompt 里,不管智能体用不用它们。
但经过合理设计的优化框架可以避免给模型带来这些不必要的认知负担。更具体地说,框架工程的一个核心设计原则就是:在正确的时机把内容移出模型:
- 记忆承担权重和上下文不应该携带的状态。
- 技能存储过程性知识。它们包含为通用模型提供专用能力的操作流程和启发式规则。
- 协议保存与用户、其他智能体和工具的交互约定。
请注意,上下文不会永久消失。需要使用时它始终可以被加载,由框架决定加载多少内容、何时加载。
举个例子,要处理 50k token 的载荷,框架可以把它写入文件,只在上下文中保留预览和路径,把工作交给子智能体处理后就丢弃它的上下文,或是在对话长度超过阈值后总结较早的消息。
如果你想看看实际应用的例子,TrueForge 是一个已经实现了这些实践的开源框架。除非开启预加载,否则工具 schema 不会提前加载,大响应会存入沙箱文件,生成的代码通过框架回调工具,因此沙箱永远不会持有凭证。
我开头提到的两个智能体,来自 DevRev 的 Enterprise-Bench。在使用同一个模型的情况下,TrueForge 解决的任务数量和 Claude Managed Agents 相同,只用了三分之一多一点的 token,工具调用次数也减少了约 40%。
这是 GitHub 仓库:(别忘了点星 ⭐ )
我还写了一篇完整的分析,讲解一次运行中智能体的 token 到底消耗在了哪里,涵盖了上下文统计、上述策略、详细的基准测试,这篇内容是我和 TrueForge 一起完成的。点击下方阅读全文。
本文由 AI 翻译自英文原帖,技术名词保留英文。
查看 X 原帖