每个工具描述、每条技能提示、系统指令中膨胀的规则清单——这些都是你每次调用智能体时掏钱的令牌。把它们一股脑塞进上下文,你就得每次都为它们买单。
更糟的是,模型的表现会随着上下文变长而变差。塞进一堆当前步骤根本不需要的工具、技能和指令,模型就容易选错选项,跑偏任务。
Ratel 的解决方法很直接:把你的工具和技能编成目录,让智能体渐进式地检索。它不是一次性加载所有能力,而是搜索当前步骤需要什么,只把匹配的工具和技能注入上下文。没有向量数据库,也不依赖额外的基础设施。
官方给出的基准测试显示,在本地模型、开源模型与前沿模型的多组实验中,Ratel 同时降低了令牌消耗,并且找回了因工具超载而损失的准确度。完整结果公布在 benchmark.ratel.sh。
使用上,Ratel 提供了 TypeScript 和 Python 两种 SDK。核心操作是创建工具目录和技能目录。工具目录注册具体的可执行工具,每个工具带着输入输出模式定义和执行函数;技能目录则定义某个场景下需要组合哪些工具,并附带一段指导文本。智能体运行时,会调用搜索能力工具找出匹配项,再通过调用工具和加载技能工具获得实际内容。
具体来说,用 TypeScript SDK 时先安装 @ratel-ai/sdk。接着构建 ToolCatalog 示例并注册工具,比如一个读取本地文件的工具,定义好输入输出格式,绑定对应的异步执行逻辑。同样地,SkillCatalog 注册技能,指定技能用到哪些工具,并附上执行提示。之后在智能体框架里,把 searchCapabilitiesTool、invokeToolTool 和 getSkillContentTool 当作普通工具使用,就能实现按需检索和调用。
Python SDK 同理,安装 ratel-ai 包,通过 ToolCatalog 和 SkillCatalog 完成注册,再用同样的三个工具函数驱动智能体。整个过程省去了向量数据库的部署负担,直接在调用链中完成能力筛选。
这种按需加载的思路,本质上把上下文工程化从“预定义”推向了“即时检索”。每次调用只为实际用到的那部分令牌付费,既控制了成本,又避免了模型在冗余信息里迷失方向。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.