1mod error;
2pub use error::*;
3mod build;
4pub use build::*;
5mod lloop;
6
7use abu_provider::ChatProvide;
8use crate::context::ContextBuilder;
9use crate::hook::HookManager;
10use crate::memory::Memory;
11use crate::middleware::MiddlewareManager;
12use crate::model::ChatModel;
13use crate::toolbox::ToolBox;
14
15#[derive(Clone)]
16pub struct AgentConfig {
17 pub max_iteration: usize,
18 pub temperature: f64,
19}
20
21pub struct Agent<P: ChatProvide, M: Memory> {
22 pub config: AgentConfig,
23 pub llm: ChatModel<P>,
24 pub memory: M,
25 pub context_builder: ContextBuilder,
26 pub toolbox: ToolBox,
27 pub hooks: HookManager,
28 pub middlewares: MiddlewareManager,
29}