AI News HubLIVE
站内改写1 分钟阅读

展示 HN:Ratel —— 为 AI 代理提供无限工具和技能,且无上下文膨胀

Ratel 是一个上下文工程层,通过 BM25 索引为 AI 代理动态选择相关工具和技能,减少令牌消耗高达 80%,提高准确性,无需向量数据库。

来源Hacker News AI作者: jack1689

Ratel 是一个为 AI 代理设计的上下文工程层,旨在解决工具过载导致的令牌浪费和准确性下降问题。传统方式中,代理需要在每次调用时将所有的工具模式和技能描述作为系统提示发送,导致大量无用令牌被付费,且模型在冗长的上下文中更容易出错。Ratel 通过渐进式披露机制,仅注入当前轮次所需的工具和技能,从而降低令牌消耗多达 80%,并恢复因工具过载而丢失的准确性。

Ratel 的工作流程包括三个核心步骤:首先,通过 search_capabilities 工具搜索索引中的工具和技能;然后,根据代理的需求仅注入匹配的能力;最后,通过 invoke_tool 和 get_skill_content 工具按需执行。其默认使用 BM25 算法进行检索,这是一款与大多数搜索引擎相同的算法,适用于模式感知的工具元数据和技能名称、描述及标签。此外,Ratel 还支持可选的语义和混合排名,通过本地嵌入模型在同一进程中运行。

安装和使用 Ratel 非常简单。对于 TypeScript 用户,可以通过 pnpm add @ratel-ai/sdk 安装 SDK;对于 Python 用户,则使用 pip install ratel-ai。开发者可以创建 ToolCatalog 和 SkillCatalog 来注册工具和技能,然后通过 searchCapabilitiesTool、invokeToolTool 和 getSkillContentTool 等工具将其集成到代理框架中。Ratel 还提供了与 Vercel AI SDK 和 Pydantic AI 等流行框架的示例。

Ratel 的基准测试结果(benchmark.ratel.sh)显示,无论是在本地、开源还是前沿模型配置中,它都能显著降低令牌使用量并提高准确性。相关项目包括 ratel-local(用于编码代理的本地分发)和 ratel-bench(基准测试套件)。

在许可方面,Ratel 的核心引擎(ratel-ai-core)采用 Apache-2.0 许可,明确授予专利许可;而其余部分(SDK、遥测助手、示例等)采用 MIT 许可。项目采用 Rust、TypeScript 和 Python 等多种语言开发,支持跨平台使用。