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. 设置环境变量
# 使用 OpenAI
export OPENAI_API_KEY=sk-your-key
# 或使用 Ollama(本地)
export OPENAI_BASE_URL=http://localhost:11434§3. 编写代码
use rucora::provider::OpenAiProvider;
use rucora::agent::DefaultAgent;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let provider = OpenAiProvider::from_env()?;
let agent = DefaultAgent::builder()
.provider(provider)
.model("gpt-4o-mini")
.system_prompt("你是有用的助手")
.build();
let output = agent.run("你好").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("北京天气怎么样?").await?;§Tool(工具)
工具提供具体能力,如执行命令、读取文件、HTTP 请求等。
use rucora::tools::{ShellTool, FileReadTool};
use rucora::agent::DefaultAgent;
let agent = DefaultAgent::builder()
.provider(provider)
.model("gpt-4o-mini")
.tool(ShellTool)
.tool(FileReadTool)
.build();§Skill(技能)
技能是可配置的自动化任务,通过配置文件定义。
use rucora::skills::{SkillLoader, skills_to_tools, SkillExecutor};
use std::sync::Arc;
// 加载 Skills
let mut loader = SkillLoader::new("skills/");
let skills = loader.load_from_dir().await?;
// 转换为 Tools
let executor = Arc::new(SkillExecutor::new());
let tools = skills_to_tools(&skills, executor, skills_dir);
// 注册到 Agent
let agent = DefaultAgent::builder()
.provider(provider)
.tools(tools)
.build();§学习路径
§新手
- 运行 Hello World 示例
- 阅读 快速开始
- 查看 用户指南
- 参考 示例集合
§开发者
- 阅读 设计文档
- 学习 Agent 与 Runtime
- 参考 快速参考
§技能开发者
- 阅读 Skill 配置规范
- 参考 Skill 配置示例
§项目结构
rucora
├── core - 核心抽象层(重新导出 rucora-core)
├── runtime - 运行时(重新导出 rucora-runtime,需要 `runtime` feature)
├── agent - Agent 实现(增强的 DefaultAgent,支持 Tools/MCP/A2A/Skills)
├── provider - LLM Provider 实现(OpenAI/Ollama/Router)
├── tools - 工具实现(Shell/File/HTTP/Git/Memory)
├── skills - 技能实现(Echo/Command)
├── mcp - MCP 协议集成(需要 `mcp` feature)
├── a2a - A2A 协议集成(需要 `a2a` feature)
├── memory - 记忆实现(InMemory/File)
├── retrieval - 检索实现(Chroma)
├── embed - Embedding 实现(OpenAI/Ollama)
├── rag - RAG 管线(Chunking/Indexing/Retrieval)
├── conversation - 对话历史管理
└── config - 统一配置系统§相关文档
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(检索增强生成)管线模块