Expand description
§rucora
用 Rust 编写的高性能、类型安全的 LLM 应用开发框架
§特性
- ⚡ 极速性能 - Rust 原生,零成本抽象
- 🔒 类型安全 - 编译时错误检查,运行时更可靠
- 💰 成本监控 - 内置 Token 计数和成本管理
- 🧰 丰富工具 - 12+ 内置工具(Shell/File/HTTP/Git/Memory 等)
- 🔌 灵活集成 - 支持 10+ LLM Provider(OpenAI、Anthropic、Gemini、Ollama 等)
- 📊 可观测性 - 完整的日志、指标、追踪支持
- 🧠 Agent 架构 - 思考与执行分离,支持自定义 Agent
§快速开始
§1. 添加依赖
[dependencies]
rucora = "0.1"
tokio = { version = "1", features = ["full"] }
anyhow = "1"§2. 编写代码
use rucora::provider::OpenAiProvider;
use rucora::agent::DefaultAgent;
use rucora::prelude::Agent;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let provider = OpenAiProvider::new("https://api.openai.com/v1","sk-*******************");
let agent = DefaultAgent::builder()
.provider(provider)
.model("gpt-4o-mini")
.system_prompt("你是有用的助手")
.build();
let output = agent.run("你好".into()).await?;
println!("{}", output.text().unwrap_or("无回复"));
Ok(())
}§4. 运行
cargo run§核心概念
§Agent(智能体)
Agent 负责思考和决策。它接收用户输入,分析需求,决定是否需要调用工具。
use rucora::agent::DefaultAgent;
let agent = DefaultAgent::builder()
.provider(provider)
.model("gpt-4o-mini")
.system_prompt("你是有用的助手")
.build();
let output = agent.run("北京天气怎么样?".into()).await?;§Tool(工具)
工具提供具体能力,如执行命令、读取文件、HTTP 请求等。
use rucora::tools::{ShellTool, FileReadTool};
use rucora::agent::DefaultAgent;
let agent = DefaultAgent::builder()
.provider(provider)
.model("gpt-4o-mini")
.tool(ShellTool::new())
.tool(FileReadTool::new())
.build();Re-exports§
pub use compact::CompressionConfig;pub use compact::CompressionStrategy;pub use compact::LayeredCompressor;pub use rucora_core as core;pub use rucora_providers as provider;pub use rucora_tools as tools;pub use rucora_retrieval as retrieval;pub use rucora_embed as embed;
Modules§
- agent
- Agent(智能体)模块
- compact
- 上下文压缩模块
- conversation
- Conversation(对话历史)管理模块
- memory
- Memory(记忆)实现模块
- middleware
- 中间件系统
- prelude
- 常用类型和 trait 的快速访问
- prompt
- Prompt 模板系统
- rag
- RAG(检索增强生成)管线模块