1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
//! # rucora
//!
//! 用 Rust 编写的高性能、类型安全的 LLM 应用开发框架
//!
//! ## 特性
//!
//! - ⚡ **极速性能** - Rust 原生,零成本抽象
//! - 🔒 **类型安全** - 编译时错误检查,运行时更可靠
//! - 💰 **成本监控** - 内置 Token 计数和成本管理
//! - 🧰 **丰富工具** - 12+ 内置工具(Shell/File/HTTP/Git/Memory 等)
//! - 🔌 **灵活集成** - 支持 10+ LLM Provider(OpenAI、Anthropic、Gemini、Ollama 等)
//! - 📊 **可观测性** - 完整的日志、指标、追踪支持
//! - 🧠 **Agent 架构** - 思考与执行分离,支持自定义 Agent
//!
//! ## 快速开始
//!
//! ### 1. 添加依赖
//!
//! ```toml
//! [dependencies]
//! rucora = "0.1"
//! tokio = { version = "1", features = ["full"] }
//! anyhow = "1"
//! ```
//!
//! ### 2. 编写代码
//!
//! ```rust,no_run
//! 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. 运行
//!
//! ```bash
//! cargo run
//! ```
//!
//! ## 核心概念
//!
//! ### Agent(智能体)
//!
//! Agent 负责思考和决策。它接收用户输入,分析需求,决定是否需要调用工具。
//!
//! ```rust,no_run
//! 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 请求等。
//!
//! ```rust,no_run
//! 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();
//! ```
// ===== 模块导出 =====
pub use rucora_core as core;
// Agent 模块
// 子模块重新导出(通过 feature 控制)
// Provider 模块
pub use rucora_providers as provider;
// Tools 模块
pub use rucora_tools as tools;
// Skills 模块(可选)
pub use rucora_skills as skills;
// Memory 模块
// Retrieval 模块
pub use rucora_retrieval as retrieval;
// Embedding 模块
pub use rucora_embed as embed;
// RAG 模块
// 上下文压缩模块
// 重新导出压缩引擎类型
pub use ;
// Conversation 模块
// Prompt 模块
// Middleware 模块
// MCP 模块(可选)
pub use rucora_mcp as mcp;
// A2A 模块(可选)
pub use rucora_a2a as a2a;
// ===== 便捷导出 =====
/// 常用类型和 trait 的快速访问
///
/// 使用 `use rucora::prelude::*;` 可以快速导入常用类型。