基于Rust的开源智能体开发框架AutoAgents,了解一下

内容分享20小时前发布
0 3 0

1 简介

  • GitHub主页:https://github.com/liquidos-ai/AutoAgents
  • 文档:https://liquidos-ai.github.io/AutoAgents/

AutoAgents是由liquidos-ai开发的现代化多智能体框架,基于Rust语言构建,以高性能、高安全性和高扩展性为核心优势,支持通过大语言模型(LLMs)与Ractor实现智能自主智能体的创建、协作与部署,可满足云原生、边缘原生及混合场景下复杂AI系统的开发需求。

基于Rust的开源智能体开发框架AutoAgents,了解一下

AutoAgents

1.1 核心定位与设计目标

AutoAgents的核心定位是为开发者提供“模块化、跨平台、易扩展”的多智能体开发底座,其设计目标围绕三大维度展开:

  1. 性能优先:依托Rust的内存安全性与高效并发特性,结合异步编程模型(tokio),确保智能体在高并发场景下的低延迟与低资源占用;
  2. 场景全覆盖:支持云部署、边缘部署(本地推理)、浏览器部署(WebAssembly)三种模式,适配从服务器级AI系统到轻量前端智能应用的全场景;
  3. 开发友善:通过模块化架构、派生宏(derive macros)、类型安全接口,降低多智能体开发门槛,同时支持灵活替换组件(如LLM提供商、内存后端、执行器)。

1.2 关键特征

AutoAgents的关键特征覆盖了智能体执行、工具集成、架构灵活性、部署能力四大核心模块,具体如下:

1)智能体执行(Agent Execution)

  • 多执行器支持:提供两种核心执行器,满足不同推理需求:ReAct执行器:融合“推理(Reasoning)+行动(Acting)”逻辑,支持智能体根据任务动态决策工具调用;Basic执行器:轻量型执行器,适合简单任务场景,且两者均支持流式输出(Streaming)。
  • 结构化输出:通过JSON Schema验证与自定义输出类型(如AgentOutput宏定义),确保智能体输出的类型安全性,避免非预期数据格式。
  • 可配置记忆系统:内置滑动窗口记忆(Sliding Window Memory),用于短期上下文管理;持久化存储记忆(Persistent Storage)处于开发中,将支持长期上下文留存。

1.3 工具集成(Tool Integration)

  • 自定义工具便捷化:通过#[tool]派生宏,开发者可快速定义工具(如加法工具、网页搜索工具),无需手动编写繁琐的序列化/反序列化逻辑;
  • WASM沙箱执行:工具执行基于WebAssembly runtime,实现沙箱隔离,避免恶意工具代码对宿主环境的影响,提升安全性。

1.4 灵活架构(Flexible Architecture)

  • LLM提供商无关性:支持云厂商与本地模型双重生态,开发者可根据成本、隐私需求自由选择(详见“支持的LLM提供商”部分);
  • 多平台兼容:原生平台:Rust原生编译,支持服务器/桌面应用;浏览器:通过WASM编译,实现智能体在前端直接运行;边缘设备:支持ONNX模型本地推理,适配低资源边缘场景。
  • 多智能体协作:基于类型安全的发布-订阅(pub/sub)通信机制,支持多智能体间的协同调度与任务分工(如“规划智能体+执行智能体”组合)。

1.5 多维度部署(Deployment Options)

AutoAgents提供三种部署模式,覆盖不同环境需求:

部署模式

适用场景

核心优势

原生部署(Native)

服务器级AI系统、高性能桌面应用

依托Rust性能优势,支持高并发、低延迟

浏览器部署(Browser)

前端智能应用(如网页端AI助手)

无需后端依赖,数据本地化处理,保护用户隐私

边缘部署(Edge)

物联网设备、边缘服务器

支持ONNX模型本地推理,减少网络请求,降低延迟

2 支持的LLM提供商

AutoAgents覆盖“云厂商模型+本地模型”双重生态,不同提供商的支持状态如下:

2.1 云提供商(Cloud Providers)

所有云厂商模型均已实现稳定支持(✅),可直接通过API调用:

提供商

支持模型示例

OpenAI

GPT-4o、GPT-3.5 Turbo

Anthropic

Claude 3、Claude Instant

Google

Gemini Pro

Azure OpenAI

Azure GPT-4o、Azure GPT-3.5

其他

OpenRouter、DeepSeek、xAI、Phind、Groq

2.2 本地提供商(Local Providers)

本地模型支持处于持续迭代中,部分为实验性(⚠️),适合隐私敏感、无网络依赖的场景:

提供商

支持状态

核心特点

Ollama

✅ 稳定

轻量本地LLM管理工具,支持Llama 3、Mistral等

Mistral-rs

⚠️ 开发中

Mistral模型的Rust绑定,支持本地推理

Burn

⚠️ 实验性

Rust机器学习框架,支持自定义模型部署

ONNX

⚠️ 实验性

跨平台推理框架,适配边缘设备

3 架构与核心组件

AutoAgents采用模块化架构,代码组织清晰,核心组件可独立替换,整体结构如下:

3.1 代码目录结构

