yologdev/yoagent

The agent loop for Rust — stream from 7 LLM protocols, run tools, loop until done.

解决的问题

yoagent 是一个专为在 Rust 中构建 AI 代理而设计的框架。它专注于「代理循环」——即向 LLM 发送提示、流式传输响应、执行工具,并重复此过程直到获得最终答案。与通用 LLM 框架不同,它不包含向量存储或 RAG 流水线,而是专注于在生产环境中运行工具调用代理所需的机制。

如何工作

该项目的核心是一个无状态的 agent_loop() 函数,用于管理 LLM 与工具执行环境之间的交互。它提供了一个可选的 Agent 包装器,用于管理历史记录和队列。该框架支持七种原生通信协议(包括 Anthropic、OpenAI、Gemini 和 Bedrock),以确保保留特定于提供商的功能,如思考预算和提示缓存断点。

关键架构特性包括:

  • 会话树:历史记录以树结构而非列表形式管理,允许用户分叉、设置检查点并回溯对话回合。
  • 扩展:通过单一插件契约,开发者可以控制、修改或屏蔽工具调用及其结果,并强制执行预算。
  • 子代理:系统支持将任务委派给具有自己模型和工具的子循环。

适用人群

需要一个稳健、生产就绪的工具调用循环,但又不想承担通用 LLM 协调层开销的 Rust 开发者。

主要亮点

  • 原生协议支持:实现 7 种原生协议,而非单一 OpenAI 兼容封装。
  • 基于树的历史记录:支持分叉和编辑早期回合,而不会破坏原始分支。
  • 离线测试:包含 MockProvider,可在无需 API 密钥的情况下脚本化多轮对话以进行测试。
  • uma Wasm 支持:支持 wasm32-unknown-unknown,可用于 Cloudflare Workers 等环境部署。
  • 内置工具:自带原生工具,支持 bash、文件系统操作和搜索。
  • 可记录运行:可将运行记录为 GASP 仓库中的追加式语义事件日志。

相关

  • 项目
  • 项目
  • 项目
  • 项目