← 返回信息流
AI 资讯Hacker News·3 小时前

Ratel:为AI智能体提供无限工具技能,消除上下文膨胀

原标题:Show HN: Ratel, give agents unlimited tools and skills without context bloat

速览

Ratel是一个新项目,旨在解决AI代理扩展工具时上下文膨胀的问题。它允许代理动态地加载和使用大量工具与技能,而无需将全部定义塞入上下文。这大幅提升了代理的灵活性和效率,尤其适用于复杂任务场景。该方案对构建更强大的AI代理系统具有实际意义。

AI 深度解读

背景

随着AI Agent的普及,开发者倾向于在系统提示(system prompt)中塞入大量工具定义(tool schema)、技能描述(skill)和指令。这种做法虽然便于Agent调用各种能力,但带来了两个核心问题:成本准确性。每个工具的定义、每个技能的描述以及所有指令,在每次调用时都会作为token消耗,导致成本线性增长。同时,模型在上下文过长时性能下降,尤其是在无关工具和指令充斥的情况下,模型容易选错工具或偏离任务目标。传统解决方案需要依赖向量数据库和复杂的基础设施,但Ratel项目提出了一种新的“上下文工程层”(context engineering layer),旨在解决工具过载和上下文膨胀问题。

核心内容

Ratel是一个面向AI Agent的上下文工程层,它通过索引Agent的工具和技能,在每次对话轮次中仅检索并注入当前所需的能力,而非一次性加载全部内容。这样既节省了token消耗,又恢复了因工具过多而损失的准确性。Ratel无需向量数据库,也不依赖额外基础设施。

具体工作流程:开发者将工具和技能注册到Ratel的Catalog中(ToolCatalog和SkillCatalog)。当Agent需要执行某个操作时,它会调用search_capabilities函数。Ratel分别搜索工具索引和技能索引,返回聚焦的结果。工具可通过ID直接调用;技能指令则保存在上下文之外,直到Agent通过get_skill_content加载相关的“剧本”(playbook)时才注入。

Ratel默认使用BM25算法进行索引和检索,该算法也是大多数搜索引擎背后的核心算法,应用于工具元数据(schema-aware)以及技能的名称、描述和标签。检索速度快且具有确定性。同时支持可选的语义(semantic)和混合(hybrid)排序,开发者可以在每个Catalog或每次调用中启用。启用语义排序时,SDK调用者会注册(嵌入)并异步搜索密集索引,可使用进程内模型或兼容OpenAI的嵌入端点。

Ratel支持本地、开源和前沿模型(frontier model)等各类设置。项目提供了完整的基准测试结果(benchmark.ratel.sh),显示其在降低token使用量和恢复准确性方面的效果。

项目采用多语言SDK:TypeScript SDK(@ratel-ai/sdk)和Python SDK(ratel-ai)。核心引擎ratel-ai-core用Rust编写,SDK通过NAPI(Node)和PyO3(Python)绑定。项目结构包括:

  • src/core/:Rust检索引擎(Apache-2.0协议)
  • src/sdk/ts/:TypeScript SDK
  • src/sdk/python/:Python SDK
  • src/telemetry/:OpenTelemetry约定和辅助包
  • protocol/:Catalog间的线缆协议
  • examples/:端到端SDK示例
  • docs/:包含架构决策记录(ADR)和静态资源

协议方面:ratel-ai-core引擎采用Apache-2.0许可(明确包含专利授权),其余部分(SDK、遥测助手、示例)采用MIT许可。详见ADR-0009。

关键要点

  • 成本优化:传统方法在每次调用中发送所有工具和技能,导致token浪费。Ratel仅注入当前轮次所需的能力,直接降低每次调用的token消耗。
  • 准确性提升:模型在上下文拥挤时容易选错工具或偏离任务。Ratel通过检索相关能力,减少无关信息干扰,恢复因工具过载而损失的准确性。
  • 无需向量数据库:Ratel默认使用BM25算法(基于词频和逆文档频率),无需额外部署向量数据库或基础设施即可快速检索。
  • 支持语义检索:可选启用语义或混合排序,通过进程内嵌入模型或兼容OpenAI的嵌入端点,实现更精准的匹配。
  • 多语言SDK: 提供TypeScript和Python SDK,易于集成到现有Agent框架(如Vercel AI SDK、Pydantic AI)。
  • 开源且分层许可:核心引擎(Rust)采用Apache-2.0,包含专利授权;SDK和示例采用MIT,鼓励商业使用。
  • 确定性快速检索:BM25算法保证结果可复现且速度快,适合实时Agent场景。
  • 渐进式能力披露:Agent不需要预先知道所有能力,而是通过搜索逐步发现并使用所需工具和技能。

意义与影响

Ratel为AI Agent的上下文管理提供了一种轻量级、高性价比的解决方案。它直接回应了当前Agent开发中常见的“工具过载”困境:开发者往往为了覆盖所有可能场景而添加大量工具,导致成本飙升和模型表现下降。Ratel通过检索增强(retrieval-augmented)的方式,实现了“按需加载”,既保留了Agent的灵活性,又控制了成本和准确性。

从技术架构看,Ratel将传统搜索引擎的BM25算法与Agent的上下文窗口结合,是一种实用且高效的思路。它不需要昂贵的向量数据库,降低了部署门槛。同时,它支持语义和混合检索,为更复杂的场景提供了扩展空间。

Ratel的开源许可是有层次的:核心引擎(Rust)采用Apache-2.0(含专利授权),鼓励企业嵌入;SDK和工具采用MIT,方便社区贡献和集成。这种设计有助于建立生态,吸引更多开发者参与。

项目还提供了完整的架构决策记录(ADR),显示了良好的工程治理。对于正在构建Agent系统的开发者来说,Ratel提供了一个立即可用的上下文工程工具,可以快速集成到现有框架中,减少token消耗,提升Agent的可靠性。未来,随着Agent应用日益复杂,类似Ratel的上下文工程层可能成为标准组件。

查看原文 →github.com