环境安装

本文档介绍如何搭建 Rust Agent Framework (RAF) 开发环境,包括 Rust 工具链安装、项目创建和依赖配置。

前置条件

- **Rust 工具链**:`rustc >= 1.75.0`,推荐使用 `rustup` 安装:

rustup default stable
rustup update

- **Cargo 工作区**:RAF 采用 workspace 多 crate 架构,你的项目需要引用其中的 crate。

创建项目

cargo new my-raf-agent
cd my-raf-agent

配置 Cargo.toml

RAF 包含 15 个 crate,按依赖关系分为核心层、运行时层和扩展层。你需要按需引用。

最小依赖(纯 API 调用)

如果你只需要调用 LLM API,只需 `rust-agent-client` 和 `rust-agent-core`:

[dependencies]
tokio = { version = "1", features = ["full"] }
rust-agent-core = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-core" }
rust-agent-client = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-client" }

标准配置(构建智能体)

如果你需要完整的智能体运行时、工具注册、上下文管理和会话支持:

[dependencies]
tokio = { version = "1", features = ["full"] }
futures-util = "0.3"
serde_json = "1"

# 核心抽象层
rust-agent-core = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-core" }
# LLM 客户端(DeepSeek / OpenAI 兼容)
rust-agent-client = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-client" }
# 智能体框架运行时(AgentBuilder、ChatClientAgent、内置工具、压缩策略)
rust-agent-framework = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-framework" }
# 工具宏支持
rust-agent-macros = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-macros" }

本地开发(直接引用 workspace)

如果你克隆了 RAF 源码,可在 workspace 的 `Cargo.toml` 中按相对路径引用:

[dependencies]
rust-agent-core = { path = "../rust-agent-framework/crates/core" }
rust-agent-client = { path = "../rust-agent-framework/crates/client" }
rust-agent-framework = { path = "../rust-agent-framework/crates/framework" }

扩展依赖(按需添加)

# Web 搜索支持
rust-agent-websearch = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-websearch" }

# RAG(检索增强生成)
rust-agent-rag = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-rag" }

# Wiki 知识检索
rust-agent-wiki = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-wiki" }

# Rhai 脚本引擎
rust-agent-rhai = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-rhai" }

# 工作流引擎
rust-agent-workflow = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-workflow" }

# 声明式 Agent DSL
rust-agent-decl = { git = "https://github.com/Rust-Framework/rust-agent-framework.git", package = "rust-agent-decl" }

可选功能(Feature Flags)

`rust-agent-framework` 提供了 `tiktoken` feature,启用后可使用精确的 Token 计数器:

rust-agent-framework = { git = "...", package = "rust-agent-framework", features = ["tiktoken"] }

| Feature | 说明 | |----------|------| | `tiktoken` | 使用 `tiktoken-rs` 实现精确的 Token 计数(`TiktokenCounter`),不启用时回退到 `EstimateCounter`(每 Token ≈ 4 个字符) |

验证安装

创建 `src/main.rs` 验证依赖是否正常解析:

use rust_agent_core::{ChatMessage, MessageRole};

fn main() {
    let msg = ChatMessage::user("Hello, RAF!");
    println!("{:?}", msg);
}
cargo run

若输出 `ChatMessage { role: User, content: "Hello, RAF!", ... }` 则安装成功。

所需 API Key

RAF 的 LLM 客户端需要 API Key。支持的提供商:

| 提供商 | 配置方式 | |--------|----------| | DeepSeek | `DeepSeekChatClient::from_key("sk-...", "deepseek-chat")` | | OpenAI | `OpenAiChatClient::from_key(api_base, "sk-...", "gpt-4o")` |

也可通过环境变量传入:

export DEEPSEEK_API_KEY="sk-xxxxxxxx"
export OPENAI_API_KEY="sk-xxxxxxxx"

下一步

环境就绪后,继续阅读 **[第一个智能体](./first-agent.md)**,开始构建你的第一个 RAF Agent。