AutoAgents/
├── crates/                  # 核心依赖库
│   ├── autoagents/          # 主库入口,整合所有核心能力
│   ├── autoagents-core/     # 智能体核心框架(内存、执行器、通信)
│   ├── autoagents-llm/      # LLM提供商实现(OpenAI、Anthropic等)
│   ├── autoagents-toolkit/  # 预置工具集(如搜索、文件操作工具)
│   ├── autoagents-burn/     # Burn框架集成(本地模型)
│   ├── autoagents-mistral-rs/ # Mistral-rs集成(本地模型)
│   ├── autoagents-onnx/     # ONNX运行时集成(边缘部署)
│   ├── autoagents-derive/   # 派生宏定义(#[agent]、#[tool]等)
│   ├── autoagents-cli/      # 命令行工具(运行/部署YAML工作流)
│   └── autoagents-serve/    # HTTP服务模块(通过API提供智能体能力)
├── examples/                # 示例代码(基础用法、设计模式、WASM部署等)
├── docs/                    # 文档(API文档、开发指南)
└── 配置文件                 # LICENSE、Cargo.toml、代码规范等

3.2 核心组件解析

组件

功能描述

Agent

智能体基本单元,包含身份(名称/描述)、工具集、执行器、内存,通过#[agent]宏定义

Environment

智能体生命周期管理器,负责多智能体的创建、通信与资源调度

Memory

上下文存储模块,支持滑动窗口、持久化等类型,为智能体提供“记忆”能力

Tools

智能体的外部能力扩展,通过#[tool]宏定义,支持WASM沙箱执行

Executor

推理逻辑模块,定义智能体“思考-行动”的流程(如ReAct、Basic执行器)

LLM Backend

LLM调用适配器,适配不同提供商的API或本地模型(如OpenAI Backend、Mistral-rs Backend)

4 快速上手

4.1 开发环境搭建

前置依赖

  • Rust(推荐最新稳定版,通过rustup安装)
  • Cargo(Rust包管理器,随Rust自动安装)
  • LeftHook(Git钩子工具,用于代码格式化、lint 检查)

安装LeftHook

  • macOS(Homebrew):brew install lefthook
  • Linux/Windows(npm):npm install -g lefthook

克隆与构建项目

# 克隆仓库
git clone https://github.com/liquidos-ai/AutoAgents.git
cd AutoAgents

# 安装Git钩子(自动格式化、lint、测试)
lefthook install

# 构建项目(release模式,性能最优)
cargo build --release

# 运行测试,验证环境
cargo test --all-features

4.2 访问本地 Ollama 运行的 gemma3:270m 模型的智能体示例

use autoagents::core::agent::{AgentBuilder, DirectAgent, Task};
use autoagents::core::memory::SlidingWindowMemory;
use autoagents::llm::{LLMBuilder, LLMProvider};
use autoagents_derive::{agent, AgentHooks, AgentOutput};
use serde::{Deserialize, Serialize};
use std::sync::Arc;

// 1. 定义智能体输出格式
#[derive(Debug, Serialize, Deserialize, AgentOutput)]
pub struct QAAgentOutput {
    #[output(description = "The answer to the question")]
    answer: String,
    #[output(description = "Confidence level (low, medium, high)")]
    confidence: String,
}

// 2. 定义问答智能体
#[agent(
    name = "ollama_gemma_qa_agent",
    description = "A question answering agent using local Ollama Gemma3 model",
    tools = [],  // 此示例不使用工具
    output = QAAgentOutput,
)]
#[derive(Default, Clone, AgentHooks)]
pub struct QAAgent {}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 3. 构建本地Ollama LLM客户端(连接到gemma3:270m模型)
    let llm = LLMBuilder::new()
        .provider(LLMProvider::Ollama)
        .model("gemma3:270m")
        .base_url("http://localhost:11434")  // Ollama默认本地端口
        .temperature(0.7)
        .max_tokens(512)
        .build()?;

    // 4. 构建智能体(使用滑动窗口内存)
    let agent = AgentBuilder::new()
        .llm(Arc::new(llm))
        .memory(Box::new(SlidingWindowMemory::new(5)))  // 保留最后5条对话
        .build()
        .await?;

    // 5. 定义测试问题
    let questions = [
        "What is artificial intelligence?",
        "Explain machine learning in simple terms",
        "What can you do with a small language model like yourself?"
    ];

    // 6. 运行智能体处理每个问题
    for question in questions.iter() {
        println!("
Question: {}", question);
        println!("----------------------------------------");
        
        let result = agent.run(Task::new(question)).await?;
        
        println!("Answer: {}", result.answer);
        println!("Confidence: {}", result.confidence);
        println!("----------------------------------------");
    }

    Ok(())
}

5 总结

AutoAgents作为Rust生态下的多智能体框架,凭借“高性能、跨平台、模块化”的核心优势,为开发者提供了从简单智能体到复杂多智能体系统的全链路开发能力。无论是云原生AI服务、边缘智能设备,还是前端智能应用,AutoAgents均能提供适配的解决方案,同时通过丰富的示例与友善的开发体验,降低多智能体技术的应用门槛,适合AI研发团队、企业级开发者及开源爱好者探索与落地多智能体场景。

© 版权声明

相关文章

3 条评论

  • 头像
    普月 读者

    向你学习👍

    无记录
    回复
  • 头像
    洪源 投稿者

    膜拜大佬👏

    无记录
    回复
  • 头像
    夜晚不睡白天不起 读者

    收藏了,感谢分享

    无记录
    回复